diff --git a/build/rollup.config.app.js b/build/rollup.config.app.js
index 5933262570978de06e9b8806f3cd41b3c282c83c..9832fd4152aeb487b4824d71de1674b093a67ba6 100644
--- a/build/rollup.config.app.js
+++ b/build/rollup.config.app.js
@@ -5,24 +5,28 @@ const resolve = require('rollup-plugin-node-resolve')
const commonjs = require('rollup-plugin-commonjs')
const requireContext = require('./rollup-plugin-require-context')
-let input = 'src/platforms/app-plus/service/uni/create-instance-context.js'
+let input = 'src/platforms/app-plus/service/framework/create-instance-context.js'
const output = {
file: 'packages/uni-app-plus-nvue/dist/index.js',
format: 'es'
}
+const external = []
+
if (process.env.UNI_SERVICE === 'legacy') {
- input = 'src/platforms/app-plus-nvue/service/index.legacy.js'
+ input = 'src/platforms/app-plus-nvue/services/index.legacy.js'
output.file = 'packages/uni-app-plus-nvue/dist/index.legacy.js'
} else if (process.env.UNI_SERVICE === 'uni') {
- input = 'src/platforms/app-plus/service/uni/index.js'
+ input = 'src/platforms/app-plus/service/uni.js'
output.file = 'packages/uni-app-plus-nvue/dist/uni.js'
- output.banner =
-`export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, UniServiceJSBridge, getApp, getCurrentPages){
-var localStorage = plus.storage
+ output.banner =
+ `export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, __registerPage, UniServiceJSBridge, getApp, getCurrentPages){
+var localStorage = plus.storage
`
output.footer = '\n return uni$1 \n}'
+} else {
+ external.push('./uni')
}
module.exports = {
@@ -34,16 +38,16 @@ module.exports = {
requireContext(),
alias({
'uni-core': path.resolve(__dirname, '../src/core'),
- 'uni-platform': path.resolve(__dirname, '../src/platforms/' + process.env.UNI_PLATFORM),
+ 'uni-platform': path.resolve(__dirname, '../src/platforms/app-plus'),
'uni-platforms': path.resolve(__dirname, '../src/platforms'),
'uni-shared': path.resolve(__dirname, '../src/shared/util.js'),
'uni-helpers': path.resolve(__dirname, '../src/core/helpers')
}),
replace({
__GLOBAL__: 'getGlobalUni()',
- __PLATFORM__: JSON.stringify(process.env.UNI_PLATFORM),
+ __PLATFORM__: JSON.stringify('app-plus'),
__PLATFORM_TITLE__: 'app-plus-nvue'
})
],
- external: ['./uni']
+ external
}
diff --git a/package.json b/package.json
index b315fb6cbd0f5fc1463de2bf80ce38b1ba66e441..044c98ad9dfa5eed0c4e145b50a4c91575343dde 100644
--- a/package.json
+++ b/package.json
@@ -1,113 +1,114 @@
{
- "name": "uniapp-js-framework",
- "version": "0.0.1",
- "scripts": {
- "lint": "eslint --fix --config package.json --ext .js --ext .vue --ignore-path .eslintignore build src",
- "dev:h5": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=true UNI_PLATFORM=h5 node build/build.js",
- "build:h5": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=false UNI_PLATFORM=h5 node build/build.js",
- "build:app-plus": "cross-env UNI_PLATFORM=app-plus rollup -c build/rollup.config.mp.js",
- "build:app:all": "npm run lint && npm run build:app && npm run build:app:nvue && npm run build:app:legacy",
- "build:app": "UNI_PLATFORM=app-plus-nvue UNI_SERVICE=uni rollup -c build/rollup.config.app.js",
- "build:app:nvue": "cross-env UNI_PLATFORM=app-plus-nvue rollup -c build/rollup.config.app.js",
- "build:app:legacy": "cross-env UNI_PLATFORM=app-plus-nvue UNI_SERVICE=legacy rollup -c build/rollup.config.app.js",
- "build:mp-qq": "cross-env UNI_PLATFORM=mp-qq rollup -c build/rollup.config.mp.js",
- "build:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin rollup -c build/rollup.config.mp.js",
- "build:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu rollup -c build/rollup.config.mp.js",
- "build:mp-alipay": "cross-env UNI_PLATFORM=mp-alipay rollup -c build/rollup.config.mp.js",
- "build:mp-toutiao": "cross-env UNI_PLATFORM=mp-toutiao rollup -c build/rollup.config.mp.js",
- "build:runtime": "npm run lint && npm run build:mp-weixin && npm run build:mp-qq && npm run build:mp-alipay && npm run build:mp-baidu && npm run build:mp-toutiao && npm run build:app-plus",
- "test:unit": "cross-env NODE_ENV=test UNI_PLATFORM=h5 mocha-webpack --require tests/unit/setup.js --webpack-config build/webpack.config.test.js tests/unit/**/*.spec.js"
+ "name": "uniapp-js-framework",
+ "version": "0.0.1",
+ "scripts": {
+ "lint": "eslint --fix --config package.json --ext .js --ext .vue --ignore-path .eslintignore build src",
+ "dev:h5": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=true UNI_PLATFORM=h5 node build/build.js",
+ "build:h5": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=false UNI_PLATFORM=h5 node build/build.js",
+ "build:app-plus": "cross-env UNI_PLATFORM=app-plus rollup -c build/rollup.config.mp.js",
+ "build:app:all": "npm run lint && npm run build:app:uni && npm run build:app:nvue && npm run build:app:legacy",
+ "build:app:uni": "UNI_PLATFORM=app-plus-nvue UNI_SERVICE=uni rollup -c build/rollup.config.app.js",
+ "build:app:nvue": "cross-env UNI_PLATFORM=app-plus-nvue rollup -c build/rollup.config.app.js",
+ "build:app:legacy": "cross-env UNI_PLATFORM=app-plus-nvue UNI_SERVICE=legacy rollup -c build/rollup.config.app.js",
+ "build:mp-qq": "cross-env UNI_PLATFORM=mp-qq rollup -c build/rollup.config.mp.js",
+ "build:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin rollup -c build/rollup.config.mp.js",
+ "build:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu rollup -c build/rollup.config.mp.js",
+ "build:mp-alipay": "cross-env UNI_PLATFORM=mp-alipay rollup -c build/rollup.config.mp.js",
+ "build:mp-toutiao": "cross-env UNI_PLATFORM=mp-toutiao rollup -c build/rollup.config.mp.js",
+ "build:runtime": "npm run lint && npm run build:mp-weixin && npm run build:mp-qq && npm run build:mp-alipay && npm run build:mp-baidu && npm run build:mp-toutiao && npm run build:app-plus",
+ "test:unit": "cross-env NODE_ENV=test UNI_PLATFORM=h5 mocha-webpack --require tests/unit/setup.js --webpack-config build/webpack.config.test.js tests/unit/**/*.spec.js"
+ },
+ "dependencies": {
+ "base64-arraybuffer": "^0.2.0",
+ "intersection-observer": "^0.7.0"
+ },
+ "private": true,
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "^3.4.1",
+ "@vue/cli-plugin-eslint": "^3.4.1",
+ "@vue/cli-plugin-unit-mocha": "^3.4.1",
+ "@vue/cli-service": "^3.4.1",
+ "@vue/test-utils": "^1.0.0-beta.25",
+ "babel-eslint": "^10.0.1",
+ "babylon": "^6.18.0",
+ "browserslist": "^4.4.2",
+ "caniuse-lite": "^1.0.30000940",
+ "chai": "^4.1.2",
+ "copy": "^0.3.2",
+ "cross-env": "^5.2.0",
+ "del": "^5.0.0",
+ "eslint": "^5.5.0",
+ "eslint-config-standard": "^12.0.0",
+ "eslint-loader": "^2.1.0",
+ "eslint-plugin-import": "^2.14.0",
+ "eslint-plugin-node": "^7.0.1",
+ "eslint-plugin-promise": "^4.0.0",
+ "eslint-plugin-standard": "^4.0.0",
+ "eslint-plugin-vue": "^4.7.1",
+ "jsdom": "^13.0.0",
+ "jsdom-global": "^3.0.2",
+ "jsonfile": "^5.0.0",
+ "rollup": "^1.17.0",
+ "rollup-plugin-alias": "^1.4.0",
+ "rollup-plugin-commonjs": "^10.0.1",
+ "rollup-plugin-node-resolve": "^5.2.0",
+ "rollup-plugin-replace": "^2.1.0",
+ "strip-json-comments": "^2.0.1",
+ "vue": "^2.6.8",
+ "vue-router": "^3.0.1",
+ "vue-template-compiler": "^2.6.8",
+ "webpack": "^4.18.0",
+ "webpack-bundle-analyzer": "^3.0.3",
+ "webpack-virtual-modules": "^0.1.10"
+ },
+ "eslintConfig": {
+ "root": true,
+ "env": {
+ "node": true
},
- "dependencies": {
- "base64-arraybuffer": "^0.2.0",
- "intersection-observer": "^0.7.0"
- },
- "private": true,
- "devDependencies": {
- "@vue/cli-plugin-babel": "^3.4.1",
- "@vue/cli-plugin-eslint": "^3.4.1",
- "@vue/cli-plugin-unit-mocha": "^3.4.1",
- "@vue/cli-service": "^3.4.1",
- "@vue/test-utils": "^1.0.0-beta.25",
- "babel-eslint": "^10.0.1",
- "babylon": "^6.18.0",
- "browserslist": "^4.4.2",
- "caniuse-lite": "^1.0.30000940",
- "chai": "^4.1.2",
- "copy": "^0.3.2",
- "cross-env": "^5.2.0",
- "del": "^5.0.0",
- "eslint": "^5.5.0",
- "eslint-config-standard": "^12.0.0",
- "eslint-loader": "^2.1.0",
- "eslint-plugin-import": "^2.14.0",
- "eslint-plugin-node": "^7.0.1",
- "eslint-plugin-promise": "^4.0.0",
- "eslint-plugin-standard": "^4.0.0",
- "eslint-plugin-vue": "^4.7.1",
- "jsdom": "^13.0.0",
- "jsdom-global": "^3.0.2",
- "jsonfile": "^5.0.0",
- "rollup": "^1.17.0",
- "rollup-plugin-alias": "^1.4.0",
- "rollup-plugin-commonjs": "^10.0.1",
- "rollup-plugin-node-resolve": "^5.2.0",
- "rollup-plugin-replace": "^2.1.0",
- "strip-json-comments": "^2.0.1",
- "vue": "^2.6.8",
- "vue-router": "^3.0.1",
- "vue-template-compiler": "^2.6.8",
- "webpack": "^4.18.0",
- "webpack-bundle-analyzer": "^3.0.3",
- "webpack-virtual-modules": "^0.1.10"
+ "extends": [
+ "plugin:vue/recommended",
+ "standard"
+ ],
+ "globals": {
+ "App": true,
+ "Page": true,
+ "Component": true,
+ "Behavior": true,
+ "getApp": true,
+ "getCurrentPages": true,
+ "plus": true,
+ "uni": true,
+ "Vue": true,
+ "wx": true,
+ "my": true,
+ "swan": true,
+ "__uniConfig": true,
+ "__uniRoutes": true,
+ "__registerPage": true,
+ "UniViewJSBridge": true,
+ "UniServiceJSBridge": true,
+ "__PLATFORM__": true,
+ "__VERSION__": true,
+ "__GLOBAL__": true,
+ "__PLATFORM_TITLE__": true,
+ "__PLATFORM_PREFIX__": true
},
- "eslintConfig": {
- "root": true,
- "env": {
- "node": true
- },
- "extends": [
- "plugin:vue/recommended",
- "standard"
- ],
- "globals": {
- "App": true,
- "Page": true,
- "Component": true,
- "Behavior": true,
- "getApp": true,
- "getCurrentPages": true,
- "plus": true,
- "uni": true,
- "Vue": true,
- "wx": true,
- "my": true,
- "swan": true,
- "__uniConfig": true,
- "__uniRoutes": true,
- "UniViewJSBridge": true,
- "UniServiceJSBridge": true,
- "__PLATFORM__": true,
- "__VERSION__": true,
- "__GLOBAL__": true,
- "__PLATFORM_TITLE__": true,
- "__PLATFORM_PREFIX__": true
- },
- "rules": {
- "no-tabs": 0,
- "standard/no-callback-literal": 0
- },
- "parserOptions": {
- "parser": "babel-eslint"
- }
+ "rules": {
+ "no-tabs": 0,
+ "standard/no-callback-literal": 0
},
- "browserslist": [
- "last 3 versions",
- "Android >= 4.1",
- "ios >= 8"
- ],
- "license": "Apache-2.0",
- "main": "index.js",
- "description": "",
- "author": ""
-}
+ "parserOptions": {
+ "parser": "babel-eslint"
+ }
+ },
+ "browserslist": [
+ "last 3 versions",
+ "Android >= 4.1",
+ "ios >= 8"
+ ],
+ "license": "Apache-2.0",
+ "main": "index.js",
+ "description": "",
+ "author": ""
+}
diff --git a/packages/uni-app-plus-nvue/dist/index.js b/packages/uni-app-plus-nvue/dist/index.js
index 3ceec0d36bd8cec0af0a7a6596fc03fcaffdabed..2cbeec04ec467512aba53f693b49a9b5e3acd080 100644
--- a/packages/uni-app-plus-nvue/dist/index.js
+++ b/packages/uni-app-plus-nvue/dist/index.js
@@ -18,132 +18,6 @@ function callPageHook (vm, hook, params) {
return callHook(vm, hook, params)
}
-const ANI_DURATION = 300;
-const ANI_SHOW = 'pop-in';
-
-function showWebview (webview, animationType, animationDuration) {
- setTimeout(() => {
- webview.show(
- animationType || ANI_SHOW,
- animationDuration || ANI_DURATION,
- () => {
- console.log('show.callback');
- }
- );
- }, 50);
-}
-
-let firstBackTime = 0;
-
-function navigateBack ({
- delta,
- animationType,
- animationDuration
-}, {
- plus,
- getCurrentPages
-}, callback) {
- const pages = getCurrentPages();
- const len = pages.length - 1;
- const page = pages[len];
- if (page.$page.meta.isQuit) {
- if (!firstBackTime) {
- firstBackTime = Date.now();
- plus.nativeUI.toast('再按一次退出应用');
- setTimeout(() => {
- firstBackTime = null;
- }, 2000);
- } else if (Date.now() - firstBackTime < 2000) {
- plus.runtime.quit();
- }
- } else {
- pages.splice(len, 1);
- if (animationType) {
- page.$getAppWebview().close(animationType, animationDuration || ANI_DURATION);
- } else {
- page.$getAppWebview().close('auto');
- }
- callback && callback();
- }
-}
-
-function navigateTo ({
- path,
- animationType,
- animationDuration
-}, {
- __registerPage
-}) {
- showWebview(
- __registerPage({
- path
- }),
- animationType,
- animationDuration
- );
-}
-
-function reLaunch ({
- path
-}, instanceContext) {}
-
-function redirectTo ({
- path
-}, instanceContext) {}
-
-function switchTab ({
- path
-}, instanceContext) {}
-
-const route = {
- navigateBack,
- navigateTo,
- reLaunch,
- redirectTo,
- switchTab
-};
-
-class Router {
- constructor (instanceContext) {
- this.instanceContext = instanceContext;
- this.$emit = instanceContext.UniServiceJSBridge.emit;
- }
-
- push ({
- type,
- path,
- animationType,
- animationDuration
- } = {}) {
- this.$emit('onAppRoute', {
- type,
- path
- });
-
- route[type]({
- path,
- animationType,
- animationDuration
- }, this.instanceContext);
- }
-
- go (delta, {
- animationType,
- animationDuration
- } = {}) {
- delta = Math.abs(parseInt(delta) || 1);
- route.navigateBack({
- delta,
- animationType,
- animationDuration
- }, this.instanceContext, () => {
- this.$emit('onAppRoute', {
- type: 'navigateBack'
- });
- });
- }
-}
-
let appCtx;
const NETWORK_TYPES = [
@@ -160,14 +34,15 @@ function getApp () {
return appCtx
}
-function initGlobalListeners ({
+function initGlobalListeners ({
+ uni,
plus,
UniServiceJSBridge
}) {
const emit = UniServiceJSBridge.emit;
plus.key.addEventListener('backbutton', () => {
- appCtx.$router.go(-1);
+ uni.navigateBack();
});
plus.globalEvent.addEventListener('pause', () => {
@@ -207,8 +82,6 @@ function registerApp (appVm, instanceContext) {
appCtx = appVm;
- appCtx.$router = new Router(instanceContext);
-
initAppLaunch(appVm, instanceContext);
initGlobalListeners(instanceContext);
@@ -445,39 +318,6 @@ function initWebview (webview, instanceContext, routeOptions) {
return webview
}
-function createHolder (webview, {
- navigationBar
-}, {
- Vue
-}) {
- const navigationBarState = Vue.observable(navigationBar);
-
- /* eslint-disable no-new */
- new Vue({
- created () {
- this.$watch(() => navigationBarState.titleText, (val, oldVal) => {
- webview.setStyle({
- titleNView: {
- titleText: val || ''
- }
- });
- });
- this.$watch(() => [navigationBarState.textColor, navigationBarState.backgroundColor], (val) => {
- webview.setStyle({
- titleNView: {
- titleColor: val[0],
- backgroundColor: val[1]
- }
- });
- });
- }
- });
-
- return {
- navigationBar: navigationBarState
- }
-}
-
const pages = [];
function getCurrentPages () {
@@ -531,10 +371,7 @@ function registerPage ({
meta: routeOptions.meta,
path,
route
- },
- $holder: createHolder(webview, {
- navigationBar: webview.$navigationBar
- }, instanceContext)
+ }
});
return webview
@@ -587,7 +424,7 @@ function registerConfig (config, {
function initOn (on, {
getApp,
getCurrentPages
-}) {
+}) {
function onError (err) {
callAppHook(getApp(), 'onError', err);
}
@@ -673,169 +510,9 @@ function initOn (on, {
on('onWebInvokeAppService', onWebInvokeAppService);
}
-let waiting;
-let waitingTimeout;
-let toast = false;
-let toastTimeout;
-// 此处设计不对
-function initPopup (on, {
- plus
-}) {
- on('onShowToast', showToast);
- on('onHideToast', hideToast);
- on('onShowLoading', showToast);
- on('onHideLoading', hideToast);
- on('onShowModal', showModal);
- on('onShowActionSheet', showActionSheet);
-
- function showToast ({
- title = '',
- icon = 'success',
- image = '',
- duration = 1500,
- mask = false,
- position = ''
- }) {
- if (position) {
- if (toast) {
- toastTimeout && clearTimeout(toastTimeout);
- plus.nativeUI.closeToast();
- }
- if (waiting) {
- waitingTimeout && clearTimeout(waitingTimeout);
- waiting.close();
- }
- if (~['top', 'center', 'bottom'].indexOf(position)) {
- let richText = `${title}`;
- plus.nativeUI.toast(richText, {
- verticalAlign: position,
- type: 'richtext'
- });
- toast = true;
- toastTimeout = setTimeout(() => {
- hideToast();
- }, 2000);
- return
- }
- console.warn('uni.showToast 传入的 "position" 值 "' + position + '" 无效');
- }
-
- if (duration) {
- if (waiting) {
- waitingTimeout && clearTimeout(waitingTimeout);
- waiting.close();
- }
- if (toast) {
- toastTimeout && clearTimeout(toastTimeout);
- plus.nativeUI.closeToast();
- }
- if (icon && !~['success', 'loading', 'none'].indexOf(icon)) {
- icon = 'success';
- }
- const waitingOptions = {
- modal: mask,
- back: 'transmit',
- padding: '10px',
- size: '16px' // 固定字体大小
- };
- if (!image && (!icon || icon === 'none')) { // 无图
- // waitingOptions.width = '120px'
- // waitingOptions.height = '40px'
- waitingOptions.loading = {
- display: 'none'
- };
- } else { // 有图
- waitingOptions.width = '140px';
- waitingOptions.height = '112px';
- }
- if (image) {
- waitingOptions.loading = {
- display: 'block',
- height: '55px',
- icon: image,
- interval: duration
- };
- } else {
- if (icon === 'success') {
- waitingOptions.loading = {
- display: 'block',
- height: '55px',
- icon: '__uniappsuccess.png',
- interval: duration
- };
- }
- }
-
- waiting = plus.nativeUI.showWaiting(title, waitingOptions);
- waitingTimeout = setTimeout(() => {
- hideToast();
- }, duration);
- }
- }
-
- function hideToast () {
- if (toast) {
- toastTimeout && clearTimeout(toastTimeout);
- plus.nativeUI.closeToast();
- toast = false;
- }
- if (waiting) {
- waitingTimeout && clearTimeout(waitingTimeout);
- waiting.close();
- waiting = null;
- waitingTimeout = null;
- }
- }
-
- function showModal ({
- title = '',
- content = '',
- showCancel = true,
- cancelText = '取消',
- cancelColor = '#000000',
- confirmText = '确定',
- confirmColor = '#3CC51F'
- }, callback) {
- plus.nativeUI.confirm(content, (e) => {
- if (showCancel) {
- callback(e.index === 1 ? 'confirm' : 'cancel');
- } else {
- callback(e.index === 0 ? 'confirm' : 'cancel');
- }
- }, title, showCancel ? [cancelText, confirmText] : [confirmText]);
- }
-
- function showActionSheet ({
- itemList = [],
- itemColor = '#000000',
- title = ''
- }, callback) {
- const options = {
- buttons: itemList.map(item => ({
- title: item
- }))
- };
- if (title) {
- options.title = title;
- }
-
- if (plus.os.name === 'iOS') {
- options.cancel = '取消';
- }
-
- plus.nativeUI.actionSheet(options, (e) => {
- if (e.index > 0) {
- callback(e.index - 1);
- } else {
- callback(-1);
- }
- });
- }
-}
-
let bridge;
-function initServiceJSBridge (Vue, instanceContext) {
+function initServiceJSBridge (Vue, instanceContext) {
if (bridge) {
return bridge
}
@@ -850,7 +527,6 @@ function initServiceJSBridge (Vue, instanceContext) {
};
initOn(bridge.on, instanceContext);
- initPopup(bridge.on, instanceContext);
return bridge
}
@@ -871,12 +547,17 @@ function createInstanceContext (instanceContext) {
getCurrentPages
});
+ function __registerPage (page) {
+ return registerPage(page, instanceContext)
+ }
+
if (!uni$1) {
uni$1 = createUniInstance(
weex,
plus,
uniConfig,
uniRoutes,
+ __registerPage,
UniServiceJSBridge,
getApp,
getCurrentPages
@@ -892,9 +573,7 @@ function createInstanceContext (instanceContext) {
__registerApp (appVm) {
return registerApp(appVm, instanceContext)
},
- __registerPage (page) {
- return registerPage(page, instanceContext)
- },
+ __registerPage,
plus,
uni: uni$1,
getApp,
diff --git a/packages/uni-app-plus-nvue/dist/uni.js b/packages/uni-app-plus-nvue/dist/uni.js
index 3fc18841ea3a8e4a622e6d57a57da30cd36aa5c1..74b7f65fedc2109f666d4733dc4a6875bfa1cd48 100644
--- a/packages/uni-app-plus-nvue/dist/uni.js
+++ b/packages/uni-app-plus-nvue/dist/uni.js
@@ -1,6 +1,195 @@
-export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, UniServiceJSBridge, getApp, getCurrentPages){
+export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, __registerPage, UniServiceJSBridge, getApp, getCurrentPages){
var localStorage = plus.storage
+const ANI_DURATION = 300;
+const ANI_SHOW = 'pop-in';
+
+function showWebview (webview, animationType, animationDuration) {
+ setTimeout(() => {
+ webview.show(
+ animationType || ANI_SHOW,
+ animationDuration || ANI_DURATION,
+ () => {
+ console.log('show.callback');
+ }
+ );
+ }, 50);
+}
+
+var require_context_module_0_5 = /*#__PURE__*/Object.freeze({
+ ANI_DURATION: ANI_DURATION,
+ showWebview: showWebview
+});
+
+let firstBackTime = 0;
+
+function navigateBack ({
+ delta,
+ animationType,
+ animationDuration
+}) {
+ const pages = getCurrentPages();
+ const len = pages.length - 1;
+ const page = pages[len];
+ if (page.$page.meta.isQuit) {
+ if (!firstBackTime) {
+ firstBackTime = Date.now();
+ plus.nativeUI.toast('再按一次退出应用');
+ setTimeout(() => {
+ firstBackTime = null;
+ }, 2000);
+ } else if (Date.now() - firstBackTime < 2000) {
+ plus.runtime.quit();
+ }
+ } else {
+ pages.splice(len, 1);
+ if (animationType) {
+ page.$getAppWebview().close(animationType, animationDuration || ANI_DURATION);
+ } else {
+ page.$getAppWebview().close('auto');
+ }
+ UniServiceJSBridge.emit('onAppRoute', {
+ type: 'navigateBack'
+ });
+ }
+}
+
+var require_context_module_0_0 = /*#__PURE__*/Object.freeze({
+ navigateBack: navigateBack
+});
+
+function navigateTo ({
+ url,
+ animationType,
+ animationDuration
+}) {
+ const path = url.split('?')[0];
+
+ UniServiceJSBridge.emit('onAppRoute', {
+ type: 'navigateTo',
+ path
+ });
+
+ showWebview(
+ __registerPage({
+ path
+ }),
+ animationType,
+ animationDuration
+ );
+}
+
+var require_context_module_0_1 = /*#__PURE__*/Object.freeze({
+ navigateTo: navigateTo
+});
+
+function reLaunch ({
+ path
+}) {}
+
+var require_context_module_0_2 = /*#__PURE__*/Object.freeze({
+ reLaunch: reLaunch
+});
+
+function redirectTo ({
+ path
+}) {}
+
+var require_context_module_0_3 = /*#__PURE__*/Object.freeze({
+ redirectTo: redirectTo
+});
+
+function switchTab ({
+ path
+}) {}
+
+var require_context_module_0_4 = /*#__PURE__*/Object.freeze({
+ switchTab: switchTab
+});
+
+function createCommonjsModule(fn, module) {
+ return module = { exports: {} }, fn(module, module.exports), module.exports;
+}
+
+var base64Arraybuffer = createCommonjsModule(function (module, exports) {
+/*
+ * base64-arraybuffer
+ * https://github.com/niklasvh/base64-arraybuffer
+ *
+ * Copyright (c) 2012 Niklas von Hertzen
+ * Licensed under the MIT license.
+ */
+(function(){
+
+ var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+ // Use a lookup table to find the index.
+ var lookup = new Uint8Array(256);
+ for (var i = 0; i < chars.length; i++) {
+ lookup[chars.charCodeAt(i)] = i;
+ }
+
+ exports.encode = function(arraybuffer) {
+ var bytes = new Uint8Array(arraybuffer),
+ i, len = bytes.length, base64 = "";
+
+ for (i = 0; i < len; i+=3) {
+ base64 += chars[bytes[i] >> 2];
+ base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
+ base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
+ base64 += chars[bytes[i + 2] & 63];
+ }
+
+ if ((len % 3) === 2) {
+ base64 = base64.substring(0, base64.length - 1) + "=";
+ } else if (len % 3 === 1) {
+ base64 = base64.substring(0, base64.length - 2) + "==";
+ }
+
+ return base64;
+ };
+
+ exports.decode = function(base64) {
+ var bufferLength = base64.length * 0.75,
+ len = base64.length, i, p = 0,
+ encoded1, encoded2, encoded3, encoded4;
+
+ if (base64[base64.length - 1] === "=") {
+ bufferLength--;
+ if (base64[base64.length - 2] === "=") {
+ bufferLength--;
+ }
+ }
+
+ var arraybuffer = new ArrayBuffer(bufferLength),
+ bytes = new Uint8Array(arraybuffer);
+
+ for (i = 0; i < len; i+=4) {
+ encoded1 = lookup[base64.charCodeAt(i)];
+ encoded2 = lookup[base64.charCodeAt(i+1)];
+ encoded3 = lookup[base64.charCodeAt(i+2)];
+ encoded4 = lookup[base64.charCodeAt(i+3)];
+
+ bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
+ bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
+ bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
+ }
+
+ return arraybuffer;
+ };
+})();
+});
+var base64Arraybuffer_1 = base64Arraybuffer.encode;
+var base64Arraybuffer_2 = base64Arraybuffer.decode;
+
+const base64ToArrayBuffer = base64Arraybuffer_2;
+const arrayBufferToBase64 = base64Arraybuffer_1;
+
+var require_context_module_1_0 = /*#__PURE__*/Object.freeze({
+ base64ToArrayBuffer: base64ToArrayBuffer,
+ arrayBufferToBase64: arrayBufferToBase64
+});
+
const _toString = Object.prototype.toString;
const hasOwnProperty = Object.prototype.hasOwnProperty;
@@ -25,33 +214,21 @@ function getLen (str = '') {
return ('' + str).replace(/[^\x00-\xff]/g, '**').length
}
-/**
- * 框架内 try-catch
- */
-function tryCatchFramework (fn) {
- return function () {
- try {
- return fn.apply(fn, arguments)
- } catch (e) {
- // TODO
- console.error(e);
- }
- }
-}
-/**
- * 开发者 try-catch
- */
-function tryCatch (fn) {
- return function () {
- try {
- return fn.apply(fn, arguments)
- } catch (e) {
- // TODO
- console.error(e);
- }
+var platformSchema = {};
+
+// TODO 待处理其他 API 的检测
+
+function canIUse (schema) {
+ if (hasOwn(platformSchema, schema)) {
+ return platformSchema[schema]
}
+ return true
}
+var require_context_module_1_1 = /*#__PURE__*/Object.freeze({
+ canIUse: canIUse
+});
+
const HOOKS = [
'invoke',
'success',
@@ -242,187 +419,644 @@ const promiseInterceptor = {
}
};
-const SYNC_API_RE =
- /^\$|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
-
-const CONTEXT_API_RE = /^create|Manager$/;
-
-const TASK_APIS = ['request', 'downloadFile', 'uploadFile', 'connectSocket'];
-
-const CALLBACK_API_RE = /^on/;
-
-function isContextApi (name) {
- return CONTEXT_API_RE.test(name)
-}
-function isSyncApi (name) {
- return SYNC_API_RE.test(name)
-}
-
-function isCallbackApi (name) {
- return CALLBACK_API_RE.test(name)
+const interceptors = {
+ promiseInterceptor
+};
+
+var require_context_module_1_2 = /*#__PURE__*/Object.freeze({
+ interceptors: interceptors,
+ addInterceptor: addInterceptor,
+ removeInterceptor: removeInterceptor
+});
+
+function pageScrollTo (args) {
+ const pages = getCurrentPages();
+ if (pages.length) {
+ UniServiceJSBridge.publishHandler('pageScrollTo', args, pages[pages.length - 1].$page.id);
+ }
+ return {}
}
-function isTaskApi (name) {
- return TASK_APIS.indexOf(name) !== -1
-}
+let pageId;
-function handlePromise (promise) {
- return promise.then(data => {
- return [null, data]
- })
- .catch(err => [err])
+function setPullDownRefreshPageId (pullDownRefreshPageId) {
+ pageId = pullDownRefreshPageId;
}
-function shouldPromise (name) {
- if (
- isContextApi(name) ||
- isSyncApi(name) ||
- isCallbackApi(name)
- ) {
- return false
+function startPullDownRefresh () {
+ if (pageId) {
+ UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
}
- return true
+ const pages = getCurrentPages();
+ if (pages.length) {
+ pageId = pages[pages.length - 1].$page.id;
+ UniServiceJSBridge.emit(pageId + '.startPullDownRefresh', {}, pageId);
+ }
+ return {}
}
-function promisify (name, api) {
- if (!shouldPromise(name)) {
- return api
- }
- return function promiseApi (options = {}, ...params) {
- if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {
- return wrapperReturnValue(name, invokeApi(name, api, options, ...params))
- }
- return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
- invokeApi(name, api, Object.assign({}, options, {
- success: resolve,
- fail: reject
- }), ...params);
- /* eslint-disable no-extend-native */
- if (!Promise.prototype.finally) {
- Promise.prototype.finally = function (callback) {
- const promise = this.constructor;
- return this.then(
- value => promise.resolve(callback()).then(() => value),
- reason => promise.resolve(callback()).then(() => {
- throw reason
- })
- )
- };
- }
- })))
+function stopPullDownRefresh () {
+ if (pageId) {
+ UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
+ pageId = null;
+ } else {
+ const pages = getCurrentPages();
+ if (pages.length) {
+ pageId = pages[pages.length - 1].$page.id;
+ UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
+ }
}
+ return {}
}
-const canIUse = [{
- name: 'schema',
- type: String,
- required: true
-}];
-
-var require_context_module_1_0 = /*#__PURE__*/Object.freeze({
- canIUse: canIUse
+var require_context_module_1_3 = /*#__PURE__*/Object.freeze({
+ pageScrollTo: pageScrollTo,
+ setPullDownRefreshPageId: setPullDownRefreshPageId,
+ startPullDownRefresh: startPullDownRefresh,
+ stopPullDownRefresh: stopPullDownRefresh
});
-const base64ToArrayBuffer = [{
- name: 'base64',
- type: String,
- required: true
-}];
-
-const arrayBufferToBase64 = [{
- name: 'arrayBuffer',
- type: [ArrayBuffer, Uint8Array],
- required: true
-}];
+function setStorage ({
+ key,
+ data
+} = {}) {
+ const value = {
+ type: typeof data === 'object' ? 'object' : 'string',
+ data: data
+ };
+ localStorage.setItem(key, JSON.stringify(value));
+ const keyList = localStorage.getItem('uni-storage-keys');
+ if (!keyList) {
+ localStorage.setItem('uni-storage-keys', JSON.stringify([key]));
+ } else {
+ const keys = JSON.parse(keyList);
+ if (keys.indexOf(key) < 0) {
+ keys.push(key);
+ localStorage.setItem('uni-storage-keys', JSON.stringify(keys));
+ }
+ }
+ return {
+ errMsg: 'setStorage:ok'
+ }
+}
+
+function setStorageSync (key, data) {
+ setStorage({
+ key,
+ data
+ });
+}
+
+function getStorage ({
+ key
+} = {}) {
+ const data = localStorage.getItem(key);
+ return data ? {
+ data: JSON.parse(data).data,
+ errMsg: 'getStorage:ok'
+ } : {
+ data: '',
+ errMsg: 'getStorage:fail'
+ }
+}
+
+function getStorageSync (key) {
+ const res = getStorage({
+ key
+ });
+ return res.data
+}
+
+function removeStorage ({
+ key
+} = {}) {
+ const keyList = localStorage.getItem('uni-storage-keys');
+ if (keyList) {
+ const keys = JSON.parse(keyList);
+ const index = keys.indexOf(key);
+ keys.splice(index, 1);
+ localStorage.setItem('uni-storage-keys', JSON.stringify(keys));
+ }
+ localStorage.removeItem(key);
+ return {
+ errMsg: 'removeStorage:ok'
+ }
+}
+
+function removeStorageSync (key) {
+ removeStorage({
+ key
+ });
+}
+
+function clearStorage () {
+ localStorage.clear();
+ return {
+ errMsg: 'clearStorage:ok'
+ }
+}
+
+function clearStorageSync () {
+ clearStorage();
+}
+
+function getStorageInfo () { // TODO 暂时先不做大小的转换
+ const keyList = localStorage.getItem('uni-storage-keys');
+ return keyList ? {
+ keys: JSON.parse(keyList),
+ currentSize: 0,
+ limitSize: 0,
+ errMsg: 'getStorageInfo:ok'
+ } : {
+ keys: '',
+ currentSize: 0,
+ limitSize: 0,
+ errMsg: 'getStorageInfo:fail'
+ }
+}
+
+function getStorageInfoSync () {
+ const res = getStorageInfo();
+ delete res.errMsg;
+ return res
+}
-var require_context_module_1_1 = /*#__PURE__*/Object.freeze({
- base64ToArrayBuffer: base64ToArrayBuffer,
- arrayBufferToBase64: arrayBufferToBase64
+var require_context_module_1_4 = /*#__PURE__*/Object.freeze({
+ setStorage: setStorage,
+ setStorageSync: setStorageSync,
+ getStorage: getStorage,
+ getStorageSync: getStorageSync,
+ removeStorage: removeStorage,
+ removeStorageSync: removeStorageSync,
+ clearStorage: clearStorage,
+ clearStorageSync: clearStorageSync,
+ getStorageInfo: getStorageInfo,
+ getStorageInfoSync: getStorageInfoSync
});
-function getInt (method) {
- return function (value, params) {
- if (value) {
- params[method] = Math.round(value);
- }
- }
+const EPS = 1e-4;
+const BASE_DEVICE_WIDTH = 750;
+let isIOS = false;
+let deviceWidth = 0;
+let deviceDPR = 0;
+
+function checkDeviceWidth () {
+ const {
+ platform,
+ pixelRatio,
+ windowWidth
+ } = uni.getSystemInfoSync();
+
+ deviceWidth = windowWidth;
+ deviceDPR = pixelRatio;
+ isIOS = platform === 'ios';
+}
+
+function upx2px (number, newDeviceWidth) {
+ if (deviceWidth === 0) {
+ checkDeviceWidth();
+ }
+
+ number = Number(number);
+ if (number === 0) {
+ return 0
+ }
+ let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);
+ if (result < 0) {
+ result = -result;
+ }
+ result = Math.floor(result + EPS);
+ if (result === 0) {
+ if (deviceDPR === 1 || !isIOS) {
+ return 1
+ } else {
+ return 0.5
+ }
+ }
+ return number < 0 ? -result : result
}
-const canvasGetImageData = {
- canvasId: {
- type: String,
- required: true
- },
- x: {
- type: Number,
- required: true,
- validator: getInt('x')
- },
- y: {
- type: Number,
- required: true,
- validator: getInt('y')
- },
- width: {
- type: Number,
- required: true,
- validator: getInt('width')
- },
- height: {
- type: Number,
- required: true,
- validator: getInt('height')
- }
-};
-
-const canvasPutImageData = {
- canvasId: {
- type: String,
- required: true
- },
- data: {
- type: Uint8ClampedArray,
- required: true
- },
- x: {
- type: Number,
- required: true,
- validator: getInt('x')
- },
- y: {
- type: Number,
- required: true,
- validator: getInt('y')
- },
- width: {
- type: Number,
- required: true,
- validator: getInt('width')
- },
- height: {
- type: Number,
- validator: getInt('height')
- }
-};
-
-const fileType = {
- PNG: 'png',
- JPG: 'jpeg'
-};
+var require_context_module_1_5 = /*#__PURE__*/Object.freeze({
+ upx2px: upx2px
+});
-const canvasToTempFilePath = {
- x: {
- type: Number,
- default: 0,
- validator: getInt('x')
- },
- y: {
- type: Number,
- default: 0,
- validator: getInt('y')
- },
- width: {
- type: Number,
+const base = [
+ 'base64ToArrayBuffer',
+ 'arrayBufferToBase64'
+];
+
+const network = [
+ 'request',
+ 'uploadFile',
+ 'downloadFile',
+ 'connectSocket',
+ 'onSocketOpen',
+ 'onSocketError',
+ 'sendSocketMessage',
+ 'onSocketMessage',
+ 'closeSocket',
+ 'onSocketClose'
+];
+
+const route = [
+ 'navigateTo',
+ 'redirectTo',
+ 'reLaunch',
+ 'switchTab',
+ 'navigateBack'
+];
+
+const storage = [
+ 'setStorage',
+ 'setStorageSync',
+ 'getStorage',
+ 'getStorageSync',
+ 'getStorageInfo',
+ 'getStorageInfoSync',
+ 'removeStorage',
+ 'removeStorageSync',
+ 'clearStorage',
+ 'clearStorageSync'
+];
+
+const location = [
+ 'getLocation',
+ 'chooseLocation',
+ 'openLocation',
+ 'createMapContext'
+];
+
+const media = [
+ 'chooseImage',
+ 'previewImage',
+ 'getImageInfo',
+ 'saveImageToPhotosAlbum',
+ 'compressImage',
+ 'chooseMessageFile',
+ 'getRecorderManager',
+ 'getBackgroundAudioManager',
+ 'createInnerAudioContext',
+ 'chooseVideo',
+ 'saveVideoToPhotosAlbum',
+ 'createVideoContext',
+ 'createCameraContext',
+ 'createLivePlayerContext'
+];
+
+const device = [
+ 'getSystemInfo',
+ 'getSystemInfoSync',
+ 'canIUse',
+ 'onMemoryWarning',
+ 'getNetworkType',
+ 'onNetworkStatusChange',
+ 'onAccelerometerChange',
+ 'startAccelerometer',
+ 'stopAccelerometer',
+ 'onCompassChange',
+ 'startCompass',
+ 'stopCompass',
+ 'onGyroscopeChange',
+ 'startGyroscope',
+ 'stopGyroscope',
+ 'makePhoneCall',
+ 'scanCode',
+ 'setClipboardData',
+ 'getClipboardData',
+ 'setScreenBrightness',
+ 'getScreenBrightness',
+ 'setKeepScreenOn',
+ 'onUserCaptureScreen',
+ 'vibrateLong',
+ 'vibrateShort',
+ 'addPhoneContact',
+ 'openBluetoothAdapter',
+ 'startBluetoothDevicesDiscovery',
+ 'onBluetoothDeviceFound',
+ 'stopBluetoothDevicesDiscovery',
+ 'onBluetoothAdapterStateChange',
+ 'getConnectedBluetoothDevices',
+ 'getBluetoothDevices',
+ 'getBluetoothAdapterState',
+ 'closeBluetoothAdapter',
+ 'writeBLECharacteristicValue',
+ 'readBLECharacteristicValue',
+ 'onBLEConnectionStateChange',
+ 'onBLECharacteristicValueChange',
+ 'notifyBLECharacteristicValueChange',
+ 'getBLEDeviceServices',
+ 'getBLEDeviceCharacteristics',
+ 'createBLEConnection',
+ 'closeBLEConnection',
+ 'onBeaconServiceChange',
+ 'onBeaconUpdate',
+ 'getBeacons',
+ 'startBeaconDiscovery',
+ 'stopBeaconDiscovery'
+];
+
+const keyboard = [
+ 'hideKeyboard'
+];
+
+const ui = [
+ 'showToast',
+ 'hideToast',
+ 'showLoading',
+ 'hideLoading',
+ 'showModal',
+ 'showActionSheet',
+ 'setNavigationBarTitle',
+ 'setNavigationBarColor',
+ 'showNavigationBarLoading',
+ 'hideNavigationBarLoading',
+ 'setTabBarItem',
+ 'setTabBarStyle',
+ 'hideTabBar',
+ 'showTabBar',
+ 'setTabBarBadge',
+ 'removeTabBarBadge',
+ 'showTabBarRedDot',
+ 'hideTabBarRedDot',
+ 'setBackgroundColor',
+ 'setBackgroundTextStyle',
+ 'createAnimation',
+ 'pageScrollTo',
+ 'onWindowResize',
+ 'offWindowResize',
+ 'loadFontFace',
+ 'startPullDownRefresh',
+ 'stopPullDownRefresh',
+ 'createSelectorQuery',
+ 'createIntersectionObserver'
+];
+
+const event = [
+ '$emit',
+ '$on',
+ '$once',
+ '$off'
+];
+
+const file = [
+ 'saveFile',
+ 'getSavedFileList',
+ 'getSavedFileInfo',
+ 'removeSavedFile',
+ 'getFileInfo',
+ 'openDocument',
+ 'getFileSystemManager'
+];
+
+const canvas = [
+ 'createOffscreenCanvas',
+ 'createCanvasContext',
+ 'canvasToTempFilePath',
+ 'canvasPutImageData',
+ 'canvasGetImageData'
+];
+
+const third = [
+ 'getProvider',
+ 'login',
+ 'checkSession',
+ 'getUserInfo',
+ 'share',
+ 'showShareMenu',
+ 'hideShareMenu',
+ 'requestPayment',
+ 'subscribePush',
+ 'unsubscribePush',
+ 'onPush',
+ 'offPush',
+ 'requireNativePlugin',
+ 'upx2px'
+];
+
+const apis = [
+ ...base,
+ ...network,
+ ...route,
+ ...storage,
+ ...location,
+ ...media,
+ ...device,
+ ...keyboard,
+ ...ui,
+ ...event,
+ ...file,
+ ...canvas,
+ ...third
+];
+
+/**
+ * 框架内 try-catch
+ */
+function tryCatchFramework (fn) {
+ return function () {
+ try {
+ return fn.apply(fn, arguments)
+ } catch (e) {
+ // TODO
+ console.error(e);
+ }
+ }
+}
+/**
+ * 开发者 try-catch
+ */
+function tryCatch (fn) {
+ return function () {
+ try {
+ return fn.apply(fn, arguments)
+ } catch (e) {
+ // TODO
+ console.error(e);
+ }
+ }
+}
+
+const SYNC_API_RE =
+ /^\$|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64/;
+
+const CONTEXT_API_RE = /^create|Manager$/;
+
+const TASK_APIS = ['request', 'downloadFile', 'uploadFile', 'connectSocket'];
+
+const CALLBACK_API_RE = /^on/;
+
+function isContextApi (name) {
+ return CONTEXT_API_RE.test(name)
+}
+function isSyncApi (name) {
+ return SYNC_API_RE.test(name)
+}
+
+function isCallbackApi (name) {
+ return CALLBACK_API_RE.test(name)
+}
+
+function isTaskApi (name) {
+ return TASK_APIS.indexOf(name) !== -1
+}
+
+function handlePromise (promise) {
+ return promise.then(data => {
+ return [null, data]
+ })
+ .catch(err => [err])
+}
+
+function shouldPromise (name) {
+ if (
+ isContextApi(name) ||
+ isSyncApi(name) ||
+ isCallbackApi(name)
+ ) {
+ return false
+ }
+ return true
+}
+
+function promisify (name, api) {
+ if (!shouldPromise(name)) {
+ return api
+ }
+ return function promiseApi (options = {}, ...params) {
+ if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {
+ return wrapperReturnValue(name, invokeApi(name, api, options, ...params))
+ }
+ return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {
+ invokeApi(name, api, Object.assign({}, options, {
+ success: resolve,
+ fail: reject
+ }), ...params);
+ /* eslint-disable no-extend-native */
+ if (!Promise.prototype.finally) {
+ Promise.prototype.finally = function (callback) {
+ const promise = this.constructor;
+ return this.then(
+ value => promise.resolve(callback()).then(() => value),
+ reason => promise.resolve(callback()).then(() => {
+ throw reason
+ })
+ )
+ };
+ }
+ })))
+ }
+}
+
+const canIUse$1 = [{
+ name: 'schema',
+ type: String,
+ required: true
+}];
+
+var require_context_module_2_0 = /*#__PURE__*/Object.freeze({
+ canIUse: canIUse$1
+});
+
+const base64ToArrayBuffer$1 = [{
+ name: 'base64',
+ type: String,
+ required: true
+}];
+
+const arrayBufferToBase64$1 = [{
+ name: 'arrayBuffer',
+ type: [ArrayBuffer, Uint8Array],
+ required: true
+}];
+
+var require_context_module_2_1 = /*#__PURE__*/Object.freeze({
+ base64ToArrayBuffer: base64ToArrayBuffer$1,
+ arrayBufferToBase64: arrayBufferToBase64$1
+});
+
+function getInt (method) {
+ return function (value, params) {
+ if (value) {
+ params[method] = Math.round(value);
+ }
+ }
+}
+
+const canvasGetImageData = {
+ canvasId: {
+ type: String,
+ required: true
+ },
+ x: {
+ type: Number,
+ required: true,
+ validator: getInt('x')
+ },
+ y: {
+ type: Number,
+ required: true,
+ validator: getInt('y')
+ },
+ width: {
+ type: Number,
+ required: true,
+ validator: getInt('width')
+ },
+ height: {
+ type: Number,
+ required: true,
+ validator: getInt('height')
+ }
+};
+
+const canvasPutImageData = {
+ canvasId: {
+ type: String,
+ required: true
+ },
+ data: {
+ type: Uint8ClampedArray,
+ required: true
+ },
+ x: {
+ type: Number,
+ required: true,
+ validator: getInt('x')
+ },
+ y: {
+ type: Number,
+ required: true,
+ validator: getInt('y')
+ },
+ width: {
+ type: Number,
+ required: true,
+ validator: getInt('width')
+ },
+ height: {
+ type: Number,
+ validator: getInt('height')
+ }
+};
+
+const fileType = {
+ PNG: 'png',
+ JPG: 'jpeg'
+};
+
+const canvasToTempFilePath = {
+ x: {
+ type: Number,
+ default: 0,
+ validator: getInt('x')
+ },
+ y: {
+ type: Number,
+ default: 0,
+ validator: getInt('y')
+ },
+ width: {
+ type: Number,
validator: getInt('width')
},
height: {
@@ -472,7 +1106,7 @@ const drawCanvas = {
}
};
-var require_context_module_1_2 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_2 = /*#__PURE__*/Object.freeze({
canvasGetImageData: canvasGetImageData,
canvasPutImageData: canvasPutImageData,
canvasToTempFilePath: canvasToTempFilePath,
@@ -497,7 +1131,7 @@ const createCanvasContext = [{
type: Object
}];
-var require_context_module_1_3 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_3 = /*#__PURE__*/Object.freeze({
createAudioContext: createAudioContext,
createVideoContext: createVideoContext,
createMapContext: createMapContext,
@@ -516,7 +1150,7 @@ const makePhoneCall = {
}
};
-var require_context_module_1_4 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_4 = /*#__PURE__*/Object.freeze({
makePhoneCall: makePhoneCall
});
@@ -530,7 +1164,7 @@ const openDocument = {
}
};
-var require_context_module_1_5 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_5 = /*#__PURE__*/Object.freeze({
openDocument: openDocument
});
@@ -577,7 +1211,7 @@ const openLocation = {
}
};
-var require_context_module_1_6 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_6 = /*#__PURE__*/Object.freeze({
getLocation: getLocation,
openLocation: openLocation
});
@@ -635,7 +1269,7 @@ const chooseImage = {
}
};
-var require_context_module_1_7 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_7 = /*#__PURE__*/Object.freeze({
chooseImage: chooseImage
});
@@ -662,7 +1296,7 @@ const chooseVideo = {
}
};
-var require_context_module_1_8 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_8 = /*#__PURE__*/Object.freeze({
chooseVideo: chooseVideo
});
@@ -737,7 +1371,7 @@ const getImageInfo = {
}
};
-var require_context_module_1_9 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_9 = /*#__PURE__*/Object.freeze({
getImageInfo: getImageInfo
});
@@ -772,7 +1406,7 @@ const previewImage = {
}
};
-var require_context_module_1_10 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_10 = /*#__PURE__*/Object.freeze({
previewImage: previewImage
});
@@ -814,7 +1448,7 @@ const setNavigationBarTitle = {
}
};
-var require_context_module_1_11 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_11 = /*#__PURE__*/Object.freeze({
setNavigationBarColor: setNavigationBarColor,
setNavigationBarTitle: setNavigationBarTitle
});
@@ -832,7 +1466,7 @@ const downloadFile = {
}
};
-var require_context_module_1_12 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_12 = /*#__PURE__*/Object.freeze({
downloadFile: downloadFile
});
@@ -892,7 +1526,7 @@ const request = {
}
};
-var require_context_module_1_13 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_13 = /*#__PURE__*/Object.freeze({
request: request
});
@@ -945,7 +1579,7 @@ const closeSocket = {
}
};
-var require_context_module_1_14 = /*#__PURE__*/Object.freeze({
+var require_context_module_2_14 = /*#__PURE__*/Object.freeze({
connectSocket: connectSocket,
sendSocketMessage: sendSocketMessage,
closeSocket: closeSocket
@@ -967,1228 +1601,914 @@ const uploadFile = {
type: String,
required: true
},
- header: {
- type: Object,
- validator (value, params) {
- params.header = value || {};
- }
- },
- formData: {
- type: Object,
- validator (value, params) {
- params.formData = value || {};
- }
- }
-};
-
-var require_context_module_1_15 = /*#__PURE__*/Object.freeze({
- uploadFile: uploadFile
-});
-
-const pageScrollTo = {
- scrollTop: {
- type: Number,
- required: true
- },
- duration: {
- type: Number,
- default: 300,
- validator (duration, params) {
- params.duration = Math.max(0, duration);
- }
- }
-};
-
-var require_context_module_1_16 = /*#__PURE__*/Object.freeze({
- pageScrollTo: pageScrollTo
-});
-
-const service = {
- OAUTH: 'OAUTH',
- SHARE: 'SHARE',
- PAYMENT: 'PAYMENT',
- PUSH: 'PUSH'
-};
-
-const getProvider = {
- service: {
- type: String,
- required: true,
- validator (value, params) {
- value = (value || '').toUpperCase();
- if (value && Object.values(service).indexOf(value) < 0) {
- return 'service error'
- }
- }
- }
-};
-
-var require_context_module_1_17 = /*#__PURE__*/Object.freeze({
- getProvider: getProvider
-});
-
-const showModal = {
- title: {
- type: String,
- default: ''
- },
- content: {
- type: String,
- default: ''
- },
- showCancel: {
- type: Boolean,
- default: true
- },
- cancelText: {
- type: String,
- default: '取消'
- },
- cancelColor: {
- type: String,
- default: '#000000'
- },
- confirmText: {
- type: String,
- default: '确定'
- },
- confirmColor: {
- type: String,
- default: '#007aff'
- },
- visible: {
- type: Boolean,
- default: true
- }
-};
-
-const showToast = {
- title: {
- type: String,
- default: ''
- },
- icon: {
- default: 'success',
- validator (icon, params) {
- if (['success', 'loading', 'none'].indexOf(icon) === -1) {
- params.icon = 'success';
- }
- }
- },
- image: {
- type: String,
- default: '',
- validator (image, params) {
- if (image) {
- params.image = getRealPath(image);
- }
- }
- },
- duration: {
- type: Number,
- default: 1500
- },
- mask: {
- type: Boolean,
- default: false
- },
- visible: {
- type: Boolean,
- default: true
- }
-};
-const showLoading = {
- title: {
- type: String,
- default: ''
- },
- icon: {
- type: String,
- default: 'loading'
- },
- duration: {
- type: Number,
- default: 100000000 // 简单处理 showLoading,直接设置个大值
- },
- mask: {
- type: Boolean,
- default: false
- },
- visible: {
- type: Boolean,
- default: true
- }
-};
-
-const showActionSheet = {
- itemList: {
- type: Array,
- required: true,
- validator (itemList, params) {
- if (!itemList.length) {
- return 'parameter.itemList should have at least 1 item'
- }
- }
- },
- itemColor: {
- type: String,
- default: '#000000'
- },
- visible: {
- type: Boolean,
- default: true
- }
-};
-
-var require_context_module_1_18 = /*#__PURE__*/Object.freeze({
- showModal: showModal,
- showToast: showToast,
- showLoading: showLoading,
- showActionSheet: showActionSheet
-});
-
-function encodeQueryString (url) {
- if (typeof url !== 'string') {
- return url
- }
- const index = url.indexOf('?');
-
- if (index === -1) {
- return url
- }
-
- const query = url.substr(index + 1).trim().replace(/^(\?|#|&)/, '');
-
- if (!query) {
- return url
- }
-
- url = url.substr(0, index);
-
- const params = [];
-
- query.split('&').forEach(param => {
- const parts = param.replace(/\+/g, ' ').split('=');
- const key = parts.shift();
- const val = parts.length > 0
- ? parts.join('=')
- : '';
-
- params.push(key + '=' + encodeURIComponent(val));
- });
-
- return params.length ? url + '?' + params.join('&') : url
-}
-
-function createValidator (type) {
- return function validator (url, params) {
- // 格式化为绝对路径路由
- url = getRealRoute(url);
-
- const pagePath = url.split('?')[0];
- // 匹配路由是否存在
- const routeOptions = __uniRoutes.find(({
- path,
- alias
- }) => path === pagePath || alias === pagePath);
-
- if (!routeOptions) {
- return 'page `' + url + '` is not found'
- }
-
- // 检测不同类型跳转
- if (type === 'navigateTo' || type === 'redirectTo') {
- if (routeOptions.meta.isTabBar) {
- return `can not ${type} a tabbar page`
- }
- } else if (type === 'switchTab') {
- if (!routeOptions.meta.isTabBar) {
- return 'can not switch to no-tabBar page'
- }
- }
-
- // tabBar不允许传递参数
- if (routeOptions.meta.isTabBar) {
- url = pagePath;
- }
-
- // 首页自动格式化为`/`
- if (routeOptions.meta.isEntry) {
- url = url.replace(routeOptions.alias, '/');
- }
-
- // 参数格式化
- params.url = encodeQueryString(url);
- }
-}
-
-function createProtocol (type, extras = {}) {
- return Object.assign({
- url: {
- type: String,
- required: true,
- validator: createValidator(type)
- }
- }, extras)
-}
-
-function createAnimationProtocol (animationTypes) {
- return {
- animationType: {
- type: String,
- validator (type) {
- if (type && animationTypes.indexOf(type) === -1) {
- return '`' + type + '` is not supported for `animationType` (supported values are: `' + animationTypes.join(
- '`|`') + '`)'
- }
- }
- },
- animationDuration: {
- type: Number
- }
- }
-}
-
-const redirectTo = createProtocol('redirectTo');
-
-const reLaunch = createProtocol('reLaunch');
-
-const navigateTo = createProtocol('navigateTo', createAnimationProtocol(
- [
- 'slide-in-right',
- 'slide-in-left',
- 'slide-in-top',
- 'slide-in-bottom',
- 'fade-in',
- 'zoom-out',
- 'zoom-fade-out',
- 'pop-in',
- 'none'
- ]
-));
-
-const switchTab = createProtocol('switchTab');
-
-const navigateBack = Object.assign({
- delta: {
- type: Number,
- validator (delta, params) {
- delta = parseInt(delta) || 1;
- params.delta = Math.min(getCurrentPages().length - 1, delta);
- }
- }
-}, createAnimationProtocol(
- [
- 'slide-out-right',
- 'slide-out-left',
- 'slide-out-top',
- 'slide-out-bottom',
- 'fade-out',
- 'zoom-in',
- 'zoom-fade-in',
- 'pop-out',
- 'none'
- ]
-));
-
-var require_context_module_1_19 = /*#__PURE__*/Object.freeze({
- redirectTo: redirectTo,
- reLaunch: reLaunch,
- navigateTo: navigateTo,
- switchTab: switchTab,
- navigateBack: navigateBack
-});
-
-const setStorage = {
- 'key': {
- type: String,
- required: true
- },
- 'data': {
- required: true
- }
-};
-
-const setStorageSync = [{
- name: 'key',
- type: String,
- required: true
-}, {
- name: 'data',
- required: true
-}];
-
-var require_context_module_1_20 = /*#__PURE__*/Object.freeze({
- setStorage: setStorage,
- setStorageSync: setStorageSync
-});
-
-const indexValidator = {
- type: Number,
- required: true
-};
-
-const setTabBarItem = {
- index: indexValidator,
- text: {
- type: String
- },
- iconPath: {
- type: String
- },
- selectedIconPath: {
- type: String
- }
-};
-
-const setTabBarStyle = {
- color: {
- type: String
- },
- selectedColor: {
- type: String
- },
- backgroundColor: {
- type: String
- },
- borderStyle: {
- type: String,
- validator (borderStyle, params) {
- if (borderStyle) {
- params.borderStyle = borderStyle === 'black' ? 'black' : 'white';
- }
- }
- }
-};
-
-const hideTabBar = {
- animation: {
- type: Boolean,
- default: false
- }
-};
-
-const showTabBar = {
- animation: {
- type: Boolean,
- default: false
- }
-};
-
-const hideTabBarRedDot = {
- index: indexValidator
-};
-
-const showTabBarRedDot = {
- index: indexValidator
-};
-
-const removeTabBarBadge = {
- index: indexValidator
-};
-
-const setTabBarBadge = {
- index: indexValidator,
- text: {
- type: String,
- required: true,
- validator (text, params) {
- if (getLen(text) >= 4) {
- params.text = '...';
- }
- }
- }
-};
-
-var require_context_module_1_21 = /*#__PURE__*/Object.freeze({
- setTabBarItem: setTabBarItem,
- setTabBarStyle: setTabBarStyle,
- hideTabBar: hideTabBar,
- showTabBar: showTabBar,
- hideTabBarRedDot: hideTabBarRedDot,
- showTabBarRedDot: showTabBarRedDot,
- removeTabBarBadge: removeTabBarBadge,
- setTabBarBadge: setTabBarBadge
-});
-
-const protocol = Object.create(null);
-const modules =
- (function() {
- var map = {
- './base.js': require_context_module_1_0,
-'./base64.js': require_context_module_1_1,
-'./canvas.js': require_context_module_1_2,
-'./context.js': require_context_module_1_3,
-'./device/make-phone-call.js': require_context_module_1_4,
-'./file/open-document.js': require_context_module_1_5,
-'./location.js': require_context_module_1_6,
-'./media/choose-image.js': require_context_module_1_7,
-'./media/choose-video.js': require_context_module_1_8,
-'./media/get-image-info.js': require_context_module_1_9,
-'./media/preview-image.js': require_context_module_1_10,
-'./navigation-bar.js': require_context_module_1_11,
-'./network/download-file.js': require_context_module_1_12,
-'./network/request.js': require_context_module_1_13,
-'./network/socket.js': require_context_module_1_14,
-'./network/upload-file.js': require_context_module_1_15,
-'./page-scroll-to.js': require_context_module_1_16,
-'./plugins.js': require_context_module_1_17,
-'./popup.js': require_context_module_1_18,
-'./route.js': require_context_module_1_19,
-'./storage.js': require_context_module_1_20,
-'./tab-bar.js': require_context_module_1_21,
-
- };
- var req = function req(key) {
- return map[key] || (function() { throw new Error("Cannot find module '" + key + "'.") }());
- };
- req.keys = function() {
- return Object.keys(map);
- };
- return req;
- })();
-
-modules.keys().forEach(function (key) {
- Object.assign(protocol, modules(key));
-});
-
-function validateParam (key, paramTypes, paramsData) {
- const paramOptions = paramTypes[key];
- const absent = !hasOwn(paramsData, key);
- let value = paramsData[key];
-
- const booleanIndex = getTypeIndex(Boolean, paramOptions.type);
- if (booleanIndex > -1) {
- if (absent && !hasOwn(paramOptions, 'default')) {
- value = false;
- }
- }
- if (value === undefined) {
- if (hasOwn(paramOptions, 'default')) {
- const paramDefault = paramOptions['default'];
- value = isFn(paramDefault) ? paramDefault() : paramDefault;
- paramsData[key] = value; // 默认值
- }
- }
-
- return assertParam(paramOptions, key, value, absent, paramsData)
-}
-
-function assertParam (
- paramOptions,
- name,
- value,
- absent,
- paramsData
-) {
- if (paramOptions.required && absent) {
- return `Missing required parameter \`${name}\``
- }
-
- if (value == null && !paramOptions.required) {
- const validator = paramOptions.validator;
- if (validator) {
- return validator(value, paramsData)
- }
- return
- }
- let type = paramOptions.type;
- let valid = !type || type === true;
- const expectedTypes = [];
- if (type) {
- if (!Array.isArray(type)) {
- type = [type];
- }
- for (let i = 0; i < type.length && !valid; i++) {
- const assertedType = assertType(value, type[i]);
- expectedTypes.push(assertedType.expectedType || '');
- valid = assertedType.valid;
- }
- }
-
- if (!valid) {
- return getInvalidTypeMessage(name, value, expectedTypes)
- }
-
- const validator = paramOptions.validator;
- if (validator) {
- return validator(value, paramsData)
- }
-}
-
-const simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
-
-function assertType (value, type) {
- let valid;
- const expectedType = getType(type);
- if (simpleCheckRE.test(expectedType)) {
- const t = typeof value;
- valid = t === expectedType.toLowerCase();
- if (!valid && t === 'object') {
- valid = value instanceof type;
- }
- } else if (expectedType === 'Object') {
- valid = isPlainObject(value);
- } else if (expectedType === 'Array') {
- valid = Array.isArray(value);
- } else {
- valid = value instanceof type;
- }
- return {
- valid,
- expectedType
- }
-}
-
-function getType (fn) {
- const match = fn && fn.toString().match(/^\s*function (\w+)/);
- return match ? match[1] : ''
-}
-
-function isSameType (a, b) {
- return getType(a) === getType(b)
-}
-
-function getTypeIndex (type, expectedTypes) {
- if (!Array.isArray(expectedTypes)) {
- return isSameType(expectedTypes, type) ? 0 : -1
- }
- for (let i = 0, len = expectedTypes.length; i < len; i++) {
- if (isSameType(expectedTypes[i], type)) {
- return i
+ header: {
+ type: Object,
+ validator (value, params) {
+ params.header = value || {};
+ }
+ },
+ formData: {
+ type: Object,
+ validator (value, params) {
+ params.formData = value || {};
+ }
+ }
+};
+
+var require_context_module_2_15 = /*#__PURE__*/Object.freeze({
+ uploadFile: uploadFile
+});
+
+const pageScrollTo$1 = {
+ scrollTop: {
+ type: Number,
+ required: true
+ },
+ duration: {
+ type: Number,
+ default: 300,
+ validator (duration, params) {
+ params.duration = Math.max(0, duration);
}
}
- return -1
-}
-
-function getInvalidTypeMessage (name, value, expectedTypes) {
- let message = `parameter \`${name}\`.` +
- ` Expected ${expectedTypes.join(', ')}`;
- const expectedType = expectedTypes[0];
- const receivedType = toRawType(value);
- const expectedValue = styleValue(value, expectedType);
- const receivedValue = styleValue(value, receivedType);
- if (expectedTypes.length === 1 &&
- isExplicable(expectedType) &&
- !isBoolean(expectedType, receivedType)) {
- message += ` with value ${expectedValue}`;
- }
- message += `, got ${receivedType} `;
- if (isExplicable(receivedType)) {
- message += `with value ${receivedValue}.`;
- }
- return message
-}
-
-function styleValue (value, type) {
- if (type === 'String') {
- return `"${value}"`
- } else if (type === 'Number') {
- return `${Number(value)}`
- } else {
- return `${value}`
- }
-}
-
-const explicitTypes = ['string', 'number', 'boolean'];
-
-function isExplicable (value) {
- return explicitTypes.some(elem => value.toLowerCase() === elem)
-}
-
-function isBoolean (...args) {
- return args.some(elem => elem.toLowerCase() === 'boolean')
-}
+};
-function invokeCallbackHandlerFail (err, apiName, callbackId) {
- const errMsg = `${apiName}:fail ${err}`;
- console.error(errMsg);
- if (callbackId === -1) {
- throw new Error(errMsg)
- }
- if (typeof callbackId === 'number') {
- invokeCallbackHandler(callbackId, {
- errMsg
- });
+var require_context_module_2_16 = /*#__PURE__*/Object.freeze({
+ pageScrollTo: pageScrollTo$1
+});
+
+const service = {
+ OAUTH: 'OAUTH',
+ SHARE: 'SHARE',
+ PAYMENT: 'PAYMENT',
+ PUSH: 'PUSH'
+};
+
+const getProvider = {
+ service: {
+ type: String,
+ required: true,
+ validator (value, params) {
+ value = (value || '').toUpperCase();
+ if (value && Object.values(service).indexOf(value) < 0) {
+ return 'service error'
+ }
+ }
+ }
+};
+
+var require_context_module_2_17 = /*#__PURE__*/Object.freeze({
+ getProvider: getProvider
+});
+
+const showModal = {
+ title: {
+ type: String,
+ default: ''
+ },
+ content: {
+ type: String,
+ default: ''
+ },
+ showCancel: {
+ type: Boolean,
+ default: true
+ },
+ cancelText: {
+ type: String,
+ default: '取消'
+ },
+ cancelColor: {
+ type: String,
+ default: '#000000'
+ },
+ confirmText: {
+ type: String,
+ default: '确定'
+ },
+ confirmColor: {
+ type: String,
+ default: '#007aff'
+ },
+ visible: {
+ type: Boolean,
+ default: true
}
- return false
-}
-
-const callbackApiParamTypes = [{
- name: 'callback',
- type: Function,
- required: true
-}];
+};
-function validateParams (apiName, paramsData, callbackId) {
- let paramTypes = protocol[apiName];
- if (!paramTypes && isCallbackApi(apiName)) {
- paramTypes = callbackApiParamTypes;
- }
- if (paramTypes) {
- if (Array.isArray(paramTypes) && Array.isArray(paramsData)) {
- const paramTypeObj = Object.create(null);
- const paramsDataObj = Object.create(null);
- const paramsDataLength = paramsData.length;
- paramTypes.forEach((paramType, index) => {
- paramTypeObj[paramType.name] = paramType;
- if (paramsDataLength > index) {
- paramsDataObj[paramType.name] = paramsData[index];
- }
- });
- paramTypes = paramTypeObj;
- paramsData = paramsDataObj;
+const showToast = {
+ title: {
+ type: String,
+ default: ''
+ },
+ icon: {
+ default: 'success',
+ validator (icon, params) {
+ if (['success', 'loading', 'none'].indexOf(icon) === -1) {
+ params.icon = 'success';
+ }
}
-
- if (isFn(paramTypes.beforeValidate)) {
- const err = paramTypes.beforeValidate(paramsData);
- if (err) {
- return invokeCallbackHandlerFail(err, apiName, callbackId)
+ },
+ image: {
+ type: String,
+ default: '',
+ validator (image, params) {
+ if (image) {
+ params.image = getRealPath(image);
}
}
+ },
+ duration: {
+ type: Number,
+ default: 1500
+ },
+ mask: {
+ type: Boolean,
+ default: false
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ }
+};
+const showLoading = {
+ title: {
+ type: String,
+ default: ''
+ },
+ icon: {
+ type: String,
+ default: 'loading'
+ },
+ duration: {
+ type: Number,
+ default: 100000000 // 简单处理 showLoading,直接设置个大值
+ },
+ mask: {
+ type: Boolean,
+ default: false
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ }
+};
- const keys = Object.keys(paramTypes);
- for (let i = 0; i < keys.length; i++) {
- if (keys[i] === 'beforeValidate') {
- continue
- }
- const err = validateParam(keys[i], paramTypes, paramsData);
- if (err) {
- return invokeCallbackHandlerFail(err, apiName, callbackId)
+const showActionSheet = {
+ itemList: {
+ type: Array,
+ required: true,
+ validator (itemList, params) {
+ if (!itemList.length) {
+ return 'parameter.itemList should have at least 1 item'
}
}
+ },
+ itemColor: {
+ type: String,
+ default: '#000000'
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ }
+};
+
+var require_context_module_2_18 = /*#__PURE__*/Object.freeze({
+ showModal: showModal,
+ showToast: showToast,
+ showLoading: showLoading,
+ showActionSheet: showActionSheet
+});
+
+function encodeQueryString (url) {
+ if (typeof url !== 'string') {
+ return url
}
- return true
-}
+ const index = url.indexOf('?');
-let invokeCallbackId = 1;
+ if (index === -1) {
+ return url
+ }
-const invokeCallbacks = {};
+ const query = url.substr(index + 1).trim().replace(/^(\?|#|&)/, '');
-function createKeepAliveApiCallback (apiName, callback) {
- const callbackId = invokeCallbackId++;
- const invokeCallbackName = 'api.' + apiName + '.' + callbackId;
+ if (!query) {
+ return url
+ }
- const invokeCallback = function (res) {
- callback(res);
- };
+ url = url.substr(0, index);
- invokeCallbacks[callbackId] = {
- name: invokeCallbackName,
- keepAlive: true,
- callback: invokeCallback
- };
- return callbackId
-}
+ const params = [];
-function createApiCallback (apiName, params = {}, extras = {}) {
- if (!isPlainObject(params)) {
- return {
- params
- }
- }
- params = Object.assign({}, params);
+ query.split('&').forEach(param => {
+ const parts = param.replace(/\+/g, ' ').split('=');
+ const key = parts.shift();
+ const val = parts.length > 0
+ ? parts.join('=')
+ : '';
- const apiCallbacks = {};
- for (let name in params) {
- const param = params[name];
- if (isFn(param)) {
- apiCallbacks[name] = tryCatch(param);
- delete params[name];
- }
- }
+ params.push(key + '=' + encodeURIComponent(val));
+ });
- const {
- success,
- fail,
- cancel,
- complete
- } = apiCallbacks;
+ return params.length ? url + '?' + params.join('&') : url
+}
- const hasSuccess = isFn(success);
- const hasFail = isFn(fail);
- const hasCancel = isFn(cancel);
- const hasComplete = isFn(complete);
+function createValidator (type) {
+ return function validator (url, params) {
+ // 格式化为绝对路径路由
+ url = getRealRoute(url);
- if (!hasSuccess && !hasFail && !hasCancel && !hasComplete) { // 无回调
- return {
- params
+ const pagePath = url.split('?')[0];
+ // 匹配路由是否存在
+ const routeOptions = __uniRoutes.find(({
+ path,
+ alias
+ }) => path === pagePath || alias === pagePath);
+
+ if (!routeOptions) {
+ return 'page `' + url + '` is not found'
}
- }
- const wrapperCallbacks = {};
- for (let name in extras) {
- const extra = extras[name];
- if (isFn(extra)) {
- wrapperCallbacks[name] = tryCatchFramework(extra);
- delete extras[name];
+ // 检测不同类型跳转
+ if (type === 'navigateTo' || type === 'redirectTo') {
+ if (routeOptions.meta.isTabBar) {
+ return `can not ${type} a tabbar page`
+ }
+ } else if (type === 'switchTab') {
+ if (!routeOptions.meta.isTabBar) {
+ return 'can not switch to no-tabBar page'
+ }
}
- }
- const {
- beforeSuccess,
- afterSuccess,
- beforeFail,
- afterFail,
- beforeCancel,
- afterCancel,
- afterAll
- } = wrapperCallbacks;
+ // tabBar不允许传递参数
+ if (routeOptions.meta.isTabBar) {
+ url = pagePath;
+ }
- const callbackId = invokeCallbackId++;
- const invokeCallbackName = 'api.' + apiName + '.' + callbackId;
+ // 首页自动格式化为`/`
+ if (routeOptions.meta.isEntry) {
+ url = url.replace(routeOptions.alias, '/');
+ }
- const invokeCallback = function (res) {
- res.errMsg = res.errMsg || apiName + ':ok';
+ // 参数格式化
+ params.url = encodeQueryString(url);
+ }
+}
- const errMsg = res.errMsg;
+function createProtocol (type, extras = {}) {
+ return Object.assign({
+ url: {
+ type: String,
+ required: true,
+ validator: createValidator(type)
+ }
+ }, extras)
+}
- if (errMsg.indexOf(apiName + ':ok') === 0) {
- isFn(beforeSuccess) && beforeSuccess(res);
+function createAnimationProtocol (animationTypes) {
+ return {
+ animationType: {
+ type: String,
+ validator (type) {
+ if (type && animationTypes.indexOf(type) === -1) {
+ return '`' + type + '` is not supported for `animationType` (supported values are: `' + animationTypes.join(
+ '`|`') + '`)'
+ }
+ }
+ },
+ animationDuration: {
+ type: Number
+ }
+ }
+}
- hasSuccess && success(res);
+const redirectTo$1 = createProtocol('redirectTo');
- isFn(afterSuccess) && afterSuccess(res);
- } else if (errMsg.indexOf(apiName + ':cancel') === 0) {
- res.errMsg = res.errMsg.replace(apiName + ':cancel', apiName + ':fail cancel');
+const reLaunch$1 = createProtocol('reLaunch');
- hasFail && fail(res);
+const navigateTo$1 = createProtocol('navigateTo', createAnimationProtocol(
+ [
+ 'slide-in-right',
+ 'slide-in-left',
+ 'slide-in-top',
+ 'slide-in-bottom',
+ 'fade-in',
+ 'zoom-out',
+ 'zoom-fade-out',
+ 'pop-in',
+ 'none'
+ ]
+));
- isFn(beforeCancel) && beforeCancel(res);
+const switchTab$1 = createProtocol('switchTab');
- hasCancel && cancel(res);
+const navigateBack$1 = Object.assign({
+ delta: {
+ type: Number,
+ validator (delta, params) {
+ delta = parseInt(delta) || 1;
+ params.delta = Math.min(getCurrentPages().length - 1, delta);
+ }
+ }
+}, createAnimationProtocol(
+ [
+ 'slide-out-right',
+ 'slide-out-left',
+ 'slide-out-top',
+ 'slide-out-bottom',
+ 'fade-out',
+ 'zoom-in',
+ 'zoom-fade-in',
+ 'pop-out',
+ 'none'
+ ]
+));
+
+var require_context_module_2_19 = /*#__PURE__*/Object.freeze({
+ redirectTo: redirectTo$1,
+ reLaunch: reLaunch$1,
+ navigateTo: navigateTo$1,
+ switchTab: switchTab$1,
+ navigateBack: navigateBack$1
+});
+
+const setStorage$1 = {
+ 'key': {
+ type: String,
+ required: true
+ },
+ 'data': {
+ required: true
+ }
+};
- isFn(afterCancel) && afterCancel(res);
- } else if (errMsg.indexOf(apiName + ':fail') === 0) {
- isFn(beforeFail) && beforeFail(res);
+const setStorageSync$1 = [{
+ name: 'key',
+ type: String,
+ required: true
+}, {
+ name: 'data',
+ required: true
+}];
+
+var require_context_module_2_20 = /*#__PURE__*/Object.freeze({
+ setStorage: setStorage$1,
+ setStorageSync: setStorageSync$1
+});
+
+const indexValidator = {
+ type: Number,
+ required: true
+};
- hasFail && fail(res);
+const setTabBarItem = {
+ index: indexValidator,
+ text: {
+ type: String
+ },
+ iconPath: {
+ type: String
+ },
+ selectedIconPath: {
+ type: String
+ }
+};
- isFn(afterFail) && afterFail(res);
+const setTabBarStyle = {
+ color: {
+ type: String
+ },
+ selectedColor: {
+ type: String
+ },
+ backgroundColor: {
+ type: String
+ },
+ borderStyle: {
+ type: String,
+ validator (borderStyle, params) {
+ if (borderStyle) {
+ params.borderStyle = borderStyle === 'black' ? 'black' : 'white';
+ }
}
+ }
+};
+
+const hideTabBar = {
+ animation: {
+ type: Boolean,
+ default: false
+ }
+};
+
+const showTabBar = {
+ animation: {
+ type: Boolean,
+ default: false
+ }
+};
- hasComplete && complete(res);
+const hideTabBarRedDot = {
+ index: indexValidator
+};
- isFn(afterAll) && afterAll(res);
- };
+const showTabBarRedDot = {
+ index: indexValidator
+};
- invokeCallbacks[callbackId] = {
- name: invokeCallbackName,
- callback: invokeCallback
- };
+const removeTabBarBadge = {
+ index: indexValidator
+};
- return {
- params,
- callbackId
+const setTabBarBadge = {
+ index: indexValidator,
+ text: {
+ type: String,
+ required: true,
+ validator (text, params) {
+ if (getLen(text) >= 4) {
+ params.text = '...';
+ }
+ }
}
-}
+};
+
+var require_context_module_2_21 = /*#__PURE__*/Object.freeze({
+ setTabBarItem: setTabBarItem,
+ setTabBarStyle: setTabBarStyle,
+ hideTabBar: hideTabBar,
+ showTabBar: showTabBar,
+ hideTabBarRedDot: hideTabBarRedDot,
+ showTabBarRedDot: showTabBarRedDot,
+ removeTabBarBadge: removeTabBarBadge,
+ setTabBarBadge: setTabBarBadge
+});
+
+const protocol = Object.create(null);
+const modules =
+ (function() {
+ var map = {
+ './base.js': require_context_module_2_0,
+'./base64.js': require_context_module_2_1,
+'./canvas.js': require_context_module_2_2,
+'./context.js': require_context_module_2_3,
+'./device/make-phone-call.js': require_context_module_2_4,
+'./file/open-document.js': require_context_module_2_5,
+'./location.js': require_context_module_2_6,
+'./media/choose-image.js': require_context_module_2_7,
+'./media/choose-video.js': require_context_module_2_8,
+'./media/get-image-info.js': require_context_module_2_9,
+'./media/preview-image.js': require_context_module_2_10,
+'./navigation-bar.js': require_context_module_2_11,
+'./network/download-file.js': require_context_module_2_12,
+'./network/request.js': require_context_module_2_13,
+'./network/socket.js': require_context_module_2_14,
+'./network/upload-file.js': require_context_module_2_15,
+'./page-scroll-to.js': require_context_module_2_16,
+'./plugins.js': require_context_module_2_17,
+'./popup.js': require_context_module_2_18,
+'./route.js': require_context_module_2_19,
+'./storage.js': require_context_module_2_20,
+'./tab-bar.js': require_context_module_2_21,
+
+ };
+ var req = function req(key) {
+ return map[key] || (function() { throw new Error("Cannot find module '" + key + "'.") }());
+ };
+ req.keys = function() {
+ return Object.keys(map);
+ };
+ return req;
+ })();
-function createInvokeCallback (apiName, params = {}, extras = {}) {
- const {
- params: args,
- callbackId
- } = createApiCallback(apiName, params, extras);
+modules.keys().forEach(function (key) {
+ Object.assign(protocol, modules(key));
+});
+
+function validateParam (key, paramTypes, paramsData) {
+ const paramOptions = paramTypes[key];
+ const absent = !hasOwn(paramsData, key);
+ let value = paramsData[key];
- if (isPlainObject(args) && !validateParams(apiName, args, callbackId)) {
- return {
- params: args,
- callbackId: false
+ const booleanIndex = getTypeIndex(Boolean, paramOptions.type);
+ if (booleanIndex > -1) {
+ if (absent && !hasOwn(paramOptions, 'default')) {
+ value = false;
}
}
-
- return {
- params: args,
- callbackId
+ if (value === undefined) {
+ if (hasOwn(paramOptions, 'default')) {
+ const paramDefault = paramOptions['default'];
+ value = isFn(paramDefault) ? paramDefault() : paramDefault;
+ paramsData[key] = value; // 默认值
+ }
}
+
+ return assertParam(paramOptions, key, value, absent, paramsData)
}
-function invokeCallbackHandler (invokeCallbackId, res) {
- if (typeof invokeCallbackId === 'number') {
- const invokeCallback = invokeCallbacks[invokeCallbackId];
- if (invokeCallback) {
- if (!invokeCallback.keepAlive) {
- delete invokeCallbacks[invokeCallbackId];
- }
- return invokeCallback.callback(res)
- }
+function assertParam (
+ paramOptions,
+ name,
+ value,
+ absent,
+ paramsData
+) {
+ if (paramOptions.required && absent) {
+ return `Missing required parameter \`${name}\``
}
- return res
-}
-function wrapper (name, invokeMethod, extras) {
- if (!isFn(invokeMethod)) {
- return invokeMethod
+ if (value == null && !paramOptions.required) {
+ const validator = paramOptions.validator;
+ if (validator) {
+ return validator(value, paramsData)
+ }
+ return
}
- return function (...args) {
- if (isSyncApi(name)) {
- if (validateParams(name, args, -1)) {
- return invokeMethod.apply(null, args)
- }
- } else if (isCallbackApi(name)) {
- if (validateParams(name, args, -1)) {
- return invokeMethod(createKeepAliveApiCallback(name, args[0]))
- }
- } else {
- let argsObj = {};
- if (args.length) {
- argsObj = args[0];
- }
- const {
- params,
- callbackId
- } = createInvokeCallback(name, argsObj, extras);
- if (callbackId !== false) {
- let res;
- if (isFn(params)) {
- res = invokeMethod(callbackId);
- } else {
- res = invokeMethod(params, callbackId);
- }
- if (res && !isTaskApi(name)) {
- res = invokeCallbackHandler(callbackId, res);
- if (isPlainObject(res)) {
- res.errMsg = res.errMsg || name + ':ok';
- }
- }
- return res
- }
+ let type = paramOptions.type;
+ let valid = !type || type === true;
+ const expectedTypes = [];
+ if (type) {
+ if (!Array.isArray(type)) {
+ type = [type];
+ }
+ for (let i = 0; i < type.length && !valid; i++) {
+ const assertedType = assertType(value, type[i]);
+ expectedTypes.push(assertedType.expectedType || '');
+ valid = assertedType.valid;
}
}
-}
-
-UniServiceJSBridge.publishHandler = UniServiceJSBridge.emit;
-UniServiceJSBridge.invokeCallbackHandler = invokeCallbackHandler;
-
-function createCommonjsModule(fn, module) {
- return module = { exports: {} }, fn(module, module.exports), module.exports;
-}
-
-var base64Arraybuffer = createCommonjsModule(function (module, exports) {
-/*
- * base64-arraybuffer
- * https://github.com/niklasvh/base64-arraybuffer
- *
- * Copyright (c) 2012 Niklas von Hertzen
- * Licensed under the MIT license.
- */
-(function(){
-
- var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
- // Use a lookup table to find the index.
- var lookup = new Uint8Array(256);
- for (var i = 0; i < chars.length; i++) {
- lookup[chars.charCodeAt(i)] = i;
- }
-
- exports.encode = function(arraybuffer) {
- var bytes = new Uint8Array(arraybuffer),
- i, len = bytes.length, base64 = "";
-
- for (i = 0; i < len; i+=3) {
- base64 += chars[bytes[i] >> 2];
- base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
- base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
- base64 += chars[bytes[i + 2] & 63];
- }
-
- if ((len % 3) === 2) {
- base64 = base64.substring(0, base64.length - 1) + "=";
- } else if (len % 3 === 1) {
- base64 = base64.substring(0, base64.length - 2) + "==";
- }
-
- return base64;
- };
-
- exports.decode = function(base64) {
- var bufferLength = base64.length * 0.75,
- len = base64.length, i, p = 0,
- encoded1, encoded2, encoded3, encoded4;
-
- if (base64[base64.length - 1] === "=") {
- bufferLength--;
- if (base64[base64.length - 2] === "=") {
- bufferLength--;
- }
- }
-
- var arraybuffer = new ArrayBuffer(bufferLength),
- bytes = new Uint8Array(arraybuffer);
-
- for (i = 0; i < len; i+=4) {
- encoded1 = lookup[base64.charCodeAt(i)];
- encoded2 = lookup[base64.charCodeAt(i+1)];
- encoded3 = lookup[base64.charCodeAt(i+2)];
- encoded4 = lookup[base64.charCodeAt(i+3)];
-
- bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
- bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
- bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
- }
-
- return arraybuffer;
- };
-})();
-});
-var base64Arraybuffer_1 = base64Arraybuffer.encode;
-var base64Arraybuffer_2 = base64Arraybuffer.decode;
-
-const base64ToArrayBuffer$1 = base64Arraybuffer_2;
-const arrayBufferToBase64$1 = base64Arraybuffer_1;
-
-var require_context_module_0_0 = /*#__PURE__*/Object.freeze({
- base64ToArrayBuffer: base64ToArrayBuffer$1,
- arrayBufferToBase64: arrayBufferToBase64$1
-});
-
-var platformSchema = {};
-
-// TODO 待处理其他 API 的检测
-function canIUse$1 (schema) {
- if (hasOwn(platformSchema, schema)) {
- return platformSchema[schema]
+ if (!valid) {
+ return getInvalidTypeMessage(name, value, expectedTypes)
+ }
+
+ const validator = paramOptions.validator;
+ if (validator) {
+ return validator(value, paramsData)
}
- return true
-}
-
-var require_context_module_0_1 = /*#__PURE__*/Object.freeze({
- canIUse: canIUse$1
-});
-
-const interceptors = {
- promiseInterceptor
-};
-
-var require_context_module_0_2 = /*#__PURE__*/Object.freeze({
- interceptors: interceptors,
- addInterceptor: addInterceptor,
- removeInterceptor: removeInterceptor
-});
-
-function pageScrollTo$1 (args) {
- const pages = getCurrentPages();
- if (pages.length) {
- UniServiceJSBridge.publishHandler('pageScrollTo', args, pages[pages.length - 1].$page.id);
+}
+
+const simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;
+
+function assertType (value, type) {
+ let valid;
+ const expectedType = getType(type);
+ if (simpleCheckRE.test(expectedType)) {
+ const t = typeof value;
+ valid = t === expectedType.toLowerCase();
+ if (!valid && t === 'object') {
+ valid = value instanceof type;
+ }
+ } else if (expectedType === 'Object') {
+ valid = isPlainObject(value);
+ } else if (expectedType === 'Array') {
+ valid = Array.isArray(value);
+ } else {
+ valid = value instanceof type;
+ }
+ return {
+ valid,
+ expectedType
}
- return {}
}
-let pageId;
+function getType (fn) {
+ const match = fn && fn.toString().match(/^\s*function (\w+)/);
+ return match ? match[1] : ''
+}
-function setPullDownRefreshPageId (pullDownRefreshPageId) {
- pageId = pullDownRefreshPageId;
+function isSameType (a, b) {
+ return getType(a) === getType(b)
}
-function startPullDownRefresh () {
- if (pageId) {
- UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
+function getTypeIndex (type, expectedTypes) {
+ if (!Array.isArray(expectedTypes)) {
+ return isSameType(expectedTypes, type) ? 0 : -1
}
- const pages = getCurrentPages();
- if (pages.length) {
- pageId = pages[pages.length - 1].$page.id;
- UniServiceJSBridge.emit(pageId + '.startPullDownRefresh', {}, pageId);
+ for (let i = 0, len = expectedTypes.length; i < len; i++) {
+ if (isSameType(expectedTypes[i], type)) {
+ return i
+ }
}
- return {}
+ return -1
}
-function stopPullDownRefresh () {
- if (pageId) {
- UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
- pageId = null;
- } else {
- const pages = getCurrentPages();
- if (pages.length) {
- pageId = pages[pages.length - 1].$page.id;
- UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
- }
+function getInvalidTypeMessage (name, value, expectedTypes) {
+ let message = `parameter \`${name}\`.` +
+ ` Expected ${expectedTypes.join(', ')}`;
+ const expectedType = expectedTypes[0];
+ const receivedType = toRawType(value);
+ const expectedValue = styleValue(value, expectedType);
+ const receivedValue = styleValue(value, receivedType);
+ if (expectedTypes.length === 1 &&
+ isExplicable(expectedType) &&
+ !isBoolean(expectedType, receivedType)) {
+ message += ` with value ${expectedValue}`;
}
- return {}
+ message += `, got ${receivedType} `;
+ if (isExplicable(receivedType)) {
+ message += `with value ${receivedValue}.`;
+ }
+ return message
+}
+
+function styleValue (value, type) {
+ if (type === 'String') {
+ return `"${value}"`
+ } else if (type === 'Number') {
+ return `${Number(value)}`
+ } else {
+ return `${value}`
+ }
+}
+
+const explicitTypes = ['string', 'number', 'boolean'];
+
+function isExplicable (value) {
+ return explicitTypes.some(elem => value.toLowerCase() === elem)
+}
+
+function isBoolean (...args) {
+ return args.some(elem => elem.toLowerCase() === 'boolean')
}
-var require_context_module_0_3 = /*#__PURE__*/Object.freeze({
- pageScrollTo: pageScrollTo$1,
- setPullDownRefreshPageId: setPullDownRefreshPageId,
- startPullDownRefresh: startPullDownRefresh,
- stopPullDownRefresh: stopPullDownRefresh
-});
-
-function setStorage$1 ({
- key,
- data
-} = {}) {
- const value = {
- type: typeof data === 'object' ? 'object' : 'string',
- data: data
+function invokeCallbackHandlerFail (err, apiName, callbackId) {
+ const errMsg = `${apiName}:fail ${err}`;
+ console.error(errMsg);
+ if (callbackId === -1) {
+ throw new Error(errMsg)
+ }
+ if (typeof callbackId === 'number') {
+ invokeCallbackHandler(callbackId, {
+ errMsg
+ });
+ }
+ return false
+}
+
+const callbackApiParamTypes = [{
+ name: 'callback',
+ type: Function,
+ required: true
+}];
+
+function validateParams (apiName, paramsData, callbackId) {
+ let paramTypes = protocol[apiName];
+ if (!paramTypes && isCallbackApi(apiName)) {
+ paramTypes = callbackApiParamTypes;
+ }
+ if (paramTypes) {
+ if (Array.isArray(paramTypes) && Array.isArray(paramsData)) {
+ const paramTypeObj = Object.create(null);
+ const paramsDataObj = Object.create(null);
+ const paramsDataLength = paramsData.length;
+ paramTypes.forEach((paramType, index) => {
+ paramTypeObj[paramType.name] = paramType;
+ if (paramsDataLength > index) {
+ paramsDataObj[paramType.name] = paramsData[index];
+ }
+ });
+ paramTypes = paramTypeObj;
+ paramsData = paramsDataObj;
+ }
+
+ if (isFn(paramTypes.beforeValidate)) {
+ const err = paramTypes.beforeValidate(paramsData);
+ if (err) {
+ return invokeCallbackHandlerFail(err, apiName, callbackId)
+ }
+ }
+
+ const keys = Object.keys(paramTypes);
+ for (let i = 0; i < keys.length; i++) {
+ if (keys[i] === 'beforeValidate') {
+ continue
+ }
+ const err = validateParam(keys[i], paramTypes, paramsData);
+ if (err) {
+ return invokeCallbackHandlerFail(err, apiName, callbackId)
+ }
+ }
+ }
+ return true
+}
+
+let invokeCallbackId = 1;
+
+const invokeCallbacks = {};
+
+function createKeepAliveApiCallback (apiName, callback) {
+ const callbackId = invokeCallbackId++;
+ const invokeCallbackName = 'api.' + apiName + '.' + callbackId;
+
+ const invokeCallback = function (res) {
+ callback(res);
};
- localStorage.setItem(key, JSON.stringify(value));
- const keyList = localStorage.getItem('uni-storage-keys');
- if (!keyList) {
- localStorage.setItem('uni-storage-keys', JSON.stringify([key]));
- } else {
- const keys = JSON.parse(keyList);
- if (keys.indexOf(key) < 0) {
- keys.push(key);
- localStorage.setItem('uni-storage-keys', JSON.stringify(keys));
+
+ invokeCallbacks[callbackId] = {
+ name: invokeCallbackName,
+ keepAlive: true,
+ callback: invokeCallback
+ };
+ return callbackId
+}
+
+function createApiCallback (apiName, params = {}, extras = {}) {
+ if (!isPlainObject(params)) {
+ return {
+ params
+ }
+ }
+ params = Object.assign({}, params);
+
+ const apiCallbacks = {};
+ for (let name in params) {
+ const param = params[name];
+ if (isFn(param)) {
+ apiCallbacks[name] = tryCatch(param);
+ delete params[name];
+ }
+ }
+
+ const {
+ success,
+ fail,
+ cancel,
+ complete
+ } = apiCallbacks;
+
+ const hasSuccess = isFn(success);
+ const hasFail = isFn(fail);
+ const hasCancel = isFn(cancel);
+ const hasComplete = isFn(complete);
+
+ if (!hasSuccess && !hasFail && !hasCancel && !hasComplete) { // 无回调
+ return {
+ params
}
}
- return {
- errMsg: 'setStorage:ok'
+
+ const wrapperCallbacks = {};
+ for (let name in extras) {
+ const extra = extras[name];
+ if (isFn(extra)) {
+ wrapperCallbacks[name] = tryCatchFramework(extra);
+ delete extras[name];
+ }
}
-}
-function setStorageSync$1 (key, data) {
- setStorage$1({
- key,
- data
- });
-}
+ const {
+ beforeSuccess,
+ afterSuccess,
+ beforeFail,
+ afterFail,
+ beforeCancel,
+ afterCancel,
+ afterAll
+ } = wrapperCallbacks;
-function getStorage ({
- key
-} = {}) {
- const data = localStorage.getItem(key);
- return data ? {
- data: JSON.parse(data).data,
- errMsg: 'getStorage:ok'
- } : {
- data: '',
- errMsg: 'getStorage:fail'
- }
-}
+ const callbackId = invokeCallbackId++;
+ const invokeCallbackName = 'api.' + apiName + '.' + callbackId;
-function getStorageSync (key) {
- const res = getStorage({
- key
- });
- return res.data
-}
+ const invokeCallback = function (res) {
+ res.errMsg = res.errMsg || apiName + ':ok';
-function removeStorage ({
- key
-} = {}) {
- const keyList = localStorage.getItem('uni-storage-keys');
- if (keyList) {
- const keys = JSON.parse(keyList);
- const index = keys.indexOf(key);
- keys.splice(index, 1);
- localStorage.setItem('uni-storage-keys', JSON.stringify(keys));
- }
- localStorage.removeItem(key);
- return {
- errMsg: 'removeStorage:ok'
- }
-}
+ const errMsg = res.errMsg;
-function removeStorageSync (key) {
- removeStorage({
- key
- });
-}
+ if (errMsg.indexOf(apiName + ':ok') === 0) {
+ isFn(beforeSuccess) && beforeSuccess(res);
+
+ hasSuccess && success(res);
+
+ isFn(afterSuccess) && afterSuccess(res);
+ } else if (errMsg.indexOf(apiName + ':cancel') === 0) {
+ res.errMsg = res.errMsg.replace(apiName + ':cancel', apiName + ':fail cancel');
+
+ hasFail && fail(res);
+
+ isFn(beforeCancel) && beforeCancel(res);
+
+ hasCancel && cancel(res);
+
+ isFn(afterCancel) && afterCancel(res);
+ } else if (errMsg.indexOf(apiName + ':fail') === 0) {
+ isFn(beforeFail) && beforeFail(res);
+
+ hasFail && fail(res);
+
+ isFn(afterFail) && afterFail(res);
+ }
+
+ hasComplete && complete(res);
+
+ isFn(afterAll) && afterAll(res);
+ };
+
+ invokeCallbacks[callbackId] = {
+ name: invokeCallbackName,
+ callback: invokeCallback
+ };
-function clearStorage () {
- localStorage.clear();
return {
- errMsg: 'clearStorage:ok'
+ params,
+ callbackId
}
}
-function clearStorageSync () {
- clearStorage();
-}
+function createInvokeCallback (apiName, params = {}, extras = {}) {
+ const {
+ params: args,
+ callbackId
+ } = createApiCallback(apiName, params, extras);
-function getStorageInfo () { // TODO 暂时先不做大小的转换
- const keyList = localStorage.getItem('uni-storage-keys');
- return keyList ? {
- keys: JSON.parse(keyList),
- currentSize: 0,
- limitSize: 0,
- errMsg: 'getStorageInfo:ok'
- } : {
- keys: '',
- currentSize: 0,
- limitSize: 0,
- errMsg: 'getStorageInfo:fail'
+ if (isPlainObject(args) && !validateParams(apiName, args, callbackId)) {
+ return {
+ params: args,
+ callbackId: false
+ }
+ }
+
+ return {
+ params: args,
+ callbackId
}
}
-function getStorageInfoSync () {
- const res = getStorageInfo();
- delete res.errMsg;
+function invokeCallbackHandler (invokeCallbackId, res) {
+ if (typeof invokeCallbackId === 'number') {
+ const invokeCallback = invokeCallbacks[invokeCallbackId];
+ if (invokeCallback) {
+ if (!invokeCallback.keepAlive) {
+ delete invokeCallbacks[invokeCallbackId];
+ }
+ return invokeCallback.callback(res)
+ }
+ }
return res
-}
-
-var require_context_module_0_4 = /*#__PURE__*/Object.freeze({
- setStorage: setStorage$1,
- setStorageSync: setStorageSync$1,
- getStorage: getStorage,
- getStorageSync: getStorageSync,
- removeStorage: removeStorage,
- removeStorageSync: removeStorageSync,
- clearStorage: clearStorage,
- clearStorageSync: clearStorageSync,
- getStorageInfo: getStorageInfo,
- getStorageInfoSync: getStorageInfoSync
-});
-
-const EPS = 1e-4;
-const BASE_DEVICE_WIDTH = 750;
-let isIOS = false;
-let deviceWidth = 0;
-let deviceDPR = 0;
-
-function checkDeviceWidth () {
- const {
- platform,
- pixelRatio,
- windowWidth
- } = uni.getSystemInfoSync();
-
- deviceWidth = windowWidth;
- deviceDPR = pixelRatio;
- isIOS = platform === 'ios';
}
-function upx2px (number, newDeviceWidth) {
- if (deviceWidth === 0) {
- checkDeviceWidth();
+function wrapperUnimplemented (name) {
+ return function (args) {
+ console.error('API `' + name + '` is not yet implemented');
}
+}
- number = Number(number);
- if (number === 0) {
- return 0
- }
- let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);
- if (result < 0) {
- result = -result;
+function wrapper (name, invokeMethod, extras) {
+ if (!isFn(invokeMethod)) {
+ return invokeMethod
}
- result = Math.floor(result + EPS);
- if (result === 0) {
- if (deviceDPR === 1 || !isIOS) {
- return 1
+ return function (...args) {
+ if (isSyncApi(name)) {
+ if (validateParams(name, args, -1)) {
+ return invokeMethod.apply(null, args)
+ }
+ } else if (isCallbackApi(name)) {
+ if (validateParams(name, args, -1)) {
+ return invokeMethod(createKeepAliveApiCallback(name, args[0]))
+ }
} else {
- return 0.5
+ let argsObj = {};
+ if (args.length) {
+ argsObj = args[0];
+ }
+ const {
+ params,
+ callbackId
+ } = createInvokeCallback(name, argsObj, extras);
+ if (callbackId !== false) {
+ let res;
+ if (isFn(params)) {
+ res = invokeMethod(callbackId);
+ } else {
+ res = invokeMethod(params, callbackId);
+ }
+ if (res && !isTaskApi(name)) {
+ res = invokeCallbackHandler(callbackId, res);
+ if (isPlainObject(res)) {
+ res.errMsg = res.errMsg || name + ':ok';
+ }
+ }
+ return res
+ }
}
}
- return number < 0 ? -result : result
}
-var require_context_module_0_5 = /*#__PURE__*/Object.freeze({
- checkDeviceWidth: checkDeviceWidth,
- upx2px: upx2px
-});
-
const api = Object.create(null);
-const modules$1 =
+
+const uni$1 = Object.create(null);
+
+const baseApis =
(function() {
var map = {
- './base64.js': require_context_module_0_0,
-'./can-i-use.js': require_context_module_0_1,
-'./interceptor.js': require_context_module_0_2,
-'./page-event.js': require_context_module_0_3,
-'./storage.js': require_context_module_0_4,
-'./upx2px.js': require_context_module_0_5,
+ './base64.js': require_context_module_1_0,
+'./can-i-use.js': require_context_module_1_1,
+'./interceptor.js': require_context_module_1_2,
+'./page-event.js': require_context_module_1_3,
+'./storage.js': require_context_module_1_4,
+'./upx2px.js': require_context_module_1_5,
};
var req = function req(key) {
@@ -2200,14 +2520,41 @@ const modules$1 =
return req;
})();
-modules$1.keys().forEach(function (key) {
- Object.assign(api, modules$1(key));
-});
+
+baseApis.keys().forEach(function (key) {
+ Object.assign(api, baseApis(key));
+});
+
+const platformApis =
+ (function() {
+ var map = {
+ './router/navigate-back.js': require_context_module_0_0,
+'./router/navigate-to.js': require_context_module_0_1,
+'./router/re-launch.js': require_context_module_0_2,
+'./router/redirect-to.js': require_context_module_0_3,
+'./router/switch-tab.js': require_context_module_0_4,
+'./router/util.js': require_context_module_0_5,
-const uni$1 = Object.create(null);
+ };
+ var req = function req(key) {
+ return map[key] || (function() { throw new Error("Cannot find module '" + key + "'.") }());
+ };
+ req.keys = function() {
+ return Object.keys(map);
+ };
+ return req;
+ })();
+
+platformApis.keys().forEach(function (key) {
+ Object.assign(api, platformApis(key));
+});
-Object.keys(api).forEach(name => {
- uni$1[name] = promisify(name, wrapper(name, api[name]));
+apis.forEach(name => {
+ if (api[name]) {
+ uni$1[name] = promisify(name, wrapper(name, api[name]));
+ } else {
+ uni$1[name] = wrapperUnimplemented(name);
+ }
});
return uni$1
diff --git a/packages/uni-h5/dist/demo.html b/packages/uni-h5/dist/demo.html
new file mode 100644
index 0000000000000000000000000000000000000000..62b34ba10f75935ebe2cdee404b64b8f0d1d964e
--- /dev/null
+++ b/packages/uni-h5/dist/demo.html
@@ -0,0 +1,10 @@
+
+
index demo
+
+
+
+
+
+
diff --git a/packages/uni-h5/dist/index.umd.js b/packages/uni-h5/dist/index.umd.js
new file mode 100644
index 0000000000000000000000000000000000000000..4c4d0e5fd3ca78c9b5094de8d93904fe17a8e87f
--- /dev/null
+++ b/packages/uni-h5/dist/index.umd.js
@@ -0,0 +1,26152 @@
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory(require("vue-router"), require("vue"));
+ else if(typeof define === 'function' && define.amd)
+ define([, ], factory);
+ else if(typeof exports === 'object')
+ exports["index"] = factory(require("vue-router"), require("vue"));
+ else
+ root["index"] = factory(root["VueRouter"], root["Vue"]);
+})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__6389__, __WEBPACK_EXTERNAL_MODULE__8bbf__) {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = "fae3");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "052f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initOn; });
+/* harmony import */ var _plugins_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a741");
+/* harmony import */ var _api_page_event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9eba");
+
+
+function initOn(on, _ref) {
+ var getApp = _ref.getApp,
+ getCurrentPages = _ref.getCurrentPages;
+
+ function onError(err) {
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_0__[/* callAppHook */ "a"])(getApp(), 'onError', err);
+ }
+
+ function onPageNotFound(page) {
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_0__[/* callAppHook */ "a"])(getApp(), 'onPageNotFound', page);
+ }
+
+ function onPullDownRefresh(args, pageId) {
+ var page = getCurrentPages().find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (page) {
+ Object(_api_page_event__WEBPACK_IMPORTED_MODULE_1__["setPullDownRefreshPageId"])(pageId);
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(page, 'onPullDownRefresh');
+ }
+ }
+
+ function callCurrentPageHook(hook, args) {
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(pages[pages.length - 1], hook, args);
+ }
+ }
+
+ function createCallCurrentPageHook(hook) {
+ return function (args) {
+ callCurrentPageHook(hook, args);
+ };
+ }
+
+ function onAppEnterBackground() {
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_0__[/* callAppHook */ "a"])(getApp(), 'onHide');
+ callCurrentPageHook('onHide');
+ }
+
+ function onAppEnterForeground() {
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_0__[/* callAppHook */ "a"])(getApp(), 'onShow');
+ callCurrentPageHook('onShow');
+ }
+
+ function onWebInvokeAppService(_ref2, pageId) {
+ var name = _ref2.name,
+ arg = _ref2.arg;
+
+ if (name === 'postMessage') {// TODO 小程序后退、组件销毁、分享时通知
+ } else {
+ uni[name](arg);
+ }
+ }
+
+ var routeHooks = {
+ navigateTo: function navigateTo() {
+ callCurrentPageHook('onHide');
+ },
+ navigateBack: function navigateBack() {
+ callCurrentPageHook('onShow');
+ }
+ };
+
+ function onAppRoute(_ref3) {
+ var type = _ref3.type;
+ var routeHook = routeHooks[type];
+ routeHook && routeHook();
+ }
+
+ on('onError', onError);
+ on('onPageNotFound', onPageNotFound);
+
+ if (false) {}
+
+ on('onAppEnterBackground', onAppEnterBackground);
+ on('onAppEnterForeground', onAppEnterForeground);
+ on('onPullDownRefresh', onPullDownRefresh);
+ on('onTabItemTap', createCallCurrentPageHook('onTabItemTap'));
+ on('onNavigationBarButtonTap', createCallCurrentPageHook('onNavigationBarButtonTap'));
+ on('onNavigationBarSearchInputChanged', createCallCurrentPageHook('onNavigationBarSearchInputChanged'));
+ on('onNavigationBarSearchInputConfirmed', createCallCurrentPageHook('onNavigationBarSearchInputConfirmed'));
+ on('onNavigationBarSearchInputClicked', createCallCurrentPageHook('onNavigationBarSearchInputClicked'));
+ on('onWebInvokeAppService', onWebInvokeAppService);
+}
+
+/***/ }),
+
+/***/ "0554":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLocation", function() { return getLocation; });
+/* harmony import */ var _helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ffdc");
+
+/**
+ * wgs84坐标转Gcj02坐标
+ * @param {object} coords
+ * @param {Function} success
+ * @param {Function} error
+ */
+
+function wgs84ToGcj02(coords, success, error) {
+ /**
+ * uniapp 内置key
+ */
+ var key = __uniConfig.qqMapKey;
+ var url = "https://apis.map.qq.com/ws/coord/v1/translate?locations=".concat(coords.latitude, ",").concat(coords.longitude, "&type=1&key=").concat(key, "&output=jsonp");
+ Object(_helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_0__[/* getJSONP */ "a"])(url, {}, function (res) {
+ if ('locations' in res && res.locations.length) {
+ success({
+ longitude: res.locations[0].lng,
+ latitude: res.locations[0].lat
+ });
+ } else {
+ error(res);
+ }
+ }, error);
+}
+/**
+ * 获取定位信息
+ * @param {*} param0
+ * @param {*} callbackId
+ */
+
+
+function getLocation(_ref, callbackId) {
+ var type = _ref.type,
+ altitude = _ref.altitude;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+
+ function callback(coords) {
+ invoke(callbackId, Object.assign(coords, {
+ errMsg: 'getLocation:ok',
+ verticalAccuracy: coords.altitudeAccuracy || 0,
+ // 无专门水平精度,使用位置精度替代
+ horizontalAccuracy: coords.accuracy
+ }));
+ }
+
+ if (navigator.geolocation) {
+ navigator.geolocation.getCurrentPosition(function (position) {
+ var coords = position.coords;
+
+ if (type === 'WGS84') {
+ callback(coords);
+ } else {
+ wgs84ToGcj02(coords, callback, function (err) {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail ' + JSON.stringify(err)
+ });
+ });
+ }
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail'
+ });
+ }, {
+ enableHighAccuracy: altitude,
+ timeout: 1000 * 60 * 5
+ });
+ } else {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail device nonsupport geolocation'
+ });
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "066f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarItem", function() { return setTabBarItem; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarStyle", function() { return setTabBarStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBar", function() { return hideTabBar; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBar", function() { return showTabBar; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBarRedDot", function() { return hideTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBarRedDot", function() { return showTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeTabBarBadge", function() { return removeTabBarBadge; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarBadge", function() { return setTabBarBadge; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+var indexValidator = {
+ type: Number,
+ required: true
+};
+var setTabBarItem = {
+ index: indexValidator,
+ text: {
+ type: String
+ },
+ iconPath: {
+ type: String
+ },
+ selectedIconPath: {
+ type: String
+ }
+};
+var setTabBarStyle = {
+ color: {
+ type: String
+ },
+ selectedColor: {
+ type: String
+ },
+ backgroundColor: {
+ type: String
+ },
+ borderStyle: {
+ type: String,
+ validator: function validator(borderStyle, params) {
+ if (borderStyle) {
+ params.borderStyle = borderStyle === 'black' ? 'black' : 'white';
+ }
+ }
+ }
+};
+var hideTabBar = {
+ animation: {
+ type: Boolean,
+ default: false
+ }
+};
+var showTabBar = {
+ animation: {
+ type: Boolean,
+ default: false
+ }
+};
+var hideTabBarRedDot = {
+ index: indexValidator
+};
+var showTabBarRedDot = {
+ index: indexValidator
+};
+var removeTabBarBadge = {
+ index: indexValidator
+};
+var setTabBarBadge = {
+ index: indexValidator,
+ text: {
+ type: String,
+ required: true,
+ validator: function validator(text, params) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* getLen */ "b"])(text) >= 4) {
+ params.text = '...';
+ }
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "0741":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9a72");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "0784":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXTERNAL MODULE: ./src/core/service/plugins/util.js
+var util = __webpack_require__("a741");
+
+// CONCATENATED MODULE: ./src/core/service/plugins/page/create-page.js
+function createPage(pageVm) {
+ var $route = pageVm.$route;
+ pageVm.route = $route.meta.pagePath;
+ pageVm.__page__ = {
+ id: $route.params.__id__,
+ path: $route.path,
+ route: $route.meta.pagePath,
+ meta: Object.assign({}, $route.meta) // 兼容 mpvue
+
+ };
+ pageVm.$vm = pageVm;
+ pageVm.$root = pageVm;
+ pageVm.$holder = pageVm.$parent.$parent; // 补充 mp 相关属性
+
+ pageVm.$mp = {
+ mpType: 'page',
+ page: pageVm,
+ query: {},
+ // 暂不支持
+ status: ''
+ };
+}
+// CONCATENATED MODULE: ./src/core/service/plugins/page/index.js
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createPageMixin; });
+
+ // 与小程序保持一致,尝试decodeURIComponent一次参数
+
+function getDecodedQuery() {
+ var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ var decodedQuery = {};
+ Object.keys(query).forEach(function (name) {
+ try {
+ decodedQuery[name] = decodeURIComponent(query[name]);
+ } catch (e) {
+ decodedQuery[name] = query[name];
+ }
+ });
+ return decodedQuery;
+}
+
+function createPageMixin() {
+ return {
+ created: function pageCreated() {
+ createPage(this);
+ Object(util["b" /* callPageHook */])(this, 'onLoad', getDecodedQuery(this.$route.query));
+ Object(util["b" /* callPageHook */])(this, 'onShow');
+ }
+ };
+}
+
+/***/ }),
+
+/***/ "08c9":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "0950":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "0998":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4509");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "0a32":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_system_header_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("17ac");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_system_header_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_system_header_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_system_header_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "0c7c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
+/* globals __VUE_SSR_CONTEXT__ */
+
+// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
+// This module is a runtime utility for cleaner component module output and will
+// be included in the final webpack user bundle.
+
+function normalizeComponent (
+ scriptExports,
+ render,
+ staticRenderFns,
+ functionalTemplate,
+ injectStyles,
+ scopeId,
+ moduleIdentifier, /* server only */
+ shadowMode /* vue-cli only */
+) {
+ // Vue.extend constructor export interop
+ var options = typeof scriptExports === 'function'
+ ? scriptExports.options
+ : scriptExports
+
+ // render functions
+ if (render) {
+ options.render = render
+ options.staticRenderFns = staticRenderFns
+ options._compiled = true
+ }
+
+ // functional template
+ if (functionalTemplate) {
+ options.functional = true
+ }
+
+ // scopedId
+ if (scopeId) {
+ options._scopeId = 'data-v-' + scopeId
+ }
+
+ var hook
+ if (moduleIdentifier) { // server build
+ hook = function (context) {
+ // 2.3 injection
+ context =
+ context || // cached call
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+ // 2.2 with runInNewContext: true
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+ context = __VUE_SSR_CONTEXT__
+ }
+ // inject component styles
+ if (injectStyles) {
+ injectStyles.call(this, context)
+ }
+ // register component module identifier for async chunk inferrence
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier)
+ }
+ }
+ // used by ssr in case component is cached and beforeCreate
+ // never gets called
+ options._ssrRegister = hook
+ } else if (injectStyles) {
+ hook = shadowMode
+ ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }
+ : injectStyles
+ }
+
+ if (hook) {
+ if (options.functional) {
+ // for template-only hot-reload because in that case the render fn doesn't
+ // go through the normalizer
+ options._injectStyles = hook
+ // register for functioal component in vue file
+ var originalRender = options.render
+ options.render = function renderWithStyleInjection (h, context) {
+ hook.call(context)
+ return originalRender(h, context)
+ }
+ } else {
+ // inject component registration as beforeCreate hook
+ var existing = options.beforeCreate
+ options.beforeCreate = existing
+ ? [].concat(existing, hook)
+ : [hook]
+ }
+ }
+
+ return {
+ exports: scriptExports,
+ options: options
+ }
+}
+
+
+/***/ }),
+
+/***/ "0dba":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "0dd1":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "on", function() { return on; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "off", function() { return off; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emit", function() { return emit; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribe", function() { return subscribe; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unsubscribe", function() { return unsubscribe; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeHandler", function() { return subscribeHandler; });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8bbf");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("27a7");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "invokeCallbackHandler", function() { return uni_helpers_api__WEBPACK_IMPORTED_MODULE_1__["a"]; });
+
+/* harmony import */ var uni_platform_service_bridge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("b865");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishHandler", function() { return uni_platform_service_bridge__WEBPACK_IMPORTED_MODULE_2__["a"]; });
+
+
+var Emitter = new vue__WEBPACK_IMPORTED_MODULE_0___default.a();
+var on = Emitter.$on.bind(Emitter);
+var off = Emitter.$off.bind(Emitter);
+var once = Emitter.$once.bind(Emitter);
+var emit = Emitter.$emit.bind(Emitter);
+
+function subscribe(event, callback) {
+ return on('view.' + event, callback);
+}
+function unsubscribe(event, callback) {
+ return off('view.' + event, callback);
+}
+function subscribeHandler(event, args, pageId) {
+ return emit('view.' + event, args, pageId);
+}
+
+
+/***/ }),
+
+/***/ "0f55":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("eaa4");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "0f74":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getRealRoute; });
+function getRealRoute(fromRoute, toRoute) {
+ if (!toRoute) {
+ toRoute = fromRoute;
+
+ if (toRoute.indexOf('/') === 0) {
+ return toRoute;
+ }
+
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ fromRoute = pages[pages.length - 1].$page.route;
+ } else {
+ fromRoute = '';
+ }
+ } else {
+ if (toRoute.indexOf('/') === 0) {
+ return toRoute;
+ }
+ }
+
+ if (toRoute.indexOf('./') === 0) {
+ return getRealRoute(fromRoute, toRoute.substr(2));
+ }
+
+ var toRouteArray = toRoute.split('/');
+ var toRouteLength = toRouteArray.length;
+ var i = 0;
+
+ for (; i < toRouteLength && toRouteArray[i] === '..'; i++) {// noop
+ }
+
+ toRouteArray.splice(0, i);
+ toRoute = toRouteArray.join('/');
+ var fromRouteArray = fromRoute.length > 0 ? fromRoute.split('/') : [];
+ fromRouteArray.splice(fromRouteArray.length - i - 1, i + 1);
+ return '/' + fromRouteArray.concat(toRouteArray).join('/');
+}
+
+/***/ }),
+
+/***/ "1047":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "1067":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "1082":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/image/index.vue?vue&type=template&id=3d6bbdb4&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-image',_vm._g({},_vm.$listeners),[_c('div',{ref:"content",style:(_vm.modeStyle)}),_c('img',{attrs:{"src":_vm.realImagePath}}),(_vm.mode === 'widthFix')?_c('v-uni-resize-sensor',{ref:"sensor",on:{"resize":_vm._resize}}):_vm._e()],1)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/image/index.vue?vue&type=template&id=3d6bbdb4&
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/image/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ var imagevue_type_script_lang_js_ = ({
+ name: 'Image',
+ props: {
+ src: {
+ type: String,
+ default: ''
+ },
+ mode: {
+ type: String,
+ default: 'scaleToFill'
+ },
+ // TODO 懒加载
+ lazyLoad: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ data: function data() {
+ return {
+ originalWidth: 0,
+ originalHeight: 0,
+ availHeight: '',
+ sizeFixed: false
+ };
+ },
+ computed: {
+ ratio: function ratio() {
+ return this.originalWidth && this.originalHeight ? this.originalWidth / this.originalHeight : 0;
+ },
+ realImagePath: function realImagePath() {
+ return this.src && this.$getRealPath(this.src);
+ },
+ modeStyle: function modeStyle() {
+ var size = 'auto';
+ var position = '';
+ var repeat = 'no-repeat';
+
+ switch (this.mode) {
+ case 'aspectFit':
+ size = 'contain';
+ position = 'center center';
+ break;
+
+ case 'aspectFill':
+ size = 'cover';
+ position = 'center center';
+ break;
+
+ case 'widthFix':
+ size = '100% 100%';
+ break;
+
+ case 'top':
+ position = 'center top';
+ break;
+
+ case 'bottom':
+ position = 'center bottom';
+ break;
+
+ case 'center':
+ position = 'center center';
+ break;
+
+ case 'left':
+ position = 'left center';
+ break;
+
+ case 'right':
+ position = 'right center';
+ break;
+
+ case 'top left':
+ position = 'left top';
+ break;
+
+ case 'top right':
+ position = 'right top';
+ break;
+
+ case 'bottom left':
+ position = 'left bottom';
+ break;
+
+ case 'bottom right':
+ position = 'right bottom';
+ break;
+
+ default:
+ size = '100% 100%';
+ position = '0% 0%';
+ break;
+ }
+
+ return "background-position:".concat(position, ";background-size:").concat(size, ";background-repeat:").concat(repeat, ";");
+ }
+ },
+ watch: {
+ src: function src(newValue, oldValue) {
+ this._loadImage();
+ },
+ mode: function mode(newValue, oldValue) {
+ if (oldValue === 'widthFix') {
+ this.$el.style.height = this.availHeight;
+ this.sizeFixed = false;
+ }
+
+ if (newValue === 'widthFix' && this.ratio) {
+ this._fixSize();
+ }
+ }
+ },
+ mounted: function mounted() {
+ this.availHeight = this.$el.style.height || '';
+
+ this._loadImage();
+ },
+ methods: {
+ _resize: function _resize() {
+ if (this.mode === 'widthFix' && !this.sizeFixed) {
+ this._fixSize();
+ }
+ },
+ _fixSize: function _fixSize() {
+ var elWidth = this._getWidth();
+
+ if (elWidth) {
+ this.$el.style.height = elWidth / this.ratio + 'px';
+ this.sizeFixed = true;
+ }
+ },
+ _loadImage: function _loadImage() {
+ this.$refs.content.style.backgroundImage = this.src ? "url(".concat(this.realImagePath, ")") : 'none';
+
+ var _self = this;
+
+ var img = new Image();
+
+ img.onload = function ($event) {
+ _self.originalWidth = this.width;
+ _self.originalHeight = this.height;
+
+ if (_self.mode === 'widthFix') {
+ _self._fixSize();
+ }
+
+ _self.$trigger('load', $event, {
+ width: this.width,
+ height: this.height
+ });
+ };
+
+ img.onerror = function ($event) {
+ _self.$trigger('error', $event, {
+ errMsg: "GET ".concat(_self.src, " 404 (Not Found)")
+ });
+ };
+
+ img.src = this.realImagePath;
+ },
+ _getWidth: function _getWidth() {
+ var computedStyle = window.getComputedStyle(this.$el);
+ var borderWidth = (parseFloat(computedStyle.borderLeftWidth, 10) || 0) + (parseFloat(computedStyle.borderRightWidth, 10) || 0);
+ var paddingWidth = (parseFloat(computedStyle.paddingLeft, 10) || 0) + (parseFloat(computedStyle.paddingRight, 10) || 0);
+ return this.$el.offsetWidth - borderWidth - paddingWidth;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/image/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_imagevue_type_script_lang_js_ = (imagevue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/image/index.vue?vue&type=style&index=0&lang=css&
+var imagevue_type_style_index_0_lang_css_ = __webpack_require__("db18");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/image/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_imagevue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_image = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "1164":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getApp; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getCurrentPages; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createApp; });
+/* harmony import */ var _router_guard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("23e5");
+
+var appVm = false;
+function getApp() {
+ return appVm;
+}
+function getCurrentPages() {
+ var isAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ var pages = [];
+ var app = getApp();
+
+ if (!app) {
+ console.error('app is not ready');
+ return [];
+ }
+
+ var childrenVm = app.$children[0];
+
+ if (childrenVm && childrenVm.$children.length) {
+ var tabBarVm = childrenVm.$children.find(function (vm) {
+ return vm.$options.name === 'TabBar';
+ });
+ childrenVm.$children.forEach(function (vm) {
+ if (tabBarVm !== vm && vm.$children.length && vm.$children[0].$options.name === 'Page' && vm.$children[0].$slots.page) {
+ // vm.$children[0]=Page->PageBody->RealPage
+ var pageVm = vm.$children[0].$children.find(function (vm) {
+ return vm.$options.name === 'PageBody';
+ }).$children.find(function (vm) {
+ return !!vm.$page;
+ });
+
+ if (pageVm) {
+ var isActive = true;
+
+ if (!isAll && tabBarVm && pageVm.$page && pageVm.$page.meta.isTabBar) {
+ // 选项卡仅列出活动的
+ if (app.$route.meta && app.$route.meta.isTabBar) {
+ // 当前页面路由是 tabBar
+ if (app.$route.path !== pageVm.$page.path) {
+ isActive = false;
+ }
+ } else {
+ if (tabBarVm.__path__ !== pageVm.$page.path) {
+ isActive = false;
+ }
+ }
+ }
+
+ if (isActive) {
+ pages.push(pageVm);
+ }
+ } else {// TODO
+ // console.error('pageVm is undefined')
+ }
+ }
+ });
+ } // 当页面返回过程中,请求 getCurrentPages 时,可能会获取到前一个已经准备销毁的 page
+
+
+ var length = pages.length;
+
+ if (length > 1) {
+ var currentPage = pages[length - 1];
+
+ if (currentPage.$page.path !== app.$route.path) {
+ // 删除已经准备销毁的上个页面
+ pages.splice(length - 1, 1);
+ }
+ }
+
+ return pages;
+}
+function createApp(vm, routes) {
+ appVm = vm;
+ appVm.globalData = appVm.$options.globalData || {}; // initEvents(appVm)
+
+ Object(_router_guard__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(appVm, routes);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "11fb":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "previewImage", function() { return previewImage; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cb0f");
+
+var previewImage = {
+ urls: {
+ type: Array,
+ required: true,
+ validator: function validator(value, params) {
+ var typeError;
+ params.urls = value.map(function (url) {
+ if (typeof url === 'string') {
+ return Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(url);
+ } else {
+ typeError = true;
+ }
+ });
+
+ if (typeError) {
+ return 'url is not string';
+ }
+ }
+ },
+ current: {
+ type: [String, Number],
+ validator: function validator(value, params) {
+ if (typeof value === 'number') {
+ params.current = value > 0 && value < params.urls.length ? value : 0;
+ } else if (typeof value === 'string' && value) {
+ params.current = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(value);
+ }
+ },
+ default: 0
+ }
+};
+
+/***/ }),
+
+/***/ "1360":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "15bb":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ mounted: function mounted() {
+ var _this = this;
+
+ if (this.type === 'transparent') {
+ var transparentElemStyle = this.$el.querySelector('.uni-page-head-transparent').style;
+ var titleElem = this.$el.querySelector('.uni-page-head__title');
+ var iconElems = this.$el.querySelectorAll('.uni-btn-icon');
+ var iconElemsStyles = [];
+ var textColor = this.textColor;
+
+ for (var i = 0; i < iconElems.length; i++) {
+ iconElemsStyles.push(iconElems[i].style);
+ }
+
+ var borderRadiusElems = this.$el.querySelectorAll('.uni-page-head-btn');
+ var oldColors = [];
+ var borderRadiusElemsStyles = [];
+
+ for (var _i = 0; _i < borderRadiusElems.length; _i++) {
+ var borderRadiusElem = borderRadiusElems[_i];
+ oldColors.push(getComputedStyle(borderRadiusElem).backgroundColor);
+ borderRadiusElemsStyles.push(borderRadiusElem.style);
+ }
+
+ this._A = 0;
+ UniViewJSBridge.on('onPageScroll', function (_ref) {
+ var scrollTop = _ref.scrollTop;
+ var alpha = Math.min(scrollTop / _this.offset, 1);
+
+ if (alpha === 1 && _this._A === 1) {
+ return;
+ }
+
+ if (alpha > 0.5 && _this._A <= 0.5) {
+ iconElemsStyles.forEach(function (iconElemStyle) {
+ iconElemStyle.color = textColor;
+ });
+ } else if (alpha <= 0.5 && _this._A > 0.5) {
+ iconElemsStyles.forEach(function (iconElemStyle) {
+ iconElemStyle.color = '#fff';
+ });
+ }
+
+ _this._A = alpha; // TODO 暂时仅处理背景色
+
+ if (titleElem) {
+ titleElem.style.opacity = alpha;
+ }
+
+ transparentElemStyle.backgroundColor = "rgba(".concat(_this._R, ",").concat(_this._G, ",").concat(_this._B, ",").concat(alpha, ")");
+ borderRadiusElemsStyles.forEach(function (borderRadiusElemStyle, index) {
+ var oldColor = oldColors[index]; // eslint-disable-next-line
+
+ var rgba = oldColor.match(/[\d+\.]+/g);
+ rgba[3] = (1 - alpha) * (rgba.length === 4 ? rgba[3] : 1);
+ borderRadiusElemStyle.backgroundColor = "rgba(".concat(rgba, ")");
+ });
+ });
+ }
+ },
+ computed: {
+ color: function color() {
+ return this.type === 'transparent' ? '#fff' : this.textColor;
+ },
+ offset: function offset() {
+ return parseInt(this.coverage);
+ },
+ bgColor: function bgColor() {
+ if (this.type === 'transparent') {
+ var _hexToRgba = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hexToRgba */ "d"])(this.backgroundColor),
+ r = _hexToRgba.r,
+ g = _hexToRgba.g,
+ b = _hexToRgba.b;
+
+ this._R = r;
+ this._G = g;
+ this._B = b;
+ return "rgba(".concat(r, ",").concat(g, ",").concat(b, ",0)");
+ }
+
+ return this.backgroundColor;
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "167a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageBody_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("deaf");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageBody_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageBody_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageBody_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "17ac":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "17fd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/navigator/index.vue?vue&type=template&id=d8d61df6&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hoverClass && _vm.hoverClass !== 'none')?_c('uni-navigator',_vm._g({class:[_vm.hovering ? _vm.hoverClass : ''],on:{"touchstart":_vm._hoverTouchStart,"touchend":_vm._hoverTouchEnd,"touchcancel":_vm._hoverTouchCancel,"click":_vm._onClick}},_vm.$listeners),[_vm._t("default")],2):_c('uni-navigator',_vm._g({on:{"click":_vm._onClick}},_vm.$listeners),[_vm._t("default")],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue?vue&type=template&id=d8d61df6&
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/navigator/index.vue?vue&type=script&lang=js&
+var navigatorvue_type_script_lang_js_ = __webpack_require__("eecc");
+
+// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_navigatorvue_type_script_lang_js_ = (navigatorvue_type_script_lang_js_["a" /* default */]);
+// EXTERNAL MODULE: ./src/core/view/components/navigator/index.vue?vue&type=style&index=0&lang=css&
+var navigatorvue_type_style_index_0_lang_css_ = __webpack_require__("f7fd");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_navigatorvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_navigator = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "18fd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HTMLParser; });
+/*
+ * HTML5 Parser By Sam Blowes
+ *
+ * Designed for HTML5 documents
+ *
+ * Original code by John Resig (ejohn.org)
+ * http://ejohn.org/blog/pure-javascript-html-parser/
+ * Original code by Erik Arvidsson, Mozilla Public License
+ * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js
+ *
+ * ----------------------------------------------------------------------------
+ * License
+ * ----------------------------------------------------------------------------
+ *
+ * This code is triple licensed using Apache Software License 2.0,
+ * Mozilla Public License or GNU Public License
+ *
+ * ////////////////////////////////////////////////////////////////////////////
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * ////////////////////////////////////////////////////////////////////////////
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific language governing rights and limitations
+ * under the License.
+ *
+ * The Original Code is Simple HTML Parser.
+ *
+ * The Initial Developer of the Original Code is Erik Arvidsson.
+ * Portions created by Erik Arvidssson are Copyright (C) 2004. All Rights
+ * Reserved.
+ *
+ * ////////////////////////////////////////////////////////////////////////////
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * ----------------------------------------------------------------------------
+ * Usage
+ * ----------------------------------------------------------------------------
+ *
+ * // Use like so:
+ * HTMLParser(htmlString, {
+ * start: function(tag, attrs, unary) {},
+ * end: function(tag) {},
+ * chars: function(text) {},
+ * comment: function(text) {}
+ * });
+ *
+ * // or to get an XML string:
+ * HTMLtoXML(htmlString);
+ *
+ * // or to get an XML DOM Document
+ * HTMLtoDOM(htmlString);
+ *
+ * // or to inject into an existing document/DOM node
+ * HTMLtoDOM(htmlString, document);
+ * HTMLtoDOM(htmlString, document.body);
+ *
+ */
+// Regular Expressions for parsing tags and attributes
+var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;
+var endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/;
+var attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g; // Empty Elements - HTML 5
+
+var empty = makeMap('area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr'); // Block Elements - HTML 5
+// fixed by xxx 将 ins 标签从块级名单中移除
+
+var block = makeMap('a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video'); // Inline Elements - HTML 5
+
+var inline = makeMap('abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var'); // Elements that you can, intentionally, leave open
+// (and which close themselves)
+
+var closeSelf = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr'); // Attributes that have their values filled in disabled="disabled"
+
+var fillAttrs = makeMap('checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected'); // Special Elements (can contain anything)
+
+var special = makeMap('script,style');
+function HTMLParser(html, handler) {
+ var index;
+ var chars;
+ var match;
+ var stack = [];
+ var last = html;
+
+ stack.last = function () {
+ return this[this.length - 1];
+ };
+
+ while (html) {
+ chars = true; // Make sure we're not in a script or style element
+
+ if (!stack.last() || !special[stack.last()]) {
+ // Comment
+ if (html.indexOf('');
+
+ if (index >= 0) {
+ if (handler.comment) {
+ handler.comment(html.substring(4, index));
+ }
+
+ html = html.substring(index + 3);
+ chars = false;
+ } // end tag
+
+ } else if (html.indexOf('') == 0) {
+ match = html.match(endTag);
+
+ if (match) {
+ html = html.substring(match[0].length);
+ match[0].replace(endTag, parseEndTag);
+ chars = false;
+ } // start tag
+
+ } else if (html.indexOf('<') == 0) {
+ match = html.match(startTag);
+
+ if (match) {
+ html = html.substring(match[0].length);
+ match[0].replace(startTag, parseStartTag);
+ chars = false;
+ }
+ }
+
+ if (chars) {
+ index = html.indexOf('<');
+ var text = index < 0 ? html : html.substring(0, index);
+ html = index < 0 ? '' : html.substring(index);
+
+ if (handler.chars) {
+ handler.chars(text);
+ }
+ }
+ } else {
+ html = html.replace(new RegExp('([\\s\\S]*?)<\/' + stack.last() + '[^>]*>'), function (all, text) {
+ text = text.replace(/|/g, '$1$2');
+
+ if (handler.chars) {
+ handler.chars(text);
+ }
+
+ return '';
+ });
+ parseEndTag('', stack.last());
+ }
+
+ if (html == last) {
+ throw 'Parse Error: ' + html;
+ }
+
+ last = html;
+ } // Clean up any remaining tags
+
+
+ parseEndTag();
+
+ function parseStartTag(tag, tagName, rest, unary) {
+ tagName = tagName.toLowerCase();
+
+ if (block[tagName]) {
+ while (stack.last() && inline[stack.last()]) {
+ parseEndTag('', stack.last());
+ }
+ }
+
+ if (closeSelf[tagName] && stack.last() == tagName) {
+ parseEndTag('', tagName);
+ }
+
+ unary = empty[tagName] || !!unary;
+
+ if (!unary) {
+ stack.push(tagName);
+ }
+
+ if (handler.start) {
+ var attrs = [];
+ rest.replace(attr, function (match, name) {
+ var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : '';
+ attrs.push({
+ name: name,
+ value: value,
+ escaped: value.replace(/(^|[^\\])"/g, '$1\\\"') // "
+
+ });
+ });
+
+ if (handler.start) {
+ handler.start(tagName, attrs, unary);
+ }
+ }
+ }
+
+ function parseEndTag(tag, tagName) {
+ // If no tag name is provided, clean shop
+ if (!tagName) {
+ var pos = 0;
+ } // Find the closest opened tag of the same type
+ else {
+ for (var pos = stack.length - 1; pos >= 0; pos--) {
+ if (stack[pos] == tagName) {
+ break;
+ }
+ }
+ }
+
+ if (pos >= 0) {
+ // Close all the open elements, up the stack
+ for (var i = stack.length - 1; i >= pos; i--) {
+ if (handler.end) {
+ handler.end(stack[i]);
+ }
+ } // Remove the open elements from the stack
+
+
+ stack.length = pos;
+ }
+ }
+}
+;
+
+function makeMap(str) {
+ var obj = {};
+ var items = str.split(',');
+
+ for (var i = 0; i < items.length; i++) {
+ obj[items[i]] = true;
+ }
+
+ return obj;
+}
+
+/***/ }),
+
+/***/ "1955":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js
+var touchtrack = __webpack_require__("ba15");
+
+// EXTERNAL MODULE: ./src/core/view/mixins/scroller/index.js + 2 modules
+var scroller = __webpack_require__("8aec");
+
+// EXTERNAL MODULE: ./src/core/view/mixins/scroller/Friction.js
+var Friction = __webpack_require__("5363");
+
+// EXTERNAL MODULE: ./src/core/view/mixins/scroller/Spring.js
+var Spring = __webpack_require__("72b3");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/picker-view-column/index.vue?vue&type=script&lang=js&
+
+
+
+
+/* harmony default export */ var picker_view_columnvue_type_script_lang_js_ = ({
+ name: 'PickerViewColumn',
+ mixins: [touchtrack["a" /* default */], scroller["a" /* default */]],
+ data: function data() {
+ return {
+ scope: "picker-view-column-".concat(Date.now()),
+ inited: false,
+ indicatorStyle: '',
+ indicatorClass: '',
+ indicatorHeight: 34,
+ maskStyle: '',
+ maskClass: '',
+ current: this.$parent.getItemValue(this),
+ length: 0
+ };
+ },
+ computed: {
+ height: function height() {
+ return this.$parent.height;
+ },
+ maskSize: function maskSize() {
+ return (this.height - this.indicatorHeight) / 2;
+ }
+ },
+ watch: {
+ indicatorHeight: function indicatorHeight(val) {
+ this._setItemHeight(val);
+
+ if (this.inited) {
+ this.update();
+ }
+ },
+ current: function current(val) {
+ this.$parent.setItemValue(this, val);
+ },
+ length: function length(val) {
+ if (this.inited) {
+ this.update(val);
+ }
+ }
+ },
+ created: function created() {
+ var $parent = this.$parent;
+ this.indicatorStyle = $parent.indicatorStyle;
+ this.indicatorClass = $parent.indicatorClass;
+ this.maskStyle = $parent.maskStyle;
+ this.maskClass = $parent.maskClass; // this.__pageRerender = this._pageRerender.bind(this)
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ this.touchtrack(this.$refs.main, '_handleTrack', true);
+ this.setCurrent(this.current);
+ this.$nextTick(function () {
+ _this.init();
+
+ _this.update();
+ });
+ },
+ methods: {
+ _setItemHeight: function _setItemHeight(height) {
+ var style = document.createElement('style');
+ style.innerText = ".uni-picker-view-content.".concat(this.scope, ">*{height: ").concat(height, "px;overflow: hidden;}");
+ document.head.appendChild(style);
+ },
+ _handleTrack: function _handleTrack(e) {
+ if (this._scroller) {
+ switch (e.detail.state) {
+ case 'start':
+ this._handleTouchStart(e);
+
+ break;
+
+ case 'move':
+ this._handleTouchMove(e);
+
+ break;
+
+ case 'end':
+ case 'cancel':
+ this._handleTouchEnd(e);
+
+ }
+ }
+ },
+ _handleTap: function _handleTap(e) {
+ if (e.target !== e.currentTarget && !this._scroller.isScrolling()) {
+ var t = e.touches && e.touches[0] && e.touches[0].clientY;
+ var n = typeof t === 'number' ? t : e.detail.y - document.body.scrollTop;
+ var i = this.$el.getBoundingClientRect();
+ var r = n - i.top - this._height / 2;
+ var o = this.indicatorHeight / 2;
+
+ if (!(Math.abs(r) <= o)) {
+ var a = Math.ceil((Math.abs(r) - o) / this.indicatorHeight);
+ var s = r < 0 ? -a : a;
+ this.current += s;
+
+ this._scroller.scrollTo(this.current * this.indicatorHeight);
+ }
+ }
+ },
+ setCurrent: function setCurrent(current) {
+ if (current !== this.current) {
+ this.current = current;
+
+ if (this.inited) {
+ this.update();
+ }
+ }
+ },
+ init: function init() {
+ var _this2 = this;
+
+ this.initScroller(this.$refs.content, {
+ enableY: true,
+ enableX: false,
+ enableSnap: true,
+ itemSize: this.indicatorHeight,
+ friction: new Friction["a" /* Friction */](0.0001),
+ spring: new Spring["a" /* Spring */](2, 90, 20),
+ onSnap: function onSnap(index) {
+ if (!isNaN(index) && index !== _this2.current) {
+ _this2.current = index;
+ }
+ }
+ });
+ this.inited = true;
+ },
+ update: function update() {
+ var _this3 = this;
+
+ this.$nextTick(function () {
+ var index = Math.max(_this3.length - 1, 0);
+ var current = Math.min(_this3.current, index);
+
+ _this3._scroller.update(current * _this3.indicatorHeight, undefined, _this3.indicatorHeight);
+ });
+ },
+ _resize: function _resize(_ref) {
+ var height = _ref.height;
+ this.indicatorHeight = height;
+ }
+ },
+ render: function render(createElement) {
+ this.length = this.$slots.default && this.$slots.default.length || 0;
+ return createElement('uni-picker-view-column', {
+ on: {
+ tap: this._handleTap
+ }
+ }, [createElement('div', {
+ ref: 'main',
+ staticClass: 'uni-picker-view-group'
+ }, [createElement('div', {
+ ref: 'mask',
+ staticClass: 'uni-picker-view-mask',
+ class: this.maskClass,
+ style: "background-size: 100% ".concat(this.maskSize, "px;").concat(this.maskStyle)
+ }), createElement('div', {
+ ref: 'indicator',
+ staticClass: 'uni-picker-view-indicator',
+ class: this.indicatorClass,
+ style: this.indicatorStyle
+ }, [createElement('v-uni-resize-sensor', {
+ attrs: {
+ initial: true
+ },
+ on: {
+ resize: this._resize
+ }
+ })]), createElement('div', {
+ ref: 'content',
+ staticClass: 'uni-picker-view-content',
+ class: this.scope,
+ style: "padding: ".concat(this.maskSize, "px 0;")
+ }, [this.$slots.default])])]);
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/picker-view-column/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_picker_view_columnvue_type_script_lang_js_ = (picker_view_columnvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/picker-view-column/index.vue?vue&type=style&index=0&lang=css&
+var picker_view_columnvue_type_style_index_0_lang_css_ = __webpack_require__("edfa");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/picker-view-column/index.vue
+var render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_picker_view_columnvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var picker_view_column = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "19c4":
+/***/ (function(module, exports, __webpack_require__) {
+
+var map = {
+ "./base.js": "22ec",
+ "./base64.js": "a8fd",
+ "./canvas.js": "a041",
+ "./context.js": "9fef",
+ "./device/make-phone-call.js": "f102",
+ "./file/open-document.js": "2604",
+ "./location.js": "c439",
+ "./media/choose-image.js": "f1b2",
+ "./media/choose-video.js": "ed9f",
+ "./media/get-image-info.js": "b866",
+ "./media/preview-image.js": "11fb",
+ "./navigation-bar.js": "4043",
+ "./network/download-file.js": "439a",
+ "./network/request.js": "a201",
+ "./network/socket.js": "abb2",
+ "./network/upload-file.js": "9a3e",
+ "./page-scroll-to.js": "e8e6",
+ "./plugins.js": "cef5",
+ "./popup.js": "d68b",
+ "./route.js": "40ab",
+ "./storage.js": "3858",
+ "./tab-bar.js": "066f"
+};
+
+
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ var id = map[req];
+ if(!(id + 1)) { // check for number or string
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return id;
+}
+webpackContext.keys = function webpackContextKeys() {
+ return Object.keys(map);
+};
+webpackContext.resolve = webpackContextResolve;
+module.exports = webpackContext;
+webpackContext.id = "19c4";
+
+/***/ }),
+
+/***/ "1a12":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return request; });
+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; }
+
+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; }
+
+/**
+ * 请求任务类
+ */
+var RequestTask =
+/*#__PURE__*/
+function () {
+ function RequestTask(xhr) {
+ _classCallCheck(this, RequestTask);
+
+ _defineProperty(this, "_xhr", void 0);
+
+ this._xhr = xhr;
+ }
+
+ _createClass(RequestTask, [{
+ key: "abort",
+ value: function abort() {
+ if (this._xhr) {
+ this._xhr.abort();
+
+ delete this._xhr;
+ }
+ }
+ }]);
+
+ return RequestTask;
+}();
+/**
+ * 拼接网址和参数
+ * @param {string} url 网址
+ * @param {any} data 参数
+ * @return {string}
+ */
+
+
+function setUrl(url, data) {
+ var str = url.split('#');
+ var hash = str[1] || '';
+ str = str[0].split('?');
+ var query = str[1] || '';
+ url = str[0];
+ var search = query.split('&').filter(function (item) {
+ return item;
+ });
+ query = {};
+ search.forEach(function (item) {
+ item = item.split('=');
+ query[item[0]] = item[1];
+ });
+
+ for (var key in data) {
+ if (data.hasOwnProperty(key)) {
+ query[encodeURIComponent(key)] = encodeURIComponent(data[key]);
+ }
+ }
+
+ query = Object.keys(query).map(function (item) {
+ return "".concat(item, "=").concat(query[item]);
+ }).join('&');
+ return url + (query ? '?' + query : '') + (hash ? '#' + hash : '');
+}
+/**
+ * 解析响应头
+ * @param {string} headers
+ * @return {object}
+ */
+
+
+function parseHeaders(headers) {
+ var headersObject = {};
+ var headersArray = headers.split('\n');
+ headersArray.forEach(function (header) {
+ var find = header.match(/(\S+\s*):\s*(.*)/);
+
+ if (!find || find.length !== 3) {
+ return;
+ }
+
+ var key = find[1];
+ var val = find[2];
+ headersObject[key] = val;
+ });
+ return headersObject;
+}
+/**
+ * 发起网络请求
+ * @param {object} param0
+ * @param {string} callbackId
+ * @return {RequestTask}
+ */
+
+
+function request(_ref, callbackId) {
+ var url = _ref.url,
+ data = _ref.data,
+ header = _ref.header,
+ method = _ref.method,
+ dataType = _ref.dataType,
+ responseType = _ref.responseType;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ var body = null;
+ var timeout = __uniConfig.networkTimeout && __uniConfig.networkTimeout.request || 60 * 1000; // 根据请求类型处理数据
+
+ var contentType;
+
+ for (var _key in header) {
+ if (header.hasOwnProperty(_key)) {
+ if (_key.toLowerCase() === 'content-type') {
+ contentType = header[_key];
+
+ if (contentType.indexOf('application/json') === 0) {
+ contentType = 'json';
+ } else if (contentType.indexOf('application/x-www-form-urlencoded') === 0) {
+ contentType = 'urlencoded';
+ } else {
+ contentType = 'string';
+ }
+
+ break;
+ }
+ }
+ }
+
+ if (method === 'GET') {
+ url = setUrl(url, data);
+ } else {
+ if (!contentType) {
+ /**
+ * 跨域时部分服务器OPTION响应头Access-Control-Allow-Headers未包含Content-Type会请求失败
+ */
+ header['Content-Type'] = 'application/json';
+ contentType = 'json';
+ }
+
+ if (typeof data === 'string' || data instanceof ArrayBuffer) {
+ body = data;
+ } else {
+ if (contentType === 'json') {
+ try {
+ body = JSON.stringify(data);
+ } catch (error) {
+ body = data.toString();
+ }
+ } else if (contentType === 'urlencoded') {
+ var bodyArray = [];
+
+ for (var _key2 in data) {
+ if (data.hasOwnProperty(_key2)) {
+ bodyArray.push(encodeURIComponent(_key2) + '=' + encodeURIComponent(data[_key2]));
+ }
+ }
+
+ body = bodyArray.join('&');
+ } else {
+ body = data.toString();
+ }
+ }
+ }
+
+ var xhr = new XMLHttpRequest();
+ var requestTask = new RequestTask(xhr);
+ xhr.open(method, url);
+
+ for (var key in header) {
+ if (header.hasOwnProperty(key)) {
+ xhr.setRequestHeader(key, header[key]);
+ }
+ }
+
+ var timer = setTimeout(function () {
+ xhr.onload = xhr.onabort = xhr.onerror = null;
+ requestTask.abort();
+ invoke(callbackId, {
+ errMsg: 'request:fail timeout'
+ });
+ }, timeout);
+ xhr.responseType = responseType.toLowerCase();
+
+ xhr.onload = function () {
+ clearTimeout(timer);
+ var statusCode = xhr.status;
+ var res = responseType === 'TEXT' ? xhr.responseText : xhr.response;
+
+ if (responseType === 'TEXT' && dataType === 'JSON') {
+ try {
+ res = JSON.parse(res);
+ } catch (error) {// 和微信一致解析失败不抛出错误
+ // invoke(callbackId, {
+ // errMsg: 'request:fail json parse error'
+ // })
+ // return
+ }
+ }
+
+ invoke(callbackId, {
+ data: res,
+ statusCode: statusCode,
+ header: parseHeaders(xhr.getAllResponseHeaders()),
+ errMsg: 'request:ok'
+ });
+ };
+
+ xhr.onabort = function () {
+ clearTimeout(timer);
+ invoke(callbackId, {
+ errMsg: 'request:fail abort'
+ });
+ };
+
+ xhr.onerror = function () {
+ clearTimeout(timer);
+ invoke(callbackId, {
+ errMsg: 'request:fail'
+ });
+ };
+
+ xhr.send(body);
+ return requestTask;
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "1a33":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "1b6f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ // 取消id的定义,某些组件(canvas)内不在props内定义id
+ // props: {
+ // id: {
+ // type: String,
+ // default: ''
+ // }
+ // },
+ mounted: function mounted() {
+ var _this = this;
+
+ this._toggleListeners('subscribe', this.id); // 初始化监听
+
+
+ this.$watch('id', function (newId, oldId) {
+ // watch id
+ _this._toggleListeners('unsubscribe', oldId, true);
+
+ _this._toggleListeners('subscribe', newId, true);
+ });
+ },
+ beforeDestroy: function beforeDestroy() {
+ // 销毁时移除
+ this._toggleListeners('unsubscribe', this.id);
+ },
+ methods: {
+ _toggleListeners: function _toggleListeners(type, id, watch) {
+ if (watch && !id) {
+ // id被置空
+ return;
+ }
+
+ if (!Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(this._handleSubscribe)) {
+ return;
+ } // 纠正VUniVideo等组件命名为Video
+
+
+ UniViewJSBridge[type](this.$page.id + '-' + this.$options.name.replace(/VUni([A-Z])/, '$1').toLowerCase() + '-' + id, this._handleSubscribe);
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "1c64":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("9613");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "1ef7":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interceptors", function() { return interceptors; });
+/* harmony import */ var uni_helpers_interceptor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8542");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "addInterceptor", function() { return uni_helpers_interceptor__WEBPACK_IMPORTED_MODULE_0__["a"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeInterceptor", function() { return uni_helpers_interceptor__WEBPACK_IMPORTED_MODULE_0__["d"]; });
+
+
+
+var interceptors = {
+ promiseInterceptor: uni_helpers_interceptor__WEBPACK_IMPORTED_MODULE_0__[/* promiseInterceptor */ "c"]
+};
+
+/***/ }),
+
+/***/ "1efd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"}
+var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf");
+var external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_);
+
+// EXTERNAL MODULE: ./src/platforms/h5/helpers/get-real-path.js
+var get_real_path = __webpack_require__("cb0f");
+
+// EXTERNAL MODULE: ./src/core/view/plugins/events.js
+var events = __webpack_require__("d4b6");
+
+// CONCATENATED MODULE: ./src/core/view/mixins/base.js
+
+
+/* harmony default export */ var base = ({
+ methods: {
+ $getRealPath: function $getRealPath(src) {
+ return Object(get_real_path["a" /* default */])(src);
+ },
+ $trigger: function $trigger(name, $event, detail) {
+ this.$emit(name, events["b" /* processEvent */].call(this, name, $event, detail, this.$el, this.$el));
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/mixins/animation.js
+function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
+
+function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
+
+function converPx(value) {
+ if (/\d+[ur]px$/i.test(value)) {
+ value.replace(/\d+[ur]px$/i, function (text) {
+ return "".concat(uni.upx2px(parseFloat(text)), "px");
+ }); // eslint-disable-next-line no-useless-escape
+ } else if (/^-?[\d\.]+$/.test(value)) {
+ return "".concat(value, "px");
+ }
+
+ return value || '';
+}
+
+function converType(type) {
+ return type.replace(/[A-Z]/g, function (text) {
+ return "-".concat(text.toLowerCase());
+ }).replace('webkit', '-webkit');
+}
+
+function getStyle(action) {
+ var animateTypes1 = ['matrix', 'matrix3d', 'scale', 'scale3d', 'rotate3d', 'skew', 'translate', 'translate3d'];
+ var animateTypes2 = ['scaleX', 'scaleY', 'scaleZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'skewX', 'skewY', 'translateX', 'translateY', 'translateZ'];
+ var animateTypes3 = ['opacity', 'backgroundColor'];
+ var animateTypes4 = ['width', 'height', 'left', 'right', 'top', 'bottom'];
+ var animates = action.animates;
+ var option = action.option;
+ var transition = option.transition;
+ var style = {};
+ var transform = [];
+ animates.forEach(function (animate) {
+ var type = animate.type;
+
+ var args = _toConsumableArray(animate.args);
+
+ if (animateTypes1.concat(animateTypes2).includes(type)) {
+ if (type.startsWith('rotate') || type.startsWith('skew')) {
+ args = args.map(function (value) {
+ return parseFloat(value) + 'deg';
+ });
+ } else if (type.startsWith('translate')) {
+ args = args.map(converPx);
+ }
+
+ if (animateTypes2.indexOf(type)) {
+ args.length = 1;
+ }
+
+ transform.push("".concat(type, "(").concat(args.join(','), ")"));
+ } else if (animateTypes3.concat(animateTypes4).includes(type)) {
+ var value = args[0];
+ style[type] = animateTypes4.includes(type) ? converPx(value) : value;
+ }
+ });
+ style.transform = style.webkitTransform = transform.join(' ');
+ style.transition = style.webkitTransition = Object.keys(style).map(function (type) {
+ return "".concat(converType(type), " ").concat(transition.duration, "ms ").concat(transition.timingFunction, " ").concat(transition.delay, "ms");
+ }).join(',');
+ style.transformOrigin = style.webkitTransformOrigin = option.transformOrigin;
+ return style;
+}
+
+function startAnimation(context) {
+ var animation = context.animation;
+
+ if (!animation || !animation.actions || !animation.actions.length) {
+ return;
+ }
+
+ var index = 0;
+ var actions = animation.actions;
+ var length = animation.actions.length;
+
+ function animate() {
+ var action = actions[index];
+ var transition = action.option.transition;
+ var style = getStyle(action);
+ Object.keys(style).forEach(function (key) {
+ context.$el.style[key] = style[key];
+ });
+ index += 1;
+
+ if (index < length) {
+ setTimeout(animate, transition.duration + transition.delay);
+ }
+ }
+
+ animate();
+}
+
+/* harmony default export */ var animation = ({
+ props: ['animation'],
+ watch: {
+ animation: function animation() {
+ startAnimation(this);
+ }
+ },
+ mounted: function mounted() {
+ startAnimation(this);
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/index.js
+
+
+
+var requireComponents = [// baseComponents
+__webpack_require__("5408"), __webpack_require__("93a5")];
+requireComponents.forEach(function (components, index) {
+ components.keys().forEach(function (fileName) {
+ // 获取组件配置
+ var componentModule = components(fileName);
+ var componentConfig = componentModule.default || componentModule;
+ componentConfig.mixins = componentConfig.mixins ? [].concat(base, componentConfig.mixins) : [base];
+ componentConfig.mixins.push(animation);
+ componentConfig.name = 'VUni' + componentConfig.name; // 全局注册组件
+
+ external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component(componentConfig.name, componentConfig);
+ });
+});
+
+/***/ }),
+
+/***/ "22ec":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canIUse", function() { return canIUse; });
+var canIUse = [{
+ name: 'schema',
+ type: String,
+ required: true
+}];
+
+/***/ }),
+
+/***/ "23af":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "23e5":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getTabBarScrollPosition; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initRouterGuard; });
+/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a741");
+
+
+function addKeepAliveInclude(componentName) {
+ if (this.keepAliveInclude.indexOf(componentName) === -1) {
+ // 目标页面,自动 include
+ this.keepAliveInclude.push(componentName);
+ }
+}
+
+var deltaIds = [];
+
+function removeKeepAliveInclude(componentNameOrDelta) {
+ if (typeof componentNameOrDelta === 'number') {
+ deltaIds = this.keepAliveInclude.splice(-(componentNameOrDelta - 1)).map(function (name) {
+ return parseInt(name.split('-').pop());
+ });
+ } else {
+ var index = this.keepAliveInclude.indexOf(componentNameOrDelta);
+
+ if (index !== -1) {
+ this.keepAliveInclude.splice(index, 1);
+ }
+ }
+}
+
+var positionStore = Object.create(null);
+function getTabBarScrollPosition(id) {
+ return positionStore[id];
+}
+
+function saveTabBarScrollPosition(id) {
+ positionStore[id] = {
+ x: window.pageXOffset,
+ y: window.pageYOffset
+ };
+}
+
+function switchTab(routes, to, from) {
+ if (to && from && to.meta.isTabBar && from.meta.isTabBar) {
+ // tabbar 跳 tabbar
+ saveTabBarScrollPosition(from.params.__id__);
+ } // 关闭非 tabBar 页面
+
+
+ var pages = getCurrentPages();
+
+ for (var i = pages.length - 1; i >= 0; i--) {
+ var pageVm = pages[i];
+ var meta = pageVm.$page.meta;
+
+ if (!meta.isTabBar) {
+ removeKeepAliveInclude.call(this, meta.name + '-' + pageVm.$page.id);
+ Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(pageVm, 'onUnload');
+ }
+ }
+}
+
+function reLaunch(toName) {
+ __uniConfig.reLaunch = (__uniConfig.reLaunch || 1) + 1; // 关闭所有页面
+
+ var pages = getCurrentPages(true);
+
+ for (var i = pages.length - 1; i >= 0; i--) {
+ Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(pages[i], 'onUnload'); // 重新reLaunch至首页可能会被keepAlive,先手动强制destroy
+
+ pages[i].$destroy();
+ }
+
+ this.keepAliveInclude = []; // 清空 positionStore
+
+ positionStore = Object.create(null);
+}
+
+var currentPages = [];
+
+function beforeEach(to, from, next, routes) {
+ currentPages = getCurrentPages(true); // 每次 beforeEach 时获取当前currentPages,因为 afterEach 之后,获取不到上一个 page 了,导致无法调用 onUnload
+
+ var fromId = from.params.__id__;
+ var toId = to.params.__id__;
+ var toName = to.meta.name + '-' + toId;
+
+ if (toId === fromId) {
+ // 相同页面阻止
+ // 处理外部修改 history 导致卡在当前页面的问题
+ if (to.fullPath !== from.fullPath) {
+ removeKeepAliveInclude.call(this, toName);
+ next();
+ } else {
+ next(false);
+ }
+ } else if (to.meta.id && to.meta.id !== toId) {
+ // id 不妥,replace跳转
+ next({
+ path: to.path,
+ replace: true
+ });
+ } else {
+ var fromName = from.meta.name + '-' + fromId;
+
+ switch (to.type) {
+ case 'navigateTo':
+ break;
+
+ case 'redirectTo':
+ // 关闭前一个页面
+ removeKeepAliveInclude.call(this, fromName);
+
+ if (from.meta) {
+ if (from.meta.isQuit) {
+ // 如果 redirectTo 的前一个页面是 quit 类型,则新打开的页面也是 quit
+ to.meta.isQuit = true;
+ to.meta.isEntry = !!from.meta.isEntry;
+ }
+
+ if (from.meta.isTabBar) {
+ // 如果是 tabBar,需要更新系统组件 tabBar 内的 list 数据
+ to.meta.isTabBar = true;
+ to.meta.tabBarIndex = from.meta.tabBarIndex;
+ var appVm = getApp().$children[0];
+ appVm.$set(appVm.tabBar.list[to.meta.tabBarIndex], 'pagePath', to.meta.pagePath);
+ }
+ }
+
+ break;
+
+ case 'switchTab':
+ switchTab.call(this, routes, to, from);
+ break;
+
+ case 'reLaunch':
+ reLaunch.call(this, toName);
+ to.meta.isQuit = true; // reLaunch后,该页面为 quit 类型
+
+ break;
+
+ default:
+ // 后退或非 API 访问
+ if (fromId && fromId > toId) {
+ // back
+ removeKeepAliveInclude.call(this, fromName);
+
+ if (this.$router._$delta > 1) {
+ removeKeepAliveInclude.call(this, this.$router._$delta);
+ }
+ }
+
+ break;
+ }
+
+ if (to.type !== 'reLaunch' && from.meta.id) {
+ // 如果不是 reLaunch,且 meta 指定了 id
+ addKeepAliveInclude.call(this, fromName);
+ } // if (to.type !== 'reLaunch') { // TODO 如果 reLaunch,1.keepAlive的话,无法触发页面生命周期,并刷新页面,2.不 keepAlive 的话,页面状态无法再次保留,且 routeView 的 cache 有问题
+
+
+ addKeepAliveInclude.call(this, toName); // }
+
+ if (false) {}
+ /* eslint-disable no-undef */
+
+
+ if (true) {
+ if (to.meta && to.meta.name) {
+ document.body.className = 'uni-body ' + to.meta.name;
+ var nvueDirKey = 'nvue-dir-' + __uniConfig.nvue['flex-direction'];
+
+ if (to.meta.isNVue) {
+ document.body.setAttribute('nvue', '');
+ document.body.setAttribute(nvueDirKey, '');
+ } else {
+ document.body.removeAttribute('nvue');
+ document.body.removeAttribute(nvueDirKey);
+ }
+ }
+ }
+
+ next();
+ }
+}
+
+function afterEach(to, from) {
+ var fromId = from.params.__id__;
+ var toId = to.params.__id__;
+ var fromVm = currentPages.find(function (pageVm) {
+ return pageVm.$page.id === fromId;
+ }); // 使用 beforeEach 时的 pages
+
+ switch (to.type) {
+ case 'navigateTo':
+ // 前一个页面触发 onHide
+ fromVm && Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(fromVm, 'onHide');
+ break;
+
+ case 'redirectTo':
+ // 前一个页面触发 onUnload
+ fromVm && Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(fromVm, 'onUnload');
+ break;
+
+ case 'switchTab':
+ if (from.meta.isTabBar) {
+ // 前一个页面是 tabBar 触发 onHide,非 tabBar 页面在 beforeEach 中已触发 onUnload
+ fromVm && Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(fromVm, 'onHide');
+ }
+
+ break;
+
+ case 'reLaunch':
+ break;
+
+ default:
+ if (fromId && fromId > toId) {
+ // history back
+ fromVm && Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(fromVm, 'onUnload');
+
+ if (this.$router._$delta > 1) {
+ deltaIds.reverse().forEach(function (deltaId) {
+ var pageVm = currentPages.find(function (pageVm) {
+ return pageVm.$page.id === deltaId;
+ });
+ pageVm && Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(pageVm, 'onUnload');
+ });
+ }
+ }
+
+ break;
+ }
+
+ delete this.$router._$delta;
+ deltaIds.length = 0;
+
+ if (to.type !== 'reLaunch') {
+ // 因为 reLaunch 会重置 id,故不触发 onShow,switchTab 在 beforeRouteEnter 中触发
+ // 直接获取所有 pages,getCurrentPages 正常情况下仅返回页面栈内,传 true 则返回所有已存在(主要是 tabBar 页面)
+ var toVm = getCurrentPages(true).find(function (pageVm) {
+ return pageVm.$page.id === toId;
+ }); // 使用最新的 pages
+
+ if (toVm) {
+ // 目标页面若已存在,则触发 onShow
+ // 延迟执行 onShow,防止与 UniServiceJSBridge.emit('onHidePopup') 冲突。
+ setTimeout(function () {
+ Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(toVm, 'onShow');
+ }, 0);
+
+ if (true) {
+ document.title = toVm.$parent.$parent.navigationBar.titleText;
+ }
+ }
+ }
+}
+
+function initRouterGuard(appVm, routes) {
+ // 处理keepAliveInclude
+ appVm.$router.beforeEach(function (to, from, next) {
+ beforeEach.call(appVm, to, from, next, routes);
+ }); // 处理前进时的 onUnload,onHide 和后退时的 onShow
+
+ appVm.$router.afterEach(function (to, from) {
+ afterEach.call(appVm, to, from);
+ });
+}
+
+/***/ }),
+
+/***/ "24aa":
+/***/ (function(module, exports) {
+
+var g;
+
+// This works in non-strict mode
+g = (function() {
+ return this;
+})();
+
+try {
+ // This works if eval is allowed (see CSP)
+ g = g || new Function("return this")();
+} catch (e) {
+ // This works if the window reference is available
+ if (typeof window === "object") g = window;
+}
+
+// g can still be undefined, but nothing to do about it...
+// We return undefined, instead of nothing here, so it's
+// easier to handle this case. if(!global) { ...}
+
+module.exports = g;
+
+
+/***/ }),
+
+/***/ "24d9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return wrapperMPEvent; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return mergeTitleNView; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+
+/**
+ * mpvue event
+ */
+
+function wrapperMPEvent(event) {
+ return Object.assign({
+ mp: event,
+ _processed: true
+ }, event);
+}
+/**
+ * app-plus titleNView
+ */
+
+function mergeTitleNView(navigationBar, titleNView) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "f"])(titleNView)) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'backgroundColor')) {
+ navigationBar.backgroundColor = titleNView.backgroundColor;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'buttons')) {
+ navigationBar.buttons = titleNView.buttons;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'titleColor')) {
+ navigationBar.textColor = titleNView.titleColor;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'titleText')) {
+ navigationBar.titleText = titleNView.titleText;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'titleSize')) {
+ navigationBar.titleSize = titleNView.titleSize;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'type')) {
+ navigationBar.type = titleNView.type;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "c"])(titleNView, 'searchInput') && _typeof(titleNView.searchInput) === 'object') {
+ navigationBar.searchInput = Object.assign({
+ autoFocus: false,
+ align: 'center',
+ color: '#000000',
+ backgroundColor: 'rgba(255,255,255,0.5)',
+ borderRadius: '0px',
+ placeholder: '',
+ placeholderColor: '#CCCCCC',
+ disabled: false
+ }, titleNView.searchInput);
+ }
+ }
+
+ return navigationBar;
+}
+
+/***/ }),
+
+/***/ "250d":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/input/index.vue?vue&type=template&id=6a171a59&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-input',_vm._g({},_vm.$listeners),[_c('div',{ref:"wrapper",staticClass:"uni-input-wrapper"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(!(_vm.composing || _vm.inputValue.length)),expression:"!(composing || inputValue.length)"}],ref:"placeholder",staticClass:"uni-input-placeholder",class:_vm.placeholderClass,style:(_vm.placeholderStyle)},[_vm._v(_vm._s(_vm.placeholder))]),((_vm.inputType)==='checkbox')?_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"uni-input-input",attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlength,"step":_vm.step,"autocomplete":"off","type":"checkbox"},domProps:{"checked":Array.isArray(_vm.inputValue)?_vm._i(_vm.inputValue,null)>-1:(_vm.inputValue)},on:{"focus":_vm._onFocus,"blur":_vm._onBlur,"input":function($event){$event.stopPropagation();return _vm._onInput($event)},"compositionstart":_vm._onComposition,"compositionend":_vm._onComposition,"keyup":function($event){$event.stopPropagation();return _vm._onKeyup($event)},"change":function($event){var $$a=_vm.inputValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.inputValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.inputValue=$$c}}}}):((_vm.inputType)==='radio')?_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"uni-input-input",attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlength,"step":_vm.step,"autocomplete":"off","type":"radio"},domProps:{"checked":_vm._q(_vm.inputValue,null)},on:{"focus":_vm._onFocus,"blur":_vm._onBlur,"input":function($event){$event.stopPropagation();return _vm._onInput($event)},"compositionstart":_vm._onComposition,"compositionend":_vm._onComposition,"keyup":function($event){$event.stopPropagation();return _vm._onKeyup($event)},"change":function($event){_vm.inputValue=null}}}):_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"uni-input-input",attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlength,"step":_vm.step,"autocomplete":"off","type":_vm.inputType},domProps:{"value":(_vm.inputValue)},on:{"focus":_vm._onFocus,"blur":_vm._onBlur,"input":[function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value},function($event){$event.stopPropagation();return _vm._onInput($event)}],"compositionstart":_vm._onComposition,"compositionend":_vm._onComposition,"keyup":function($event){$event.stopPropagation();return _vm._onKeyup($event)}}})])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/input/index.vue?vue&type=template&id=6a171a59&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/input/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+var INPUT_TYPES = ['text', 'number', 'idcard', 'digit', 'password'];
+var NUMBER_TYPES = ['number', 'digit'];
+/* harmony default export */ var inputvue_type_script_lang_js_ = ({
+ name: 'Input',
+ mixins: [mixins["a" /* emitter */]],
+ model: {
+ prop: 'value',
+ event: 'update:value'
+ },
+ props: {
+ name: {
+ type: String,
+ default: ''
+ },
+ value: {
+ type: [String, Number],
+ default: ''
+ },
+ type: {
+ type: String,
+ default: 'text'
+ },
+ password: {
+ type: [Boolean, String],
+ default: false
+ },
+ placeholder: {
+ type: String,
+ default: ''
+ },
+ placeholderStyle: {
+ type: String,
+ default: ''
+ },
+ placeholderClass: {
+ type: String,
+ default: ''
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ maxlength: {
+ type: [Number, String],
+ default: 140
+ },
+ focus: {
+ type: [Boolean, String],
+ default: false
+ },
+ confirmType: {
+ type: String,
+ default: 'done'
+ }
+ },
+ data: function data() {
+ return {
+ inputValue: this.value + '',
+ composing: false,
+ wrapperHeight: 0,
+ cachedValue: ''
+ };
+ },
+ computed: {
+ inputType: function inputType() {
+ var type = '';
+
+ switch (this.type) {
+ case 'text':
+ this.confirmType === 'search' && (type = 'search');
+ break;
+
+ case 'idcard':
+ // TODO 可能要根据不同平台进行区分处理
+ type = 'text';
+ break;
+
+ case 'digit':
+ type = 'number';
+ break;
+
+ default:
+ type = ~INPUT_TYPES.indexOf(this.type) ? this.type : 'text';
+ break;
+ }
+
+ return this.password ? 'password' : type;
+ },
+ step: function step() {
+ // 处理部分设备中无法输入小数点的问题
+ return ~NUMBER_TYPES.indexOf(this.type) ? '0.000000000000000001' : '';
+ }
+ },
+ watch: {
+ focus: function focus(value) {
+ value && this._focusInput();
+ },
+ value: function value(_value) {
+ this.inputValue = _value + '';
+ },
+ inputValue: function inputValue(value) {
+ this.$emit('update:value', value);
+ },
+ maxlength: function maxlength(value) {
+ var realValue = this.inputValue.slice(0, parseInt(value, 10));
+ realValue !== this.inputValue && (this.inputValue = realValue);
+ }
+ },
+ created: function created() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ mounted: function mounted() {
+ if (this.confirmType === 'search') {
+ var formElem = document.createElement('form');
+ formElem.action = '';
+
+ formElem.onsubmit = function () {
+ return false;
+ };
+
+ formElem.className = 'uni-input-form';
+ formElem.appendChild(this.$refs.input);
+ this.$refs.wrapper.appendChild(formElem);
+ }
+
+ var $vm = this;
+
+ while ($vm) {
+ var scopeId = $vm.$options._scopeId;
+
+ if (scopeId) {
+ this.$refs.placeholder.setAttribute(scopeId, '');
+ }
+
+ $vm = $vm.$parent;
+ }
+
+ this.focus && this._focusInput();
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _onKeyup: function _onKeyup($event) {
+ if ($event.keyCode === 13) {
+ this.$trigger('confirm', $event, {
+ value: $event.target.value
+ });
+ }
+ },
+ _onInput: function _onInput($event) {
+ if (this.composing) {
+ return;
+ } // 处理部分输入法可以输入其它字符的情况
+
+
+ if (~NUMBER_TYPES.indexOf(this.type)) {
+ if (this.$refs.input.validity && !this.$refs.input.validity.valid) {
+ $event.target.value = this.cachedValue;
+ this.inputValue = $event.target.value; // 输入非法字符不触发 input 事件
+
+ return;
+ } else {
+ this.cachedValue = this.inputValue;
+ }
+ } // type="number" 不支持 maxlength 属性,因此需要主动限制长度。
+
+
+ if (this.inputType === 'number') {
+ var maxlength = parseInt(this.maxlength, 10);
+
+ if (maxlength > 0 && $event.target.value.length > maxlength) {
+ $event.target.value = $event.target.value.slice(0, maxlength);
+ this.inputValue = $event.target.value; // 字符长度超出范围不触发 input 事件
+
+ return;
+ }
+ }
+
+ this.$trigger('input', $event, {
+ value: this.inputValue
+ });
+ },
+ _onFocus: function _onFocus($event) {
+ this.$trigger('focus', $event, {
+ value: $event.target.value
+ });
+ },
+ _onBlur: function _onBlur($event) {
+ this.$trigger('blur', $event, {
+ value: $event.target.value
+ });
+ },
+ _focusInput: function _focusInput() {
+ var _this = this;
+
+ setTimeout(function () {
+ _this.$refs.input.focus();
+ }, 350);
+ },
+ _blurInput: function _blurInput() {
+ var _this2 = this;
+
+ setTimeout(function () {
+ _this2.$refs.input.blur();
+ }, 350);
+ },
+ _onComposition: function _onComposition($event) {
+ if ($event.type === 'compositionstart') {
+ this.composing = true;
+ } else {
+ this.composing = false;
+ }
+ },
+ _resetFormData: function _resetFormData() {
+ this.inputValue = '';
+ },
+ _getFormData: function _getFormData() {
+ return this.name ? {
+ value: this.inputValue,
+ key: this.name
+ } : {};
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/input/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_inputvue_type_script_lang_js_ = (inputvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/input/index.vue?vue&type=style&index=0&lang=css&
+var inputvue_type_style_index_0_lang_css_ = __webpack_require__("0f55");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/input/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_inputvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var input = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "25ce":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox-group/index.vue?vue&type=template&id=6fa043c2&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-checkbox-group',_vm._g({},_vm.$listeners),[_vm._t("default")],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=template&id=6fa043c2&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox-group/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var checkbox_groupvue_type_script_lang_js_ = ({
+ name: 'CheckboxGroup',
+ mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]],
+ props: {
+ name: {
+ type: String,
+ default: ''
+ }
+ },
+ data: function data() {
+ return {
+ checkboxList: []
+ };
+ },
+ listeners: {
+ '@checkbox-change': '_changeHandler',
+ '@checkbox-group-update': '_checkboxGroupUpdateHandler'
+ },
+ created: function created() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _changeHandler: function _changeHandler($event) {
+ var value = [];
+ this.checkboxList.forEach(function (vm) {
+ if (vm.checkboxChecked) {
+ value.push(vm.value);
+ }
+ });
+ this.$trigger('change', $event, {
+ value: value
+ });
+ },
+ _checkboxGroupUpdateHandler: function _checkboxGroupUpdateHandler($event) {
+ if ($event.type === 'add') {
+ this.checkboxList.push($event.vm);
+ } else {
+ var index = this.checkboxList.indexOf($event.vm);
+ this.checkboxList.splice(index, 1);
+ }
+ },
+ _getFormData: function _getFormData() {
+ var data = {};
+
+ if (this.name !== '') {
+ var value = [];
+ this.checkboxList.forEach(function (vm) {
+ if (vm.checkboxChecked) {
+ value.push(vm.value);
+ }
+ });
+ data['value'] = value;
+ data['key'] = this.name;
+ }
+
+ return data;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_checkbox_groupvue_type_script_lang_js_ = (checkbox_groupvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=style&index=0&lang=css&
+var checkbox_groupvue_type_style_index_0_lang_css_ = __webpack_require__("0998");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_checkbox_groupvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var checkbox_group = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "2604":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "openDocument", function() { return openDocument; });
+var openDocument = {
+ filePath: {
+ type: String,
+ required: true
+ },
+ fileType: {
+ type: String
+ }
+};
+
+/***/ }),
+
+/***/ "2608":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return tryCatchFramework; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return tryCatch; });
+/**
+ * 框架内 try-catch
+ */
+function tryCatchFramework(fn) {
+ return function () {
+ try {
+ return fn.apply(fn, arguments);
+ } catch (e) {
+ // TODO
+ console.error(e);
+ }
+ };
+}
+/**
+ * 开发者 try-catch
+ */
+
+function tryCatch(fn) {
+ return function () {
+ try {
+ return fn.apply(fn, arguments);
+ } catch (e) {
+ // TODO
+ console.error(e);
+ }
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "26d3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarItem", function() { return setTabBarItem; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarStyle", function() { return setTabBarStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBar", function() { return hideTabBar; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBar", function() { return showTabBar; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBarRedDot", function() { return hideTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBarRedDot", function() { return showTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeTabBarBadge", function() { return removeTabBarBadge; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarBadge", function() { return setTabBarBadge; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+var setTabBarItemProps = ['text', 'iconPath', 'selectedIconPath'];
+var setTabBarStyleProps = ['color', 'selectedColor', 'backgroundColor', 'borderStyle'];
+var setTabBarBadgeProps = ['badge', 'redDot'];
+
+function setTabBar(type) {
+ var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var app = getApp();
+
+ if (app) {
+ var isTabBar = false;
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ if (pages[pages.length - 1].$page.meta.isTabBar) {
+ isTabBar = true;
+ }
+ } else if (app.$children[0].hasTabBar) {
+ isTabBar = true;
+ }
+
+ if (!isTabBar) {
+ return {
+ errMsg: "".concat(type, ":fail not TabBar page")
+ };
+ }
+
+ var index = args.index;
+ var tabBar = app.$children[0].tabBar;
+
+ if (index >= __uniConfig.tabBar.list.length) {
+ return {
+ errMsg: "".concat(type, ":fail tabbar item not found")
+ };
+ }
+
+ switch (type) {
+ case 'showTabBar':
+ app.$children[0].hideTabBar = false;
+ break;
+
+ case 'hideTabBar':
+ app.$children[0].hideTabBar = true;
+ break;
+
+ case 'setTabBarItem':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "g"])(tabBar.list[index], setTabBarItemProps, args);
+ break;
+
+ case 'setTabBarStyle':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "g"])(tabBar, setTabBarStyleProps, args);
+ break;
+
+ case 'showTabBarRedDot':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "g"])(tabBar.list[index], setTabBarBadgeProps, {
+ badge: '',
+ redDot: true
+ });
+ break;
+
+ case 'setTabBarBadge':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "g"])(tabBar.list[index], setTabBarBadgeProps, {
+ badge: args.text,
+ redDot: true
+ });
+ break;
+
+ case 'hideTabBarRedDot':
+ case 'removeTabBarBadge':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "g"])(tabBar.list[index], setTabBarBadgeProps, {
+ badge: '',
+ redDot: false
+ });
+ break;
+ }
+ }
+
+ return {};
+}
+
+function setTabBarItem(args) {
+ return setTabBar('setTabBarItem', args);
+}
+function setTabBarStyle(args) {
+ return setTabBar('setTabBarStyle', args);
+}
+function hideTabBar(args) {
+ return setTabBar('hideTabBar', args);
+}
+function showTabBar(args) {
+ return setTabBar('showTabBar', args);
+}
+function hideTabBarRedDot(args) {
+ return setTabBar('hideTabBarRedDot', args);
+}
+function showTabBarRedDot(args) {
+ return setTabBar('showTabBarRedDot', args);
+}
+function removeTabBarBadge(args) {
+ return setTabBar('removeTabBarBadge', args);
+}
+function setTabBarBadge(args) {
+ return setTabBar('setTabBarBadge', args);
+}
+
+/***/ }),
+
+/***/ "2765":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_modal_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("91ce");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_modal_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_modal_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_modal_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "27a7":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return invokeCallbackHandler; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return wrapperUnimplemented; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return wrapper; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _catch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2608");
+/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("ed1a");
+/* harmony import */ var _protocol__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("cc76");
+/* harmony import */ var _params__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("de29");
+
+
+
+
+
+
+function invokeCallbackHandlerFail(err, apiName, callbackId) {
+ var errMsg = "".concat(apiName, ":fail ").concat(err);
+ console.error(errMsg);
+
+ if (callbackId === -1) {
+ throw new Error(errMsg);
+ }
+
+ if (typeof callbackId === 'number') {
+ invokeCallbackHandler(callbackId, {
+ errMsg: errMsg
+ });
+ }
+
+ return false;
+}
+
+var callbackApiParamTypes = [{
+ name: 'callback',
+ type: Function,
+ required: true
+}];
+
+function validateParams(apiName, paramsData, callbackId) {
+ var paramTypes = _protocol__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"][apiName];
+
+ if (!paramTypes && Object(_promise__WEBPACK_IMPORTED_MODULE_2__[/* isCallbackApi */ "a"])(apiName)) {
+ paramTypes = callbackApiParamTypes;
+ }
+
+ if (paramTypes) {
+ if (Array.isArray(paramTypes) && Array.isArray(paramsData)) {
+ var paramTypeObj = Object.create(null);
+ var paramsDataObj = Object.create(null);
+ var paramsDataLength = paramsData.length;
+ paramTypes.forEach(function (paramType, index) {
+ paramTypeObj[paramType.name] = paramType;
+
+ if (paramsDataLength > index) {
+ paramsDataObj[paramType.name] = paramsData[index];
+ }
+ });
+ paramTypes = paramTypeObj;
+ paramsData = paramsDataObj;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(paramTypes.beforeValidate)) {
+ var err = paramTypes.beforeValidate(paramsData);
+
+ if (err) {
+ return invokeCallbackHandlerFail(err, apiName, callbackId);
+ }
+ }
+
+ var keys = Object.keys(paramTypes);
+
+ for (var i = 0; i < keys.length; i++) {
+ if (keys[i] === 'beforeValidate') {
+ continue;
+ }
+
+ var _err = Object(_params__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])(keys[i], paramTypes, paramsData);
+
+ if (_err) {
+ return invokeCallbackHandlerFail(_err, apiName, callbackId);
+ }
+ }
+ }
+
+ return true;
+}
+
+var invokeCallbackId = 1;
+var invokeCallbacks = {};
+
+function createKeepAliveApiCallback(apiName, callback) {
+ var callbackId = invokeCallbackId++;
+ var invokeCallbackName = 'api.' + apiName + '.' + callbackId;
+
+ var invokeCallback = function invokeCallback(res) {
+ callback(res);
+ };
+
+ invokeCallbacks[callbackId] = {
+ name: invokeCallbackName,
+ keepAlive: true,
+ callback: invokeCallback
+ };
+ return callbackId;
+}
+
+function createApiCallback(apiName) {
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var extras = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+ if (!Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "f"])(params)) {
+ return {
+ params: params
+ };
+ }
+
+ params = Object.assign({}, params);
+ var apiCallbacks = {};
+
+ for (var name in params) {
+ var param = params[name];
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(param)) {
+ apiCallbacks[name] = Object(_catch__WEBPACK_IMPORTED_MODULE_1__[/* tryCatch */ "a"])(param);
+ delete params[name];
+ }
+ }
+
+ var success = apiCallbacks.success,
+ fail = apiCallbacks.fail,
+ cancel = apiCallbacks.cancel,
+ complete = apiCallbacks.complete;
+ var hasSuccess = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(success);
+ var hasFail = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(fail);
+ var hasCancel = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(cancel);
+ var hasComplete = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(complete);
+
+ if (!hasSuccess && !hasFail && !hasCancel && !hasComplete) {
+ // 无回调
+ return {
+ params: params
+ };
+ }
+
+ var wrapperCallbacks = {};
+
+ for (var _name in extras) {
+ var extra = extras[_name];
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(extra)) {
+ wrapperCallbacks[_name] = Object(_catch__WEBPACK_IMPORTED_MODULE_1__[/* tryCatchFramework */ "b"])(extra);
+ delete extras[_name];
+ }
+ }
+
+ var beforeSuccess = wrapperCallbacks.beforeSuccess,
+ afterSuccess = wrapperCallbacks.afterSuccess,
+ beforeFail = wrapperCallbacks.beforeFail,
+ afterFail = wrapperCallbacks.afterFail,
+ beforeCancel = wrapperCallbacks.beforeCancel,
+ afterCancel = wrapperCallbacks.afterCancel,
+ afterAll = wrapperCallbacks.afterAll;
+ var callbackId = invokeCallbackId++;
+ var invokeCallbackName = 'api.' + apiName + '.' + callbackId;
+
+ var invokeCallback = function invokeCallback(res) {
+ res.errMsg = res.errMsg || apiName + ':ok';
+ var errMsg = res.errMsg;
+
+ if (errMsg.indexOf(apiName + ':ok') === 0) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(beforeSuccess) && beforeSuccess(res);
+ hasSuccess && success(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(afterSuccess) && afterSuccess(res);
+ } else if (errMsg.indexOf(apiName + ':cancel') === 0) {
+ res.errMsg = res.errMsg.replace(apiName + ':cancel', apiName + ':fail cancel');
+ hasFail && fail(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(beforeCancel) && beforeCancel(res);
+ hasCancel && cancel(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(afterCancel) && afterCancel(res);
+ } else if (errMsg.indexOf(apiName + ':fail') === 0) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(beforeFail) && beforeFail(res);
+ hasFail && fail(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(afterFail) && afterFail(res);
+ }
+
+ hasComplete && complete(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(afterAll) && afterAll(res);
+ };
+
+ invokeCallbacks[callbackId] = {
+ name: invokeCallbackName,
+ callback: invokeCallback
+ };
+ return {
+ params: params,
+ callbackId: callbackId
+ };
+}
+
+function createInvokeCallback(apiName) {
+ var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var extras = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+ var _createApiCallback = createApiCallback(apiName, params, extras),
+ args = _createApiCallback.params,
+ callbackId = _createApiCallback.callbackId;
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "f"])(args) && !validateParams(apiName, args, callbackId)) {
+ return {
+ params: args,
+ callbackId: false
+ };
+ }
+
+ return {
+ params: args,
+ callbackId: callbackId
+ };
+}
+
+function invokeCallbackHandler(invokeCallbackId, res) {
+ if (typeof invokeCallbackId === 'number') {
+ var invokeCallback = invokeCallbacks[invokeCallbackId];
+
+ if (invokeCallback) {
+ if (!invokeCallback.keepAlive) {
+ delete invokeCallbacks[invokeCallbackId];
+ }
+
+ return invokeCallback.callback(res);
+ }
+ }
+
+ return res;
+}
+function wrapperUnimplemented(name) {
+ return function (args) {
+ console.error('API `' + name + '` is not yet implemented');
+ };
+}
+function wrapper(name, invokeMethod, extras) {
+ if (!Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(invokeMethod)) {
+ return invokeMethod;
+ }
+
+ return function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ if (Object(_promise__WEBPACK_IMPORTED_MODULE_2__[/* isSyncApi */ "b"])(name)) {
+ if (validateParams(name, args, -1)) {
+ return invokeMethod.apply(null, args);
+ }
+ } else if (Object(_promise__WEBPACK_IMPORTED_MODULE_2__[/* isCallbackApi */ "a"])(name)) {
+ if (validateParams(name, args, -1)) {
+ return invokeMethod(createKeepAliveApiCallback(name, args[0]));
+ }
+ } else {
+ var argsObj = {};
+
+ if (args.length) {
+ argsObj = args[0];
+ }
+
+ var _createInvokeCallback = createInvokeCallback(name, argsObj, extras),
+ params = _createInvokeCallback.params,
+ callbackId = _createInvokeCallback.callbackId;
+
+ if (callbackId !== false) {
+ var res;
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "e"])(params)) {
+ res = invokeMethod(callbackId);
+ } else {
+ res = invokeMethod(params, callbackId);
+ }
+
+ if (res && !Object(_promise__WEBPACK_IMPORTED_MODULE_2__[/* isTaskApi */ "c"])(name)) {
+ res = invokeCallbackHandler(callbackId, res);
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "f"])(res)) {
+ res.errMsg = res.errMsg || name + ':ok';
+ }
+ }
+
+ return res;
+ }
+ }
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "27ab":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/picker-view/index.vue?vue&type=script&lang=js&
+function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
+
+function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
+
+/* harmony default export */ var picker_viewvue_type_script_lang_js_ = ({
+ name: 'PickerView',
+ props: {
+ value: {
+ type: Array,
+ default: function _default() {
+ return [];
+ },
+ validator: function validator(val) {
+ return Array.isArray(val) && val.filter(function (val) {
+ return typeof val === 'number';
+ }).length === val.length;
+ }
+ },
+ indicatorStyle: {
+ type: String,
+ default: ''
+ },
+ indicatorClass: {
+ type: String,
+ default: ''
+ },
+ maskStyle: {
+ type: String,
+ default: ''
+ },
+ maskClass: {
+ type: String,
+ default: ''
+ }
+ },
+ data: function data() {
+ return {
+ valueSync: _toConsumableArray(this.value),
+ height: 34,
+ items: [],
+ changeSource: ''
+ };
+ },
+ watch: {
+ value: function value(val) {
+ var _this = this;
+
+ this.valueSync.length = val.length;
+ val.forEach(function (val, index) {
+ if (val !== _this.valueSync[index]) {
+ _this.$set(_this.valueSync, index, val);
+ }
+ });
+ },
+ valueSync: {
+ deep: true,
+ handler: function handler(val, oldVal) {
+ if (this.changeSource === '') {
+ this._valueChanged(val);
+ } else {
+ this.changeSource = ''; // 避免外部直接对此值进行修改
+
+ var value = val.map(function (val) {
+ return val;
+ });
+ this.$emit('update:value', value);
+ this.$trigger('change', {}, {
+ value: value
+ });
+ }
+ }
+ }
+ },
+ methods: {
+ getItemIndex: function getItemIndex(vnode) {
+ return this.items.indexOf(vnode);
+ },
+ getItemValue: function getItemValue(vm) {
+ return this.valueSync[this.getItemIndex(vm.$vnode)] || 0;
+ },
+ setItemValue: function setItemValue(vm, val) {
+ var index = this.getItemIndex(vm.$vnode);
+ var oldVal = this.valueSync[index];
+
+ if (oldVal !== val) {
+ this.changeSource = 'touch';
+ this.$set(this.valueSync, index, val);
+ }
+ },
+ _valueChanged: function _valueChanged(val) {
+ this.items.forEach(function (item, index) {
+ item.componentInstance.setCurrent(val[index] || 0);
+ });
+ },
+ _resize: function _resize(_ref) {
+ var height = _ref.height;
+ this.height = height;
+ }
+ },
+ render: function render(createElement) {
+ var items = [];
+
+ if (this.$slots.default) {
+ this.$slots.default.forEach(function (vnode) {
+ if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-picker-view-column') {
+ items.push(vnode);
+ }
+ });
+ }
+
+ this.items = items;
+ return createElement('uni-picker-view', {
+ on: this.$listeners
+ }, [createElement('v-uni-resize-sensor', {
+ attrs: {
+ initial: true
+ },
+ on: {
+ resize: this._resize
+ }
+ }), createElement('div', {
+ ref: 'wrapper',
+ 'class': 'uni-picker-view-wrapper'
+ }, items)]);
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/picker-view/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_picker_viewvue_type_script_lang_js_ = (picker_viewvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/picker-view/index.vue?vue&type=style&index=0&lang=css&
+var picker_viewvue_type_style_index_0_lang_css_ = __webpack_require__("6062");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/picker-view/index.vue
+var render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_picker_viewvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var picker_view = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "2829":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLocation", function() { return getLocation; });
+/* harmony import */ var _helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ffdc");
+
+/**
+ * wgs84坐标转Gcj02坐标
+ * @param {object} coords
+ * @param {Function} success
+ * @param {Function} error
+ */
+
+function wgs84ToGcj02(coords, success, error) {
+ /**
+ * uniapp 内置key
+ */
+ var key = __uniConfig.qqMapKey;
+ var url = "https://apis.map.qq.com/ws/coord/v1/translate?locations=".concat(coords.latitude, ",").concat(coords.longitude, "&type=1&key=").concat(key, "&output=jsonp");
+ Object(_helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_0__[/* getJSONP */ "a"])(url, {}, function (res) {
+ if ('locations' in res && res.locations.length) {
+ success({
+ longitude: res.locations[0].lng,
+ latitude: res.locations[0].lat
+ });
+ } else {
+ error(res);
+ }
+ }, error);
+}
+/**
+ * 获取定位信息
+ * @param {*} param0
+ * @param {*} callbackId
+ */
+
+
+function getLocation(_ref, callbackId) {
+ var type = _ref.type,
+ altitude = _ref.altitude;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+
+ function callback(coords) {
+ invoke(callbackId, Object.assign(coords, {
+ errMsg: 'getLocation:ok',
+ verticalAccuracy: coords.altitudeAccuracy || 0,
+ // 无专门水平精度,使用位置精度替代
+ horizontalAccuracy: coords.accuracy
+ }));
+ }
+
+ if (navigator.geolocation) {
+ navigator.geolocation.getCurrentPosition(function (position) {
+ var coords = position.coords;
+
+ if (type === 'WGS84') {
+ callback(coords);
+ } else {
+ wgs84ToGcj02(coords, callback, function (err) {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail ' + JSON.stringify(err)
+ });
+ });
+ }
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail'
+ });
+ }, {
+ enableHighAccuracy: altitude,
+ timeout: 1000 * 60 * 5
+ });
+ } else {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail device nonsupport geolocation'
+ });
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "2bbe":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/view/index.vue?vue&type=template&id=164058a7&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hoverClass && _vm.hoverClass !== 'none')?_c('uni-view',_vm._g({class:[_vm.hovering?_vm.hoverClass:''],on:{"touchstart":_vm._hoverTouchStart,"touchend":_vm._hoverTouchEnd,"touchcancel":_vm._hoverTouchCancel}},_vm.$listeners),[_vm._t("default")],2):_c('uni-view',_vm._g({},_vm.$listeners),[_vm._t("default")],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/view/index.vue?vue&type=template&id=164058a7&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/hover.js
+var hover = __webpack_require__("83a6");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/view/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var viewvue_type_script_lang_js_ = ({
+ name: 'View',
+ mixins: [hover["a" /* default */]],
+ listeners: {
+ 'label-click': 'clickHandler'
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/view/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_viewvue_type_script_lang_js_ = (viewvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/view/index.vue?vue&type=style&index=0&lang=css&
+var viewvue_type_style_index_0_lang_css_ = __webpack_require__("e865");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/view/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_viewvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var view = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "2bdd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onAccelerometerChange", function() { return onAccelerometerChange; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startAccelerometer", function() { return startAccelerometer; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopAccelerometer", function() { return stopAccelerometer; });
+var callbacks = [];
+var listener;
+/**
+ * 监听加速度
+ * @param {*} callbackId
+ */
+
+function onAccelerometerChange(callbackId) {
+ callbacks.push(callbackId);
+
+ if (!listener) {
+ startAccelerometer();
+ }
+}
+/**
+ * 开始监听加速度数据
+ */
+
+function startAccelerometer() {
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+
+ if (window.DeviceMotionEvent) {
+ listener = function listener(event) {
+ callbacks.forEach(function (callbackId) {
+ var acceleration = event.acceleration || event.accelerationIncludingGravity;
+ invoke(callbackId, {
+ x: acceleration.x || 0,
+ y: acceleration.y || 0,
+ z: acceleration.z || 0,
+ errMsg: 'onAccelerometerChange:ok'
+ });
+ });
+ };
+
+ window.addEventListener('devicemotion', listener, false);
+ return {};
+ } else {
+ throw new Error('device nonsupport devicemotion');
+ }
+}
+/**
+ * 停止监听加速度数据
+ */
+
+function stopAccelerometer() {
+ if (listener) {
+ window.removeEventListener('devicemotion', listener, false);
+ listener = null;
+ }
+
+ return {};
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "2ef3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge, global, UniServiceJSBridge) {/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8bbf");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
+/**
+ * 1.导出全局对象(UniViewJSBridge,UniServiceJSBridge,uni,getApp,getCurrentPages)
+ * 2.引入 Vue 插件(uniVueServicePlugin,uniVueServicePlugin)
+ * 3.引入 Vue 组件
+ */
+
+global.UniViewJSBridge = {
+ subscribeHandler: UniViewJSBridge.subscribeHandler
+};
+global.UniServiceJSBridge = {
+ subscribeHandler: UniServiceJSBridge.subscribeHandler
+};
+
+var _require = __webpack_require__("b7b5"),
+ uni = _require.default,
+ getApp = _require.getApp,
+ getCurrentPages = _require.getCurrentPages;
+
+global.uni = uni;
+global.wx = global.uni;
+global.getApp = getApp;
+global.getCurrentPages = getCurrentPages;
+vue__WEBPACK_IMPORTED_MODULE_0___default.a.use(__webpack_require__("4ca9").default, {
+ routes: __uniRoutes
+});
+vue__WEBPACK_IMPORTED_MODULE_0___default.a.use(__webpack_require__("8c15").default, {
+ routes: __uniRoutes
+});
+
+__webpack_require__("442e");
+
+__webpack_require__("8f7e");
+
+__webpack_require__("1efd");
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c"), __webpack_require__("24aa"), __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "2fb0":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "3042":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redirectTo", function() { return redirectTo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "navigateTo", function() { return navigateTo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "navigateBack", function() { return navigateBack; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reLaunch", function() { return reLaunch; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchTab", function() { return switchTab; });
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("85b6");
+
+
+function onAppRoute(type) {
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+ url = _ref.url,
+ delta = _ref.delta,
+ animationType = _ref.animationType,
+ animationDuration = _ref.animationDuration,
+ _ref$from = _ref.from,
+ from = _ref$from === void 0 ? 'navigateBack' : _ref$from,
+ detail = _ref.detail;
+
+ var router = getApp().$router;
+
+ switch (type) {
+ case 'redirectTo':
+ router.replace({
+ type: type,
+ path: url
+ });
+ break;
+
+ case 'navigateTo':
+ router.push({
+ type: type,
+ path: url,
+ animationType: animationType,
+ animationDuration: animationDuration
+ });
+ break;
+
+ case 'navigateBack':
+ var canBack = true;
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ var page = pages[pages.length - 1];
+
+ if (Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__[/* hasLifecycleHook */ "a"])(page.$options, 'onBackPress') && page.__call_hook('onBackPress', {
+ from: from
+ }) === true) {
+ canBack = false;
+ }
+ }
+
+ if (canBack) {
+ if (delta > 1) {
+ router._$delta = delta;
+ }
+
+ router.go(-delta, {
+ animationType: animationType,
+ animationDuration: animationDuration
+ });
+ }
+
+ break;
+
+ case 'reLaunch':
+ router.replace({
+ type: type,
+ path: url
+ });
+ break;
+
+ case 'switchTab':
+ router.replace({
+ type: type,
+ path: url,
+ params: {
+ detail: detail
+ }
+ });
+ break;
+ }
+
+ return {
+ errMsg: type + ':ok'
+ };
+}
+
+function redirectTo(args) {
+ return onAppRoute('redirectTo', args);
+}
+function navigateTo(args) {
+ return onAppRoute('navigateTo', args);
+}
+function navigateBack(args) {
+ return onAppRoute('navigateBack', args);
+}
+function reLaunch(args) {
+ return onAppRoute('reLaunch', args);
+}
+function switchTab(args) {
+ return onAppRoute('switchTab', args);
+}
+
+/***/ }),
+
+/***/ "31e2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/platforms/h5/view/components/video/index.vue?vue&type=template&id=f38201f6&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-video',_vm._g({attrs:{"id":_vm.id,"src":_vm.src,"initial-time":_vm.initialTime,"duration":_vm.duration,"controls":_vm.controls,"danmu-list":_vm.danmuList,"danmu-btn":_vm.danmuBtn,"enable-danmu":_vm.enableDanmu,"autoplay":_vm.autoplay,"loop":_vm.loop,"muted":_vm.muted,"page-gesture":_vm.pageGesture,"direction":_vm.direction,"show-progress":_vm.showProgress,"show-fullscreen-btn":_vm.showFullscreenBtn,"show-play-btn":_vm.showPlayBtn,"show-center-play-btn":_vm.showCenterPlayBtn,"enable-progress-gesture":_vm.enableProgressGesture,"object-fit":_vm.objectFit,"poster":_vm.poster,"x5-video-player-type":_vm.x5VideoPlayerType,"x5-video-player-fullscreen":_vm.x5VideoPlayerFullscren,"x5-video-orientation":_vm.x5VideoOrientation,"x5-playsinline":_vm.x5Playsinline}},_vm.$listeners),[_c('div',{ref:"container",staticClass:"uni-video-container",class:{'uni-video-type-fullscreen':_vm.fullscreen,'uni-video-type-rotate-left':_vm.rotateType==='left','uni-video-type-rotate-right':_vm.rotateType==='right'},style:({width:_vm.fullscreen?_vm.width:'100%',height:_vm.fullscreen?_vm.height:'100%'}),on:{"click":_vm.triggerControls,"touchstart":function($event){return _vm.touchstart($event)},"touchend":function($event){return _vm.touchend($event)},"touchmove":function($event){return _vm.touchmove($event)}}},[_c('video',{ref:"video",staticClass:"uni-video-video",style:({opacity:!_vm.start?0.8:1,objectFit:_vm.objectFit}),attrs:{"loop":_vm.loop,"src":_vm.srcSync,"poster":_vm.poster,"x5-video-player-type":_vm.x5VideoPlayerType,"x5-video-player-fullscreen":_vm.x5VideoPlayerFullscren,"x5-video-orientation":_vm.x5VideoOrientation,"x5-playsinline":_vm.x5Playsinline,"webkit-playsinline":"","playsinline":""},domProps:{"muted":_vm.muted}}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.controlsShow),expression:"controlsShow"}],staticClass:"uni-video-bar uni-video-bar-full",on:{"click":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:"uni-video-controls"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showPlayBtn),expression:"showPlayBtn"}],staticClass:"uni-video-control-button",class:{'uni-video-control-button-play':!_vm.playing,'uni-video-control-button-pause':_vm.playing},on:{"click":function($event){$event.stopPropagation();return _vm.trigger($event)}}}),_c('div',{staticClass:"uni-video-current-time"},[_vm._v(_vm._s(_vm._f("getTime")(_vm.currentTime)))]),_c('div',{ref:"progress",staticClass:"uni-video-progress-container",on:{"click":function($event){$event.stopPropagation();return _vm.clickProgress($event)}}},[_c('div',{staticClass:"uni-video-progress"},[_c('div',{staticClass:"uni-video-progress-buffered",style:({width:_vm.buffered*100+'%'})}),_c('div',{ref:"ball",staticClass:"uni-video-ball",style:({left:_vm.progress+'%'})},[_c('div',{staticClass:"uni-video-inner"})])])]),_c('div',{staticClass:"uni-video-duration"},[_vm._v(_vm._s(_vm._f("getTime")((_vm.duration||_vm.durationTime))))])]),(_vm.danmuBtn)?_c('div',{staticClass:"uni-video-danmu-button",class:{'uni-video-danmu-button-active':_vm.enableDanmuSync},on:{"click":function($event){$event.stopPropagation();return _vm.triggerDanmu($event)}}},[_vm._v("弹幕")]):_vm._e(),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showFullscreenBtn),expression:"showFullscreenBtn"}],staticClass:"uni-video-fullscreen",class:{'uni-video-type-fullscreen':_vm.fullscreen},on:{"click":function($event){$event.stopPropagation();return _vm.triggerFullscreen($event)}}})]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.start&&_vm.enableDanmuSync),expression:"start&&enableDanmuSync"}],ref:"danmu",staticClass:"uni-video-danmu",staticStyle:{"z-index":"0"}}),(!_vm.start)?_c('div',{staticClass:"uni-video-cover",on:{"click":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:"uni-video-cover-play-button",on:{"click":function($event){$event.stopPropagation();return _vm.play($event)}}}),_c('p',{staticClass:"uni-video-cover-duration"},[_vm._v(_vm._s(_vm._f("getTime")((_vm.duration||_vm.durationTime))))])]):_vm._e(),_c('div',{staticClass:"uni-video-toast",class:{'uni-video-toast-volume':_vm.gestureType==='volume'}},[_c('div',{staticClass:"uni-video-toast-title"},[_vm._v("音量")]),_c('svg',{staticClass:"uni-video-toast-icon",attrs:{"width":"200px","height":"200px","viewBox":"0 0 1024 1024","version":"1.1","xmlns":"http://www.w3.org/2000/svg"}},[_c('path',{attrs:{"d":"M475.400704 201.19552l0 621.674496q0 14.856192-10.856448 25.71264t-25.71264 10.856448-25.71264-10.856448l-190.273536-190.273536-149.704704 0q-14.856192 0-25.71264-10.856448t-10.856448-25.71264l0-219.414528q0-14.856192 10.856448-25.71264t25.71264-10.856448l149.704704 0 190.273536-190.273536q10.856448-10.856448 25.71264-10.856448t25.71264 10.856448 10.856448 25.71264zm219.414528 310.837248q0 43.425792-24.28416 80.851968t-64.2816 53.425152q-5.71392 2.85696-14.2848 2.85696-14.856192 0-25.71264-10.570752t-10.856448-25.998336q0-11.999232 6.856704-20.284416t16.570368-14.2848 19.427328-13.142016 16.570368-20.284416 6.856704-32.569344-6.856704-32.569344-16.570368-20.284416-19.427328-13.142016-16.570368-14.2848-6.856704-20.284416q0-15.427584 10.856448-25.998336t25.71264-10.570752q8.57088 0 14.2848 2.85696 39.99744 15.427584 64.2816 53.139456t24.28416 81.137664zm146.276352 0q0 87.422976-48.56832 161.41824t-128.5632 107.707392q-7.428096 2.85696-14.2848 2.85696-15.427584 0-26.284032-10.856448t-10.856448-25.71264q0-22.284288 22.284288-33.712128 31.997952-16.570368 43.425792-25.141248 42.283008-30.855168 65.995776-77.423616t23.712768-99.136512-23.712768-99.136512-65.995776-77.423616q-11.42784-8.57088-43.425792-25.141248-22.284288-11.42784-22.284288-33.712128 0-14.856192 10.856448-25.71264t25.71264-10.856448q7.428096 0 14.856192 2.85696 79.99488 33.712128 128.5632 107.707392t48.56832 161.41824zm146.276352 0q0 131.42016-72.566784 241.41312t-193.130496 161.989632q-7.428096 2.85696-14.856192 2.85696-14.856192 0-25.71264-10.856448t-10.856448-25.71264q0-20.570112 22.284288-33.712128 3.999744-2.285568 12.85632-5.999616t12.85632-5.999616q26.284032-14.2848 46.854144-29.140992 70.281216-51.996672 109.707264-129.705984t39.426048-165.132288-39.426048-165.132288-109.707264-129.705984q-20.570112-14.856192-46.854144-29.140992-3.999744-2.285568-12.85632-5.999616t-12.85632-5.999616q-22.284288-13.142016-22.284288-33.712128 0-14.856192 10.856448-25.71264t25.71264-10.856448q7.428096 0 14.856192 2.85696 120.563712 51.996672 193.130496 161.989632t72.566784 241.41312z"}})]),_c('div',{staticClass:"uni-video-toast-value"},[_c('div',{staticClass:"uni-video-toast-value-content",style:({width:_vm.volumeNew*100+'%'})},[_c('div',{staticClass:"uni-video-toast-volume-grids"},_vm._l((10),function(item,index){return _c('div',{key:index,staticClass:"uni-video-toast-volume-grids-item"})}),0)])])]),_c('div',{staticClass:"uni-video-toast",class:{'uni-video-toast-progress':_vm.gestureType=='progress'}},[_c('div',{staticClass:"uni-video-toast-title"},[_vm._v(_vm._s(_vm._f("getTime")(_vm.currentTimeNew))+" / "+_vm._s(_vm._f("getTime")(_vm.durationTime)))])])]),_c('div',{staticStyle:{"position":"absolute","top":"0","width":"100%","height":"100%","overflow":"hidden","pointer-events":"none"}},[_vm._t("default")],2)])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/h5/view/components/video/index.vue?vue&type=template&id=f38201f6&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules
+var mixins = __webpack_require__("8af1");
+
+// EXTERNAL MODULE: ./src/shared/index.js + 3 modules
+var shared = __webpack_require__("f2b3");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/platforms/h5/view/components/video/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+var passiveOptions = shared["h" /* supportsPassive */] ? {
+ passive: false
+} : false;
+var GestureType = {
+ NONE: 'none',
+ STOP: 'stop',
+ VOLUME: 'volume',
+ PROGRESS: 'progress'
+};
+/* harmony default export */ var videovue_type_script_lang_js_ = ({
+ name: 'Video',
+ filters: {
+ getTime: function getTime(time) {
+ var h = Math.floor(time / 3600);
+ var m = Math.floor(time % 3600 / 60);
+ var s = Math.floor(time % 3600 % 60);
+ h = (h < 10 ? '0' : '') + h;
+ m = (m < 10 ? '0' : '') + m;
+ s = (s < 10 ? '0' : '') + s;
+ var str = m + ':' + s;
+
+ if (h !== '00') {
+ str = h + ':' + str;
+ }
+
+ return str;
+ }
+ },
+ mixins: [mixins["d" /* subscriber */]],
+ props: {
+ id: {
+ type: String,
+ default: ''
+ },
+ src: {
+ type: String,
+ default: ''
+ },
+ duration: {
+ type: [Number, String],
+ default: ''
+ },
+ controls: {
+ type: [Boolean, String],
+ default: true
+ },
+ danmuList: {
+ type: Array,
+ default: function _default() {
+ return [];
+ }
+ },
+ danmuBtn: {
+ type: [Boolean, String],
+ default: false
+ },
+ enableDanmu: {
+ type: [Boolean, String],
+ default: false
+ },
+ autoplay: {
+ type: [Boolean, String],
+ default: false
+ },
+ loop: {
+ type: [Boolean, String],
+ default: false
+ },
+ muted: {
+ type: [Boolean, String],
+ default: false
+ },
+ objectFit: {
+ type: String,
+ default: 'contain'
+ },
+ poster: {
+ type: String,
+ default: ''
+ },
+ direction: {
+ type: [String, Number],
+ default: 360
+ },
+ showProgress: {
+ type: Boolean,
+ default: true
+ },
+ initialTime: {
+ type: [String, Number],
+ default: 0
+ },
+ showFullscreenBtn: {
+ type: [Boolean, String],
+ default: true
+ },
+ pageGesture: {
+ type: [Boolean, String],
+ default: false
+ },
+ enableProgressGesture: {
+ type: [Boolean, String],
+ default: true
+ },
+ showPlayBtn: {
+ type: [Boolean, String],
+ default: true
+ },
+ x5VideoPlayerType: {
+ type: [Boolean, String],
+ default: false
+ },
+ x5VideoPlayerFullscren: {
+ type: [Boolean, String],
+ default: false
+ },
+ x5VideoOrientation: {
+ type: [Boolean, String],
+ default: false
+ },
+ x5Playsinline: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ data: function data() {
+ return {
+ start: false,
+ playing: false,
+ currentTime: 0,
+ durationTime: 0,
+ progress: 0,
+ touching: false,
+ enableDanmuSync: Boolean(this.enableDanmu),
+ controlsVisible: true,
+ fullscreen: false,
+ width: '0',
+ height: '0',
+ fullscreenTriggering: false,
+ controlsTouching: false,
+ directionSync: Number(this.direction),
+ touchStartOrigin: {
+ x: 0,
+ y: 0
+ },
+ gestureType: GestureType.NONE,
+ currentTimeOld: 0,
+ currentTimeNew: 0,
+ volumeOld: null,
+ volumeNew: null,
+ isIOS: false,
+ buffered: 0,
+ rotateType: ''
+ };
+ },
+ computed: {
+ controlsShow: function controlsShow() {
+ return this.start && this.controls && this.controlsVisible;
+ },
+ autoHideContorls: function autoHideContorls() {
+ return this.controlsShow && this.playing && !this.controlsTouching;
+ },
+ srcSync: function srcSync() {
+ return this.$getRealPath(this.src);
+ }
+ },
+ watch: {
+ enableDanmuSync: function enableDanmuSync(val) {
+ this.$emit('update:enableDanmu', val);
+ },
+ autoHideContorls: function autoHideContorls(val) {
+ if (val) {
+ this.autoHideStart();
+ } else {
+ this.autoHideEnd();
+ }
+ },
+ fullscreen: function fullscreen(val) {
+ var _this = this;
+
+ var container = this.$refs.container;
+ var playing = this.playing;
+ this.fullscreenTriggering = true;
+ container.remove();
+
+ if (val) {
+ this.resize();
+ document.body.appendChild(container);
+ } else {
+ this.$el.appendChild(container);
+ }
+
+ this.$trigger('fullscreenchange', {}, {
+ fullScreen: val
+ });
+
+ if (playing) {
+ this.play();
+ }
+
+ setTimeout(function () {
+ _this.fullscreenTriggering = false;
+ }, 0);
+ },
+ direction: function direction(val) {
+ this.directionSync = Number(val);
+ },
+ srcSync: function srcSync(val) {
+ var _this2 = this;
+
+ this.playing = false;
+ this.currentTime = 0;
+
+ if (val && this.autoplay) {
+ this.$nextTick(function () {
+ _this2.$refs.video.play();
+ });
+ }
+ },
+ currentTime: function currentTime() {
+ this.updateProgress();
+ },
+ duration: function duration() {
+ this.updateProgress();
+ }
+ },
+ created: function created() {
+ this.otherData = {
+ danmuList: [],
+ danmuIndex: {
+ time: 0,
+ index: -1
+ },
+ hideTiming: null
+ };
+ var danmuList = this.otherData.danmuList = JSON.parse(JSON.stringify(this.danmuList || []));
+ danmuList.sort(function (a, b) {
+ return (a.time || 0) - (a.time || 0);
+ });
+ this.width = window.innerWidth + 'px';
+ this.height = window.innerHeight + 'px';
+ },
+ mounted: function mounted() {
+ var self = this;
+ var otherData = this.otherData;
+ var video = this.$refs.video;
+ var ball = this.$refs.ball;
+ video.addEventListener('durationchange', function (event) {
+ self.durationTime = video.duration;
+ });
+ video.addEventListener('loadedmetadata', function (event) {
+ var initialTime = Number(self.initialTime) || 0;
+
+ if (initialTime > 0) {
+ video.currentTime = initialTime;
+ }
+ });
+ video.addEventListener('progress', function (event) {
+ var buffered = video.buffered;
+
+ if (buffered.length) {
+ self.buffered = buffered.end(buffered.length - 1) / video.duration;
+ }
+ });
+ video.addEventListener('waiting', function ($event) {
+ self.$trigger('waiting', $event, {});
+ });
+ video.addEventListener('error', function ($event) {
+ self.playing = false;
+ self.$trigger('error', $event, {});
+ });
+ video.addEventListener('play', function ($event) {
+ self.start = true;
+ self.playing = true;
+
+ if (self.fullscreenTriggering) {
+ return;
+ }
+
+ self.$trigger('play', $event, {});
+ });
+ video.addEventListener('pause', function ($event) {
+ self.playing = false;
+
+ if (self.fullscreenTriggering) {
+ return;
+ }
+
+ self.$trigger('pause', $event, {});
+ });
+ video.addEventListener('ended', function ($event) {
+ self.playing = false;
+ self.$trigger('ended', $event, {});
+ });
+ video.addEventListener('timeupdate', function ($event) {
+ var currentTime = self.currentTime = video.currentTime;
+ var duration = video.duration;
+ var oldDanmuIndex = otherData.danmuIndex;
+ var danmuIndex = {
+ time: currentTime,
+ index: oldDanmuIndex.index
+ };
+ var danmuList = otherData.danmuList;
+
+ if (currentTime > oldDanmuIndex.time) {
+ for (var index = oldDanmuIndex.index + 1; index < danmuList.length; index++) {
+ var element = danmuList[index];
+
+ if (currentTime >= (element.time || 0)) {
+ danmuIndex.index = index;
+
+ if (self.playing && self.enableDanmuSync) {
+ self.playDanmu(element);
+ }
+ } else {
+ break;
+ }
+ }
+ } else if (currentTime < oldDanmuIndex.time) {
+ for (var _index = oldDanmuIndex.index - 1; _index > -1; _index--) {
+ var _element = danmuList[_index];
+
+ if (currentTime <= (_element.time || 0)) {
+ danmuIndex.index = _index - 1;
+ } else {
+ break;
+ }
+ }
+ }
+
+ otherData.danmuIndex = danmuIndex;
+ self.$trigger('timeupdate', $event, {
+ currentTime: currentTime,
+ duration: duration
+ });
+ });
+ video.addEventListener('x5videoenterfullscreen', function ($event) {
+ self.$trigger('fullscreenchange', $event, {
+ fullScreen: true
+ });
+ });
+ video.addEventListener('x5videoexitfullscreen', function ($event) {
+ self.$trigger('fullscreenchange', $event, {
+ fullScreen: false
+ });
+ });
+ var originX;
+ var originY;
+ var moveOnce = true;
+ var originProgress;
+ ball.addEventListener('touchstart', function (event) {
+ self.controlsTouching = true;
+ var toucher = self.getScreenXY(event.targetTouches[0]);
+ originX = toucher.pageX;
+ originY = toucher.pageY;
+ originProgress = self.progress;
+ moveOnce = true;
+ self.touching = true;
+ ball.addEventListener('touchmove', touchmove, passiveOptions);
+ });
+
+ function touchmove(event) {
+ var toucher = self.getScreenXY(event.targetTouches[0]);
+ var pageX = toucher.pageX;
+ var pageY = toucher.pageY;
+
+ if (moveOnce && Math.abs(pageX - originX) < Math.abs(pageY - originY)) {
+ touchend();
+ return;
+ }
+
+ moveOnce = false;
+ var w = self.$refs.progress.offsetWidth;
+ var progress = originProgress + (pageX - originX) / w * 100;
+
+ if (progress < 0) {
+ progress = 0;
+ } else if (progress > 100) {
+ progress = 100;
+ }
+
+ self.progress = progress;
+ event.preventDefault();
+ event.stopPropagation();
+ }
+
+ function touchend(event) {
+ self.controlsTouching = false;
+
+ if (self.touching) {
+ ball.removeEventListener('touchmove', touchmove, passiveOptions);
+
+ if (!moveOnce) {
+ event.preventDefault();
+ event.stopPropagation();
+ self.seek(self.$refs.video.duration * self.progress / 100);
+ }
+
+ self.touching = false;
+ }
+ }
+
+ ball.addEventListener('touchend', touchend);
+ ball.addEventListener('touchcancel', touchend);
+
+ if (String(this.srcSync).length && this.autoplay) {
+ video.play();
+ }
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$refs.container.remove();
+ clearTimeout(this.otherData.hideTiming);
+ },
+ methods: {
+ _handleSubscribe: function _handleSubscribe(_ref) {
+ var type = _ref.type,
+ _ref$data = _ref.data,
+ data = _ref$data === void 0 ? {} : _ref$data;
+
+ switch (type) {
+ case 'play':
+ this.play();
+ break;
+
+ case 'pause':
+ this.pause();
+ break;
+
+ case 'seek':
+ this.seek(data.position);
+ break;
+
+ case 'sendDanmu':
+ this.sendDanmu(data);
+ break;
+
+ case 'playbackRate':
+ this.$refs.video.playbackRate = data.rate;
+ break;
+
+ case 'requestFullScreen':
+ this.enterFullscreen();
+ break;
+
+ case 'exitFullScreen':
+ this.leaveFullscreen();
+ break;
+ }
+ },
+ resize: function resize() {
+ var w = window.innerWidth;
+ var h = window.innerHeight;
+ var direction = Math.abs(this.directionSync);
+
+ if (direction === 0) {
+ if (w > h) {
+ this.rotateType = 'left';
+ } else {
+ this.rotateType = '';
+ }
+ } else if (direction === 90) {
+ if (w > h) {
+ this.rotateType = '';
+ } else {
+ this.rotateType = 'right';
+ }
+ } else {
+ this.rotateType = '';
+ }
+
+ if (!this.rotateType) {
+ this.width = w + 'px';
+ this.height = h + 'px';
+ } else {
+ this.width = h + 'px';
+ this.height = w + 'px';
+ }
+ },
+ trigger: function trigger() {
+ if (this.playing) {
+ this.$refs.video.pause();
+ } else {
+ this.$refs.video.play();
+ }
+ },
+ play: function play() {
+ this.start = true;
+ this.$refs.video.play();
+ },
+ pause: function pause() {
+ this.$refs.video.pause();
+ },
+ seek: function seek(position) {
+ position = Number(position);
+
+ if (typeof position === 'number' && !isNaN(position)) {
+ this.$refs.video.currentTime = position;
+ }
+ },
+ clickProgress: function clickProgress(event) {
+ var x = event.offsetX;
+ var _progress = this.$refs.progress;
+ var element = event.target;
+
+ while (element !== _progress) {
+ x += element.offsetLeft;
+ element = element.parentNode;
+ }
+
+ var w = _progress.offsetWidth;
+ var progress = 0;
+
+ if (x >= 0 && x <= w) {
+ progress = x / w;
+ this.seek(this.$refs.video.duration * progress);
+ }
+ },
+ triggerDanmu: function triggerDanmu() {
+ this.enableDanmuSync = !this.enableDanmuSync;
+ },
+ playDanmu: function playDanmu(danmu) {
+ var p = document.createElement('p');
+ p.className = 'uni-video-danmu-item';
+ p.innerText = danmu.text;
+ var style = "bottom: ".concat(Math.random() * 100, "%;color: ").concat(danmu.color, ";");
+ p.setAttribute('style', style);
+ this.$refs.danmu.appendChild(p);
+ setTimeout(function () {
+ style += 'left: 0;-webkit-transform: translateX(-100%);transform: translateX(-100%);';
+ p.setAttribute('style', style);
+ setTimeout(function () {
+ p.remove();
+ }, 4000);
+ }, 17);
+ },
+ sendDanmu: function sendDanmu(danmu) {
+ var otherData = this.otherData;
+ otherData.danmuList.splice(otherData.danmuIndex.index + 1, 0, {
+ text: String(danmu.text),
+ color: danmu.color,
+ time: this.$refs.video.currentTime || 0
+ });
+ },
+ triggerFullscreen: function triggerFullscreen() {
+ this.fullscreen = !this.fullscreen;
+ },
+ enterFullscreen: function enterFullscreen(direction) {
+ var directionSync = Number(direction);
+
+ if (!isNaN(NaN)) {
+ this.directionSync = directionSync;
+ }
+
+ this.fullscreen = true;
+ },
+ leaveFullscreen: function leaveFullscreen() {
+ this.fullscreen = false;
+ },
+ triggerControls: function triggerControls() {
+ this.controlsVisible = !this.controlsVisible;
+ },
+ touchstart: function touchstart(event) {
+ var toucher = this.getScreenXY(event.targetTouches[0]);
+ this.touchStartOrigin = {
+ x: toucher.pageX,
+ y: toucher.pageY
+ };
+ this.gestureType = GestureType.NONE;
+ this.volumeOld = null;
+ this.currentTimeOld = this.currentTimeNew = 0;
+ },
+ touchmove: function touchmove(event) {
+ function stop() {
+ event.stopPropagation();
+ event.preventDefault();
+ }
+
+ if (this.fullscreen) {
+ stop();
+ }
+
+ var gestureType = this.gestureType;
+
+ if (gestureType === GestureType.STOP) {
+ return;
+ }
+
+ var toucher = this.getScreenXY(event.targetTouches[0]);
+ var pageX = toucher.pageX;
+ var pageY = toucher.pageY;
+ var origin = this.touchStartOrigin;
+
+ if (gestureType === GestureType.PROGRESS) {
+ this.changeProgress(pageX - origin.x);
+ } else if (gestureType === GestureType.VOLUME) {
+ this.changeVolume(pageY - origin.y);
+ }
+
+ if (gestureType !== GestureType.NONE) {
+ return;
+ }
+
+ if (Math.abs(pageX - origin.x) > Math.abs(pageY - origin.y)) {
+ if (!this.enableProgressGesture) {
+ this.gestureType = GestureType.STOP;
+ return;
+ }
+
+ this.gestureType = GestureType.PROGRESS;
+ this.currentTimeOld = this.currentTimeNew = this.$refs.video.currentTime;
+
+ if (!this.fullscreen) {
+ stop();
+ }
+ } else {
+ if (!this.pageGesture) {
+ this.gestureType = GestureType.STOP;
+ return;
+ }
+
+ this.gestureType = GestureType.VOLUME;
+ this.volumeOld = this.$refs.video.volume;
+
+ if (!this.fullscreen) {
+ stop();
+ }
+ }
+ },
+ touchend: function touchend(event) {
+ if (this.gestureType !== GestureType.NONE && this.gestureType !== GestureType.STOP) {
+ event.stopPropagation();
+ event.preventDefault();
+ }
+
+ if (this.gestureType === GestureType.PROGRESS && this.currentTimeOld !== this.currentTimeNew) {
+ this.$refs.video.currentTime = this.currentTimeNew;
+ }
+
+ this.gestureType = GestureType.NONE;
+ },
+ changeProgress: function changeProgress(x) {
+ var duration = this.$refs.video.duration;
+ var currentTimeNew = x / 600 * duration + this.currentTimeOld;
+
+ if (currentTimeNew < 0) {
+ currentTimeNew = 0;
+ } else if (currentTimeNew > duration) {
+ currentTimeNew = duration;
+ }
+
+ this.currentTimeNew = currentTimeNew;
+ },
+ changeVolume: function changeVolume(y) {
+ var valueOld = this.volumeOld;
+ var value;
+
+ if (typeof valueOld === 'number') {
+ value = valueOld - y / 200;
+
+ if (value < 0) {
+ value = 0;
+ } else if (value > 1) {
+ value = 1;
+ }
+
+ this.$refs.video.volume = value;
+ this.volumeNew = value;
+ }
+ },
+ autoHideStart: function autoHideStart() {
+ var _this3 = this;
+
+ this.otherData.hideTiming = setTimeout(function () {
+ _this3.controlsVisible = false;
+ }, 3000);
+ },
+ autoHideEnd: function autoHideEnd() {
+ var otherData = this.otherData;
+
+ if (otherData.hideTiming) {
+ clearTimeout(otherData.hideTiming);
+ otherData.hideTiming = null;
+ }
+ },
+ getScreenXY: function getScreenXY(dataOrigin) {
+ var rotateType = this.rotateType;
+
+ if (!this.fullscreen || !rotateType) {
+ return dataOrigin;
+ }
+
+ var w = screen.width;
+ var h = screen.height;
+ var x = dataOrigin.pageX;
+ var y = dataOrigin.pageY;
+ var pageX;
+ var pageY;
+
+ if (rotateType === 'left') {
+ pageX = h - y;
+ pageY = x;
+ } else {
+ pageX = y;
+ pageY = w - x;
+ }
+
+ return {
+ pageX: pageX,
+ pageY: pageY
+ };
+ },
+ updateProgress: function updateProgress() {
+ if (!this.touching) {
+ this.progress = this.currentTime / this.durationTime * 100;
+ }
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/platforms/h5/view/components/video/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_videovue_type_script_lang_js_ = (videovue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/platforms/h5/view/components/video/index.vue?vue&type=style&index=0&lang=css&
+var videovue_type_style_index_0_lang_css_ = __webpack_require__("856e");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/h5/view/components/video/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_videovue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var video = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "33ab":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "33ed":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return disableScroll; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return pageScrollTo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createScrollListener; });
+/* harmony import */ var uni_platform_view_bridge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4a59");
+
+function disableScroll(evt) {
+ evt.preventDefault();
+}
+function pageScrollTo(_ref) {
+ var scrollTop = _ref.scrollTop,
+ duration = _ref.duration;
+ var documentElement = document.documentElement;
+ var clientHeight = documentElement.clientHeight,
+ scrollHeight = documentElement.scrollHeight;
+ scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);
+
+ if (duration === 0) {
+ // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制
+ documentElement.scrollTop = document.body.scrollTop = scrollTop;
+ return;
+ }
+
+ if (window.scrollY === scrollTop) {
+ return;
+ }
+
+ function scrollTo(duration) {
+ if (duration <= 0) {
+ window.scrollTo(0, scrollTop);
+ return;
+ }
+
+ var distaince = scrollTop - window.scrollY;
+ requestAnimationFrame(function () {
+ window.scrollTo(0, window.scrollY + distaince / duration * 10);
+ scrollTo(duration - 10);
+ });
+ }
+
+ scrollTo(duration); // TODO 暂不使用 transform 会导致 fixed 元素不可见
+ // const body = document.body
+ // const bodyStyle = body.style
+ //
+ // function webkitTransitionEnd() {
+ // bodyStyle.webkitTransition = ''
+ // bodyStyle.webkitTransform = ''
+ // documentElement.scrollTop = scrollTop
+ // body.removeEventListener('webkitTransitionEnd', webkitTransitionEnd)
+ // }
+ //
+ // body.addEventListener('webkitTransitionEnd', webkitTransitionEnd)
+ // bodyStyle.webkitTransition = `-webkit-transform ${duration}ms ease-out`
+ // bodyStyle.webkitTransform = `translateY(${documentElement.scrollTop}px) translateZ(0)`
+}
+function createScrollListener(pageId, _ref2) {
+ var enablePageScroll = _ref2.enablePageScroll,
+ enablePageReachBottom = _ref2.enablePageReachBottom,
+ onReachBottomDistance = _ref2.onReachBottomDistance,
+ enableTransparentTitleNView = _ref2.enableTransparentTitleNView;
+ var ticking = false;
+ var hasReachBottom = false;
+ var onReachBottom = true;
+
+ function isReachBottom() {
+ var _document$documentEle = document.documentElement,
+ clientHeight = _document$documentEle.clientHeight,
+ scrollHeight = _document$documentEle.scrollHeight;
+ var scrollY = window.scrollY;
+ var isBottom = scrollY > 0 && scrollHeight > clientHeight && scrollY + clientHeight + onReachBottomDistance >= scrollHeight;
+
+ if (isBottom && !hasReachBottom) {
+ hasReachBottom = true;
+ return true;
+ }
+
+ if (!isBottom && hasReachBottom) {
+ hasReachBottom = false;
+ }
+
+ return false;
+ }
+
+ function trigger() {
+ // publish
+ var scrollTop = window.pageYOffset;
+
+ if (enablePageScroll) {
+ // 向 Service 发送 onPageScroll 事件
+ Object(uni_platform_view_bridge__WEBPACK_IMPORTED_MODULE_0__[/* publishHandler */ "a"])('onPageScroll', {
+ scrollTop: scrollTop
+ }, pageId);
+ }
+
+ if (enableTransparentTitleNView) {
+ UniViewJSBridge.emit('onPageScroll', {
+ scrollTop: scrollTop
+ });
+ }
+
+ if (enablePageReachBottom && onReachBottom && isReachBottom()) {
+ Object(uni_platform_view_bridge__WEBPACK_IMPORTED_MODULE_0__[/* publishHandler */ "a"])('onReachBottom', {}, pageId);
+ onReachBottom = false;
+ setTimeout(function () {
+ onReachBottom = true;
+ }, 350);
+ }
+
+ ticking = false;
+ }
+
+ return function onScroll() {
+ if (!ticking) {
+ requestAnimationFrame(trigger);
+ }
+
+ ticking = true;
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "347e":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony import */ var uni_mixins_scroller_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8aec");
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("f2b3");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+var passiveOptions = uni_shared__WEBPACK_IMPORTED_MODULE_1__[/* supportsPassive */ "h"] ? {
+ passive: true
+} : false;
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'ScrollView',
+ mixins: [uni_mixins_scroller_index__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]],
+ props: {
+ scrollX: {
+ type: [Boolean, String],
+ default: false
+ },
+ scrollY: {
+ type: [Boolean, String],
+ default: false
+ },
+ upperThreshold: {
+ type: [Number, String],
+ default: 50
+ },
+ lowerThreshold: {
+ type: [Number, String],
+ default: 50
+ },
+ scrollTop: {
+ type: [Number, String],
+ default: 0
+ },
+ scrollLeft: {
+ type: [Number, String],
+ default: 0
+ },
+ scrollIntoView: {
+ type: String,
+ default: ''
+ },
+ scrollWithAnimation: {
+ type: [Boolean, String],
+ default: false
+ },
+ enableBackToTop: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ data: function data() {
+ return {
+ lastScrollTop: this.scrollTopNumber,
+ lastScrollLeft: this.scrollLeftNumber,
+ lastScrollToUpperTime: 0,
+ lastScrollToLowerTime: 0
+ };
+ },
+ computed: {
+ upperThresholdNumber: function upperThresholdNumber() {
+ var val = Number(this.upperThreshold);
+ return isNaN(val) ? 50 : val;
+ },
+ lowerThresholdNumber: function lowerThresholdNumber() {
+ var val = Number(this.lowerThreshold);
+ return isNaN(val) ? 50 : val;
+ },
+ scrollTopNumber: function scrollTopNumber() {
+ return Number(this.scrollTop) || 0;
+ },
+ scrollLeftNumber: function scrollLeftNumber() {
+ return Number(this.scrollLeft) || 0;
+ }
+ },
+ watch: {
+ scrollTopNumber: function scrollTopNumber(val) {
+ this._scrollTopChanged(val);
+ },
+ scrollLeftNumber: function scrollLeftNumber(val) {
+ this._scrollLeftChanged(val);
+ },
+ scrollIntoView: function scrollIntoView(val) {
+ this._scrollIntoViewChanged(val);
+ }
+ },
+ mounted: function mounted() {
+ var self = this;
+ this._attached = true;
+
+ this._scrollTopChanged(this.scrollTopNumber);
+
+ this._scrollLeftChanged(this.scrollLeftNumber);
+
+ this._scrollIntoViewChanged(this.scrollIntoView);
+
+ this.__handleScroll = function (e) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ self._handleScroll.bind(self, event)();
+ };
+
+ var touchStart = null;
+ var needStop = null;
+
+ this.__handleTouchMove = function (event) {
+ var x = event.touches[0].pageX;
+ var y = event.touches[0].pageY;
+ var main = self.$refs.main;
+
+ if (needStop === null) {
+ if (Math.abs(x - touchStart.x) > Math.abs(y - touchStart.y)) {
+ // 横向滑动
+ if (self.scrollX) {
+ if (main.scrollLeft === 0 && x > touchStart.x) {
+ needStop = false;
+ return;
+ } else if (main.scrollWidth === main.offsetWidth + main.scrollLeft && x < touchStart.x) {
+ needStop = false;
+ return;
+ }
+
+ needStop = true;
+ } else {
+ needStop = false;
+ }
+ } else {
+ // 纵向滑动
+ if (self.scrollY) {
+ if (main.scrollTop === 0 && y > touchStart.y) {
+ needStop = false;
+ return;
+ } else if (main.scrollHeight === main.offsetHeight + main.scrollTop && y < touchStart.y) {
+ needStop = false;
+ return;
+ }
+
+ needStop = true;
+ } else {
+ needStop = false;
+ }
+ }
+ }
+
+ if (needStop) {
+ event.stopPropagation();
+ }
+ };
+
+ this.__handleTouchStart = function (event) {
+ if (event.touches.length === 1) {
+ needStop = null;
+ touchStart = {
+ x: event.touches[0].pageX,
+ y: event.touches[0].pageY
+ };
+ }
+ };
+
+ this.$refs.main.addEventListener('touchstart', this.__handleTouchStart, passiveOptions);
+ this.$refs.main.addEventListener('touchmove', this.__handleTouchMove, passiveOptions);
+ this.$refs.main.addEventListener('scroll', this.__handleScroll, uni_shared__WEBPACK_IMPORTED_MODULE_1__[/* supportsPassive */ "h"] ? {
+ passive: false
+ } : false);
+ },
+ activated: function activated() {
+ // 还原 scroll-view 滚动位置
+ this.scrollY && (this.$refs.main.scrollTop = this.lastScrollTop);
+ this.scrollX && (this.$refs.main.scrollLeft = this.lastScrollLeft);
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$refs.main.removeEventListener('touchstart', this.__handleTouchStart, passiveOptions);
+ this.$refs.main.removeEventListener('touchmove', this.__handleTouchMove, passiveOptions);
+ this.$refs.main.removeEventListener('scroll', this.__handleScroll, uni_shared__WEBPACK_IMPORTED_MODULE_1__[/* supportsPassive */ "h"] ? {
+ passive: false
+ } : false);
+ },
+ methods: {
+ scrollTo: function scrollTo(t, n) {
+ var i = this.$refs.main;
+ t < 0 ? t = 0 : n === 'x' && t > i.scrollWidth - i.offsetWidth ? t = i.scrollWidth - i.offsetWidth : n === 'y' && t > i.scrollHeight - i.offsetHeight && (t = i.scrollHeight - i.offsetHeight);
+ var r = 0;
+ var o = '';
+ n === 'x' ? r = i.scrollLeft - t : n === 'y' && (r = i.scrollTop - t);
+
+ if (r !== 0) {
+ this.$refs.content.style.transition = 'transform .3s ease-out';
+ this.$refs.content.style.webkitTransition = '-webkit-transform .3s ease-out';
+
+ if (n === 'x') {
+ o = 'translateX(' + r + 'px) translateZ(0)';
+ } else {
+ n === 'y' && (o = 'translateY(' + r + 'px) translateZ(0)');
+ }
+
+ this.$refs.content.removeEventListener('transitionend', this.__transitionEnd);
+ this.$refs.content.removeEventListener('webkitTransitionEnd', this.__transitionEnd);
+ this.__transitionEnd = this._transitionEnd.bind(this, t, n);
+ this.$refs.content.addEventListener('transitionend', this.__transitionEnd);
+ this.$refs.content.addEventListener('webkitTransitionEnd', this.__transitionEnd);
+
+ if (n === 'x') {
+ // if (e !== 'ios') {
+ i.style.overflowX = 'hidden'; // }
+ } else if (n === 'y') {
+ i.style.overflowY = 'hidden';
+ }
+
+ this.$refs.content.style.transform = o;
+ this.$refs.content.style.webkitTransform = o;
+ }
+ },
+ _handleTrack: function _handleTrack($event) {
+ if ($event.detail.state === 'start') {
+ this._x = $event.detail.x;
+ this._y = $event.detail.y;
+ this._noBubble = null;
+ return;
+ }
+
+ if ($event.detail.state === 'end') {
+ this._noBubble = false;
+ }
+
+ if (this._noBubble === null && this.scrollY) {
+ if (Math.abs(this._y - $event.detail.y) / Math.abs(this._x - $event.detail.x) > 1) {
+ this._noBubble = true;
+ } else {
+ this._noBubble = false;
+ }
+ }
+
+ if (this._noBubble === null && this.scrollX) {
+ if (Math.abs(this._x - $event.detail.x) / Math.abs(this._y - $event.detail.y) > 1) {
+ this._noBubble = true;
+ } else {
+ this._noBubble = false;
+ }
+ }
+
+ this._x = $event.detail.x;
+ this._y = $event.detail.y;
+
+ if (this._noBubble) {
+ $event.stopPropagation();
+ }
+ },
+ _handleScroll: function _handleScroll($event) {
+ if (!($event.timeStamp - this._lastScrollTime < 20)) {
+ this._lastScrollTime = $event.timeStamp;
+ var target = $event.target;
+ this.$trigger('scroll', $event, {
+ scrollLeft: target.scrollLeft,
+ scrollTop: target.scrollTop,
+ scrollHeight: target.scrollHeight,
+ scrollWidth: target.scrollWidth,
+ deltaX: this.lastScrollLeft - target.scrollLeft,
+ deltaY: this.lastScrollTop - target.scrollTop
+ });
+
+ if (this.scrollY) {
+ if (target.scrollTop <= this.upperThresholdNumber && this.lastScrollTop - target.scrollTop > 0 && $event.timeStamp - this.lastScrollToUpperTime > 200) {
+ this.$trigger('scrolltoupper', $event, {
+ direction: 'top'
+ });
+ this.lastScrollToUpperTime = $event.timeStamp;
+ }
+
+ if (target.scrollTop + target.offsetHeight + this.lowerThresholdNumber >= target.scrollHeight && this.lastScrollTop - target.scrollTop < 0 && $event.timeStamp - this.lastScrollToLowerTime > 200) {
+ this.$trigger('scrolltolower', $event, {
+ direction: 'bottom'
+ });
+ this.lastScrollToLowerTime = $event.timeStamp;
+ }
+ }
+
+ if (this.scrollX) {
+ if (target.scrollLeft <= this.upperThresholdNumber && this.lastScrollLeft - target.scrollLeft > 0 && $event.timeStamp - this.lastScrollToUpperTime > 200) {
+ this.$trigger('scrolltoupper', $event, {
+ direction: 'left'
+ });
+ this.lastScrollToUpperTime = $event.timeStamp;
+ }
+
+ if (target.scrollLeft + target.offsetWidth + this.lowerThresholdNumber >= target.scrollWidth && this.lastScrollLeft - target.scrollLeft < 0 && $event.timeStamp - this.lastScrollToLowerTime > 200) {
+ this.$trigger('scrolltolower', $event, {
+ direction: 'right'
+ });
+ this.lastScrollToLowerTime = $event.timeStamp;
+ }
+ }
+
+ this.lastScrollTop = target.scrollTop;
+ this.lastScrollLeft = target.scrollLeft;
+ }
+ },
+ _scrollTopChanged: function _scrollTopChanged(val) {
+ if (this.scrollY) {
+ if (this._innerSetScrollTop) {
+ this._innerSetScrollTop = false;
+ } else {
+ if (this.scrollWithAnimation) {
+ this.scrollTo(val, 'y');
+ } else {
+ this.$refs.main.scrollTop = val;
+ }
+ }
+ }
+ },
+ _scrollLeftChanged: function _scrollLeftChanged(val) {
+ if (this.scrollX) {
+ if (this._innerSetScrollLeft) {
+ this._innerSetScrollLeft = false;
+ } else {
+ if (this.scrollWithAnimation) {
+ this.scrollTo(val, 'x');
+ } else {
+ this.$refs.main.scrollLeft = val;
+ }
+ }
+ }
+ },
+ _scrollIntoViewChanged: function _scrollIntoViewChanged(val) {
+ if (val) {
+ if (!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(val)) {
+ console.group('scroll-into-view="' + val + '" 有误');
+ console.error('id 属性值格式错误。如不能以数字开头。');
+ console.groupEnd();
+ return;
+ }
+
+ var element = this.$el.querySelector('#' + val);
+
+ if (element) {
+ var mainRect = this.$refs.main.getBoundingClientRect();
+ var elRect = element.getBoundingClientRect();
+
+ if (this.scrollX) {
+ var left = elRect.left - mainRect.left;
+ var scrollLeft = this.$refs.main.scrollLeft;
+ var x = scrollLeft + left;
+
+ if (this.scrollWithAnimation) {
+ this.scrollTo(x, 'x');
+ } else {
+ this.$refs.main.scrollLeft = x;
+ }
+ }
+
+ if (this.scrollY) {
+ var top = elRect.top - mainRect.top;
+ var scrollTop = this.$refs.main.scrollTop;
+ var y = scrollTop + top;
+
+ if (this.scrollWithAnimation) {
+ this.scrollTo(y, 'y');
+ } else {
+ this.$refs.main.scrollTop = y;
+ }
+ }
+ }
+ }
+ },
+ _transitionEnd: function _transitionEnd(val, type) {
+ this.$refs.content.style.transition = '';
+ this.$refs.content.style.webkitTransition = '';
+ this.$refs.content.style.transform = '';
+ this.$refs.content.style.webkitTransform = '';
+ var main = this.$refs.main;
+
+ if (type === 'x') {
+ main.style.overflowX = this.scrollX ? 'auto' : 'hidden';
+ main.scrollLeft = val;
+ } else if (type === 'y') {
+ main.style.overflowY = this.scrollY ? 'auto' : 'hidden';
+ main.scrollTop = val;
+ }
+
+ this.$refs.content.removeEventListener('transitionend', this.__transitionEnd);
+ this.$refs.content.removeEventListener('webkitTransitionEnd', this.__transitionEnd);
+ },
+ getScrollPosition: function getScrollPosition() {
+ var main = this.$refs.main;
+ return {
+ scrollLeft: main.scrollLeft,
+ scrollTop: main.scrollTop
+ };
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "34b2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getImageInfo", function() { return getImageInfo; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cb0f");
+
+
+function _getServiceAddress() {
+ return window.location.protocol + '//' + window.location.host;
+}
+
+function getImageInfo(_ref, callbackId) {
+ var src = _ref.src;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ var img = new Image();
+ var realPath = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(src);
+
+ img.onload = function () {
+ invoke(callbackId, {
+ errMsg: 'getImageInfo:ok',
+ width: img.naturalWidth,
+ height: img.naturalHeight,
+ path: realPath.indexOf('/') === 0 ? _getServiceAddress() + realPath : realPath
+ });
+ };
+
+ img.onerror = function (e) {
+ invoke(callbackId, {
+ errMsg: 'getImageInfo:fail'
+ });
+ };
+
+ img.src = src;
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "3858":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setStorage", function() { return setStorage; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setStorageSync", function() { return setStorageSync; });
+var setStorage = {
+ 'key': {
+ type: String,
+ required: true
+ },
+ 'data': {
+ required: true
+ }
+};
+var setStorageSync = [{
+ name: 'key',
+ type: String,
+ required: true
+}, {
+ name: 'data',
+ required: true
+}];
+
+/***/ }),
+
+/***/ "3ad9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(global) {var unshift = Array.prototype.unshift;
+
+function format(args) {
+ unshift.call(args, '[system]');
+ return args;
+}
+
+function createLog(method) {
+ return function () {
+ var printLog = true;
+
+ if (method === 'debug' && !__uniConfig.debug) {
+ printLog = false;
+ }
+
+ printLog && global.console[method].apply(global.console, format(arguments));
+ };
+}
+
+/* harmony default export */ __webpack_exports__["default"] = ({
+ log: createLog('log'),
+ info: createLog('info'),
+ warn: createLog('warn'),
+ debug: createLog('debug'),
+ error: createLog('error')
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("24aa")))
+
+/***/ }),
+
+/***/ "3d1f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initSubscribe; });
+/* harmony import */ var uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("62b5");
+/* harmony import */ var _plugins_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a741");
+
+
+function initSubscribe(subscribe, _ref) {
+ var getApp = _ref.getApp,
+ getCurrentPages = _ref.getCurrentPages;
+
+ function createPageEvent(eventType) {
+ return function (args, pageId) {
+ var pages = getCurrentPages();
+ var page = pages.find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (page) {
+ Object(_plugins_util__WEBPACK_IMPORTED_MODULE_1__[/* callPageHook */ "b"])(page, eventType, args);
+ } else {
+ console.error("Not Found\uFF1APage[".concat(pageId, "]"));
+ }
+ };
+ }
+
+ var requestComponentInfoCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('requestComponentInfo');
+
+ function onRequestComponentInfo(_ref2) {
+ var reqId = _ref2.reqId,
+ res = _ref2.res;
+ var callback = requestComponentInfoCallbacks.pop(reqId);
+
+ if (callback) {
+ callback(res);
+ }
+ }
+
+ var requestComponentObserverCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('requestComponentObserver');
+
+ function onRequestComponentObserver(_ref3) {
+ var reqId = _ref3.reqId,
+ reqEnd = _ref3.reqEnd,
+ res = _ref3.res;
+ var callback = requestComponentObserverCallbacks.get(reqId);
+
+ if (callback) {
+ if (reqEnd) {
+ requestComponentObserverCallbacks.pop(reqId);
+ return;
+ }
+
+ callback(res);
+ }
+ }
+
+ subscribe('onPageReady', createPageEvent('onReady'));
+ subscribe('onPageScroll', createPageEvent('onPageScroll'));
+ subscribe('onReachBottom', createPageEvent('onReachBottom'));
+ subscribe('onRequestComponentInfo', onRequestComponentInfo);
+ subscribe('onRequestComponentObserver', onRequestComponentObserver);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "3d64":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onNetworkStatusChange", function() { return onNetworkStatusChange; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNetworkType", function() { return getNetworkType; });
+var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+var callbackIds = [];
+
+function _getEffectiveNetworkType() {
+ var connectionType = navigator.connection.type;
+ var networkType = '';
+
+ if (~['none', 'wifi', 'unknown'].indexOf(connectionType)) {
+ networkType = connectionType;
+ } else {
+ var effectiveType = navigator.connection.effectiveType;
+
+ if (effectiveType === 'slow-2g') {
+ effectiveType = '2g';
+ }
+
+ networkType = effectiveType;
+ }
+
+ return networkType;
+}
+
+function changeHandler() {
+ var isConnected = true;
+
+ var networkType = _getEffectiveNetworkType();
+
+ if (networkType === 'none') {
+ isConnected = false;
+ }
+
+ callbackIds.forEach(function (callbackId) {
+ callbackId && invoke(callbackId, {
+ errMsg: 'onNetworkStatusChange:ok',
+ isConnected: isConnected,
+ networkType: networkType
+ });
+ });
+}
+
+function onNetworkStatusChange(callbackId) {
+ if (window.NetworkInformation) {
+ callbackIds.push(callbackId);
+ navigator.connection.onchange = changeHandler;
+ } else {
+ callbackId && invoke(callbackId, {
+ errMsg: 'onNetworkStatusChange:fail'
+ });
+ }
+}
+function getNetworkType() {
+ if (window.NetworkInformation) {
+ return {
+ errMsg: 'getNetworkType:ok',
+ networkType: _getEffectiveNetworkType()
+ };
+ } else {
+ return {
+ errMsg: 'getNetworkType:fail'
+ };
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "3da9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("33ab");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "3e8c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/resize-sensor/index.vue?vue&type=script&lang=js&
+/* harmony default export */ var resize_sensorvue_type_script_lang_js_ = ({
+ name: 'ResizeSensor',
+ props: {
+ initial: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ data: function data() {
+ return {
+ size: {
+ width: -1,
+ height: -1
+ }
+ };
+ },
+ watch: {
+ size: {
+ deep: true,
+ handler: function handler(size) {
+ this.$emit('resize', Object.assign({}, size));
+ }
+ }
+ },
+ mounted: function mounted() {
+ if (this.initial === true) {
+ this.$nextTick(this.update);
+ }
+
+ if (this.$el.offsetParent !== this.$el.parentNode) {
+ this.$el.parentNode.style.position = 'relative';
+ }
+
+ if (!('AnimationEvent' in window)) {
+ this.reset();
+ }
+ },
+ methods: {
+ reset: function reset() {
+ var expand = this.$el.firstChild;
+ var shrink = this.$el.lastChild;
+ expand.scrollLeft = 100000;
+ expand.scrollTop = 100000;
+ shrink.scrollLeft = 100000;
+ shrink.scrollTop = 100000;
+ },
+ update: function update() {
+ this.size.width = this.$el.offsetWidth;
+ this.size.height = this.$el.offsetHeight;
+ this.reset();
+ }
+ },
+ render: function render(create) {
+ return create('uni-resize-sensor', {
+ on: {
+ '~animationstart': this.update
+ }
+ }, [create('div', {
+ on: {
+ scroll: this.update
+ }
+ }, [create('div')]), create('div', {
+ on: {
+ scroll: this.update
+ }
+ }, [create('div')])]);
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/resize-sensor/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_resize_sensorvue_type_script_lang_js_ = (resize_sensorvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/resize-sensor/index.vue?vue&type=style&index=0&lang=css&
+var resize_sensorvue_type_style_index_0_lang_css_ = __webpack_require__("64d0");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/resize-sensor/index.vue
+var render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_resize_sensorvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var resize_sensor = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "3f7e":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1a33");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "4043":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setNavigationBarColor", function() { return setNavigationBarColor; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setNavigationBarTitle", function() { return setNavigationBarTitle; });
+var FRONT_COLORS = ['#ffffff', '#000000'];
+var setNavigationBarColor = {
+ 'frontColor': {
+ type: String,
+ required: true,
+ validator: function validator(frontColor, params) {
+ if (FRONT_COLORS.indexOf(frontColor) === -1) {
+ return "invalid frontColor \"".concat(frontColor, "\"");
+ }
+ }
+ },
+ 'backgroundColor': {
+ type: String,
+ required: true
+ },
+ 'animation': {
+ type: Object,
+ default: function _default() {
+ return {
+ duration: 0,
+ timingFunc: 'linear'
+ };
+ },
+ validator: function validator() {
+ var animation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ var params = arguments.length > 1 ? arguments[1] : undefined;
+ params.animation = {
+ duration: animation.duration || 0,
+ timingFunc: animation.timingFunc || 'linear'
+ };
+ }
+ }
+};
+var setNavigationBarTitle = {
+ 'title': {
+ type: String,
+ required: true
+ }
+};
+
+/***/ }),
+
+/***/ "40ab":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "redirectTo", function() { return redirectTo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reLaunch", function() { return reLaunch; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "navigateTo", function() { return navigateTo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchTab", function() { return switchTab; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "navigateBack", function() { return navigateBack; });
+/* harmony import */ var _get_real_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0f74");
+
+
+function encodeQueryString(url) {
+ if (typeof url !== 'string') {
+ return url;
+ }
+
+ var index = url.indexOf('?');
+
+ if (index === -1) {
+ return url;
+ }
+
+ var query = url.substr(index + 1).trim().replace(/^(\?|#|&)/, '');
+
+ if (!query) {
+ return url;
+ }
+
+ url = url.substr(0, index);
+ var params = [];
+ query.split('&').forEach(function (param) {
+ var parts = param.replace(/\+/g, ' ').split('=');
+ var key = parts.shift();
+ var val = parts.length > 0 ? parts.join('=') : '';
+ params.push(key + '=' + encodeURIComponent(val));
+ });
+ return params.length ? url + '?' + params.join('&') : url;
+}
+
+function createValidator(type) {
+ return function validator(url, params) {
+ // 格式化为绝对路径路由
+ url = Object(_get_real_route__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(url);
+ var pagePath = url.split('?')[0]; // 匹配路由是否存在
+
+ var routeOptions = __uniRoutes.find(function (_ref) {
+ var path = _ref.path,
+ alias = _ref.alias;
+ return path === pagePath || alias === pagePath;
+ });
+
+ if (!routeOptions) {
+ return 'page `' + url + '` is not found';
+ } // 检测不同类型跳转
+
+
+ if (type === 'navigateTo' || type === 'redirectTo') {
+ if (routeOptions.meta.isTabBar) {
+ return "can not ".concat(type, " a tabbar page");
+ }
+ } else if (type === 'switchTab') {
+ if (!routeOptions.meta.isTabBar) {
+ return 'can not switch to no-tabBar page';
+ }
+ } // tabBar不允许传递参数
+
+
+ if (routeOptions.meta.isTabBar) {
+ url = pagePath;
+ } // 首页自动格式化为`/`
+
+
+ if (routeOptions.meta.isEntry) {
+ url = url.replace(routeOptions.alias, '/');
+ } // 参数格式化
+
+
+ params.url = encodeQueryString(url);
+ };
+}
+
+function createProtocol(type) {
+ var extras = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ return Object.assign({
+ url: {
+ type: String,
+ required: true,
+ validator: createValidator(type)
+ }
+ }, extras);
+}
+
+function createAnimationProtocol(animationTypes) {
+ return {
+ animationType: {
+ type: String,
+ validator: function validator(type) {
+ if (type && animationTypes.indexOf(type) === -1) {
+ return '`' + type + '` is not supported for `animationType` (supported values are: `' + animationTypes.join('`|`') + '`)';
+ }
+ }
+ },
+ animationDuration: {
+ type: Number
+ }
+ };
+}
+
+var redirectTo = createProtocol('redirectTo');
+var reLaunch = createProtocol('reLaunch');
+var navigateTo = createProtocol('navigateTo', createAnimationProtocol(['slide-in-right', 'slide-in-left', 'slide-in-top', 'slide-in-bottom', 'fade-in', 'zoom-out', 'zoom-fade-out', 'pop-in', 'none']));
+var switchTab = createProtocol('switchTab');
+var navigateBack = Object.assign({
+ delta: {
+ type: Number,
+ validator: function validator(delta, params) {
+ delta = parseInt(delta) || 1;
+ params.delta = Math.min(getCurrentPages().length - 1, delta);
+ }
+ }
+}, createAnimationProtocol(['slide-out-right', 'slide-out-left', 'slide-out-top', 'slide-out-bottom', 'fade-out', 'zoom-in', 'zoom-fade-in', 'pop-out', 'none']));
+
+/***/ }),
+
+/***/ "42fb":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createIntersectionObserver", function() { return createIntersectionObserver; });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8bbf");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("62b5");
+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; }
+
+
+
+var createIntersectionObserverCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])('requestComponentObserver');
+var defaultOptions = {
+ thresholds: [0],
+ initialRatio: 0,
+ observeAll: false
+};
+
+var MPIntersectionObserver =
+/*#__PURE__*/
+function () {
+ function MPIntersectionObserver(pageId, options) {
+ _classCallCheck(this, MPIntersectionObserver);
+
+ this.pageId = pageId;
+ this.options = Object.assign({}, defaultOptions, options);
+ }
+
+ _createClass(MPIntersectionObserver, [{
+ key: "_makeRootMargin",
+ value: function _makeRootMargin() {
+ var margins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ this.options.rootMargin = ['top', 'right', 'bottom', 'left'].map(function (name) {
+ return "".concat(Number(margins[name]) || 0, "px");
+ }).join(' ');
+ }
+ }, {
+ key: "relativeTo",
+ value: function relativeTo(selector, margins) {
+ this.options.relativeToSelector = selector;
+
+ this._makeRootMargin(margins);
+
+ return this;
+ }
+ }, {
+ key: "relativeToViewport",
+ value: function relativeToViewport(margins) {
+ this.options.relativeToSelector = null;
+
+ this._makeRootMargin(margins);
+
+ return this;
+ }
+ }, {
+ key: "observe",
+ value: function observe(selector, callback) {
+ if (typeof callback !== 'function') {
+ return;
+ }
+
+ this.options.selector = selector;
+ this.reqId = createIntersectionObserverCallbacks.push(callback);
+ UniServiceJSBridge.publishHandler('requestComponentObserver', {
+ reqId: this.reqId,
+ options: this.options
+ }, this.pageId);
+ }
+ }, {
+ key: "disconnect",
+ value: function disconnect() {
+ UniServiceJSBridge.publishHandler('destroyComponentObserver', {
+ reqId: this.reqId
+ }, this.pageId);
+ }
+ }]);
+
+ return MPIntersectionObserver;
+}();
+
+function createIntersectionObserver(context, options) {
+ if (!(context instanceof vue__WEBPACK_IMPORTED_MODULE_0___default.a)) {
+ options = context;
+ context = null;
+ }
+
+ if (context) {
+ return new MPIntersectionObserver(context.$page.id, options);
+ }
+
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ return new MPIntersectionObserver(app.$route.params.__id__, options);
+ } else {
+ UniServiceJSBridge.emit('onError', 'createIntersectionObserver:fail');
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "439a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "downloadFile", function() { return downloadFile; });
+var downloadFile = {
+ url: {
+ type: String,
+ required: true
+ },
+ header: {
+ type: Object,
+ validator: function validator(value, params) {
+ params.header = value || {};
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "442e":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8bbf");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_tags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5129");
+/* harmony import */ var uni_helpers_tags__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(uni_helpers_tags__WEBPACK_IMPORTED_MODULE_1__);
+ // 使用白名单过滤(前期有一批自定义组件使用了 uni-)
+
+
+var oldIsReservedTag = vue__WEBPACK_IMPORTED_MODULE_0___default.a.config.isReservedTag;
+
+vue__WEBPACK_IMPORTED_MODULE_0___default.a.config.isReservedTag = function (tag) {
+ return uni_helpers_tags__WEBPACK_IMPORTED_MODULE_1___default.a.indexOf(tag) !== -1 || oldIsReservedTag(tag);
+};
+
+vue__WEBPACK_IMPORTED_MODULE_0___default.a.config.ignoredElements = uni_helpers_tags__WEBPACK_IMPORTED_MODULE_1___default.a;
+var oldGetTagNamespace = vue__WEBPACK_IMPORTED_MODULE_0___default.a.config.getTagNamespace;
+var conflictTags = ['switch', 'image', 'text', 'view'];
+
+vue__WEBPACK_IMPORTED_MODULE_0___default.a.config.getTagNamespace = function (tag) {
+ if (~conflictTags.indexOf(tag)) {
+ // svg 部分标签名称与 uni 标签冲突
+ return false;
+ }
+
+ return oldGetTagNamespace(tag) || false;
+};
+
+vue__WEBPACK_IMPORTED_MODULE_0___default.a.config.errorHandler = function (err, vm, info) {
+ UniServiceJSBridge.emit('onError', err);
+};
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "44de":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vibrateLong", function() { return vibrateLong; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "vibrateShort", function() { return vibrateShort; });
+var _isSupport = !!window.navigator.vibrate;
+
+function vibrateLong() {
+ if (_isSupport && window.navigator.vibrate(400)) {
+ return {
+ errMsg: 'vibrateLong:ok'
+ };
+ } else {
+ return {
+ errMsg: 'vibrateLong:fail'
+ };
+ }
+}
+function vibrateShort() {
+ if (_isSupport && window.navigator.vibrate(15)) {
+ return {
+ errMsg: 'vibrateShort:ok'
+ };
+ } else {
+ return {
+ errMsg: 'vibrateShort:fail'
+ };
+ }
+}
+
+/***/ }),
+
+/***/ "4509":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "4656":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "4871":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "488c":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "4a59":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return publishHandler; });
+function publishHandler(event, args, pageId) {
+ // h5 平台直接调用UniServiceJSBridge
+ global.UniServiceJSBridge.subscribeHandler(event, args, pageId);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("24aa")))
+
+/***/ }),
+
+/***/ "4c68":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return requestComponentObserver; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return destroyComponentObserver; });
+/* harmony import */ var intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5abe");
+/* harmony import */ var intersection_observer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(intersection_observer__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85b6");
+
+
+
+function getRect(rect) {
+ return {
+ bottom: rect.bottom,
+ height: rect.height,
+ left: rect.left,
+ right: rect.right,
+ top: rect.top,
+ width: rect.width
+ };
+}
+
+var intersectionObservers = {};
+function requestComponentObserver(_ref, pageId) {
+ var reqId = _ref.reqId,
+ options = _ref.options;
+ var pages = getCurrentPages();
+ var pageVm = pages.find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (!pageVm) {
+ throw new Error("Not Found\uFF1APage[".concat(pageId, "]"));
+ }
+
+ var $el = pageVm.$el;
+ var root = options.relativeToSelector ? $el.querySelector(options.relativeToSelector) : null;
+ var intersectionObserver = intersectionObservers[reqId] = new IntersectionObserver(function (entries, observer) {
+ entries.forEach(function (entrie) {
+ UniViewJSBridge.publishHandler('onRequestComponentObserver', {
+ reqId: reqId,
+ res: {
+ intersectionRatio: entrie.intersectionRatio,
+ intersectionRect: getRect(entrie.intersectionRect),
+ boundingClientRect: getRect(entrie.boundingClientRect),
+ relativeRect: getRect(entrie.rootBounds),
+ time: Date.now(),
+ dataset: Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* normalizeDataset */ "c"])(entrie.target.dataset || {}),
+ id: entrie.target.id
+ }
+ }, pageVm.$page.id);
+ });
+ }, {
+ root: root,
+ rootMargin: options.rootMargin,
+ threshold: options.thresholds
+ });
+
+ if (options.observeAll) {
+ intersectionObserver.USE_MUTATION_OBSERVER = true;
+ Array.prototype.map.call($el.querySelectorAll(options.selector), function (el) {
+ intersectionObserver.observe(el);
+ });
+ } else {
+ intersectionObserver.USE_MUTATION_OBSERVER = false;
+ intersectionObserver.observe($el.querySelector(options.selector));
+ }
+}
+function destroyComponentObserver(_ref2) {
+ var reqId = _ref2.reqId;
+ var intersectionObserver = intersectionObservers[reqId];
+
+ if (intersectionObserver) {
+ intersectionObserver.disconnect();
+ UniViewJSBridge.publishHandler('onRequestComponentObserver', {
+ reqId: reqId,
+ reqEnd: true
+ });
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "4ca9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6389");
+/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_router__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85b6");
+/* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("abbf");
+/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("0784");
+/* harmony import */ var _lifecycle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("aa92");
+/* harmony import */ var _app_router_guard__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("23e5");
+
+
+
+
+
+
+
+function getMinId(routes) {
+ var minId = 0;
+ routes.forEach(function (route) {
+ if (route.meta.id) {
+ minId++;
+ }
+ });
+ return minId;
+}
+
+function getHash() {
+ var href = window.location.href;
+ var index = href.indexOf('#');
+ return index === -1 ? '' : decodeURI(href.slice(index + 1));
+}
+
+function getLocation() {
+ var base = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '/';
+ var path = decodeURI(window.location.pathname);
+
+ if (base && path.indexOf(base) === 0) {
+ path = path.slice(base.length);
+ }
+
+ return (path || '/') + window.location.search + window.location.hash;
+}
+/**
+ * Service 层 Vue 插件
+ * 1.init keepAliveInclude?
+ * 2.init router
+ * 3.init entryRoute
+ * 4.hack vue _init (app)
+ * 5.use router
+ */
+
+
+/* harmony default export */ __webpack_exports__["default"] = ({
+ install: function install(Vue) {
+ var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
+ routes = _ref.routes;
+
+ Object(_lifecycle__WEBPACK_IMPORTED_MODULE_4__[/* lifecycleMixin */ "a"])(Vue);
+ var minId = getMinId(routes);
+ var router = new vue_router__WEBPACK_IMPORTED_MODULE_0___default.a({
+ id: minId,
+ mode: __uniConfig.router.mode,
+ base: __uniConfig.router.base,
+ routes: routes,
+ scrollBehavior: function scrollBehavior(to, from, savedPosition) {
+ if (savedPosition) {
+ return savedPosition;
+ } else {
+ if (to && from && to.meta.isTabBar && from.meta.isTabBar) {
+ // tabbar 跳 tabbar
+ var position = Object(_app_router_guard__WEBPACK_IMPORTED_MODULE_5__[/* getTabBarScrollPosition */ "b"])(to.params.__id__);
+
+ if (position) {
+ return position;
+ }
+ }
+
+ return {
+ x: 0,
+ y: 0
+ };
+ }
+ }
+ });
+ var keepAliveInclude = []; // 需跨平台,根据用户配置 hash 或 history 来调用
+
+ var entryRoute = router.match(__uniConfig.router.mode === 'history' ? getLocation(__uniConfig.router.base) : getHash());
+
+ if (entryRoute.meta.name) {
+ if (entryRoute.meta.id) {
+ keepAliveInclude.push(entryRoute.meta.name + '-' + entryRoute.meta.id);
+ } else {
+ keepAliveInclude.push(entryRoute.meta.name + '-' + (minId + 1));
+ }
+ }
+ /* eslint-disable no-undef */
+
+
+ if (true) {
+ if (entryRoute.meta && entryRoute.meta.name) {
+ document.body.className = 'uni-body ' + entryRoute.meta.name;
+
+ if (entryRoute.meta.isNVue) {
+ var nvueDirKey = 'nvue-dir-' + __uniConfig.nvue['flex-direction'];
+ document.body.setAttribute('nvue', '');
+ document.body.setAttribute(nvueDirKey, '');
+ }
+ }
+ }
+
+ Vue.mixin({
+ beforeCreate: function beforeCreate() {
+ var options = this.$options;
+
+ if (options.mpType === 'app') {
+ options.data = function () {
+ return {
+ keepAliveInclude: keepAliveInclude
+ };
+ };
+
+ var appMixin = Object(_app__WEBPACK_IMPORTED_MODULE_2__[/* createAppMixin */ "a"])(routes, entryRoute); // mixin app hooks
+
+ Object.keys(appMixin).forEach(function (hook) {
+ options[hook] = options[hook] ? [].concat(appMixin[hook], options[hook]) : [appMixin[hook]];
+ }); // router
+
+ options.router = router; // onError
+
+ if (!Array.isArray(options.onError) || options.onError.length === 0) {
+ options.onError = [function (err) {
+ console.error(err);
+ }];
+ }
+ } else if (Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* isPage */ "b"])(this)) {
+ var pageMixin = Object(_page__WEBPACK_IMPORTED_MODULE_3__[/* createPageMixin */ "a"])(); // mixin page hooks
+
+ Object.keys(pageMixin).forEach(function (hook) {
+ options[hook] = options[hook] ? [].concat(pageMixin[hook], options[hook]) : [pageMixin[hook]];
+ });
+ } else {
+ if (this.$parent && this.$parent.__page__) {
+ this.__page__ = this.$parent.__page__;
+ }
+ }
+ }
+ });
+ Object.defineProperty(Vue.prototype, '$page', {
+ get: function get() {
+ return this.__page__;
+ }
+ });
+
+ Vue.prototype.createSelectorQuery = function createSelectorQuery() {
+ return uni.createSelectorQuery().in(this);
+ };
+
+ Vue.prototype.createIntersectionObserver = function createIntersectionObserver(args) {
+ return uni.createIntersectionObserver(this, args);
+ };
+
+ Vue.use(vue_router__WEBPACK_IMPORTED_MODULE_0___default.a);
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "4da7":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/text/index.vue?vue&type=script&lang=js&
+var textvue_type_script_lang_js_ = __webpack_require__("4f97");
+
+// CONCATENATED MODULE: ./src/core/view/components/text/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_textvue_type_script_lang_js_ = (textvue_type_script_lang_js_["a" /* default */]);
+// EXTERNAL MODULE: ./src/core/view/components/text/index.vue?vue&type=style&index=0&lang=css&
+var textvue_type_style_index_0_lang_css_ = __webpack_require__("c8ed");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/text/index.vue
+var render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_textvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_text = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "4ebb":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "base64ToArrayBuffer", function() { return base64ToArrayBuffer; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayBufferToBase64", function() { return arrayBufferToBase64; });
+/* harmony import */ var base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8390");
+/* harmony import */ var base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0__);
+
+var base64ToArrayBuffer = base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0__["decode"];
+var arrayBufferToBase64 = base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0__["encode"];
+
+/***/ }),
+
+/***/ "4ec0":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge, console) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var uni_helpers_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("65a8");
+/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("81ea");
+/* harmony import */ var _popup_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("f1ea");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'App',
+ components: _components__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"],
+ mixins: _popup_mixins__WEBPACK_IMPORTED_MODULE_3__["default"],
+ props: {
+ keepAliveInclude: {
+ type: Array,
+ default: function _default() {
+ return [];
+ }
+ }
+ },
+ data: function data() {
+ return {
+ transitionName: 'fade',
+ hideTabBar: false,
+ tabBar: __uniConfig.tabBar || {}
+ };
+ },
+ computed: {
+ key: function key() {
+ return this.$route.meta.name + '-' + this.$route.params.__id__ + '-' + (__uniConfig.reLaunch || 1);
+ },
+ hasTabBar: function hasTabBar() {
+ return __uniConfig.tabBar && __uniConfig.tabBar.list && __uniConfig.tabBar.list.length;
+ },
+ showTabBar: function showTabBar() {
+ return this.$route.meta.isTabBar && !this.hideTabBar;
+ }
+ },
+ watch: {
+ $route: function $route(newRoute, oldRoute) {
+ UniServiceJSBridge.emit('onHidePopup');
+ },
+ hideTabBar: function hideTabBar(newVal, oldVal) {
+ // TODO 不支持 css 变量时
+ if (uni.canIUse('css.var')) {
+ var windowBottom = !newVal ? uni_helpers_constants__WEBPACK_IMPORTED_MODULE_1__[/* TABBAR_HEIGHT */ "b"] + 'px' : '0px';
+ document.documentElement.style.setProperty('--window-bottom', windowBottom);
+ console.debug("uni.".concat(windowBottom ? 'showTabBar' : 'hideTabBar', "\uFF1A--window-bottom=").concat(windowBottom));
+ } // 触发 resize 事件
+
+
+ window.dispatchEvent(new CustomEvent('resize'));
+ }
+ },
+ created: function created() {
+ if (uni.canIUse('css.var')) {
+ document.documentElement.style.setProperty('--status-bar-height', '0px');
+ }
+ },
+ mounted: function mounted() {
+ window.addEventListener('message', function (evt) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "f"])(evt.data) && evt.data.type === 'WEB_INVOKE_APPSERVICE') {
+ UniServiceJSBridge.emit('onWebInvokeAppService', evt.data.data, evt.data.pageId);
+ }
+ });
+ document.addEventListener('visibilitychange', function () {
+ if (document.visibilityState === 'visible') {
+ UniServiceJSBridge.emit('onAppEnterForeground');
+ } else {
+ UniServiceJSBridge.emit('onAppEnterBackground');
+ }
+ });
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "4f1c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/switch/index.vue?vue&type=template&id=4b47fc1e&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-switch',_vm._g({on:{"click":_vm._onClick}},_vm.$listeners),[_c('div',{staticClass:"uni-switch-wrapper"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.type === 'switch'),expression:"type === 'switch'"}],staticClass:"uni-switch-input",class:[_vm.switchChecked ? 'uni-switch-input-checked' : ''],style:({backgroundColor: _vm.switchChecked ? _vm.color : '#DFDFDF',borderColor:_vm.switchChecked ? _vm.color : '#DFDFDF'})}),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.type === 'checkbox'),expression:"type === 'checkbox'"}],staticClass:"uni-checkbox-input",class:[_vm.switchChecked ? 'uni-checkbox-input-checked' : ''],style:({color: _vm.color})})])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/switch/index.vue?vue&type=template&id=4b47fc1e&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/switch/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var switchvue_type_script_lang_js_ = ({
+ name: 'Switch',
+ mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]],
+ props: {
+ name: {
+ type: String,
+ default: ''
+ },
+ checked: {
+ type: [Boolean, String],
+ default: false
+ },
+ type: {
+ type: String,
+ default: 'switch'
+ },
+ id: {
+ type: String,
+ default: ''
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ color: {
+ type: String,
+ default: '#007aff'
+ }
+ },
+ data: function data() {
+ return {
+ switchChecked: this.checked
+ };
+ },
+ watch: {
+ checked: function checked(val) {
+ this.switchChecked = val;
+ }
+ },
+ created: function created() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ listeners: {
+ 'label-click': '_onClick',
+ '@label-click': '_onClick'
+ },
+ methods: {
+ _onClick: function _onClick($event) {
+ if (this.disabled) {
+ return;
+ }
+
+ this.switchChecked = !this.switchChecked;
+ this.$trigger('change', $event, {
+ value: this.switchChecked
+ });
+ },
+ _resetFormData: function _resetFormData() {
+ this.switchChecked = false;
+ },
+ _getFormData: function _getFormData() {
+ var data = {};
+
+ if (this.name !== '') {
+ data['value'] = this.switchChecked;
+ data['key'] = this.name;
+ }
+
+ return data;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/switch/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_switchvue_type_script_lang_js_ = (switchvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/switch/index.vue?vue&type=style&index=0&lang=css&
+var switchvue_type_style_index_0_lang_css_ = __webpack_require__("a5ec");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/switch/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_switchvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_switch = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "4f43":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "downloadFile", function() { return downloadFile; });
+/* harmony import */ var uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e2e2");
+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; }
+
+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; }
+
+
+/**
+ * 下载任务
+ */
+
+var DownloadTask =
+/*#__PURE__*/
+function () {
+ function DownloadTask(xhr) {
+ _classCallCheck(this, DownloadTask);
+
+ _defineProperty(this, "_xhr", void 0);
+
+ _defineProperty(this, "_callbacks", []);
+
+ this._xhr = xhr;
+ }
+ /**
+ * 监听下载进度
+ * @param {Function} callback 回调
+ */
+
+
+ _createClass(DownloadTask, [{
+ key: "onProgressUpdate",
+ value: function onProgressUpdate(callback) {
+ if (typeof callback !== 'function') {
+ return;
+ }
+
+ this._callbacks.push(callback);
+ }
+ /**
+ * 停止任务
+ */
+
+ }, {
+ key: "abort",
+ value: function abort() {
+ if (this._xhr) {
+ this._xhr.abort();
+
+ delete this._xhr;
+ }
+ }
+ }]);
+
+ return DownloadTask;
+}();
+/**
+ * 下载文件
+ * @param {*} param0
+ * @param {string} callbackId
+ * @return {DownloadTask}
+ */
+
+
+function downloadFile(_ref, callbackId) {
+ var url = _ref.url,
+ header = _ref.header;
+ var timeout = __uniConfig.networkTimeout && __uniConfig.networkTimeout.downloadFile || 60 * 1000;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ var timer;
+ var xhr = new XMLHttpRequest();
+ var downloadTask = new DownloadTask(xhr);
+ xhr.open('GET', url, true);
+ Object.keys(header).forEach(function (key) {
+ xhr.setRequestHeader(key, header[key]);
+ });
+ xhr.responseType = 'blob';
+
+ xhr.onload = function () {
+ clearTimeout(timer);
+ var statusCode = xhr.status;
+ var blob = this.response;
+ invoke(callbackId, {
+ errMsg: 'downloadFile:ok',
+ statusCode: statusCode,
+ tempFilePath: Object(uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__[/* fileToUrl */ "a"])(blob)
+ });
+ };
+
+ xhr.onabort = function () {
+ clearTimeout(timer);
+ invoke(callbackId, {
+ errMsg: 'downloadFile:fail abort'
+ });
+ };
+
+ xhr.onerror = function () {
+ clearTimeout(timer);
+ invoke(callbackId, {
+ errMsg: 'downloadFile:fail'
+ });
+ };
+
+ xhr.onprogress = function (event) {
+ downloadTask._callbacks.forEach(function (callback) {
+ var totalBytesWritten = event.loaded;
+ var totalBytesExpectedToWrite = event.total;
+ var progress = Math.round(totalBytesWritten / totalBytesExpectedToWrite * 100);
+ callback({
+ progress: progress,
+ totalBytesWritten: totalBytesWritten,
+ totalBytesExpectedToWrite: totalBytesExpectedToWrite
+ });
+ });
+ };
+
+ xhr.send();
+ timer = setTimeout(function () {
+ xhr.onprogress = xhr.onload = xhr.onabort = xhr.onerror = null;
+ downloadTask.abort();
+ invoke(callbackId, {
+ errMsg: 'downloadFile:fail timeout'
+ });
+ }, timeout);
+ return downloadTask;
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "4f97":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {var SPACE_UNICODE = {
+ 'ensp': "\u2002",
+ 'emsp': "\u2003",
+ 'nbsp': "\xA0"
+};
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'Text',
+ props: {
+ selectable: {
+ type: [Boolean, String],
+ default: false
+ },
+ space: {
+ type: String,
+ default: ''
+ },
+ decode: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ methods: {
+ _decodeHtml: function _decodeHtml(htmlString) {
+ if (this.space && SPACE_UNICODE[this.space]) {
+ htmlString = htmlString.replace(/ /g, SPACE_UNICODE[this.space]);
+ }
+
+ if (this.decode) {
+ htmlString = htmlString.replace(/ /g, SPACE_UNICODE.nbsp).replace(/ /g, SPACE_UNICODE.ensp).replace(/ /g, SPACE_UNICODE.emsp).replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, "'");
+ }
+
+ return htmlString;
+ }
+ },
+ render: function render(createElement) {
+ var _this = this;
+
+ var nodeList = [];
+ this.$slots.default && this.$slots.default.forEach(function (vnode) {
+ if (vnode.text) {
+ // 处理可能出现的多余的转义字符
+ var nodeText = vnode.text.replace(/\\n/g, '\n');
+ var texts = nodeText.split('\n');
+ texts.forEach(function (text, index) {
+ nodeList.push(_this._decodeHtml(text));
+
+ if (index !== texts.length - 1) {
+ nodeList.push(createElement('br'));
+ }
+ });
+ } else {
+ if (vnode.componentOptions && vnode.componentOptions.tag !== 'v-uni-text') {
+ console.warn(' 组件内只支持嵌套 ,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。');
+ }
+
+ nodeList.push(vnode);
+ }
+ });
+ return createElement('uni-text', {
+ on: this.$listeners,
+ attrs: {
+ selectable: !!this.selectable
+ }
+ }, [createElement('span', {}, nodeList)]);
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "4fef":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_actionSheet_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2fb0");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_actionSheet_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_actionSheet_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_actionSheet_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "500a":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "501c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "on", function() { return on; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "off", function() { return off; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emit", function() { return emit; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribe", function() { return subscribe; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unsubscribe", function() { return unsubscribe; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeHandler", function() { return subscribeHandler; });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8bbf");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var _subscribe__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8ecd");
+/* harmony import */ var uni_platform_view_bridge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("4a59");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishHandler", function() { return uni_platform_view_bridge__WEBPACK_IMPORTED_MODULE_2__["a"]; });
+
+
+
+var Emitter = new vue__WEBPACK_IMPORTED_MODULE_0___default.a();
+var on = Emitter.$on.bind(Emitter);
+var off = Emitter.$off.bind(Emitter);
+var once = Emitter.$once.bind(Emitter);
+var emit = Emitter.$emit.bind(Emitter);
+function subscribe(event, callback) {
+ return on('service.' + event, callback);
+}
+function unsubscribe(event, callback) {
+ return off('service.' + event, callback);
+}
+function subscribeHandler(event, args, pageId) {
+ emit('service.' + event, args, pageId);
+}
+
+Object(_subscribe__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(subscribe);
+
+/***/ }),
+
+/***/ "5129":
+/***/ (function(module, exports) {
+
+module.exports = ['uni-app', 'uni-tabbar', 'uni-page', 'uni-page-head', 'uni-page-wrapper', 'uni-page-body', 'uni-page-refresh', 'uni-actionsheet', 'uni-modal', 'uni-picker', 'uni-toast', 'uni-resize-sensor', 'uni-ad', 'uni-audio', 'uni-button', 'uni-camera', 'uni-canvas', 'uni-checkbox', 'uni-checkbox-group', 'uni-cover-image', 'uni-cover-view', 'uni-form', 'uni-functional-page-navigator', // 'uni-icon',
+'uni-image', 'uni-input', 'uni-label', 'uni-live-player', 'uni-live-pusher', 'uni-map', 'uni-movable-area', 'uni-movable-view', 'uni-navigator', 'uni-official-account', 'uni-open-data', 'uni-picker', 'uni-picker-view', 'uni-picker-view-column', 'uni-progress', 'uni-radio', 'uni-radio-group', 'uni-rich-text', 'uni-scroll-view', 'uni-slider', 'uni-swiper', 'uni-swiper-item', 'uni-switch', 'uni-text', 'uni-textarea', 'uni-video', 'uni-view', 'uni-web-view'];
+
+/***/ }),
+
+/***/ "5363":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Friction; });
+function Friction(e) {
+ this._drag = e;
+ this._dragLog = Math.log(e);
+ this._x = 0;
+ this._v = 0;
+ this._startTime = 0;
+}
+
+Friction.prototype.set = function (e, t) {
+ this._x = e;
+ this._v = t;
+ this._startTime = new Date().getTime();
+};
+
+Friction.prototype.setVelocityByEnd = function (e) {
+ this._v = (e - this._x) * this._dragLog / (Math.pow(this._drag, 100) - 1);
+};
+
+Friction.prototype.x = function (e) {
+ if (e === undefined) {
+ e = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ var t;
+ t = e === this._dt && this._powDragDt ? this._powDragDt : this._powDragDt = Math.pow(this._drag, e);
+ this._dt = e;
+ return this._x + this._v * t / this._dragLog - this._v / this._dragLog;
+};
+
+Friction.prototype.dx = function (e) {
+ if (e === undefined) {
+ e = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ var t;
+ t = e === this._dt && this._powDragDt ? this._powDragDt : this._powDragDt = Math.pow(this._drag, e);
+ this._dt = e;
+ return this._v * t;
+};
+
+Friction.prototype.done = function () {
+ return Math.abs(this.dx()) < 3;
+};
+
+Friction.prototype.reconfigure = function (e) {
+ var t = this.x();
+ var n = this.dx();
+ this._drag = e;
+ this._dragLog = Math.log(e);
+ this.set(t, n);
+};
+
+Friction.prototype.configuration = function () {
+ var e = this;
+ return [{
+ label: 'Friction',
+ read: function read() {
+ return e._drag;
+ },
+ write: function write(t) {
+ e.reconfigure(t);
+ },
+ min: 0.001,
+ max: 0.1,
+ step: 0.001
+ }];
+};
+
+/***/ }),
+
+/***/ "53f0":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5408":
+/***/ (function(module, exports, __webpack_require__) {
+
+var map = {
+ "./button/index.vue": "d3bd",
+ "./canvas/index.vue": "bacd",
+ "./checkbox-group/index.vue": "25ce",
+ "./checkbox/index.vue": "7bb3",
+ "./form/index.vue": "b34d",
+ "./image/index.vue": "1082",
+ "./input/index.vue": "250d",
+ "./label/index.vue": "70f4",
+ "./movable-area/index.vue": "c61c",
+ "./movable-view/index.vue": "8842",
+ "./navigator/index.vue": "17fd",
+ "./picker-view-column/index.vue": "1955",
+ "./picker-view/index.vue": "27ab",
+ "./picker/index.vue": "c35d",
+ "./progress/index.vue": "9b1f",
+ "./radio-group/index.vue": "d5ec",
+ "./radio/index.vue": "6491",
+ "./resize-sensor/index.vue": "3e8c",
+ "./rich-text/index.vue": "b705",
+ "./scroll-view/index.vue": "f1ef",
+ "./slider/index.vue": "9f96",
+ "./swiper-item/index.vue": "9213",
+ "./swiper/index.vue": "5513",
+ "./switch/index.vue": "4f1c",
+ "./text/index.vue": "4da7",
+ "./textarea/index.vue": "5768",
+ "./view/index.vue": "2bbe"
+};
+
+
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ var id = map[req];
+ if(!(id + 1)) { // check for number or string
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return id;
+}
+webpackContext.keys = function webpackContextKeys() {
+ return Object.keys(map);
+};
+webpackContext.resolve = webpackContextResolve;
+module.exports = webpackContext;
+webpackContext.id = "5408";
+
+/***/ }),
+
+/***/ "5513":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js
+var touchtrack = __webpack_require__("ba15");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/swiper/index.vue?vue&type=script&lang=js&
+//
+
+/* harmony default export */ var swipervue_type_script_lang_js_ = ({
+ name: 'Swiper',
+ mixins: [touchtrack["a" /* default */]],
+ props: {
+ indicatorDots: {
+ type: [Boolean, String],
+ default: false
+ },
+ vertical: {
+ type: [Boolean, String],
+ default: false
+ },
+ autoplay: {
+ type: [Boolean, String],
+ default: false
+ },
+ circular: {
+ type: [Boolean, String],
+ default: false
+ },
+ interval: {
+ type: [Number, String],
+ default: 5e3
+ },
+ duration: {
+ type: [Number, String],
+ default: 500
+ },
+ current: {
+ type: [Number, String],
+ default: 0
+ },
+ indicatorColor: {
+ type: String,
+ default: ''
+ },
+ indicatorActiveColor: {
+ type: String,
+ default: ''
+ },
+ previousMargin: {
+ type: String,
+ default: ''
+ },
+ nextMargin: {
+ type: String,
+ default: ''
+ },
+ currentItemId: {
+ type: String,
+ default: ''
+ },
+ skipHiddenItemLayout: {
+ type: [Boolean, String],
+ default: false
+ },
+ displayMultipleItems: {
+ type: [Number, String],
+ default: 1
+ }
+ },
+ data: function data() {
+ return {
+ currentSync: Math.round(this.current) || 0,
+ currentItemIdSync: this.currentItemId || '',
+ userTracking: false,
+ currentChangeSource: '',
+ items: []
+ };
+ },
+ computed: {
+ intervalNumber: function intervalNumber() {
+ var interval = Number(this.interval);
+ return isNaN(interval) ? 5e3 : interval;
+ },
+ durationNumber: function durationNumber() {
+ var duration = Number(this.duration);
+ return isNaN(duration) ? 500 : duration;
+ },
+ displayMultipleItemsNumber: function displayMultipleItemsNumber() {
+ var displayMultipleItems = Math.round(this.displayMultipleItems);
+ return isNaN(displayMultipleItems) ? 1 : displayMultipleItems;
+ },
+ slidesStyle: function slidesStyle() {
+ var style = {};
+
+ if (this.nextMargin || this.previousMargin) {
+ style = this.vertical ? {
+ left: 0,
+ right: 0,
+ top: this._upx2px(this.previousMargin),
+ bottom: this._upx2px(this.nextMargin)
+ } : {
+ top: 0,
+ bottom: 0,
+ left: this._upx2px(this.previousMargin),
+ right: this._upx2px(this.nextMargin)
+ };
+ }
+
+ return style;
+ },
+ slideFrameStyle: function slideFrameStyle() {
+ var value = Math.abs(100 / this.displayMultipleItemsNumber) + '%';
+ return {
+ width: this.vertical ? '100%' : value,
+ height: !this.vertical ? '100%' : value
+ };
+ },
+ circularEnabled: function circularEnabled() {
+ return this.circular && this.items.length > this.displayMultipleItemsNumber;
+ }
+ },
+ watch: {
+ vertical: function vertical() {
+ this._resetLayout();
+ },
+ circular: function circular() {
+ this._resetLayout();
+ },
+ intervalNumber: function intervalNumber(val) {
+ if (this._timer) {
+ this._cancelSchedule();
+
+ this._scheduleAutoplay();
+ }
+ },
+ current: function current(val) {
+ this._currentCheck();
+ },
+ currentSync: function currentSync(val) {
+ this._currentChanged(val);
+
+ this.$emit('update:current', val);
+ },
+ currentItemId: function currentItemId(val) {
+ this._currentCheck();
+ },
+ currentItemIdSync: function currentItemIdSync(val) {
+ this.$emit('update:currentItemId', val);
+ },
+ displayMultipleItemsNumber: function displayMultipleItemsNumber() {
+ this._resetLayout();
+ }
+ },
+ created: function created() {
+ this._invalid = true;
+ this._viewportPosition = 0;
+ this._viewportMoveRatio = 1;
+ this._animating = null;
+ this._requestedAnimation = false;
+ this._userDirectionChecked = false;
+ this._contentTrackViewport = 0;
+ this._contentTrackSpeed = 0;
+ this._contentTrackT = 0;
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ this._currentCheck();
+
+ this.touchtrack(this.$refs.slidesWrapper, '_handleContentTrack', true);
+
+ this._resetLayout();
+
+ this.$watch(function () {
+ return _this.autoplay && !_this.userTracking;
+ }, this._inintAutoplay);
+
+ this._inintAutoplay(this.autoplay && !this.userTracking);
+
+ this.$watch('items.length', this._resetLayout);
+ },
+ beforeDestroy: function beforeDestroy() {
+ this._cancelSchedule();
+ },
+ methods: {
+ _inintAutoplay: function _inintAutoplay(enable) {
+ if (enable) {
+ this._scheduleAutoplay();
+ } else {
+ this._cancelSchedule();
+ }
+ },
+
+ /**
+ * 页面变更检查和同步
+ */
+ _currentCheck: function _currentCheck() {
+ var current = -1;
+
+ if (this.currentItemId) {
+ for (var i = 0, items = this.items; i < items.length; i++) {
+ var componentInstance = items[i].componentInstance;
+
+ if (componentInstance && componentInstance.itemId === this.currentItemId) {
+ current = i;
+ break;
+ }
+ }
+ }
+
+ if (current < 0) {
+ current = Math.round(this.current) || 0;
+ }
+
+ current = current < 0 ? 0 : current;
+
+ if (this.currentSync !== current) {
+ this.currentChangeSource = '';
+ this.currentSync = current;
+ }
+ },
+ _itemReady: function _itemReady(vnode, callback) {
+ if (vnode.componentInstance && vnode.componentInstance._isMounted) {
+ callback();
+ } else {
+ vnode._callbacks = vnode._callbacks || [];
+
+ vnode._callbacks.push(callback);
+ }
+ },
+
+ /**
+ * 当前页面变更
+ */
+ _currentChanged: function _currentChanged(current) {
+ var _this2 = this;
+
+ var source = this.currentChangeSource;
+ this.currentChangeSource = '';
+
+ if (!source) {
+ this._animateViewport(current, '', 0);
+ }
+
+ var item = this.items[current];
+
+ if (item) {
+ this._itemReady(item, function () {
+ var currentItemId = _this2.currentItemIdSync = item.componentInstance.itemId || '';
+
+ _this2.$trigger('change', {}, {
+ current: _this2.currentSync,
+ currentItemId: currentItemId,
+ source: source
+ });
+ });
+ }
+ },
+
+ /**
+ * 自动播放
+ */
+ _scheduleAutoplay: function _scheduleAutoplay() {
+ var self = this;
+
+ this._cancelSchedule();
+
+ function timer() {
+ self._timer = null;
+ self.currentChangeSource = 'autoplay';
+
+ if (self.circularEnabled) {
+ self.currentSync = self._normalizeCurrentValue(self.currentSync + 1);
+ } else {
+ self.currentSync = self.currentSync + self.displayMultipleItemsNumber < self.items.length ? self.currentSync + 1 : 0;
+ }
+
+ self._animateViewport(self.currentSync, 'autoplay', self.circularEnabled ? 1 : 0);
+
+ self._timer = setTimeout(timer, self.intervalNumber);
+ }
+
+ if (!(!this._isMounted || this._invalid || this.items.length <= this.displayMultipleItemsNumber)) {
+ this._timer = setTimeout(timer, this.intervalNumber);
+ }
+ },
+
+ /**
+ * 清除定时器
+ */
+ _cancelSchedule: function _cancelSchedule() {
+ if (this._timer) {
+ clearTimeout(this._timer);
+ this._timer = null;
+ }
+ },
+
+ /**
+ * 检查当前页值
+ */
+ _normalizeCurrentValue: function _normalizeCurrentValue(current) {
+ var length = this.items.length;
+
+ if (!length) {
+ return -1;
+ }
+
+ var index = (Math.round(current) % length + length) % length;
+
+ if (this.circularEnabled) {
+ if (length <= this.displayMultipleItemsNumber) {
+ return 0;
+ }
+ } else if (index > length - this.displayMultipleItemsNumber) {
+ return length - this.displayMultipleItemsNumber;
+ }
+
+ return index;
+ },
+ _upx2px: function _upx2px(val) {
+ if (/\d+[ur]px$/i.test(val)) {
+ val.replace(/\d+[ur]px$/i, function (text) {
+ return "".concat(uni.upx2px(parseFloat(text)), "px");
+ });
+ }
+
+ return val || '';
+ },
+
+ /**
+ * 重新布局
+ */
+ _resetLayout: function _resetLayout() {
+ if (this._isMounted) {
+ this._cancelSchedule();
+
+ this._endViewportAnimation();
+
+ var items = this.items;
+
+ for (var i = 0; i < items.length; i++) {
+ this._updateItemPos(i, i);
+ }
+
+ this._viewportMoveRatio = 1;
+
+ if (this.displayMultipleItemsNumber === 1 && items.length) {
+ var itemRect = items[0].componentInstance.$el.getBoundingClientRect();
+ var slideFrameRect = this.$refs.slideFrame.getBoundingClientRect();
+ this._viewportMoveRatio = itemRect.width / slideFrameRect.width;
+
+ if (!(this._viewportMoveRatio > 0 && this._viewportMoveRatio < 1)) {
+ this._viewportMoveRatio = 1;
+ }
+ }
+
+ var position = this._viewportPosition;
+ this._viewportPosition = -2;
+ var current = this.currentSync;
+
+ if (current >= 0) {
+ this._invalid = false;
+
+ if (this.userTracking) {
+ this._updateViewport(position + current - this._contentTrackViewport);
+
+ this._contentTrackViewport = current;
+ } else {
+ this._updateViewport(current);
+
+ if (this.autoplay) {
+ this._scheduleAutoplay();
+ }
+ }
+ } else {
+ this._invalid = true;
+
+ this._updateViewport(-this.displayMultipleItemsNumber - 1);
+ }
+ }
+ },
+ _checkCircularLayout: function _checkCircularLayout(e) {
+ if (!this._invalid) {
+ for (var items = this.items, n = items.length, i = e + this.displayMultipleItemsNumber, r = 0; r < n; r++) {
+ var item = items[r];
+ var _position = item._position;
+ var s = Math.floor(e / n) * n + r;
+ var l = s + n;
+ var c = s - n;
+ var u = Math.max(e - (s + 1), s - i, 0);
+ var d = Math.max(e - (l + 1), l - i, 0);
+ var h = Math.max(e - (c + 1), c - i, 0);
+ var p = Math.min(u, d, h);
+ var f = [s, l, c][[u, d, h].indexOf(p)];
+
+ if (_position !== f) {
+ this._updateItemPos(r, f);
+ }
+ }
+ }
+ },
+ _updateItemPos: function _updateItemPos(current, position) {
+ var x = this.vertical ? '0' : 100 * position + '%';
+ var y = this.vertical ? 100 * position + '%' : '0';
+ var transform = 'translate(' + x + ', ' + y + ') translateZ(0)';
+ var item = this.items[current];
+
+ this._itemReady(item, function () {
+ var el = item.componentInstance.$el;
+ el.style['-webkit-transform'] = transform;
+ el.style.transform = transform;
+ el._position = position;
+ });
+ },
+ _updateViewport: function _updateViewport(index) {
+ if (!(Math.floor(2 * this._viewportPosition) === Math.floor(2 * index) && Math.ceil(2 * this._viewportPosition) === Math.ceil(2 * index))) {
+ if (this.circularEnabled) {
+ this._checkCircularLayout(index);
+ }
+ }
+
+ var x = this.vertical ? '0' : 100 * -index * this._viewportMoveRatio + '%';
+ var y = this.vertical ? 100 * -index * this._viewportMoveRatio + '%' : '0';
+ var transform = 'translate(' + x + ', ' + y + ') translateZ(0)';
+ var slideFrame = this.$refs.slideFrame;
+
+ if (slideFrame) {
+ slideFrame.style['-webkit-transform'] = transform;
+ slideFrame.style.transform = transform;
+ }
+
+ this._viewportPosition = index;
+ },
+ _animateFrameFuncProto: function _animateFrameFuncProto() {
+ var _this3 = this;
+
+ if (!this._animating) {
+ this._requestedAnimation = false;
+ return;
+ }
+
+ var _animating = this._animating;
+ var toPos = _animating.toPos;
+ var acc = _animating.acc;
+ var endTime = _animating.endTime;
+ var source = _animating.source;
+ var time = endTime - Date.now();
+
+ if (time <= 0) {
+ this._updateViewport(toPos);
+
+ this._animating = null;
+ this._requestedAnimation = false;
+ var item = this.items[this.currentSync];
+
+ if (item) {
+ this._itemReady(item, function () {
+ var currentItemId = item.componentInstance.itemId || '';
+
+ _this3.$trigger('animationfinish', {}, {
+ current: _this3.currentSync,
+ currentItemId: currentItemId,
+ source: source
+ });
+ });
+ }
+
+ return;
+ }
+
+ var s = acc * time * time / 2;
+ var l = toPos + s;
+
+ this._updateViewport(l);
+
+ requestAnimationFrame(this._animateFrameFuncProto.bind(this));
+ },
+ _animateViewport: function _animateViewport(current, source, n) {
+ this._cancelViewportAnimation();
+
+ var duration = this.durationNumber;
+ var length = this.items.length;
+ var position = this._viewportPosition;
+
+ if (this.circularEnabled) {
+ if (n < 0) {
+ for (; position < current;) {
+ position += length;
+ }
+
+ for (; position - length > current;) {
+ position -= length;
+ }
+ } else if (n > 0) {
+ for (; position > current;) {
+ position -= length;
+ }
+
+ for (; position + length < current;) {
+ position += length;
+ }
+ } else {
+ for (; position + length < current;) {
+ position += length;
+ }
+
+ for (; position - length > current;) {
+ position -= length;
+ }
+
+ if (position + length - current < current - position) {
+ position += length;
+ }
+ }
+ }
+
+ this._animating = {
+ toPos: current,
+ acc: 2 * (position - current) / (duration * duration),
+ endTime: Date.now() + duration,
+ source: source
+ };
+
+ if (!this._requestedAnimation) {
+ this._requestedAnimation = true;
+ requestAnimationFrame(this._animateFrameFuncProto.bind(this));
+ }
+ },
+ _cancelViewportAnimation: function _cancelViewportAnimation() {
+ this._animating = null;
+ },
+
+ /**
+ * 结束动画
+ */
+ _endViewportAnimation: function _endViewportAnimation() {
+ if (this._animating) {
+ this._updateViewport(this._animating.toPos);
+
+ this._animating = null;
+ }
+ },
+ _handleTrackStart: function _handleTrackStart() {
+ this._cancelSchedule();
+
+ this._contentTrackViewport = this._viewportPosition;
+ this._contentTrackSpeed = 0;
+ this._contentTrackT = Date.now();
+
+ this._cancelViewportAnimation();
+ },
+ _handleTrackMove: function _handleTrackMove(data) {
+ var self = this;
+ var contentTrackT = this._contentTrackT;
+ this._contentTrackT = Date.now();
+ var length = this.items.length;
+ var other = length - this.displayMultipleItemsNumber;
+
+ function calc(val) {
+ return 0.5 - 0.25 / (val + 0.5);
+ }
+
+ function move(oldVal, newVal) {
+ var val = self._contentTrackViewport + oldVal;
+ self._contentTrackSpeed = 0.6 * self._contentTrackSpeed + 0.4 * newVal;
+
+ if (!self.circularEnabled) {
+ if (val < 0 || val > other) {
+ if (val < 0) {
+ val = -calc(-val);
+ } else {
+ if (val > other) {
+ val = other + calc(val - other);
+ }
+ }
+
+ self._contentTrackSpeed = 0;
+ }
+ }
+
+ self._updateViewport(val);
+ }
+
+ var time = this._contentTrackT - contentTrackT || 1;
+
+ if (this.vertical) {
+ move(-data.dy / this.$refs.slideFrame.offsetHeight, -data.ddy / time);
+ } else {
+ move(-data.dx / this.$refs.slideFrame.offsetWidth, -data.ddx / time);
+ }
+ },
+ _handleTrackEnd: function _handleTrackEnd(isCancel) {
+ this.userTracking = false;
+ var t = this._contentTrackSpeed / Math.abs(this._contentTrackSpeed);
+ var n = 0;
+
+ if (!isCancel && Math.abs(this._contentTrackSpeed) > 0.2) {
+ n = 0.5 * t;
+ }
+
+ var current = this._normalizeCurrentValue(this._viewportPosition + n);
+
+ if (isCancel) {
+ this._updateViewport(this._contentTrackViewport);
+ } else {
+ this.currentChangeSource = 'touch';
+ this.currentSync = current;
+
+ this._animateViewport(current, 'touch', n !== 0 ? n : current === 0 && this.circularEnabled && this._viewportPosition >= 1 ? 1 : 0);
+ }
+ },
+ _handleContentTrack: function _handleContentTrack(e) {
+ if (!this._invalid) {
+ if (e.detail.state === 'start') {
+ this.userTracking = true;
+ this._userDirectionChecked = false;
+ return this._handleTrackStart();
+ } // fixed by xxxxxx
+
+
+ if (e.detail.state === 'end') {
+ return this._handleTrackEnd(false);
+ }
+
+ if (e.detail.state === 'cancel') {
+ return this._handleTrackEnd(true);
+ }
+
+ if (this.userTracking) {
+ if (!this._userDirectionChecked) {
+ this._userDirectionChecked = true;
+ var t = Math.abs(e.detail.dx);
+ var n = Math.abs(e.detail.dy);
+
+ if (t >= n && this.vertical) {
+ this.userTracking = false;
+ } else {
+ if (t <= n && !this.vertical) {
+ this.userTracking = false;
+ }
+ }
+
+ if (!this.userTracking) {
+ if (this.autoplay) {
+ this._scheduleAutoplay();
+ }
+
+ return;
+ }
+ }
+
+ this._handleTrackMove(e.detail);
+
+ return false;
+ }
+ }
+ }
+ },
+ render: function render(createElement) {
+ var slidesDots = [];
+ var swiperItems = [];
+
+ if (this.$slots.default) {
+ this.$slots.default.forEach(function (vnode) {
+ if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-swiper-item') {
+ swiperItems.push(vnode);
+ }
+ });
+ }
+
+ for (var index = 0, length = swiperItems.length; index < length; index++) {
+ var currentSync = this.currentSync;
+ slidesDots.push(createElement('div', {
+ class: {
+ 'uni-swiper-dot': true,
+ 'uni-swiper-dot-active': index < currentSync + this.displayMultipleItemsNumber && index >= currentSync || index < currentSync + this.displayMultipleItemsNumber - length
+ },
+ style: {
+ 'background': index === currentSync ? this.indicatorActiveColor : this.indicatorColor
+ }
+ }));
+ }
+
+ this.items = swiperItems;
+ var slidesWrapperChild = [createElement('div', {
+ ref: 'slides',
+ style: this.slidesStyle,
+ 'class': 'uni-swiper-slides'
+ }, [createElement('div', {
+ ref: 'slideFrame',
+ class: 'uni-swiper-slide-frame',
+ style: this.slideFrameStyle
+ }, swiperItems)])];
+
+ if (this.indicatorDots) {
+ slidesWrapperChild.push(createElement('div', {
+ ref: 'slidesDots',
+ 'class': ['uni-swiper-dots', this.vertical ? 'uni-swiper-dots-vertical' : 'uni-swiper-dots-horizontal']
+ }, slidesDots));
+ }
+
+ return createElement('uni-swiper', [createElement('div', {
+ ref: 'slidesWrapper',
+ 'class': 'uni-swiper-wrapper',
+ on: this.$listeners
+ }, slidesWrapperChild)]);
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/swiper/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_swipervue_type_script_lang_js_ = (swipervue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/swiper/index.vue?vue&type=style&index=0&lang=css&
+var swipervue_type_style_index_0_lang_css_ = __webpack_require__("1c64");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/swiper/index.vue
+var render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_swipervue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var swiper = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "5676":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0950");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "5727":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("d60d");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "5768":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/textarea/index.vue?vue&type=template&id=28361ab8&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-textarea',_vm._g({attrs:{"value":_vm._checkEmpty(_vm.value),"maxlength":_vm.maxlengthNumber,"placeholder":_vm._checkEmpty(_vm.placeholder),"disabled":_vm.disabled,"focus":_vm.focus,"auto-focus":_vm.autoFocus,"placeholder-class":_vm._checkEmpty(_vm.placeholderClass),"placeholder-style":_vm._checkEmpty(_vm.placeholderStyle),"auto-height":_vm.autoHeight,"cursor":_vm.cursorNumber,"selection-start":_vm.selectionStartNumber,"selection-end":_vm.selectionEndNumber}},_vm.$listeners),[_c('div',{staticClass:"uni-textarea-wrapper"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(!(_vm.composition||_vm.valueSync.length)),expression:"!(composition||valueSync.length)"}],ref:"placeholder",staticClass:"uni-textarea-placeholder",class:_vm.placeholderClass,style:(_vm.placeholderStyle)},[_vm._v(_vm._s(_vm.placeholder))]),_c('div',{staticClass:"uni-textarea-compute"},[_vm._l((_vm.valueCompute),function(item,index){return _c('div',{key:index},[_vm._v(_vm._s(item.trim() ? item : '.'))])}),_c('v-uni-resize-sensor',{ref:"sensor",on:{"resize":_vm._resize}})],2),_c('textarea',{directives:[{name:"model",rawName:"v-model",value:(_vm.valueSync),expression:"valueSync"}],ref:"textarea",staticClass:"uni-textarea-textarea",class:{'uni-textarea-textarea-ios': _vm.isIOS},attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlengthNumber,"autofocus":_vm.autoFocus},domProps:{"value":(_vm.valueSync)},on:{"compositionstart":_vm._compositionstart,"compositionend":_vm._compositionend,"input":[function($event){if($event.target.composing){ return; }_vm.valueSync=$event.target.value},function($event){$event.stopPropagation();return _vm._input($event)}],"focus":_vm._focus,"blur":_vm._blur,"&touchstart":function($event){return _vm._touchstart($event)}}})])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue?vue&type=template&id=28361ab8&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/textarea/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var textareavue_type_script_lang_js_ = ({
+ name: 'Textarea',
+ mixins: [mixins["a" /* emitter */]],
+ model: {
+ prop: 'value',
+ event: 'update:value'
+ },
+ props: {
+ name: {
+ type: String,
+ default: ''
+ },
+ value: {
+ type: [String, Number],
+ default: ''
+ },
+ maxlength: {
+ type: [Number, String],
+ default: 140
+ },
+ placeholder: {
+ type: String,
+ default: ''
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ focus: {
+ type: [Boolean, String],
+ default: false
+ },
+ autoFocus: {
+ type: [Boolean, String],
+ default: false
+ },
+ placeholderClass: {
+ type: String,
+ default: ''
+ },
+ placeholderStyle: {
+ type: String,
+ default: ''
+ },
+ autoHeight: {
+ type: [Boolean, String],
+ default: false
+ },
+ cursor: {
+ type: [Number, String],
+ default: -1
+ },
+ selectionStart: {
+ type: [Number, String],
+ default: -1
+ },
+ selectionEnd: {
+ type: [Number, String],
+ default: -1
+ }
+ },
+ data: function data() {
+ return {
+ valueSync: String(this.value),
+ valueComposition: '',
+ composition: false,
+ focusSync: this.focus,
+ height: 0,
+ focusChangeSource: '',
+ isIOS: String(navigator.platform).indexOf('iP') === 0 && String(navigator.vendor).indexOf('Apple') === 0
+ };
+ },
+ computed: {
+ maxlengthNumber: function maxlengthNumber() {
+ var maxlength = Number(this.maxlength);
+ return isNaN(maxlength) ? 140 : maxlength;
+ },
+ cursorNumber: function cursorNumber() {
+ var cursor = Number(this.cursor);
+ return isNaN(cursor) ? -1 : cursor;
+ },
+ selectionStartNumber: function selectionStartNumber() {
+ var selectionStart = Number(this.selectionStart);
+ return isNaN(selectionStart) ? -1 : selectionStart;
+ },
+ selectionEndNumber: function selectionEndNumber() {
+ var selectionEnd = Number(this.selectionEnd);
+ return isNaN(selectionEnd) ? -1 : selectionEnd;
+ },
+ valueCompute: function valueCompute() {
+ return (this.composition ? this.valueComposition : this.valueSync).split('\n');
+ }
+ },
+ watch: {
+ value: function value(val) {
+ this.valueSync = String(val);
+ },
+ valueSync: function valueSync(val) {
+ if (val !== this._oldValue) {
+ this._oldValue = val;
+ this.$trigger('input', {}, {
+ value: val,
+ cursor: this.$refs.textarea.selectionEnd
+ });
+ this.$emit('update:value', val);
+ }
+ },
+ focus: function focus(val) {
+ if (val) {
+ this.focusChangeSource = 'focus';
+
+ if (this.$refs.textarea) {
+ this.$refs.textarea.focus();
+ }
+ } else {
+ if (this.$refs.textarea) {
+ this.$refs.textarea.blur();
+ }
+ }
+ },
+ focusSync: function focusSync(val) {
+ this.$emit('update:focus', val);
+
+ this._checkSelection();
+
+ this._checkCursor();
+ },
+ cursorNumber: function cursorNumber() {
+ this._checkCursor();
+ },
+ selectionStartNumber: function selectionStartNumber() {
+ this._checkSelection();
+ },
+ selectionEndNumber: function selectionEndNumber() {
+ this._checkSelection();
+ },
+ height: function height(_height) {
+ var lineHeight = getComputedStyle(this.$el).lineHeight.replace('px', '');
+ var lineCount = Math.round(_height / lineHeight);
+ this.$trigger('linechange', {}, {
+ height: _height,
+ heightRpx: 750 / window.innerWidth * _height,
+ lineCount: lineCount
+ });
+
+ if (this.autoHeight) {
+ this.$el.style.height = this.height + 'px';
+ }
+ }
+ },
+ created: function created() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ mounted: function mounted() {
+ this._oldValue = this.$refs.textarea.value = this.valueSync;
+
+ this._resize({
+ height: this.$refs.sensor.$el.offsetHeight
+ });
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _focus: function _focus($event) {
+ this.focusSync = true;
+ this.$trigger('focus', $event, {
+ value: this.valueSync
+ });
+ },
+ _checkSelection: function _checkSelection() {
+ if (this.focusSync && !this.focusChangeSource && this.selectionStartNumber > -1 && this.selectionEndNumber > -1) {
+ this.$refs.textarea.selectionStart = this.selectionStartNumber;
+ this.$refs.textarea.selectionEnd = this.selectionEndNumber;
+ }
+ },
+ _checkCursor: function _checkCursor() {
+ if (this.focusSync && (this.focusChangeSource === 'focus' || !this.focusChangeSource && this.selectionStartNumber < 0 && this.selectionEndNumber < 0) && this.cursorNumber > -1) {
+ this.$refs.textarea.selectionEnd = this.$refs.textarea.selectionStart = this.cursorNumber;
+ }
+ },
+ _blur: function _blur($event) {
+ this.focusSync = false;
+ this.$trigger('blur', $event, {
+ value: this.valueSync,
+ cursor: this.$refs.textarea.selectionEnd
+ });
+ },
+ _compositionstart: function _compositionstart($event) {
+ this.composition = true;
+ },
+ _compositionend: function _compositionend($event) {
+ this.composition = false;
+ },
+ // 暂无完成按钮,此功能未实现
+ _confirm: function _confirm($event) {
+ this.$trigger('confirm', $event, {
+ value: this.valueSync
+ });
+ },
+ _linechange: function _linechange($event) {
+ this.$trigger('linechange', $event, {
+ value: this.valueSync
+ });
+ },
+ _touchstart: function _touchstart() {
+ this.focusChangeSource = 'touch';
+ },
+ _resize: function _resize(_ref) {
+ var height = _ref.height;
+ this.height = height;
+ },
+ _input: function _input($event) {
+ if (this.composition) {
+ this.valueComposition = $event.target.value;
+ }
+ },
+ _getFormData: function _getFormData() {
+ return {
+ value: this.valueSync,
+ key: this.name
+ };
+ },
+ _resetFormData: function _resetFormData() {
+ this.valueSync = '';
+ },
+ _checkEmpty: function _checkEmpty(str) {
+ return str || false;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_textareavue_type_script_lang_js_ = (textareavue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/textarea/index.vue?vue&type=style&index=0&lang=css&
+var textareavue_type_style_index_0_lang_css_ = __webpack_require__("9400");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_textareavue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_textarea = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "580e":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var _system_header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("bab8");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'SystemChooseLocation',
+ components: {
+ SystemHeader: _system_header__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]
+ },
+ data: function data() {
+ return {
+ src: '',
+ data: null
+ };
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ var key = __uniConfig.qqMapKey;
+ this.src = "https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=".concat(key, "&referer=uniapp");
+ window.addEventListener('message', function (event) {
+ var loc = event.data;
+
+ if (loc && loc.module === 'locationPicker') {
+ _this.data = {
+ name: loc.poiname,
+ address: loc.poiaddress,
+ latitude: loc.latlng.lat,
+ longitude: loc.latlng.lng
+ };
+ }
+ }, false);
+ },
+ methods: {
+ _choose: function _choose() {
+ if (this.data) {
+ UniViewJSBridge.publishHandler('onChooseLocation', this.data);
+ getApp().$router.back();
+ }
+ },
+ _back: function _back() {
+ UniViewJSBridge.publishHandler('onChooseLocation', null);
+ getApp().$router.back();
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "594d":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"120ddde1-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/platforms/h5/view/components/map/index.vue?vue&type=template&id=a133ab6e&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-map',{attrs:{"id":_vm.id}},[_c('div',{ref:"map",staticStyle:{"width":"100%","height":"100%","position":"relative","overflow":"hidden"}}),_c('div',{staticStyle:{"position":"absolute","top":"0","width":"100%","height":"100%","overflow":"hidden","pointer-events":"none"}},[_vm._t("default")],2)])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/h5/view/components/map/index.vue?vue&type=template&id=a133ab6e&
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-service/node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/platforms/h5/view/components/map/index.vue?vue&type=script&lang=js&
+var mapvue_type_script_lang_js_ = __webpack_require__("635e");
+
+// CONCATENATED MODULE: ./src/platforms/h5/view/components/map/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_mapvue_type_script_lang_js_ = (mapvue_type_script_lang_js_["a" /* default */]);
+// EXTERNAL MODULE: ./src/platforms/h5/view/components/map/index.vue?vue&type=style&index=0&lang=css&
+var mapvue_type_style_index_0_lang_css_ = __webpack_require__("3f7e");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/h5/view/components/map/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_mapvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var map = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "5a56":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony default export */ __webpack_exports__["default"] = ({
+ methods: {
+ beforeTransition: function beforeTransition() {},
+ afterTransition: function afterTransition() {}
+ }
+});
+
+/***/ }),
+
+/***/ "5ab3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fcd8");
+/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* unused harmony reexport * */
+ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "5abe":
+/***/ (function(module, exports) {
+
+/**
+ * Copyright 2016 Google Inc. All Rights Reserved.
+ *
+ * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.
+ *
+ * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document
+ *
+ */
+(function() {
+'use strict';
+
+// Exit early if we're not running in a browser.
+if (typeof window !== 'object') {
+ return;
+}
+
+// Exit early if all IntersectionObserver and IntersectionObserverEntry
+// features are natively supported.
+if ('IntersectionObserver' in window &&
+ 'IntersectionObserverEntry' in window &&
+ 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {
+
+ // Minimal polyfill for Edge 15's lack of `isIntersecting`
+ // See: https://github.com/w3c/IntersectionObserver/issues/211
+ if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {
+ Object.defineProperty(window.IntersectionObserverEntry.prototype,
+ 'isIntersecting', {
+ get: function () {
+ return this.intersectionRatio > 0;
+ }
+ });
+ }
+ return;
+}
+
+
+/**
+ * A local reference to the document.
+ */
+var document = window.document;
+
+
+/**
+ * An IntersectionObserver registry. This registry exists to hold a strong
+ * reference to IntersectionObserver instances currently observing a target
+ * element. Without this registry, instances without another reference may be
+ * garbage collected.
+ */
+var registry = [];
+
+
+/**
+ * Creates the global IntersectionObserverEntry constructor.
+ * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry
+ * @param {Object} entry A dictionary of instance properties.
+ * @constructor
+ */
+function IntersectionObserverEntry(entry) {
+ this.time = entry.time;
+ this.target = entry.target;
+ this.rootBounds = entry.rootBounds;
+ this.boundingClientRect = entry.boundingClientRect;
+ this.intersectionRect = entry.intersectionRect || getEmptyRect();
+ this.isIntersecting = !!entry.intersectionRect;
+
+ // Calculates the intersection ratio.
+ var targetRect = this.boundingClientRect;
+ var targetArea = targetRect.width * targetRect.height;
+ var intersectionRect = this.intersectionRect;
+ var intersectionArea = intersectionRect.width * intersectionRect.height;
+
+ // Sets intersection ratio.
+ if (targetArea) {
+ // Round the intersection ratio to avoid floating point math issues:
+ // https://github.com/w3c/IntersectionObserver/issues/324
+ this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));
+ } else {
+ // If area is zero and is intersecting, sets to 1, otherwise to 0
+ this.intersectionRatio = this.isIntersecting ? 1 : 0;
+ }
+}
+
+
+/**
+ * Creates the global IntersectionObserver constructor.
+ * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface
+ * @param {Function} callback The function to be invoked after intersection
+ * changes have queued. The function is not invoked if the queue has
+ * been emptied by calling the `takeRecords` method.
+ * @param {Object=} opt_options Optional configuration options.
+ * @constructor
+ */
+function IntersectionObserver(callback, opt_options) {
+
+ var options = opt_options || {};
+
+ if (typeof callback != 'function') {
+ throw new Error('callback must be a function');
+ }
+
+ if (options.root && options.root.nodeType != 1) {
+ throw new Error('root must be an Element');
+ }
+
+ // Binds and throttles `this._checkForIntersections`.
+ this._checkForIntersections = throttle(
+ this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);
+
+ // Private properties.
+ this._callback = callback;
+ this._observationTargets = [];
+ this._queuedEntries = [];
+ this._rootMarginValues = this._parseRootMargin(options.rootMargin);
+
+ // Public properties.
+ this.thresholds = this._initThresholds(options.threshold);
+ this.root = options.root || null;
+ this.rootMargin = this._rootMarginValues.map(function(margin) {
+ return margin.value + margin.unit;
+ }).join(' ');
+}
+
+
+/**
+ * The minimum interval within which the document will be checked for
+ * intersection changes.
+ */
+IntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;
+
+
+/**
+ * The frequency in which the polyfill polls for intersection changes.
+ * this can be updated on a per instance basis and must be set prior to
+ * calling `observe` on the first target.
+ */
+IntersectionObserver.prototype.POLL_INTERVAL = null;
+
+/**
+ * Use a mutation observer on the root element
+ * to detect intersection changes.
+ */
+IntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;
+
+
+/**
+ * Starts observing a target element for intersection changes based on
+ * the thresholds values.
+ * @param {Element} target The DOM element to observe.
+ */
+IntersectionObserver.prototype.observe = function(target) {
+ var isTargetAlreadyObserved = this._observationTargets.some(function(item) {
+ return item.element == target;
+ });
+
+ if (isTargetAlreadyObserved) {
+ return;
+ }
+
+ if (!(target && target.nodeType == 1)) {
+ throw new Error('target must be an Element');
+ }
+
+ this._registerInstance();
+ this._observationTargets.push({element: target, entry: null});
+ this._monitorIntersections();
+ this._checkForIntersections();
+};
+
+
+/**
+ * Stops observing a target element for intersection changes.
+ * @param {Element} target The DOM element to observe.
+ */
+IntersectionObserver.prototype.unobserve = function(target) {
+ this._observationTargets =
+ this._observationTargets.filter(function(item) {
+
+ return item.element != target;
+ });
+ if (!this._observationTargets.length) {
+ this._unmonitorIntersections();
+ this._unregisterInstance();
+ }
+};
+
+
+/**
+ * Stops observing all target elements for intersection changes.
+ */
+IntersectionObserver.prototype.disconnect = function() {
+ this._observationTargets = [];
+ this._unmonitorIntersections();
+ this._unregisterInstance();
+};
+
+
+/**
+ * Returns any queue entries that have not yet been reported to the
+ * callback and clears the queue. This can be used in conjunction with the
+ * callback to obtain the absolute most up-to-date intersection information.
+ * @return {Array} The currently queued entries.
+ */
+IntersectionObserver.prototype.takeRecords = function() {
+ var records = this._queuedEntries.slice();
+ this._queuedEntries = [];
+ return records;
+};
+
+
+/**
+ * Accepts the threshold value from the user configuration object and
+ * returns a sorted array of unique threshold values. If a value is not
+ * between 0 and 1 and error is thrown.
+ * @private
+ * @param {Array|number=} opt_threshold An optional threshold value or
+ * a list of threshold values, defaulting to [0].
+ * @return {Array} A sorted list of unique and valid threshold values.
+ */
+IntersectionObserver.prototype._initThresholds = function(opt_threshold) {
+ var threshold = opt_threshold || [0];
+ if (!Array.isArray(threshold)) threshold = [threshold];
+
+ return threshold.sort().filter(function(t, i, a) {
+ if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {
+ throw new Error('threshold must be a number between 0 and 1 inclusively');
+ }
+ return t !== a[i - 1];
+ });
+};
+
+
+/**
+ * Accepts the rootMargin value from the user configuration object
+ * and returns an array of the four margin values as an object containing
+ * the value and unit properties. If any of the values are not properly
+ * formatted or use a unit other than px or %, and error is thrown.
+ * @private
+ * @param {string=} opt_rootMargin An optional rootMargin value,
+ * defaulting to '0px'.
+ * @return {Array