diff --git a/build/rollup.config.service.js b/build/rollup.config.app.js
similarity index 85%
rename from build/rollup.config.service.js
rename to build/rollup.config.app.js
index 32e9e6bfdcfe24f4116ebde288d5c223bf4162da..f3b09216db2aa8ff1313dbb31a08c0750df33cca 100644
--- a/build/rollup.config.service.js
+++ b/build/rollup.config.app.js
@@ -17,7 +17,7 @@ if (process.env.UNI_SERVICE === 'legacy') {
input = 'src/platforms/app-plus/service/uni/index.js'
output.file = 'packages/uni-app-plus-nvue/dist/uni.js'
output.banner =
- 'export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, getApp, getCurrentPages){\n'
+ 'export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, UniServiceJSBridge, getApp, getCurrentPages){\n'
output.footer = '\n return uni$1 \n}'
}
@@ -35,6 +35,7 @@ module.exports = {
}),
replace({
__GLOBAL__: 'getGlobalUni()',
+ __PLATFORM__: JSON.stringify(process.env.UNI_PLATFORM),
__PLATFORM_TITLE__: 'app-plus-nvue'
})
],
diff --git a/build/rollup.config.js b/build/rollup.config.mp.js
similarity index 100%
rename from build/rollup.config.js
rename to build/rollup.config.mp.js
diff --git a/package.json b/package.json
index 39f1e92050b920d605fbc42cbef489f0578ae880..65eac1fffe973b0d68912aaa3e8a7b294adfb431 100644
--- a/package.json
+++ b/package.json
@@ -5,16 +5,16 @@
"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.js",
- "build:uni:all": "npm run lint && npm run build:uni && npm run build:uni:nvue && npm run build:uni:legacy",
- "build:uni": "UNI_PLATFORM=app-plus-nvue UNI_SERVICE=uni rollup -c build/rollup.config.service.js",
- "build:uni:nvue": "cross-env UNI_PLATFORM=app-plus-nvue rollup -c build/rollup.config.service.js",
- "build:uni:legacy": "cross-env UNI_PLATFORM=app-plus-nvue UNI_SERVICE=legacy rollup -c build/rollup.config.service.js",
- "build:mp-qq": "cross-env UNI_PLATFORM=mp-qq rollup -c build/rollup.config.js",
- "build:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin rollup -c build/rollup.config.js",
- "build:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu rollup -c build/rollup.config.js",
- "build:mp-alipay": "cross-env UNI_PLATFORM=mp-alipay rollup -c build/rollup.config.js",
- "build:mp-toutiao": "cross-env UNI_PLATFORM=mp-toutiao rollup -c build/rollup.config.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"
},
diff --git a/packages/uni-app-plus-nvue/dist/index.js b/packages/uni-app-plus-nvue/dist/index.js
index ff7ad1b3060e78f85c3e051cada8d981cf63b223..eed1a583ad2414659422204e8e46da329b33bda4 100644
--- a/packages/uni-app-plus-nvue/dist/index.js
+++ b/packages/uni-app-plus-nvue/dist/index.js
@@ -1,5 +1,23 @@
import { createUniInstance } from './uni';
+function callHook (vm, hook, params) {
+ return (vm.$vm || vm).__call_hook(hook, params)
+}
+
+function callAppHook (vm, hook, params) {
+ if (hook !== 'onError') {
+ console.debug(`App:${hook} have been invoked` + (params ? ` ${JSON.stringify(params)}` : ''));
+ }
+ return (vm.$vm || vm).__call_hook(hook, params)
+}
+
+function callPageHook (vm, hook, params) {
+ if (hook !== 'onPageScroll') {
+ console.debug(`${vm.$page.route}[${vm.$page.id}]:${hook} have been invoked`);
+ }
+ return callHook(vm, hook, params)
+}
+
const ANI_DURATION = 300;
const ANI_SHOW = 'pop-in';
@@ -15,88 +33,80 @@ function showWebview (webview, animationType, animationDuration) {
}, 50);
}
-function initNavigateTo ({
- __registerPage
-}) {
- return function navigateTo (path, {
- animationType,
- animationDuration
- }) {
- showWebview(
- __registerPage({
- path
- }),
- animationType,
- animationDuration
- );
- }
-}
-
-function initRedirectTo () {
- return function redirectTo (path) {
-
- }
-}
-
let firstBackTime = 0;
-function initNavigateBack ({
+function navigateBack ({
+ delta,
+ animationType,
+ animationDuration
+}, {
plus,
getCurrentPages
-}) {
- return function navigateBack (delta, {
- animationType,
- animationDuration
- }) {
- const pages = getCurrentPages();
- const len = pages.length - 1;
- const page = pages[len];
- if (page.$meta.isQuit) {
- if (!firstBackTime) {
- firstBackTime = Date.now();
- plus.nativeUI.toast('再按一次退出应用');
- setTimeout(() => {
- firstBackTime = null;
- }, 2000);
- } else if (Date.now() - firstBackTime < 2000) {
- plus.runtime.quit();
- }
+}, 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 {
- pages.splice(len, 1);
- if (animationType) {
- page.$getAppWebview().close(animationType, animationDuration || ANI_DURATION);
- } else {
- page.$getAppWebview().close('auto');
- }
+ page.$getAppWebview().close('auto');
}
+ callback && callback();
}
}
-function initSwitchTab (path) {
- return function switchTab () {
-
- }
+function navigateTo ({
+ path,
+ animationType,
+ animationDuration
+}, {
+ __registerPage
+}) {
+ showWebview(
+ __registerPage({
+ path
+ }),
+ animationType,
+ animationDuration
+ );
}
-function initReLaunch () {
- return function reLaunch (path) {
-
- }
-}
+function reLaunch ({
+ path
+}, instanceContext) {}
-function initRouter (instanceContext) {
- return {
- navigateTo: initNavigateTo(instanceContext),
- redirectTo: initRedirectTo(instanceContext),
- navigateBack: initNavigateBack(instanceContext),
- switchTab: initSwitchTab(instanceContext),
- reLaunch: initReLaunch(instanceContext)
- }
-}
+function redirectTo ({
+ path
+}, instanceContext) {}
+
+function switchTab ({
+ path
+}, instanceContext) {}
+
+const route = {
+ navigateBack,
+ navigateTo,
+ reLaunch,
+ redirectTo,
+ switchTab
+};
class Router {
constructor (instanceContext) {
- this.router = initRouter(instanceContext);
+ this.instanceContext = instanceContext;
+ this.$emit = instanceContext.UniServiceJSBridge.emit;
}
push ({
@@ -104,11 +114,17 @@ class Router {
path,
animationType,
animationDuration
- } = {}) {
- this.router[type](path, {
+ } = {}) {
+ this.$emit('onAppRoute', {
+ type,
+ path
+ });
+
+ route[type]({
+ path,
animationType,
animationDuration
- });
+ }, this.instanceContext);
}
go (delta, {
@@ -116,87 +132,339 @@ class Router {
animationDuration
} = {}) {
delta = Math.abs(parseInt(delta) || 1);
- this.router.navigateBack(delta, {
+ route.navigateBack({
+ delta,
animationType,
animationDuration
+ }, this.instanceContext, () => {
+ this.$emit('onAppRoute', {
+ type: 'navigateBack'
+ });
});
}
}
let appCtx;
-function getApp$1 () {
+const NETWORK_TYPES = [
+ 'unknown',
+ 'none',
+ 'ethernet',
+ 'wifi',
+ '2g',
+ '3g',
+ '4g'
+];
+
+function getApp () {
return appCtx
}
-function initListeners ({
- plus
+function initGlobalListeners ({
+ plus,
+ UniServiceJSBridge
}) {
+ const emit = UniServiceJSBridge.emit;
+
plus.key.addEventListener('backbutton', () => {
appCtx.$router.go(-1);
});
+
+ plus.globalEvent.addEventListener('pause', () => {
+ emit('onAppEnterBackground');
+ });
+
+ plus.globalEvent.addEventListener('resume', () => {
+ emit('onAppEnterForeground');
+ });
+
+ plus.globalEvent.addEventListener('netchange', () => {
+ const networkType = NETWORK_TYPES[plus.networkinfo.getCurrentType()];
+ emit('onNetworkStatusChange', {
+ isConnected: networkType !== 'none',
+ networkType
+ });
+ });
+}
+
+function initAppLaunch (appVm, {
+ __uniConfig
+}) {
+ const args = {
+ path: __uniConfig.entryPagePath,
+ query: {},
+ scene: 1001
+ };
+
+ callAppHook(appVm, 'onLaunch', args);
+ callAppHook(appVm, 'onShow', args);
}
function registerApp (appVm, instanceContext) {
if (process.env.NODE_ENV !== 'production') {
console.log(`[uni-app] registerApp`);
}
+
appCtx = appVm;
+
appCtx.$router = new Router(instanceContext);
- initListeners(instanceContext);
+
+ initAppLaunch(appVm, instanceContext);
+
+ initGlobalListeners(instanceContext);
+}
+
+const _toString = Object.prototype.toString;
+
+function isPlainObject (obj) {
+ return _toString.call(obj) === '[object Object]'
}
-const WEBVIEW_LISTENERS = [
- 'close',
- 'resize',
- 'popGesture',
- 'pullToRefresh',
- 'titleNViewSearchInputChanged',
- 'titleNViewSearchInputConfirmed',
- 'titleNViewSearchInputClicked'
+function parseTitleNView (routeOptions) {
+ const windowOptions = routeOptions.window;
+ const titleNView = windowOptions.titleNView;
+ if ( // 无头
+ titleNView === false ||
+ titleNView === 'false' ||
+ (
+ windowOptions.navigationStyle === 'custom' &&
+ !isPlainObject(titleNView)
+ )
+ ) {
+ return false
+ }
+
+ const ret = {
+ autoBackButton: !routeOptions.meta.isQuit,
+ backgroundColor: windowOptions.navigationBarBackgroundColor || '#000000',
+ titleText: windowOptions.navigationBarTitleText || '',
+ titleColor: windowOptions.navigationBarTextStyle === 'black' ? '#000000' : '#ffffff'
+ };
+
+ if (isPlainObject(titleNView)) {
+ return Object.assign(ret, titleNView)
+ }
+
+ return ret
+}
+
+function parsePullToRefresh (routeOptions, {
+ plus
+}) {
+ const windowOptions = routeOptions.window;
+
+ if (windowOptions.enablePullDownRefresh) {
+ const pullToRefreshStyles = Object.create(null);
+ // 初始化默认值
+ if (plus.os.name === 'Android') {
+ Object.assign(pullToRefreshStyles, {
+ support: true,
+ style: 'circle'
+ });
+ } else {
+ Object.assign(pullToRefreshStyles, {
+ support: true,
+ style: 'default',
+ height: '50px',
+ range: '200px',
+ contentdown: {
+ caption: ''
+ },
+ contentover: {
+ caption: ''
+ },
+ contentrefresh: {
+ caption: ''
+ }
+ });
+ }
+
+ if (windowOptions.backgroundTextStyle) {
+ pullToRefreshStyles.color = windowOptions.backgroundTextStyle;
+ pullToRefreshStyles.snowColor = windowOptions.backgroundTextStyle;
+ }
+
+ Object.assign(pullToRefreshStyles, windowOptions.pullToRefresh || {});
+
+ return pullToRefreshStyles
+ }
+}
+
+const WEBVIEW_STYLE_BLACKLIST = [
+ 'navigationBarBackgroundColor',
+ 'navigationBarTextStyle',
+ 'navigationBarTitleText',
+ 'navigationBarShadow',
+ 'navigationStyle',
+ 'disableScroll',
+ 'backgroundColor',
+ 'backgroundTextStyle',
+ 'enablePullDownRefresh',
+ 'onReachBottomDistance',
+ 'usingComponents',
+ // 需要解析的
+ 'titleNView',
+ 'pullToRefresh'
];
-let id = 1;
+function parseWebviewStyle (id, path, routeOptions = {}, instanceContext) {
+ const {
+ __uniConfig
+ } = instanceContext;
+
+ const webviewStyle = Object.create(null);
-function parseWebviewStyle (path, windowOptions = {}) {
- return {
- titleNView: {
- autoBackButton: true,
- titleText: 'titleText'
- },
- uniNView: {
- path
+ // 合并
+ const windowOptions = Object.assign(
+ JSON.parse(JSON.stringify(__uniConfig.window || {})),
+ routeOptions.window || {}
+ );
+
+ Object.keys(windowOptions).forEach(name => {
+ if (WEBVIEW_STYLE_BLACKLIST.indexOf(name) === -1) {
+ webviewStyle[name] = windowOptions[name];
+ }
+ });
+
+ const titleNView = parseTitleNView(routeOptions);
+ if (titleNView) {
+ if (id === 1 && __uniConfig.realEntryPagePath === path) {
+ titleNView.autoBackButton = true;
}
+ webviewStyle.titleNView = titleNView;
}
-}
-function parseWindowOptions (windowOptions = {}, globalWindowOptions = {}) {
- // TODO
- return windowOptions
-}
+ const pullToRefresh = parsePullToRefresh(routeOptions, instanceContext);
+ if (pullToRefresh) {
+ if (pullToRefresh.style === 'circle') {
+ webviewStyle.bounce = 'none';
+ }
+ webviewStyle.pullToRefresh = pullToRefresh;
+ }
-function createWebview (path, {
- plus,
- __uniConfig
-}, windowOptions) {
- return plus.webview.create(
- '',
- String(id++),
- parseWebviewStyle(
+ // 不支持 hide
+ if (webviewStyle.popGesture === 'hide') {
+ delete webviewStyle.popGesture;
+ }
+
+ // TODO 下拉刷新
+
+ if (path && routeOptions.meta.isNVue) {
+ webviewStyle.uniNView = {
path,
- parseWindowOptions(windowOptions, __uniConfig.window)
- ))
+ defaultFontSize: __uniConfig.defaultFontSize,
+ viewport: __uniConfig.viewport
+ };
+ }
+
+ return webviewStyle
+}
+
+function parseNavigationBar (webviewStyle) {
+ let titleText = '';
+ let textColor = '';
+ let backgroundColor = '';
+ const titleNView = webviewStyle.titleNView;
+ if (titleNView) {
+ titleText = titleNView.titleText || '';
+ textColor = titleNView.textColor || '';
+ backgroundColor = titleNView.backgroundColor || '';
+ }
+ return {
+ titleText,
+ textColor,
+ backgroundColor
+ }
+}
+
+let id = 2;
+
+const WEBVIEW_LISTENERS = {
+ 'pullToRefresh': 'onPullDownRefresh',
+ 'titleNViewSearchInputChanged': 'onNavigationBarSearchInputChanged',
+ 'titleNViewSearchInputConfirmed': 'onNavigationBarSearchInputConfirmed',
+ 'titleNViewSearchInputClicked': 'onNavigationBarSearchInputClicked'
+};
+
+function createWebview (path, instanceContext, routeOptions) {
+ const webviewId = id++;
+ const webviewStyle = parseWebviewStyle(
+ webviewId,
+ path,
+ routeOptions,
+ instanceContext
+ );
+ if (process.env.NODE_ENV !== 'production') {
+ console.log(`[uni-app] createWebview`, webviewId, path, webviewStyle);
+ }
+ const webview = instanceContext.plus.webview.create('', String(webviewId), webviewStyle);
+
+ webview.$navigationBar = parseNavigationBar(webviewStyle);
+
+ return webview
}
-function initWebview (webview, {
- UniJSServiceBridge
-}) {
+function initWebview (webview, instanceContext, routeOptions) {
+ if (isPlainObject(routeOptions)) {
+ const webviewStyle = parseWebviewStyle(
+ parseInt(webview.id),
+ '',
+ routeOptions,
+ instanceContext
+ );
+ if (process.env.NODE_ENV !== 'production') {
+ console.log(`[uni-app] updateWebview`, webviewStyle);
+ }
+
+ webview.$navigationBar = parseNavigationBar(webviewStyle);
+
+ webview.setStyle(webviewStyle);
+ }
// TODO subNVues
- WEBVIEW_LISTENERS.forEach(listener => {
- webview.addEventListener(listener, (e) => {
- UniJSServiceBridge.emit(listener, e);
+ Object.keys(WEBVIEW_LISTENERS).forEach(name => {
+ webview.addEventListener(name, (e) => {
+ instanceContext.UniServiceJSBridge.emit(WEBVIEW_LISTENERS[name], e, parseInt(webview.id));
});
});
+
+ instanceContext.UniServiceJSBridge.on(webview.id + '.stopPullDownRefresh', () => {
+ webview.endPullToRefresh();
+ });
+
+ 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 = [];
@@ -229,25 +497,34 @@ function registerPage ({
path,
webview
}, instanceContext) {
- const routeOptions = instanceContext.__uniRoutes.find(route => route.path === path);
+ const routeOptions = JSON.parse(JSON.stringify(instanceContext.__uniRoutes.find(route => route.path === path)));
if (!webview) {
- webview = createWebview(path, instanceContext, routeOptions.window);
+ webview = createWebview(path, instanceContext, routeOptions);
}
if (process.env.NODE_ENV !== 'production') {
console.log(`[uni-app] registerPage`, path, webview.id);
}
- initWebview(webview, instanceContext, webview.id === '1' && routeOptions.window);
+ initWebview(webview, instanceContext, webview.id === '1' && routeOptions);
+ const route = path.slice(1);
pages.push({
- route: path.slice(1),
+ route,
$getAppWebview () {
return webview
},
- $meta: routeOptions.meta
- });
+ $page: {
+ id: parseInt(webview.id),
+ meta: routeOptions.meta,
+ path,
+ route
+ },
+ $holder: createHolder(webview, {
+ navigationBar: webview.$navigationBar
+ }, instanceContext)
+ });
return webview
}
@@ -263,109 +540,113 @@ function parseRoutes (config) {
Object.keys(config.page).forEach(function (pagePath) {
const isTabBar = tabBarList.indexOf(pagePath) !== -1;
const isQuit = isTabBar || (config.pages[0] === pagePath);
+ const isNVue = !!config.page[pagePath].nvue;
uniRoutes.push({
path: '/' + pagePath,
meta: {
isQuit,
- isTabBar
- }
+ isTabBar,
+ isNVue
+ },
+ window: config.page[pagePath].window || {}
});
});
}
-function registerConfig (config) {
- if (process.env.NODE_ENV !== 'production') {
- console.log(`[uni-app] registerConfig`);
- }
+function registerConfig (config, {
+ plus
+}) {
Object.assign(uniConfig, config);
+
+ uniConfig.viewport = '';
+ uniConfig.defaultFontSize = '';
+
+ if (uniConfig.nvueCompiler === 'uni-app') {
+ uniConfig.viewport = plus.screen.resolutionWidth;
+ uniConfig.defaultFontSize = uniConfig.viewport / 20;
+ }
+
parseRoutes(uniConfig);
+
+ if (process.env.NODE_ENV !== 'production') {
+ console.log(`[uni-app] registerConfig`, uniConfig);
+ }
}
-function callHook (vm, hook, params) {
- return (vm.$vm || vm).__call_hook(hook, params)
-}
+function initOn (on, {
+ getApp,
+ getCurrentPages
+}) {
+ function onError (err) {
+ callAppHook(getApp(), 'onError', err);
+ }
-function callAppHook (vm, hook, params) {
- if (hook !== 'onError') {
- console.debug(`App:${hook} have been invoked` + (params ? ` ${JSON.stringify(params)}` : ''));
+ function onPageNotFound (page) {
+ callAppHook(getApp(), 'onPageNotFound', page);
}
- return (vm.$vm || vm).__call_hook(hook, params)
-}
-function callPageHook (vm, hook, params) {
- // hack 一下,H5 平台通知 View 层onShow,方便 View 层来切换 scroll 事件监听
- if (__PLATFORM__ === 'h5') {
- if (hook === 'onLoad') {
- vm.$mp.query = params;
- UniServiceJSBridge.publishHandler('onPageLoad', vm, vm.$page.id);
- }
- if (hook === 'onShow') {
- if (
- vm.$route.meta.isTabBar &&
- vm.$route.params.detail
- ) {
- UniServiceJSBridge.emit('onTabItemTap', vm.$route.params.detail);
- }
- UniServiceJSBridge.publishHandler('onPageShow', vm, vm.$page.id);
+ function onPullDownRefresh (args, pageId) {
+ const page = getCurrentPages().find(page => page.$page.id === pageId);
+ if (page) {
+ callPageHook(page, 'onPullDownRefresh');
}
}
- if (hook !== 'onPageScroll') {
- console.debug(`${vm.$page.route}[${vm.$page.id}]:${hook} have been invoked`);
- }
- return callHook(vm, hook, params)
-}
-
-function onError (err) {
- callAppHook(getApp(), 'onError', err);
-}
-function onPageNotFound (page) {
- callAppHook(getApp(), 'onPageNotFound', page);
-}
+ function callCurrentPageHook (hook, args) {
+ const pages = getCurrentPages();
+ if (pages.length) {
+ callPageHook(pages[pages.length - 1], hook, args);
+ }
+ }
-function onPullDownRefresh (args, pageId) {
- const page = getCurrentPages().find(page => page.$page.id === pageId);
- if (page) {
- callPageHook(page, 'onPullDownRefresh');
+ function createCallCurrentPageHook (hook) {
+ return function (args) {
+ callCurrentPageHook(hook, args);
+ }
}
-}
-function callCurrentPageHook (hook, args) {
- const pages = getCurrentPages();
- if (pages.length) {
- callPageHook(pages[pages.length - 1], hook, args);
+ function onAppEnterBackground () {
+ callAppHook(getApp(), 'onHide');
+ callCurrentPageHook('onHide');
}
-}
-function createCallCurrentPageHook (hook) {
- return function (args) {
- callCurrentPageHook(hook, args);
+ function onAppEnterForeground () {
+ callAppHook(getApp(), 'onShow');
+ callCurrentPageHook('onShow');
}
-}
-function onAppEnterBackground () {
- callAppHook(getApp(), 'onHide');
- callCurrentPageHook('onHide');
-}
+ function onWebInvokeAppService ({
+ name,
+ arg
+ }, pageId) {
+ if (name === 'postMessage') ; else {
+ uni[name](arg);
+ }
+ }
-function onAppEnterForeground () {
- callAppHook(getApp(), 'onShow');
- callCurrentPageHook('onShow');
-}
+ const routeHooks = {
+ navigateTo () {
+ callCurrentPageHook('onHide');
+ },
+ navigateBack () {
+ callCurrentPageHook('onShow');
+ }
+ };
-function onWebInvokeAppService ({
- name,
- arg
-}, pageId) {
- if (name === 'postMessage') ; else {
- uni[name](arg);
+ function onAppRoute ({
+ type
+ }) {
+ const routeHook = routeHooks[type];
+ routeHook && routeHook();
}
-}
-function initOn (on) {
on('onError', onError);
on('onPageNotFound', onPageNotFound);
+ { // 后续有时间,h5 平台也要迁移到 onAppRoute
+ on('onAppRoute', onAppRoute);
+ }
+
on('onAppEnterBackground', onAppEnterBackground);
on('onAppEnterForeground', onAppEnterForeground);
@@ -381,17 +662,22 @@ function initOn (on) {
on('onWebInvokeAppService', onWebInvokeAppService);
}
-function initServiceJSBridge (Vue) {
+let bridge;
+
+function initServiceJSBridge (Vue, instanceContext) {
+ if (bridge) {
+ return bridge
+ }
const Emitter = new Vue();
- const bridge = {
+ bridge = {
on: Emitter.$on.bind(Emitter),
off: Emitter.$off.bind(Emitter),
once: Emitter.$once.bind(Emitter),
emit: Emitter.$emit.bind(Emitter)
};
- initOn(bridge.on);
+ initOn(bridge.on, instanceContext);
return bridge
}
@@ -403,7 +689,10 @@ function createInstanceContext (instanceContext) {
WeexPlus
} = instanceContext;
const plus = new WeexPlus(weex);
- const UniJSServiceBridge = initServiceJSBridge(Vue);
+ const UniServiceJSBridge = initServiceJSBridge(Vue, {
+ getApp,
+ getCurrentPages: getCurrentPages$1
+ });
return {
__uniConfig: uniConfig,
__uniRoutes: uniRoutes,
@@ -422,12 +711,13 @@ function createInstanceContext (instanceContext) {
plus,
uniConfig,
uniRoutes,
- getApp$1,
+ UniServiceJSBridge,
+ getApp,
getCurrentPages$1
),
- getApp: getApp$1,
+ getApp,
getCurrentPages: getCurrentPages$1,
- UniJSServiceBridge
+ UniServiceJSBridge
}
}
diff --git a/packages/uni-app-plus-nvue/dist/uni.js b/packages/uni-app-plus-nvue/dist/uni.js
index 8f04463d6e553a38859b4cac16bf068cb6eaf798..fdaeedbd88beceb64642bf2d4c02b5db143bcba6 100644
--- a/packages/uni-app-plus-nvue/dist/uni.js
+++ b/packages/uni-app-plus-nvue/dist/uni.js
@@ -1,4 +1,4 @@
-export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, getApp, getCurrentPages){
+export function createUniInstance(weex, plus, __uniConfig, __uniRoutes, UniServiceJSBridge, getApp, getCurrentPages){
const _toString = Object.prototype.toString;
const hasOwnProperty = Object.prototype.hasOwnProperty;
@@ -1027,10 +1027,6 @@ const showLoading = {
visible: {
type: Boolean,
default: true
- },
- isShowLoading: {
- type: Boolean,
- default: true
}
};
@@ -1860,14 +1856,117 @@ function switchTab$1 (args) {
return onAppRoute('switchTab', args)
}
+function pageScrollTo$1 (args) {
+ const pages = getCurrentPages();
+ if (pages.length) {
+ UniServiceJSBridge.publishHandler('pageScrollTo', args, pages[pages.length - 1].$page.id);
+ }
+ return {}
+}
+
+let pageId;
+
+function startPullDownRefresh () {
+ if (pageId) {
+ UniServiceJSBridge.emit(pageId + '.stopPullDownRefresh', {}, pageId);
+ }
+ const pages = getCurrentPages();
+ if (pages.length) {
+ pageId = pages[pages.length - 1].$page.id;
+ UniServiceJSBridge.emit(pageId + '.startPullDownRefresh', {}, pageId);
+ }
+ return {}
+}
+
+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 {}
+}
+
+function setNavigationBar (type, args) {
+ const pages = getCurrentPages();
+ if (pages.length) {
+ const page = pages[pages.length - 1].$holder;
+
+ switch (type) {
+ case 'setNavigationBarColor':
+ const {
+ frontColor,
+ backgroundColor,
+ animation
+ } = args;
+
+ const {
+ duration,
+ timingFunc
+ } = animation;
+
+ if (frontColor) {
+ page.navigationBar.textColor = frontColor === '#000000' ? 'black' : 'white';
+ }
+ if (backgroundColor) {
+ page.navigationBar.backgroundColor = backgroundColor;
+ }
+ page.navigationBar.duration = duration + 'ms';
+ page.navigationBar.timingFunc = timingFunc;
+ break
+ case 'showNavigationBarLoading':
+ page.navigationBar.loading = true;
+ break
+ case 'hideNavigationBarLoading':
+ page.navigationBar.loading = false;
+ break
+ case 'setNavigationBarTitle':
+ const {
+ title
+ } = args;
+ page.navigationBar.titleText = title;
+ break
+ }
+ }
+ return {}
+}
+
+function setNavigationBarColor$1 (args) {
+ return setNavigationBar('setNavigationBarColor', args)
+}
+
+function showNavigationBarLoading () {
+ return setNavigationBar('showNavigationBarLoading')
+}
+
+function hideNavigationBarLoading () {
+ return setNavigationBar('hideNavigationBarLoading')
+}
+
+function setNavigationBarTitle$1 (args) {
+ return setNavigationBar('setNavigationBarTitle', args)
+}
+
var api = /*#__PURE__*/Object.freeze({
+ pageScrollTo: pageScrollTo$1,
+ startPullDownRefresh: startPullDownRefresh,
+ stopPullDownRefresh: stopPullDownRefresh,
redirectTo: redirectTo$1,
navigateTo: navigateTo$1,
navigateBack: navigateBack$1,
reLaunch: reLaunch$1,
- switchTab: switchTab$1
+ switchTab: switchTab$1,
+ setNavigationBarColor: setNavigationBarColor$1,
+ showNavigationBarLoading: showNavigationBarLoading,
+ hideNavigationBarLoading: hideNavigationBarLoading,
+ setNavigationBarTitle: setNavigationBarTitle$1
});
const uni$1 = Object.create(null);
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.css b/packages/uni-h5/dist/index.css
index 8bd4ab00ab5dea8dc89fe8f583e1e9828a45eeb9..2885f0fdba1aaa9c7ae5054d121ece91b10cf86a 100644
--- a/packages/uni-h5/dist/index.css
+++ b/packages/uni-h5/dist/index.css
@@ -1 +1 @@
-uni-tabbar{display:block}uni-tabbar,uni-tabbar .uni-tabbar{box-sizing:border-box;position:fixed;left:0;bottom:0;width:100%;z-index:998}uni-tabbar .uni-tabbar{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}uni-tabbar .uni-tabbar~.uni-placeholder{width:100%;height:50px;margin-bottom:0;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}uni-tabbar .uni-tabbar *{box-sizing:border-box}uni-tabbar .uni-tabbar__item{-webkit-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1;flex:1;font-size:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}uni-tabbar .uni-tabbar__bd,uni-tabbar .uni-tabbar__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal}uni-tabbar .uni-tabbar__bd{position:relative;height:50px;-webkit-flex-direction:column;flex-direction:column}uni-tabbar .uni-tabbar__icon{position:relative;display:inline-block;margin-top:5px;width:27px;height:27px}uni-tabbar .uni-tabbar__icon.uni-tabbar__icon__diff{margin-top:0;width:34px;height:34px}uni-tabbar .uni-tabbar__icon img{width:100%;height:100%}uni-tabbar .uni-tabbar__label{position:relative;text-align:center;font-size:10px;line-height:1.8}uni-tabbar .uni-tabbar-border{position:absolute;left:0;top:0;width:100%;height:1px;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-tabbar .uni-tabbar__reddot{position:absolute;top:6px;left:16px;width:12px;height:12px;display:inline-block;border-radius:50%;background-color:#f43530;color:#fff}uni-tabbar .uni-tabbar__badge{top:4px;border-radius:18px;min-width:8px;width:auto;height:auto;padding:.15em .5em;font-size:12px;line-height:1.2;white-space:nowrap}uni-toast{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:block;box-sizing:border-box;pointer-events:none}uni-toast .uni-sample-toast{position:fixed;z-index:999;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;max-width:80%}uni-toast .uni-simple-toast__text{display:inline-block;vertical-align:middle;color:#fff;background-color:rgba(17,17,17,.7);padding:10px 20px;border-radius:5px;font-size:13px;text-align:center;max-width:100%;word-break:break-all;white-space:normal}uni-toast .uni-mask{pointer-events:auto}uni-toast .uni-toast{position:fixed;z-index:999;width:8em;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background:rgba(17,17,17,.7);text-align:center;border-radius:5px;color:#fff}uni-toast .uni-toast *{box-sizing:border-box}uni-toast .uni-toast__icon{margin:20px 0 0;width:38px;height:38px;vertical-align:baseline}uni-toast .uni-icon_toast{margin:15px 0 0}uni-toast .uni-icon_toast.uni-icon-success-no-circle:before{color:#fff;font-size:55px}uni-toast .uni-icon_toast.uni-loading{margin:20px 0 0;width:38px;height:38px;vertical-align:baseline}uni-toast .uni-toast__content{margin:0 0 15px}uni-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:block;box-sizing:border-box}uni-modal .uni-modal{position:fixed;z-index:999;width:80%;max-width:300px;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#fff;text-align:center;border-radius:3px;overflow:hidden}uni-modal .uni-modal *{box-sizing:border-box}uni-modal .uni-modal__hd{padding:1em 1.6em .3em}uni-modal .uni-modal__title{font-weight:400;font-size:18px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}uni-modal .uni-modal__bd,uni-modal .uni-modal__title{word-wrap:break-word;word-break:break-all;white-space:pre-wrap}uni-modal .uni-modal__bd{padding:1.3em 1.6em 1.3em;min-height:40px;font-size:15px;line-height:1.4;color:#999;max-height:400px;overflow-y:auto}uni-modal .uni-modal__ft{position:relative;line-height:48px;font-size:18px;display:-webkit-box;display:-webkit-flex;display:flex}uni-modal .uni-modal__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid #d5d5d6;color:#d5d5d6;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-modal .uni-modal__btn{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}uni-modal .uni-modal__btn:active{background-color:#eee}uni-modal .uni-modal__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid #d5d5d6;color:#d5d5d6;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}uni-modal .uni-modal__btn:first-child:after{display:none}uni-modal .uni-modal__btn_default{color:#353535}uni-modal .uni-modal__btn_primary{color:#007aff}uni-picker,uni-picker .uni-picker *{box-sizing:border-box}uni-picker .uni-picker{position:fixed;left:0;bottom:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:999;width:100%;background-color:#efeff4;visibility:hidden;-webkit-transition:visibility .3s,-webkit-transform .3s;transition:visibility .3s,-webkit-transform .3s;transition:transform .3s,visibility .3s;transition:transform .3s,visibility .3s,-webkit-transform .3s}uni-picker .uni-picker.uni-picker-toggle{visibility:visible;-webkit-transform:translate(0);transform:translate(0)}uni-picker .uni-picker-content{position:relative;display:block;width:100%;height:238px;background-color:#fff}uni-picker .uni-picker-item{padding:0;height:34px;line-height:34px;text-align:center;color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}uni-picker .uni-picker-header{display:block;position:relative;text-align:center;width:100%;height:45px;background-color:#fff}uni-picker .uni-picker-header:after{content:"";position:absolute;left:0;bottom:0;right:0;height:1px;clear:both;border-bottom:1px solid #e5e5e5;color:#e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-picker .uni-picker-action{display:block;max-width:50%;top:0;height:100%;box-sizing:border-box;padding:0 14px;font-size:17px;line-height:45px;overflow:hidden}uni-picker .uni-picker-action.uni-picker-action-cancel{float:left;color:#888}uni-picker .uni-picker-action.uni-picker-action-confirm{float:right;color:#007aff}uni-actionsheet{display:block;box-sizing:border-box}uni-actionsheet .uni-actionsheet{position:fixed;left:0;bottom:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:999;width:100%;background-color:#efeff4;visibility:hidden;-webkit-transition:visibility .3s,-webkit-transform .3s;transition:visibility .3s,-webkit-transform .3s;transition:transform .3s,visibility .3s;transition:transform .3s,visibility .3s,-webkit-transform .3s}uni-actionsheet .uni-actionsheet.uni-actionsheet_toggle{visibility:visible;-webkit-transform:translate(0);transform:translate(0)}uni-actionsheet .uni-actionsheet *{box-sizing:border-box}uni-actionsheet .uni-actionsheet__menu{background-color:#fcfcfd}uni-actionsheet .uni-actionsheet__action{margin-top:6px;background-color:#fcfcfd}uni-actionsheet .uni-actionsheet__cell,uni-actionsheet .uni-actionsheet__title{position:relative;padding:10px 0;text-align:center;font-size:18px}uni-actionsheet .uni-actionsheet__cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid #e5e5e5;color:#e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-actionsheet .uni-actionsheet__cell:active{background-color:#ececec}uni-actionsheet .uni-actionsheet__cell:first-child:before{display:none}*{margin:0;-webkit-tap-highlight-color:transparent}@font-face{font-weight:400;font-style:normal;font-family:uni;src:url("data:application/octet-stream;base64,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") format("truetype")}@font-face{font-weight:400;font-style:normal;font-family:unibtn;src:url("data:application/octet-stream;base64,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") format("truetype")}body,html{-webkit-user-select:none;user-select:none;width:100%;height:100%}body{overflow-x:hidden}[class*=" uni-icon-"],[class^=uni-icon-]{display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 uni;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"],[class^=uni-btn-icon]{display:inline-block;font:normal normal normal 14px/1 unibtn;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"]:before,[class^=uni-btn-icon]:before{margin:0;box-sizing:border-box}.uni-icon-success-no-circle:before{content:"\EA08"}.uni-loading,uni-button[loading]:before{background:rgba(0,0,0,0) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}@-webkit-keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.uni-mask{position:fixed;z-index:999;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.6)}.uni-fade-enter-active,.uni-fade-leave-active{-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease;transition-timing-function:ease}.uni-fade-enter,.uni-fade-leave-active{opacity:0}[nvue] uni-scroll-view,[nvue] uni-swiper-item,[nvue] uni-view{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-basis:auto;flex-basis:auto;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start}[nvue-dir-row] uni-swiper-item,[nvue-dir-row] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}[nvue-dir-column] uni-swiper-item,[nvue-dir-column] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}[nvue-dir-row-reverse] uni-swiper-item,[nvue-dir-row-reverse] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}[nvue-dir-column-reverse] uni-swiper-item,[nvue-dir-column-reverse] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}[nvue] uni-image,[nvue] uni-input,[nvue] uni-scroll-view,[nvue] uni-swiper,[nvue] uni-swiper-item,[nvue] uni-text,[nvue] uni-textarea,[nvue] uni-video,[nvue] uni-view{position:relative;border:0 solid #000;box-sizing:border-box}[nvue] uni-swiper-item{position:absolute}uni-app{width:100%;height:100%}uni-app,uni-page-head{display:block;box-sizing:border-box}uni-page-head .uni-page-head{position:fixed;left:0;width:100%;height:44px;padding:7px 3px;display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;box-sizing:border-box;z-index:998;color:#fff;background-color:#000;-webkit-transition-property:all;transition-property:all}uni-page-head .uni-page-head.uni-page-head-transparent .uni-page-head-ft>div{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}uni-page-head .uni-page-head~.uni-placeholder{width:100%;height:44px}uni-page-head .uni-page-head *{box-sizing:border-box}uni-page-head .uni-page-head-hd{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:16px}uni-page-head .uni-page-head-bd{position:absolute;left:70px;right:70px;min-width:0;-webkit-user-select:auto;user-select:auto}.uni-page-head-btn{position:relative;width:auto;margin:0 2px;word-break:keep-all;white-space:pre}.uni-page-head-transparent .uni-page-head-btn{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:32px;height:32px;border-radius:50%;background-color:rgba(0,0,0,.5)}uni-page-head .uni-btn-icon{overflow:hidden;min-width:1em}.uni-page-head-btn-red-dot:after{content:attr(badge-text);position:absolute;right:0;top:0;background-color:red;color:#fff;width:18px;height:18px;line-height:18px;border-radius:18px;overflow:hidden;-webkit-transform:scale(.5) translate(40%,-40%);transform:scale(.5) translate(40%,-40%);-webkit-transform-origin:100% 0;transform-origin:100% 0}.uni-page-head-btn-red-dot[badge-text]:after{font-size:12px;width:auto;min-width:18px;max-width:42px;text-align:center;padding:0 3px;-webkit-transform:scale(.7) translate(40%,-40%);transform:scale(.7) translate(40%,-40%)}.uni-page-head-btn-select>.uni-btn-icon:after{display:inline-block;font-family:unibtn;content:"\E601";margin-left:2px;-webkit-transform:rotate(-90deg) scale(.8);transform:rotate(-90deg) scale(.8)}.uni-page-head-search{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;margin:0 2px;line-height:30px;font-size:15px}.uni-page-head-search-input{width:100%;height:100%;padding-left:34px;text-align:left}.uni-page-head-search-placeholder{position:absolute;max-width:100%;height:100%;padding-left:34px;overflow:hidden;word-break:keep-all;white-space:pre}.uni-page-head-search-placeholder-right{right:0}.uni-page-head-search-placeholder-center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.uni-page-head-search-placeholder:before{position:absolute;top:0;left:2px;width:30px;content:"\EA0E";display:block;font-size:20px;font-family:uni;text-align:center}uni-page-head .uni-page-head-ft{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;font-size:13px}uni-page-head .uni-page-head__title{font-weight:700;font-size:16px;line-height:30px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}uni-page-head .uni-page-head__title .uni-loading{width:16px;height:16px;margin-top:-3px}uni-page-wrapper{display:block;height:100%;position:relative}uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 44px)}.uni-app--showtabbar uni-page-wrapper{display:block;height:calc(100% - 50px);height:calc(100% - 50px - constant(safe-area-inset-bottom));height:calc(100% - 50px - env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-wrapper:after{content:"";display:block;width:100%;height:50px;height:calc(50px + constant(safe-area-inset-bottom));height:calc(50px + env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 94px);height:calc(100% - 94px - constant(safe-area-inset-bottom));height:calc(100% - 94px - env(safe-area-inset-bottom))}uni-page-body,uni-page-refresh{display:block;box-sizing:border-box;width:100%}uni-page-refresh{position:absolute;top:0;height:40px}uni-page-refresh .uni-page-refresh{position:absolute;top:-45px;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647);display:none;z-index:997}uni-page-refresh .uni-page-refresh,uni-page-refresh .uni-page-refresh-inner{width:40px;height:40px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;border-radius:50%}uni-page-refresh .uni-page-refresh-inner{line-height:0}uni-page-refresh.uni-page-refresh--aborting .uni-page-refresh,uni-page-refresh.uni-page-refresh--pulling .uni-page-refresh,uni-page-refresh.uni-page-refresh--reached .uni-page-refresh,uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh,uni-page-refresh.uni-page-refresh--restoring .uni-page-refresh,uni-page-refresh .uni-page-refresh-inner{display:-webkit-box;display:-webkit-flex;display:flex}uni-page-refresh.uni-page-refresh--aborting .uni-page-refresh__spinner,uni-page-refresh.uni-page-refresh--pulling .uni-page-refresh__spinner,uni-page-refresh.uni-page-refresh--reached .uni-page-refresh__spinner,uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh__icon,uni-page-refresh.uni-page-refresh--restoring .uni-page-refresh__icon{display:none}uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh__spinner{-webkit-transform-origin:center center;transform-origin:center center;-webkit-animation:uni-page-refresh-rotate 2s linear infinite;animation:uni-page-refresh-rotate 2s linear infinite}uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh__path{stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;-webkit-animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite;animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite}@-webkit-keyframes uni-page-refresh-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-page-refresh-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-page{display:block;width:100%;height:100%}.uni-async-error{position:absolute;left:0;right:0;top:0;bottom:0;color:#999;padding:100px 0;text-align:center}.uni-async-loading{box-sizing:border-box;width:100%;padding:50px;text-align:center}.uni-async-loading .uni-loading{width:30px;height:30px}.system-header{position:relative;width:100%;height:44px;color:#fff;background-color:#000;padding:0 44px;text-align:center;line-height:44px;font-size:16px}.system-header,.system-header *{box-sizing:border-box}.header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-btn{position:absolute;width:44px;height:44px;top:0}.header-btn-img{fill:#fff;width:50%;height:50%;margin:25%}.header-back{left:0}.header-confirm{right:0}.header-btn-icon{font-size:27px;line-height:44px}.uni-system-choose-location,.uni-system-open-location{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background:#f8f8f8}.map-content{position:absolute;left:0;top:44px;width:100%;bottom:0;overflow:hidden}.map-content>iframe{width:100%;height:100%;border:none}.actTonav{position:absolute;right:16px;bottom:56px;width:60px;height:60px;border-radius:60px}.uni-system-preview-image{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}.uni-swiper{position:absolute;left:0;top:0;width:100%;height:100%}.uni-preview-image{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);max-height:100%;max-width:100%}uni-button{position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;line-height:2.55555556;border-radius:5px;-webkit-tap-highlight-color:transparent;overflow:hidden;color:#000;background-color:#f8f8f8}uni-button[hidden]{display:none!important}uni-button:after{content:" ";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid rgba(0,0,0,.2);-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;box-sizing:border-box;border-radius:10px}uni-button[native]{padding-left:0;padding-right:0}uni-button[native] .uni-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}uni-button[native] .uni-button-cover-view-inner{padding-left:14px;padding-right:14px}uni-button uni-cover-view{line-height:inherit;white-space:inherit}uni-button[type=default]{color:#000;background-color:#f8f8f8}uni-button[type=primary]{color:#fff;background-color:#007aff}uni-button[type=warn]{color:#fff;background-color:#e64340}uni-button[disabled]{color:hsla(0,0%,100%,.6)}uni-button[disabled]:not([type]),uni-button[disabled][type=default]{color:rgba(0,0,0,.3);background-color:#f7f7f7}uni-button[disabled][type=primary]{background-color:rgba(0,122,255,.6)}uni-button[disabled][type=warn]{background-color:#ec8b89}uni-button[type=primary][plain]{color:#007aff;border:1px solid #007aff;background-color:rgba(0,0,0,0)}uni-button[type=primary][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=primary][plain]:after{border-width:0}uni-button[type=default][plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[type=default][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=default][plain]:after{border-width:0}uni-button[plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[plain]:after{border-width:0}uni-button[plain][native] .uni-button-cover-view-inner{padding:0}uni-button[type=warn][plain]{color:#e64340;border:1px solid #e64340;background-color:rgba(0,0,0,0)}uni-button[type=warn][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=warn][plain]:after{border-width:0}uni-button[size=mini]{display:inline-block;line-height:2.3;font-size:13px;padding:0 1.34em}uni-button[size=mini][native]{padding:0}uni-button[size=mini][native] .uni-button-cover-view-inner{padding:0 1.34em}uni-button[loading]:before{content:" ";display:inline-block;width:18px;height:18px;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}uni-button[loading][type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}uni-button[loading][type=primary][plain]{color:#007aff;background-color:rgba(0,0,0,0)}uni-button[loading][type=default]{color:rgba(0,0,0,.6);background-color:#dedede}uni-button[loading][type=default][plain]{color:#353535;background-color:rgba(0,0,0,0)}uni-button[loading][type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}uni-button[loading][type=warn][plain]{color:#e64340;background-color:rgba(0,0,0,0)}uni-button[loading][native]:before{content:none}.button-hover{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}.button-hover[type=primary][plain]{color:rgba(26,173,25,.6);border-color:rgba(26,173,25,.6);background-color:rgba(0,0,0,0)}.button-hover[type=default]{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[type=default][plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}.button-hover[type=warn][plain]{color:rgba(230,67,64,.6);border-color:rgba(230,67,64,.6);background-color:rgba(0,0,0,0)}uni-canvas{width:300px;height:150px;display:block;position:relative}uni-canvas>canvas{position:absolute;top:0;left:0;width:100%;height:100%}uni-checkbox-group[hidden]{display:none}uni-checkbox{-webkit-tap-highlight-color:transparent;display:inline-block}uni-checkbox[hidden]{display:none}uni-checkbox .uni-checkbox-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-checkbox .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked{color:#007aff}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}uni-checkbox-group{display:block}uni-image{width:320px;height:240px;display:inline-block;overflow:hidden;position:relative}uni-image[hidden]{display:none}uni-image>div{width:100%;height:100%}uni-image>img{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;display:block;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}uni-image>.uni-image-will-change{will-change:transform}uni-input{display:block;font-size:16px;line-height:1.4em;height:1.4em;min-height:1.4em}uni-input[hidden]{display:none}.uni-input-form,.uni-input-input,.uni-input-placeholder,.uni-input-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-input-wrapper{display:block;position:relative;width:100%;height:100%}.uni-input-input,.uni-input-placeholder{position:absolute;width:100%;height:100%;left:0;top:0}.uni-input-placeholder{color:grey;overflow:hidden;text-overflow:clip;white-space:pre;word-break:keep-all}.uni-input-input{background:none;color:inherit;opacity:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-input-input[type=search]::-webkit-search-cancel-button{display:none}.uni-input-input::-webkit-inner-spin-button,.uni-input-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.uni-input-input[type=number]{-moz-appearance:textfield}uni-movable-area{display:block;position:relative;width:10px;height:10px}uni-movable-area[hidden]{display:none}uni-movable-view{display:inline-block;width:10px;height:10px;top:0;left:0;position:absolute}uni-movable-view[hidden]{display:none}.navigator-hover{background-color:rgba(0,0,0,.1);opacity:.7}uni-navigator{height:auto;width:auto;display:block}uni-navigator[hidden]{display:none}uni-picker-view-column{-webkit-flex:1;-webkit-box-flex:1;flex:1;position:relative;height:100%;overflow:hidden}uni-picker-view-column[hidden]{display:none}.uni-picker-view-group{height:100%}.uni-picker-view-mask{transform:translateZ(0);-webkit-transform:translateZ(0);top:0;height:100%;margin:0 auto;background:-webkit-linear-gradient(top,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat}.uni-picker-view-indicator{height:34px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.uni-picker-view-indicator,.uni-picker-view-mask{position:absolute;left:0;width:100%;z-index:3;pointer-events:none}.uni-picker-view-content{position:absolute;top:0;left:0;width:100%;will-change:transform;padding:102px 0}.uni-picker-view-content>*{height:34px;overflow:hidden}.uni-picker-view-indicator:before{top:0;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after,.uni-picker-view-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}uni-picker-view{display:block}uni-picker-view .uni-picker-view-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;overflow:hidden;height:100%}uni-picker-view[hidden]{display:none}uni-picker{display:block}uni-progress{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center}uni-progress[hidden]{display:none}.uni-progress-bar{-webkit-flex:1;-webkit-box-flex:1;flex:1}.uni-progress-inner-bar{width:0;height:100%}.uni-progress-info{margin-top:0;margin-bottom:0;min-width:2em;margin-left:15px;font-size:16px}uni-radio-group[hidden]{display:none}uni-radio{-webkit-tap-highlight-color:transparent;display:inline-block}uni-radio[hidden]{display:none}uni-radio .uni-radio-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-radio .uni-radio-input{-webkit-appearance:none;appearance:none;margin-right:5px;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:50%;width:22px;height:22px;position:relative}uni-radio .uni-radio-input.uni-radio-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";color:#fff;font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-radio .uni-radio-input.uni-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}uni-radio .uni-radio-input.uni-radio-input-disabled:before{color:#adadad}uni-radio-group{display:block}@-webkit-keyframes once-show{0%{top:0}}@keyframes once-show{0%{top:0}}uni-resize-sensor,uni-resize-sensor>div{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}uni-resize-sensor{display:block;z-index:-1;visibility:hidden;-webkit-animation:once-show 1ms;animation:once-show 1ms}uni-resize-sensor>div>div{position:absolute;left:0;top:0}uni-resize-sensor>div:first-child>div{width:100000px;height:100000px}uni-resize-sensor>div:last-child>div{width:200%;height:200%}uni-scroll-view{display:block;width:100%}uni-scroll-view[hidden]{display:none}.uni-scroll-view{position:relative;-webkit-overflow-scrolling:touch;width:100%;height:100%;max-height:inherit}uni-slider{margin:10px 18px;padding:0;display:block}uni-slider[hidden]{display:none}uni-slider .uni-slider-wrapper{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;min-height:16px}uni-slider .uni-slider-tap-area{-webkit-flex:1;-webkit-box-flex:1;flex:1;padding:8px 0}uni-slider .uni-slider-handle-wrapper{position:relative;height:2px;border-radius:5px;background-color:#e9e9e9;cursor:pointer;-webkit-tap-highlight-color:transparent}uni-slider .uni-slider-handle-wrapper,uni-slider .uni-slider-track{-webkit-transition:background-color .3s ease;transition:background-color .3s ease}uni-slider .uni-slider-track{height:100%;border-radius:6px;background-color:#007aff}uni-slider .uni-slider-handle,uni-slider .uni-slider-thumb{position:absolute;left:50%;top:50%;cursor:pointer;border-radius:50%;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}uni-slider .uni-slider-handle{width:28px;height:28px;margin-top:-14px;margin-left:-14px;background-color:rgba(0,0,0,0);z-index:3}uni-slider .uni-slider-thumb{z-index:2;box-shadow:0 0 4px rgba(0,0,0,.2)}uni-slider .uni-slider-step{position:absolute;width:100%;height:2px;background:rgba(0,0,0,0);z-index:1}uni-slider .uni-slider-value{color:#888;font-size:14px;margin-left:1em}uni-slider .uni-slider-disabled .uni-slider-track{background-color:#ccc}uni-slider .uni-slider-disabled .uni-slider-thumb{background-color:#fff;border-color:#ccc}uni-swiper-item{display:block;overflow:hidden;will-change:transform;position:absolute;width:100%;height:100%}uni-swiper-item[hidden]{display:none}uni-swiper{display:block;height:150px}uni-swiper[hidden]{display:none}uni-swiper .uni-swiper-wrapper{overflow:hidden;position:relative;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}uni-swiper .uni-swiper-slides{position:absolute;left:0;top:0;right:0;bottom:0}uni-swiper .uni-swiper-slide-frame{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}uni-swiper .uni-swiper-dots{position:absolute;font-size:0}uni-swiper .uni-swiper-dots-horizontal{left:50%;bottom:10px;text-align:center;white-space:nowrap;-webkit-transform:translate(-50%);transform:translate(-50%)}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot{margin-right:8px}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot:last-child{margin-right:0}uni-swiper .uni-swiper-dots-vertical{right:10px;top:50%;text-align:right;-webkit-transform:translateY(-50%);transform:translateY(-50%)}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot{display:block;margin-bottom:9px}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot:last-child{margin-bottom:0}uni-swiper .uni-swiper-dot{display:inline-block;width:8px;height:8px;cursor:pointer;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-timing-function:ease;transition-timing-function:ease;background:rgba(0,0,0,.3);border-radius:50%}uni-swiper .uni-swiper-dot-active{background-color:#000}uni-switch{-webkit-tap-highlight-color:transparent;display:inline-block}uni-switch[hidden]{display:none}uni-switch .uni-switch-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-switch .uni-switch-input{-webkit-appearance:none;appearance:none;position:relative;width:52px;height:32px;margin-right:5px;border:1px solid #dfdfdf;outline:0;border-radius:16px;box-sizing:border-box;background-color:#dfdfdf;-webkit-transition:background-color .1s,border .1s;transition:background-color .1s,border .1s}uni-switch .uni-switch-input:before{content:" ";position:absolute;top:0;left:0;width:50px;height:30px;border-radius:15px;background-color:#fdfdfd;transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}uni-switch .uni-switch-input:after{content:" ";position:absolute;top:0;left:0;width:30px;height:30px;border-radius:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}uni-switch .uni-switch-input.uni-switch-input-checked{border-color:#007aff;background-color:#007aff}uni-switch .uni-switch-input.uni-switch-input-checked:before{-webkit-transform:scale(0);transform:scale(0)}uni-switch .uni-switch-input.uni-switch-input-checked:after{-webkit-transform:translateX(20px);transform:translateX(20px)}uni-switch .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative;color:#007aff}uni-switch .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";color:inherit;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}uni-text[selectable]{cursor:auto;user-select:text;-webkit-user-select:text}uni-textarea{width:300px;height:150px;display:block;position:relative;font-size:16px;line-height:normal}uni-textarea[hidden]{display:none}uni-textarea[auto-height] .uni-textarea-textarea{overflow-y:hidden}.uni-textarea-compute,.uni-textarea-placeholder,.uni-textarea-textarea,.uni-textarea-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-textarea-wrapper{display:block;position:relative;width:100%;height:100%}.uni-textarea-compute,.uni-textarea-placeholder,.uni-textarea-textarea{position:absolute;width:100%;height:100%;left:0;top:0;white-space:pre-wrap;word-break:break-all}.uni-textarea-placeholder{color:grey;overflow:hidden}.uni-textarea-compute{visibility:hidden;height:auto}.uni-textarea-textarea{resize:none;background:none;color:inherit;opacity:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-textarea-textarea-ios{width:auto;right:0;margin:0 -3px}uni-view{display:block}uni-view[hidden]{display:none}uni-audio{display:none}uni-audio[controls]{display:inline-block}uni-audio[hidden]{display:none}.uni-audio-default{max-width:100%;min-width:302px;height:65px;background:#fcfcfc;border:1px solid #e0e0e0;border-radius:2.5px;display:inline-block;overflow:hidden}.uni-audio-left{width:65px;height:65px;float:left;background-color:#e6e6e6;background-size:100% 100%;background-position:50% 50%}.uni-audio-button{width:24px;height:24px;margin:20.5px;background-size:cover}.uni-audio-button.play{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAB4dJREFUaAXNWg1MlVUYvpcfIRCJ+MnCaOBl8dOcOCEQZ9kmI5cQG5Yb6MifKbMaGVobOtlibTWHDpgpxBUwF07826iFsMkYJhg559JdGiQSkUzSBA0QkZ7n4/u+nXsvwf3jwru99/y/3/N+3znvec97rlbjABofH38GYtaAV4MjwDqwH9gHTBoE3wd3gA3gi+B6rVY7hHR2CKD9wFngs+BHYGuJYziWMqiscwgP8wLvBQ+AHUWURZle1mqhtXQAhLui7xZwPvgFsBENDg7+Drp069at2z09Pf03b978u6mpqZ+dVq1aFRAVFeW/aNGigNDQ0JfDwsISfXx8wowETBT+QpIPLsf0GpuomvrXIgUAPhhizoGXi+II+tq1az/o9fpLFRUVd8S26fJZWVkLN2/enBgTE/PW/PnzF5v0b0P5HSjxp0m9WXFaBQD+NYw6C1bf+vDwcF9DQ4N+/fr19ciPm0m1osLT01N76tSpNaD3PTw8FgpD+TXSoESrUGeWnVIBgM/EiDKwJ0eiPNrS0nJsw4YNNd3d3aOscxSFhIS4V1dXpyckJGRB5jxZ7jDSbVDiW7lslriY1cgVMvjjKErgR0dH/zl06NCuFStWfOdo8HwkZVL2wYMHP3ny5AlNLonPPi5jkSpMfyb9AhjAadMIlsBjrndmZ2fnnThxos9UwEyUMzIynj9y5EgB1gb3ExK/xBuTTSczBQCeC/ZnsDTnCR6f9YMbN25QiNMoOjras7W1tcjb2ztcfijXRKzpwjaaQgBPU0lrI4HntOGbdzZ4AuYzt2/fvm9sbOweyyBiOidjlCr4Y6QAyrTzkqlEx9GSkpJ9zpo2BGNKfHZRUdF+1D+W24iNGFVSpxAAcxekryK9/cuXLx/FoqpWe85iBlPpvbi4uB0yBE4lHabSvyyLX2AXyhJ42nmYytPsMBcI+80ZWKZeGQsxEqtEkgJ4+3Sm9sh1Gm5SM2EqFfnWpsRSV1dXIYzbI2NWv0AqGiXXl+4Bd1ihs0XZu3fvHhgYGNBXVVUlWDTAyk7p6ekNIyMj7fIwYiVmIwWkNvo2trgHAQEBy+CghW7cuPGLvr6+L3fu3PmSJNBBP8R09erVHwVxEwrgU/AwkqQ00DFT8lamqkEICgqKKy4u1sMU7li6dKnVLvL/Pbe0tLRFaEsidi1+UlB5ng3ctBYsWLBV6GRxFnJ4yjIj7CX36uvrS1NTU+uwEM3ara3Al/gaTl+EPC6Vi/hNRUhHR8dPSt5Rqbu7+3Nr1679rL+//3BBQYHyYJvFd3V1iTNkNRV4RZF2G6TkHZ36+vpG5uXlHcah59Pk5GSbj5AY3y1gi6ACisOk4UlKaJyJrBYnsuTa2trjzc3N7/r7+9N1sYo6OzsfCAN0VEB9GzwGCo0zlnV1dfVOTEzMhn3Xl5eXx1rzIBOMflRAsv8UopxhrRFoT18vL68QHCu/am9vz7FUjglGHyow6xQcHBxjKwgqwKCTRIweKHlnpZhGDfC7LP4CJhgH3QCUxzd/AmboA0kP8zNNcDt+w8ZUvHv37l+tedaSJUueFfrfpwJ0oSVLxLiN0DgjWWxsDxobG79JSUn53haXRafT+QrAOjiFDEoFg05K3tEpduoxg8FweuXKlRlJSUm1toAnpvDwcB55FTJQAdUFYMRMaXFkil34l9zc3K2RkZElV65ceWSPbCz414XxF6kAXWfpdMNwHyNmQge7skNDQ3dOnjy5PzAwMLewsLDLLmEYDJMb5ObmFiXLIeZ6FxzNGOK+IFeyk91f4enTpyNtbW3HIiIiNsHCNCmy7U1zcnKWCTIuEDu/AOn8RKLRMFbJcJ9StjRlBIN94Y40ZmZmboqNja3iScrS8dP1IyaEWt4W+kmYaYVILHA/8GGglbHKdevWqV+FHaYjOGofw811hcfZOV1fW9pxzE1wcXGJlscSq6SA+qZhJfai8nN2wNHtDhb0pt7eXoe9Qcq1lRg3hRvNkLtyytuHfAHlKVOI+UIwQxYaRolramrSmZ8LhLefJIAnRmKVSFUAHbiq8yeqNRpGiWE5XlXKs5WWlZUthu3/SHh+voxVqlKnEEuYRvTPee5czjKjxDCr2bMVnYNF9IO7fRRQAokHxIuPeCig3t4YKcAeUCIYiRrcffjwYUd8fPyHzo6PwuJ4XL9+/QAWrjILOHWmDu5SAWjHa500sBSNZoibUWKGvNnuDOKbNwFPLLytITYjUteAWIuOvNbZptQxxF1ZWXnYGWuCc57TRnjzhMFbGmIyI7MpJPbAdMpEuQzsKdc/hi+jT0tLO+NoE0tTSWsjL9h58vP45qe8YppSAQqBEmaXfAy0MlbJcJ+tXqUMUMMdlpsUIuE78JYVO89mznn7LvmUh8gL+xzKknVS6hmrZLiPETNrr1npmNG3oXsg7LCKaFobx1yzKhKhBE3sFnA+mCFuI4IyBuyWzYjb/MHQh+lFN09SPIxgirxIlxhepeIWiHL41vPBFl90i4MtykOROfVXA4tAT9YJisyJP3tMu4gnA29aB2UY4V4DXg1m/FMH9gMrMSd6jwwe8PxtAPMU6JC/2/wHuyI2cMsNBRIAAAAASUVORK5CYII=)}.uni-audio-button.pause{background-image:url(data:image/png;base64,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)}.uni-audio-right{box-sizing:border-box;height:65px;margin-left:65px;padding:11px 16.5px 13.5px 15px;overflow:hidden}.uni-audio-time{margin-top:3.5px;height:16.5px;font-size:12px;color:#888;float:right}.uni-audio-info{margin-right:70px;overflow:hidden}.uni-audio-name{height:22.5px;line-height:22.5px;margin-bottom:3.5px;font-size:14px;color:#353535}.uni-audio-author,.uni-audio-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.uni-audio-author{height:14.5px;line-height:14.5px;font-size:12px;color:#888}uni-cover-image{display:block;line-height:1.2;overflow:hidden;pointer-events:auto}uni-cover-image,uni-cover-image img{height:100%;width:100%}uni-cover-image[hidden]{display:none}uni-cover-image .uni-cover-image{width:100%;height:100%;text-overflow:inherit;overflow:inherit;white-space:nowrap;-webkit-align-items:inherit;-webkit-box-align:inherit;align-items:inherit;-webkit-justify-content:inherit;-webkit-box-pack:inherit;justify-content:inherit;-webkit-flex-direction:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;flex-direction:inherit;font-size:0;display:inherit}uni-cover-view{display:block;line-height:1.2;overflow:hidden;white-space:nowrap;pointer-events:auto}uni-cover-view[hidden]{display:none}uni-cover-view .uni-cover-view{width:100%;height:100%;text-overflow:inherit;overflow:hidden;white-space:inherit;-webkit-align-items:inherit;-webkit-box-align:inherit;align-items:inherit;-webkit-justify-content:inherit;-webkit-box-pack:inherit;justify-content:inherit;-webkit-flex-direction:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;flex-direction:inherit;-webkit-flex-wrap:inherit;flex-wrap:inherit;display:inherit;overflow:inherit}uni-map{position:relative;width:300px;height:150px;display:block}uni-map[hidden]{display:none}uni-video{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-video[hidden]{display:none}.uni-video-container{width:100%;height:100%;background-color:#000;display:inline-block;position:absolute;top:0;left:0;overflow:hidden;object-position:inherit}.uni-video-container.uni-video-type-fullscreen{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:999}.uni-video-container.uni-video-type-fullscreen.uni-video-type-rotate-left{-webkit-transform:translate(-50%,-50%) rotate(-90deg);transform:translate(-50%,-50%) rotate(-90deg)}.uni-video-container.uni-video-type-fullscreen.uni-video-type-rotate-right{-webkit-transform:translate(-50%,-50%) rotate(90deg);transform:translate(-50%,-50%) rotate(90deg)}.uni-video-video{width:100%;height:100%;object-position:inherit}.uni-video-cover{position:absolute;top:0;left:0;bottom:0;width:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;background-color:rgba(1,1,1,.5);z-index:1}.uni-video-cover-play-button{width:40px;height:40px;background-size:50%;background-repeat:no-repeat;background-position:50% 50%}.uni-video-cover-duration{color:#fff;font-size:16px;line-height:1;margin-top:10px}.uni-video-bar{height:44px;background-color:rgba(0,0,0,.5);overflow:hidden;position:absolute;bottom:0;right:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 10px;z-index:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.uni-video-bar.uni-video-bar-full{left:0}.uni-video-controls{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;margin:0 8.5px}.uni-video-control-button{width:13px;height:15px;padding:14.5px 12.5px 14.5px 12.5px;margin-left:-8.5px;box-sizing:content-box}.uni-video-control-button:after{content:"";display:block;width:100%;height:100%;background-size:100%;background-position:50% 50%;background-repeat:no-repeat}.uni-video-control-button.uni-video-control-button-play:after,.uni-video-cover-play-button{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==")}.uni-video-control-button.uni-video-control-button-pause:after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC")}.uni-video-current-time,.uni-video-duration{height:14.5px;line-height:14.5px;margin-top:15px;margin-bottom:14.5px;font-size:12px;color:#cbcbcb}.uni-video-progress-container{-webkit-box-flex:2;-webkit-flex-grow:2;flex-grow:2;position:relative}.uni-video-progress{height:2px;margin:21px 12px;background-color:hsla(0,0%,100%,.4);position:relative}.uni-video-progress-buffered{position:absolute;left:0;top:0;width:0;height:100%;-webkit-transition:width .1s;transition:width .1s;background-color:hsla(0,0%,100%,.8)}.uni-video-ball{width:16px;height:16px;padding:14px;position:absolute;top:-21px;box-sizing:content-box;left:0;margin-left:-22px}.uni-video-inner{width:100%;height:100%;background-color:#fff;border-radius:50%}.uni-video-danmu-button{white-space:nowrap;line-height:1;padding:2px 10px;border:1px solid #fff;border-radius:5px;font-size:13px;color:#fff;margin:0 8.5px}.uni-video-danmu-button.uni-video-danmu-button-active{border-color:#48c23d;color:#48c23d}.uni-video-fullscreen{width:17px;height:17px;padding:8.5px;box-sizing:content-box;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAQRJREFUWAnt1d0NwiAQB/CmS7hHX5zFxLF0Ah2hE/lg7BT4PyMJUj6Oyt299BIioZT7ARYG59wLpTXmoXOMGO/QecxtwyWW4o42AupGALkFdX1MkHxE3Q7jIbQPqNthQogpJoZkMLRlsn/gFMQEk4OoY0oQVUwNoobhQFQwgMxUKFkt0C8+Zy61d8SeR5iHWCLOwF/MCb8Tp//ex3QFsE1HlCfKFUX2OijNFMnPKD7k76YcBoL402Zh8B77+MjlXrVvwfglXA32b0MrRgxCE2nBiEJaMOIQLkYFwsGoQWoYVUgJow4pYD4Weq4ayBqfwDYQmnUK0301kITujuawu65/l2B5A4z3Qe+Ut7EBAAAAAElFTkSuQmCC");background-size:50%;background-position:50% 50%;background-repeat:no-repeat}.uni-video-fullscreen.uni-video-type-fullscreen{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAABBElEQVRYhcXWwQ3CMAwF0O+qOzAKQzAAl0pMxQQwQhmGKwcERxbgc4lEVdHUbm3zJR8qJemTo6YByS3JO8kjyQbGkHQpkOz4zcmK8YQ0BWDCkOxL+UDKombMYKwfZAkmDGLFhEIsmHCIFpMC0WDSIHOYVEgNkw6pYPIhE5j/QCoYF0g7eEkPYGej+cX82x/l6aIAIOb9CcrajrjFE/IAQGP1IgIRcYVsVs32+vx+nC9nWq6dAZDhOaPHBEDGh54O4w0pa9oxEZBFmCjIBGb6Qh4JMWGiIWpMBkSFyYLMYjIhNUw7N9GQi2aQiLxJHspjV+rl1hFrRp25uV2MRGQRBsAewPUD/HhJVOOuCzwAAAAASUVORK5CYII=")}.uni-video-danmu{position:absolute;top:0;left:0;bottom:0;width:100%;margin-top:14px;margin-bottom:44px;font-size:14px;line-height:14px;overflow:visible}.uni-video-danmu-item{line-height:1;position:absolute;color:#fff;white-space:nowrap;left:100%;-webkit-transform:translatex(0);transform:translatex(0);-webkit-transition-property:left,-webkit-transform;transition-property:left,-webkit-transform;transition-property:left,transform;transition-property:left,transform,-webkit-transform;-webkit-transition-duration:3s;transition-duration:3s;-webkit-transition-timing-function:linear;transition-timing-function:linear}.uni-video-toast{pointer-events:none;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:5px;background-color:hsla(0,0%,100%,.8);color:#000;display:none}.uni-video-toast.uni-video-toast-volume{width:100px;height:100px;display:block}.uni-video-toast-volume .uni-video-toast-title{width:100%;font-size:12px;line-height:16px;text-align:center;margin-top:10px;display:block}.uni-video-toast-volume .uni-video-toast-icon{fill:#000;width:50%;height:50%;margin-left:25%;display:block}.uni-video-toast-volume .uni-video-toast-value{width:80px;height:5px;margin-top:5px;margin-left:10px}.uni-video-toast-volume .uni-video-toast-value>.uni-video-toast-value-content{overflow:hidden}.uni-video-toast-volume-grids{width:80px;height:5px}.uni-video-toast-volume-grids-item{float:left;width:7.1px;height:5px;background-color:#000}.uni-video-toast-volume-grids-item:not(:first-child){margin-left:1px}.uni-video-toast.uni-video-toast-progress{display:block;background-color:rgba(0,0,0,.8);color:#fff;font-size:14px;line-height:18px;padding:6px}uni-web-view{position:absolute;left:0;right:0;top:0;bottom:0}
\ No newline at end of file
+uni-tabbar{display:block}uni-tabbar,uni-tabbar .uni-tabbar{box-sizing:border-box;position:fixed;left:0;bottom:0;width:100%;z-index:998}uni-tabbar .uni-tabbar{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}uni-tabbar .uni-tabbar~.uni-placeholder{width:100%;height:50px;margin-bottom:0;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}uni-tabbar .uni-tabbar *{box-sizing:border-box}uni-tabbar .uni-tabbar__item{-webkit-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-webkit-flex:1;flex:1;font-size:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}uni-tabbar .uni-tabbar__bd,uni-tabbar .uni-tabbar__item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal}uni-tabbar .uni-tabbar__bd{position:relative;height:50px;-webkit-flex-direction:column;flex-direction:column}uni-tabbar .uni-tabbar__icon{position:relative;display:inline-block;margin-top:5px;width:27px;height:27px}uni-tabbar .uni-tabbar__icon.uni-tabbar__icon__diff{margin-top:0;width:34px;height:34px}uni-tabbar .uni-tabbar__icon img{width:100%;height:100%}uni-tabbar .uni-tabbar__label{position:relative;text-align:center;font-size:10px;line-height:1.8}uni-tabbar .uni-tabbar-border{position:absolute;left:0;top:0;width:100%;height:1px;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-tabbar .uni-tabbar__reddot{position:absolute;top:6px;left:16px;width:12px;height:12px;display:inline-block;border-radius:50%;background-color:#f43530;color:#fff}uni-tabbar .uni-tabbar__badge{top:4px;border-radius:18px;min-width:8px;width:auto;height:auto;padding:.15em .5em;font-size:12px;line-height:1.2;white-space:nowrap}uni-toast{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:block;box-sizing:border-box;pointer-events:none}uni-toast .uni-sample-toast{position:fixed;z-index:999;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;max-width:80%}uni-toast .uni-simple-toast__text{display:inline-block;vertical-align:middle;color:#fff;background-color:rgba(17,17,17,.7);padding:10px 20px;border-radius:5px;font-size:13px;text-align:center;max-width:100%;word-break:break-all;white-space:normal}uni-toast .uni-mask{pointer-events:auto}uni-toast .uni-toast{position:fixed;z-index:999;width:8em;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background:rgba(17,17,17,.7);text-align:center;border-radius:5px;color:#fff}uni-toast .uni-toast *{box-sizing:border-box}uni-toast .uni-toast__icon{margin:20px 0 0;width:38px;height:38px;vertical-align:baseline}uni-toast .uni-icon_toast{margin:15px 0 0}uni-toast .uni-icon_toast.uni-icon-success-no-circle:before{color:#fff;font-size:55px}uni-toast .uni-icon_toast.uni-loading{margin:20px 0 0;width:38px;height:38px;vertical-align:baseline}uni-toast .uni-toast__content{margin:0 0 15px}uni-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:block;box-sizing:border-box}uni-modal .uni-modal{position:fixed;z-index:999;width:80%;max-width:300px;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#fff;text-align:center;border-radius:3px;overflow:hidden}uni-modal .uni-modal *{box-sizing:border-box}uni-modal .uni-modal__hd{padding:1em 1.6em .3em}uni-modal .uni-modal__title{font-weight:400;font-size:18px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}uni-modal .uni-modal__bd,uni-modal .uni-modal__title{word-wrap:break-word;word-break:break-all;white-space:pre-wrap}uni-modal .uni-modal__bd{padding:1.3em 1.6em 1.3em;min-height:40px;font-size:15px;line-height:1.4;color:#999;max-height:400px;overflow-y:auto}uni-modal .uni-modal__ft{position:relative;line-height:48px;font-size:18px;display:-webkit-box;display:-webkit-flex;display:flex}uni-modal .uni-modal__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid #d5d5d6;color:#d5d5d6;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-modal .uni-modal__btn{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}uni-modal .uni-modal__btn:active{background-color:#eee}uni-modal .uni-modal__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid #d5d5d6;color:#d5d5d6;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}uni-modal .uni-modal__btn:first-child:after{display:none}uni-modal .uni-modal__btn_default{color:#353535}uni-modal .uni-modal__btn_primary{color:#007aff}uni-picker,uni-picker .uni-picker *{box-sizing:border-box}uni-picker .uni-picker{position:fixed;left:0;bottom:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:999;width:100%;background-color:#efeff4;visibility:hidden;-webkit-transition:visibility .3s,-webkit-transform .3s;transition:visibility .3s,-webkit-transform .3s;transition:transform .3s,visibility .3s;transition:transform .3s,visibility .3s,-webkit-transform .3s}uni-picker .uni-picker.uni-picker-toggle{visibility:visible;-webkit-transform:translate(0);transform:translate(0)}uni-picker .uni-picker-content{position:relative;display:block;width:100%;height:238px;background-color:#fff}uni-picker .uni-picker-item{padding:0;height:34px;line-height:34px;text-align:center;color:#000;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}uni-picker .uni-picker-header{display:block;position:relative;text-align:center;width:100%;height:45px;background-color:#fff}uni-picker .uni-picker-header:after{content:"";position:absolute;left:0;bottom:0;right:0;height:1px;clear:both;border-bottom:1px solid #e5e5e5;color:#e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-picker .uni-picker-action{display:block;max-width:50%;top:0;height:100%;box-sizing:border-box;padding:0 14px;font-size:17px;line-height:45px;overflow:hidden}uni-picker .uni-picker-action.uni-picker-action-cancel{float:left;color:#888}uni-picker .uni-picker-action.uni-picker-action-confirm{float:right;color:#007aff}uni-actionsheet{display:block;box-sizing:border-box}uni-actionsheet .uni-actionsheet{position:fixed;left:0;bottom:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:999;width:100%;background-color:#efeff4;visibility:hidden;-webkit-transition:visibility .3s,-webkit-transform .3s;transition:visibility .3s,-webkit-transform .3s;transition:transform .3s,visibility .3s;transition:transform .3s,visibility .3s,-webkit-transform .3s}uni-actionsheet .uni-actionsheet.uni-actionsheet_toggle{visibility:visible;-webkit-transform:translate(0);transform:translate(0)}uni-actionsheet .uni-actionsheet *{box-sizing:border-box}uni-actionsheet .uni-actionsheet__menu{background-color:#fcfcfd}uni-actionsheet .uni-actionsheet__action{margin-top:6px;background-color:#fcfcfd}uni-actionsheet .uni-actionsheet__cell,uni-actionsheet .uni-actionsheet__title{position:relative;padding:10px 0;text-align:center;font-size:18px}uni-actionsheet .uni-actionsheet__cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid #e5e5e5;color:#e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}uni-actionsheet .uni-actionsheet__cell:active{background-color:#ececec}uni-actionsheet .uni-actionsheet__cell:first-child:before{display:none}*{margin:0;-webkit-tap-highlight-color:transparent}@font-face{font-weight:400;font-style:normal;font-family:uni;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx+AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5ZvCRR/EAAASUAAAKtGhlYWQLKIN9AAAA4AAAADZoaGVhCCwD+gAAALwAAAAkaG10eEJo//8AAAHUAAAASGxvY2EYqhW6AAAEbAAAACZtYXhwASEAVQAAARgAAAAgbmFtZeNcHtgAAA9IAAAB5nBvc3T6bLhLAAARMAAAAOYAAQAAA+gAAABaA+j/////A+kAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAACkCj3dfDzz1AAsD6AAAAADUER9XAAAAANQRH1f//wAAA+kD6gAAAAgAAgAAAAAAAAABAAAAEgBJAAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPqAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+j//wPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARgCMANIBJgF4AcQCMgJgAqgC/ANIA6YD/gROBKAE9AVaAAAAAgAAAAADrwOtABQAKQAAASIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAfV4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NlteA608O2Rn8GdjOzw8O2Nn8GdkOzz8rzc1W17bXlw1Nzc1XF7bXls1NwAAAAACAAAAAAOzA7MAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTBwYiLwEmNjsBETQ2OwEyFhURMzIWAe52Z2Q7PT07ZGd2fGpmOz4+O2ZpIXYOKA52Dg0XXQsHJgcLXRcNA7M+O2ZqfHZnZDs9PTtkZ3Z9aWY7Pv3wmhISmhIaARcICwsI/ukaAAMAAAAAA+UD5QAXACMALAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAxQrASI1AzQ7ATIHJyImNDYyFhQGAe6Ecm9BRERBb3KEiXZxQkREQnF1aQIxAwgCQgMBIxIZGSQZGQPkREJxdomEcm9BRERBb3KEinVxQkT9HQICAWICAjEZIxkZIxkAAAAAAwAAAAADsQPkABsAKgAzAAABBgcGBwYHBjcRFBcWFxYXNjc2NzY1ESQXJicmBzMyFhUDFAYrASInAzQ2EyImNDYyFhQGAfVBQTg7LDt/IEc+bF5sbF1tPUj+2KhQQVVvNAQGDAMCJgUBCwYeDxYWHhUVA+QPEg4SDhIpCv6tj3VkST4dHT5JZHWPAVNeNRkSGPwGBP7GAgMFAToEBv5AFR8VFR8VAAAAAgAAAAADsQPkABkALgAAAQYHBgc2BREUFxYXFhc2NzY3NjURJBcmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9VVVQk+v/tFHPmxebGxdbT1I/tGvT0JVo/7VBASKAwMSAQUBcQEFAgESAgUBEQQD4xMYEhk3YP6sjnVlSD8cHD9IZXWOAVRgNxkSGP62/tkDA48EBBkCAVYCAQHlAQIQBAAAAAACAAAAAAPkA+QAFwAtAAABIgcGBwYVFBcWFxYzMjc2NzY1NCcmJyYTAQYiLwEmPwE2Mh8BFjI3ATYyHwEWAe6Ecm9BQ0NCbnODiXVxQkREQnF1kf6gAQUBowMDFgEFAYUCBQEBQwIFARUEA+NEQnF1iYNzbkJDQ0FvcoSJdXFCRP6j/qUBAagEBR4CAWYBAQENAgIVBAAAAAQAAAAAA68DrQAUACkAPwBDAAABIgcGBwYUFxYXFjI3Njc2NCcmJyYDIicmJyY0NzY3NjIXFhcWFAcGBwYTBQ4BLwEmBg8BBhYfARYyNwE+ASYiFzAfAQH1eGdkOzw8O2Rn8GZkOzw8O2RmeG5eWzY3NzZbXtteWzY3NzZbXmn+9gYSBmAGDwUDBQEGfQUQBgElBQELEBUBAQOtPDtkZ/BnYzs8PDtjZ/BnZDs8/K83NVte215cNTc3NVxe215bNTcCJt0FAQVJBQIGBAcRBoAGBQEhBQ8LBAEBAAABAAAAAAO7AzoAFwAAEy4BPwE+AR8BFjY3ATYWFycWFAcBBiInPQoGBwUHGgzLDCELAh0LHwsNCgr9uQoeCgGzCyEOCw0HCZMJAQoBvgkCCg0LHQv9sQsKAAAAAAIAAAAAA+UD5gAXACwAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBi8BJicmNRM0NjsBMhYVExceAQHvhHJvQUNDQm5zg4l1cUJEREJxdVcQAwT6AwIEEAMCKwIDDsUCAQPlREJxdYmDc25CQ0NBb3KEiXVxQkT9VhwEAncCAgMGAXoCAwMC/q2FAgQAAAQAAAAAA68DrQADABgALQAzAAABMB8BAyIHBgcGFBcWFxYyNzY3NjQnJicmAyInJicmNDc2NzYyFxYXFhQHBgcGAyMVMzUjAuUBAfJ4Z2Q7PDw7ZGfwZmQ7PDw7ZGZ4bl5bNjc3Nlte215bNjc3NltemyT92QKDAQEBLDw7ZGfwZ2M7PDw7Y2fwZ2Q7PPyvNzVbXtteXDU3NzVcXtteWzU3AjH9JAAAAAMAAAAAA+QD5AAXACcAMAAAASIHBgcGFRQXFhcWMzI3Njc2NTQnJicmAzMyFhUDFAYrASImNQM0NhMiJjQ2MhYUBgHuhHJvQUNDQm5zg4l1cUJEREJxdZ42BAYMAwInAwMMBh8PFhYeFhYD40RCcXWJg3NuQkNDQW9yhIl1cUJE/vYGBf7AAgMDAgFABQb+NhYfFhYfFgAABAAAAAADwAPAAAgAEgAoAD0AAAEyNjQmIgYUFhcjFTMRIxUzNSMDIgcGBwYVFBYXFjMyNzY3NjU0Jy4BAyInJicmNDc2NzYyFxYXFhQHBgcGAfQYISEwISFRjzk5yTorhG5rPT99am+DdmhlPD4+PMyFbV5bNTc3NVte2l5bNTc3NVteAqAiLyIiLyI5Hf7EHBwCsT89a26Ed8w8Pj48ZWh2g29qffyjNzVbXtpeWzU3NzVbXtpeWzU3AAADAAAAAAOoA6gACwAgADUAAAEHJwcXBxc3FzcnNwMiBwYHBhQXFhcWMjc2NzY0JyYnJgMiJyYnJjQ3Njc2MhcWFxYUBwYHBgKOmpocmpocmpocmpq2dmZiOjs7OmJm7GZiOjs7OmJmdmtdWTQ2NjRZXdZdWTQ2NjRZXQKqmpocmpocmpocmpoBGTs6YmbsZmI6Ozs6YmbsZmI6O/zCNjRZXdZdWTQ2NjRZXdZdWTQ2AAMAAAAAA+kD6gAaAC8AMAAAAQYHBiMiJyYnJjQ3Njc2MhcWFxYVFAcGBwEHATI3Njc2NCcmJyYiBwYHBhQXFhcWMwKONUBCR21dWjU3NzVaXdpdWzU2GBcrASM5/eBXS0grKysrSEuuSkkqLCwqSUpXASMrFxg2NVtd2l1aNTc3NVpdbUdCQDX+3jkBGSsrSEuuSkkqLCwqSUquS0grKwAC//8AAAPoA+gAFAAwAAABIgcGBwYQFxYXFiA3Njc2ECcmJyYTFg4BIi8BBwYuATQ/AScmPgEWHwE3Nh4BBg8BAfSIdHFDRERDcXQBEHRxQ0REQ3F0SQoBFBsKoqgKGxMKqKIKARQbCqKoChsUAQqoA+hEQ3F0/vB0cUNERENxdAEQdHFDRP1jChsTCqiiCgEUGwqiqAobFAEKqKIKARQbCqIAAAIAAAAAA+QD5AAXADQAAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMUBiMFFxYUDwEGLwEuAT8BNh8BFhQPAQUyFh0BAe6Ecm9BQ0NCbnODiXVxQkREQnF1fwQC/pGDAQEVAwTsAgEC7AQEFAIBhAFwAgMD40RCcXWJg3NuQkNDQW9yhIl1cUJE/fYCAwuVAgQCFAQE0AIFAtEEBBQCBQGVCwMDJwAAAAUAAAAAA9QD0wAjACcANwBHAEgAAAERFAYjISImNREjIiY9ATQ2MyE1NDYzITIWHQEhMhYdARQGIyERIREHIgYVERQWOwEyNjURNCYjISIGFREUFjsBMjY1ETQmKwEDeyYb/XYbJkMJDQ0JAQYZEgEvExkBBgkNDQn9CQJc0QkNDQktCQ0NCf7sCQ0NCS0JDQ0JLQMi/TQbJiYbAswMCiwJDS4SGRkSLg0JLAoM/UwCtGsNCf5NCQ0NCQGzCQ0NCf5NCQ0NCQGzCQ0AAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlX3N1Y2Nlc3MJc2FmZV93YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA") format("truetype")}@font-face{font-weight:400;font-style:normal;font-family:unibtn;src:url("data:application/octet-stream;base64,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") format("truetype")}body,html{-webkit-user-select:none;user-select:none;width:100%;height:100%}body{overflow-x:hidden}[class*=" uni-icon-"],[class^=uni-icon-]{display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 uni;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"],[class^=uni-btn-icon]{display:inline-block;font:normal normal normal 14px/1 unibtn;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" uni-btn-icon"]:before,[class^=uni-btn-icon]:before{margin:0;box-sizing:border-box}.uni-icon-success-no-circle:before{content:"\EA08"}.uni-loading,uni-button[loading]:before{background:rgba(0,0,0,0) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=") no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}@-webkit-keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-loading{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.uni-mask{position:fixed;z-index:999;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.6)}.uni-fade-enter-active,.uni-fade-leave-active{-webkit-transition-duration:.25s;transition-duration:.25s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transition-timing-function:ease;transition-timing-function:ease}.uni-fade-enter,.uni-fade-leave-active{opacity:0}[nvue] uni-scroll-view,[nvue] uni-swiper-item,[nvue] uni-view{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-shrink:0;flex-shrink:0;-webkit-box-flex:0;-webkit-flex-grow:0;flex-grow:0;-webkit-flex-basis:auto;flex-basis:auto;-webkit-box-align:stretch;-webkit-align-items:stretch;align-items:stretch;-webkit-align-content:flex-start;align-content:flex-start}[nvue-dir-row] uni-swiper-item,[nvue-dir-row] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}[nvue-dir-column] uni-swiper-item,[nvue-dir-column] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}[nvue-dir-row-reverse] uni-swiper-item,[nvue-dir-row-reverse] uni-view{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse}[nvue-dir-column-reverse] uni-swiper-item,[nvue-dir-column-reverse] uni-view{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;flex-direction:column-reverse}[nvue] uni-image,[nvue] uni-input,[nvue] uni-scroll-view,[nvue] uni-swiper,[nvue] uni-swiper-item,[nvue] uni-text,[nvue] uni-textarea,[nvue] uni-video,[nvue] uni-view{position:relative;border:0 solid #000;box-sizing:border-box}[nvue] uni-swiper-item{position:absolute}uni-app{width:100%;height:100%}uni-app,uni-page-head{display:block;box-sizing:border-box}uni-page-head .uni-page-head{position:fixed;left:0;width:100%;height:44px;padding:7px 3px;display:-webkit-box;display:-webkit-flex;display:flex;overflow:hidden;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;box-sizing:border-box;z-index:998;color:#fff;background-color:#000;-webkit-transition-property:all;transition-property:all}uni-page-head .uni-page-head.uni-page-head-transparent .uni-page-head-ft>div{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}uni-page-head .uni-page-head~.uni-placeholder{width:100%;height:44px}uni-page-head .uni-page-head *{box-sizing:border-box}uni-page-head .uni-page-head-hd{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:16px}uni-page-head .uni-page-head-bd{position:absolute;left:70px;right:70px;min-width:0;-webkit-user-select:auto;user-select:auto}.uni-page-head-btn{position:relative;width:auto;margin:0 2px;word-break:keep-all;white-space:pre}.uni-page-head-transparent .uni-page-head-btn{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:32px;height:32px;border-radius:50%;background-color:rgba(0,0,0,.5)}uni-page-head .uni-btn-icon{overflow:hidden;min-width:1em}.uni-page-head-btn-red-dot:after{content:attr(badge-text);position:absolute;right:0;top:0;background-color:red;color:#fff;width:18px;height:18px;line-height:18px;border-radius:18px;overflow:hidden;-webkit-transform:scale(.5) translate(40%,-40%);transform:scale(.5) translate(40%,-40%);-webkit-transform-origin:100% 0;transform-origin:100% 0}.uni-page-head-btn-red-dot[badge-text]:after{font-size:12px;width:auto;min-width:18px;max-width:42px;text-align:center;padding:0 3px;-webkit-transform:scale(.7) translate(40%,-40%);transform:scale(.7) translate(40%,-40%)}.uni-page-head-btn-select>.uni-btn-icon:after{display:inline-block;font-family:unibtn;content:"\E601";margin-left:2px;-webkit-transform:rotate(-90deg) scale(.8);transform:rotate(-90deg) scale(.8)}.uni-page-head-search{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex:1;flex:1;margin:0 2px;line-height:30px;font-size:15px}.uni-page-head-search-input{width:100%;height:100%;padding-left:34px;text-align:left}.uni-page-head-search-placeholder{position:absolute;max-width:100%;height:100%;padding-left:34px;overflow:hidden;word-break:keep-all;white-space:pre}.uni-page-head-search-placeholder-right{right:0}.uni-page-head-search-placeholder-center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.uni-page-head-search-placeholder:before{position:absolute;top:0;left:2px;width:30px;content:"\EA0E";display:block;font-size:20px;font-family:uni;text-align:center}uni-page-head .uni-page-head-ft{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;flex-direction:row-reverse;font-size:13px}uni-page-head .uni-page-head__title{font-weight:700;font-size:16px;line-height:30px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}uni-page-head .uni-page-head__title .uni-loading{width:16px;height:16px;margin-top:-3px}uni-page-wrapper{display:block;height:100%;position:relative}uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 44px)}.uni-app--showtabbar uni-page-wrapper{display:block;height:calc(100% - 50px);height:calc(100% - 50px - constant(safe-area-inset-bottom));height:calc(100% - 50px - env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-wrapper:after{content:"";display:block;width:100%;height:50px;height:calc(50px + constant(safe-area-inset-bottom));height:calc(50px + env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 94px);height:calc(100% - 94px - constant(safe-area-inset-bottom));height:calc(100% - 94px - env(safe-area-inset-bottom))}uni-page-body,uni-page-refresh{display:block;box-sizing:border-box;width:100%}uni-page-refresh{position:absolute;top:0;height:40px}uni-page-refresh .uni-page-refresh{position:absolute;top:-45px;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.117647),0 1px 4px rgba(0,0,0,.117647);display:none;z-index:997}uni-page-refresh .uni-page-refresh,uni-page-refresh .uni-page-refresh-inner{width:40px;height:40px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;border-radius:50%}uni-page-refresh .uni-page-refresh-inner{line-height:0}uni-page-refresh.uni-page-refresh--aborting .uni-page-refresh,uni-page-refresh.uni-page-refresh--pulling .uni-page-refresh,uni-page-refresh.uni-page-refresh--reached .uni-page-refresh,uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh,uni-page-refresh.uni-page-refresh--restoring .uni-page-refresh,uni-page-refresh .uni-page-refresh-inner{display:-webkit-box;display:-webkit-flex;display:flex}uni-page-refresh.uni-page-refresh--aborting .uni-page-refresh__spinner,uni-page-refresh.uni-page-refresh--pulling .uni-page-refresh__spinner,uni-page-refresh.uni-page-refresh--reached .uni-page-refresh__spinner,uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh__icon,uni-page-refresh.uni-page-refresh--restoring .uni-page-refresh__icon{display:none}uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh__spinner{-webkit-transform-origin:center center;transform-origin:center center;-webkit-animation:uni-page-refresh-rotate 2s linear infinite;animation:uni-page-refresh-rotate 2s linear infinite}uni-page-refresh.uni-page-refresh--refreshing .uni-page-refresh__path{stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;-webkit-animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite;animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite}@-webkit-keyframes uni-page-refresh-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes uni-page-refresh-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-page{display:block;width:100%;height:100%}.uni-async-error{position:absolute;left:0;right:0;top:0;bottom:0;color:#999;padding:100px 0;text-align:center}.uni-async-loading{box-sizing:border-box;width:100%;padding:50px;text-align:center}.uni-async-loading .uni-loading{width:30px;height:30px}.system-header{position:relative;width:100%;height:44px;color:#fff;background-color:#000;padding:0 44px;text-align:center;line-height:44px;font-size:16px}.system-header,.system-header *{box-sizing:border-box}.header-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-btn{position:absolute;width:44px;height:44px;top:0}.header-btn-img{fill:#fff;width:50%;height:50%;margin:25%}.header-back{left:0}.header-confirm{right:0}.header-btn-icon{font-size:27px;line-height:44px}.uni-system-choose-location,.uni-system-open-location{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background:#f8f8f8}.map-content{position:absolute;left:0;top:44px;width:100%;bottom:0;overflow:hidden}.map-content>iframe{width:100%;height:100%;border:none}.actTonav{position:absolute;right:16px;bottom:56px;width:60px;height:60px;border-radius:60px}.uni-system-preview-image{display:block;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}.uni-swiper{position:absolute;left:0;top:0;width:100%;height:100%}.uni-preview-image{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);max-height:100%;max-width:100%}uni-button{position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;line-height:2.55555556;border-radius:5px;-webkit-tap-highlight-color:transparent;overflow:hidden;color:#000;background-color:#f8f8f8}uni-button[hidden]{display:none!important}uni-button:after{content:" ";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid rgba(0,0,0,.2);-webkit-transform:scale(.5);transform:scale(.5);-webkit-transform-origin:0 0;transform-origin:0 0;box-sizing:border-box;border-radius:10px}uni-button[native]{padding-left:0;padding-right:0}uni-button[native] .uni-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}uni-button[native] .uni-button-cover-view-inner{padding-left:14px;padding-right:14px}uni-button uni-cover-view{line-height:inherit;white-space:inherit}uni-button[type=default]{color:#000;background-color:#f8f8f8}uni-button[type=primary]{color:#fff;background-color:#007aff}uni-button[type=warn]{color:#fff;background-color:#e64340}uni-button[disabled]{color:hsla(0,0%,100%,.6)}uni-button[disabled]:not([type]),uni-button[disabled][type=default]{color:rgba(0,0,0,.3);background-color:#f7f7f7}uni-button[disabled][type=primary]{background-color:rgba(0,122,255,.6)}uni-button[disabled][type=warn]{background-color:#ec8b89}uni-button[type=primary][plain]{color:#007aff;border:1px solid #007aff;background-color:rgba(0,0,0,0)}uni-button[type=primary][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=primary][plain]:after{border-width:0}uni-button[type=default][plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[type=default][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=default][plain]:after{border-width:0}uni-button[plain]{color:#353535;border:1px solid #353535;background-color:rgba(0,0,0,0)}uni-button[plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[plain]:after{border-width:0}uni-button[plain][native] .uni-button-cover-view-inner{padding:0}uni-button[type=warn][plain]{color:#e64340;border:1px solid #e64340;background-color:rgba(0,0,0,0)}uni-button[type=warn][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=warn][plain]:after{border-width:0}uni-button[size=mini]{display:inline-block;line-height:2.3;font-size:13px;padding:0 1.34em}uni-button[size=mini][native]{padding:0}uni-button[size=mini][native] .uni-button-cover-view-inner{padding:0 1.34em}uni-button[loading]:before{content:" ";display:inline-block;width:18px;height:18px;vertical-align:middle;-webkit-animation:uni-loading 1s steps(12) infinite;animation:uni-loading 1s steps(12) infinite;background-size:100%}uni-button[loading][type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}uni-button[loading][type=primary][plain]{color:#007aff;background-color:rgba(0,0,0,0)}uni-button[loading][type=default]{color:rgba(0,0,0,.6);background-color:#dedede}uni-button[loading][type=default][plain]{color:#353535;background-color:rgba(0,0,0,0)}uni-button[loading][type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}uni-button[loading][type=warn][plain]{color:#e64340;background-color:rgba(0,0,0,0)}uni-button[loading][native]:before{content:none}.button-hover{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=primary]{color:hsla(0,0%,100%,.6);background-color:#0062cc}.button-hover[type=primary][plain]{color:rgba(26,173,25,.6);border-color:rgba(26,173,25,.6);background-color:rgba(0,0,0,0)}.button-hover[type=default]{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[type=default][plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:rgba(0,0,0,0)}.button-hover[type=warn]{color:hsla(0,0%,100%,.6);background-color:#ce3c39}.button-hover[type=warn][plain]{color:rgba(230,67,64,.6);border-color:rgba(230,67,64,.6);background-color:rgba(0,0,0,0)}uni-canvas{width:300px;height:150px;display:block;position:relative}uni-canvas>canvas{position:absolute;top:0;left:0;width:100%;height:100%}uni-checkbox-group[hidden]{display:none}uni-checkbox{-webkit-tap-highlight-color:transparent;display:inline-block}uni-checkbox[hidden]{display:none}uni-checkbox .uni-checkbox-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-checkbox .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked{color:#007aff}uni-checkbox .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-checkbox .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}uni-checkbox-group{display:block}uni-image{width:320px;height:240px;display:inline-block;overflow:hidden;position:relative}uni-image[hidden]{display:none}uni-image>div,uni-image>img{width:100%;height:100%}uni-image>img{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;display:block;position:absolute;top:0;left:0;opacity:0}uni-image>.uni-image-will-change{will-change:transform}uni-input{display:block;font-size:16px;line-height:1.4em;height:1.4em;min-height:1.4em;overflow:hidden}uni-input[hidden]{display:none}.uni-input-form,.uni-input-input,.uni-input-placeholder,.uni-input-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-input-wrapper{display:block;position:relative;width:100%;height:100%}.uni-input-input,.uni-input-placeholder{width:100%}.uni-input-placeholder{position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);color:grey;overflow:hidden;text-overflow:clip;white-space:pre;word-break:keep-all;pointer-events:none}.uni-input-input{display:block;height:100%;background:none;color:inherit;opacity:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-input-input[type=search]::-webkit-search-cancel-button{display:none}.uni-input-input::-webkit-inner-spin-button,.uni-input-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.uni-input-input[type=number]{-moz-appearance:textfield}uni-movable-area{display:block;position:relative;width:10px;height:10px}uni-movable-area[hidden]{display:none}uni-movable-view{display:inline-block;width:10px;height:10px;top:0;left:0;position:absolute}uni-movable-view[hidden]{display:none}.navigator-hover{background-color:rgba(0,0,0,.1);opacity:.7}uni-navigator{height:auto;width:auto;display:block}uni-navigator[hidden]{display:none}uni-picker-view-column{-webkit-flex:1;-webkit-box-flex:1;flex:1;position:relative;height:100%;overflow:hidden}uni-picker-view-column[hidden]{display:none}.uni-picker-view-group{height:100%}.uni-picker-view-mask{transform:translateZ(0);-webkit-transform:translateZ(0);top:0;height:100%;margin:0 auto;background:-webkit-linear-gradient(top,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat}.uni-picker-view-indicator{height:34px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.uni-picker-view-indicator,.uni-picker-view-mask{position:absolute;left:0;width:100%;z-index:3;pointer-events:none}.uni-picker-view-content{position:absolute;top:0;left:0;width:100%;will-change:transform;padding:102px 0}.uni-picker-view-content>*{height:34px;overflow:hidden}.uni-picker-view-indicator:before{top:0;border-top:1px solid #e5e5e5;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.uni-picker-view-indicator:after,.uni-picker-view-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}uni-picker-view{display:block}uni-picker-view .uni-picker-view-wrapper{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;overflow:hidden;height:100%}uni-picker-view[hidden]{display:none}uni-picker{display:block}uni-progress{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center}uni-progress[hidden]{display:none}.uni-progress-bar{-webkit-flex:1;-webkit-box-flex:1;flex:1}.uni-progress-inner-bar{width:0;height:100%}.uni-progress-info{margin-top:0;margin-bottom:0;min-width:2em;margin-left:15px;font-size:16px}uni-radio-group[hidden]{display:none}uni-radio{-webkit-tap-highlight-color:transparent;display:inline-block}uni-radio[hidden]{display:none}uni-radio .uni-radio-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-radio .uni-radio-input{-webkit-appearance:none;appearance:none;margin-right:5px;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:50%;width:22px;height:22px;position:relative}uni-radio .uni-radio-input.uni-radio-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";color:#fff;font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-radio .uni-radio-input.uni-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}uni-radio .uni-radio-input.uni-radio-input-disabled:before{color:#adadad}uni-radio-group{display:block}@-webkit-keyframes once-show{0%{top:0}}@keyframes once-show{0%{top:0}}uni-resize-sensor,uni-resize-sensor>div{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}uni-resize-sensor{display:block;z-index:-1;visibility:hidden;-webkit-animation:once-show 1ms;animation:once-show 1ms}uni-resize-sensor>div>div{position:absolute;left:0;top:0}uni-resize-sensor>div:first-child>div{width:100000px;height:100000px}uni-resize-sensor>div:last-child>div{width:200%;height:200%}uni-scroll-view{display:block;width:100%}uni-scroll-view[hidden]{display:none}.uni-scroll-view{position:relative;-webkit-overflow-scrolling:touch;width:100%;height:100%;max-height:inherit}uni-slider{margin:10px 18px;padding:0;display:block}uni-slider[hidden]{display:none}uni-slider .uni-slider-wrapper{display:-webkit-flex;display:-webkit-box;display:flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;min-height:16px}uni-slider .uni-slider-tap-area{-webkit-flex:1;-webkit-box-flex:1;flex:1;padding:8px 0}uni-slider .uni-slider-handle-wrapper{position:relative;height:2px;border-radius:5px;background-color:#e9e9e9;cursor:pointer;-webkit-tap-highlight-color:transparent}uni-slider .uni-slider-handle-wrapper,uni-slider .uni-slider-track{-webkit-transition:background-color .3s ease;transition:background-color .3s ease}uni-slider .uni-slider-track{height:100%;border-radius:6px;background-color:#007aff}uni-slider .uni-slider-handle,uni-slider .uni-slider-thumb{position:absolute;left:50%;top:50%;cursor:pointer;border-radius:50%;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}uni-slider .uni-slider-handle{width:28px;height:28px;margin-top:-14px;margin-left:-14px;background-color:rgba(0,0,0,0);z-index:3}uni-slider .uni-slider-thumb{z-index:2;box-shadow:0 0 4px rgba(0,0,0,.2)}uni-slider .uni-slider-step{position:absolute;width:100%;height:2px;background:rgba(0,0,0,0);z-index:1}uni-slider .uni-slider-value{color:#888;font-size:14px;margin-left:1em}uni-slider .uni-slider-disabled .uni-slider-track{background-color:#ccc}uni-slider .uni-slider-disabled .uni-slider-thumb{background-color:#fff;border-color:#ccc}uni-swiper-item{display:block;overflow:hidden;will-change:transform;position:absolute;width:100%;height:100%}uni-swiper-item[hidden]{display:none}uni-swiper{display:block;height:150px}uni-swiper[hidden]{display:none}uni-swiper .uni-swiper-wrapper{overflow:hidden;position:relative;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}uni-swiper .uni-swiper-slides{position:absolute;left:0;top:0;right:0;bottom:0}uni-swiper .uni-swiper-slide-frame{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}uni-swiper .uni-swiper-dots{position:absolute;font-size:0}uni-swiper .uni-swiper-dots-horizontal{left:50%;bottom:10px;text-align:center;white-space:nowrap;-webkit-transform:translate(-50%);transform:translate(-50%)}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot{margin-right:8px}uni-swiper .uni-swiper-dots-horizontal .uni-swiper-dot:last-child{margin-right:0}uni-swiper .uni-swiper-dots-vertical{right:10px;top:50%;text-align:right;-webkit-transform:translateY(-50%);transform:translateY(-50%)}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot{display:block;margin-bottom:9px}uni-swiper .uni-swiper-dots-vertical .uni-swiper-dot:last-child{margin-bottom:0}uni-swiper .uni-swiper-dot{display:inline-block;width:8px;height:8px;cursor:pointer;-webkit-transition-property:background-color;transition-property:background-color;-webkit-transition-timing-function:ease;transition-timing-function:ease;background:rgba(0,0,0,.3);border-radius:50%}uni-swiper .uni-swiper-dot-active{background-color:#000}uni-switch{-webkit-tap-highlight-color:transparent;display:inline-block}uni-switch[hidden]{display:none}uni-switch .uni-switch-wrapper{display:-webkit-inline-flex;display:-webkit-inline-box;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;align-items:center;vertical-align:middle}uni-switch .uni-switch-input{-webkit-appearance:none;appearance:none;position:relative;width:52px;height:32px;margin-right:5px;border:1px solid #dfdfdf;outline:0;border-radius:16px;box-sizing:border-box;background-color:#dfdfdf;-webkit-transition:background-color .1s,border .1s;transition:background-color .1s,border .1s}uni-switch .uni-switch-input:before{width:50px;background-color:#fdfdfd}uni-switch .uni-switch-input:after,uni-switch .uni-switch-input:before{content:" ";position:absolute;top:0;left:0;height:30px;border-radius:15px;transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}uni-switch .uni-switch-input:after{width:30px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-switch-input.uni-switch-input-checked{border-color:#007aff;background-color:#007aff}uni-switch .uni-switch-input.uni-switch-input-checked:before{-webkit-transform:scale(0);transform:scale(0)}uni-switch .uni-switch-input.uni-switch-input-checked:after{-webkit-transform:translateX(20px);transform:translateX(20px)}uni-switch .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative;color:#007aff}uni-switch .uni-checkbox-input.uni-checkbox-input-checked:before{font:normal normal normal 14px/1 uni;content:"\EA08";color:inherit;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73);-webkit-transform:translate(-50%,-48%) scale(.73)}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}uni-switch .uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}uni-text[selectable]{cursor:auto;user-select:text;-webkit-user-select:text}uni-textarea{width:300px;height:150px;display:block;position:relative;font-size:16px;line-height:normal}uni-textarea[hidden]{display:none}uni-textarea[auto-height] .uni-textarea-textarea{overflow-y:hidden}.uni-textarea-compute,.uni-textarea-placeholder,.uni-textarea-textarea,.uni-textarea-wrapper{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-textarea-wrapper{display:block;position:relative;width:100%;height:100%}.uni-textarea-compute,.uni-textarea-placeholder,.uni-textarea-textarea{position:absolute;width:100%;height:100%;left:0;top:0;white-space:pre-wrap;word-break:break-all}.uni-textarea-placeholder{color:grey;overflow:hidden}.uni-textarea-compute{visibility:hidden;height:auto}.uni-textarea-textarea{resize:none;background:none;color:inherit;opacity:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-textarea-textarea-ios{width:auto;right:0;margin:0 -3px}uni-view{display:block}uni-audio,uni-view[hidden]{display:none}uni-audio[controls]{display:inline-block}uni-audio[hidden]{display:none}.uni-audio-default{max-width:100%;min-width:302px;height:65px;background:#fcfcfc;border:1px solid #e0e0e0;border-radius:2.5px;display:inline-block;overflow:hidden}.uni-audio-left{width:65px;height:65px;float:left;background-color:#e6e6e6;background-size:100% 100%;background-position:50% 50%}.uni-audio-button{width:24px;height:24px;margin:20.5px;background-size:cover}.uni-audio-button.play{background-image:url(data:image/png;base64,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)}.uni-audio-button.pause{background-image:url(data:image/png;base64,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)}.uni-audio-right{box-sizing:border-box;height:65px;margin-left:65px;padding:11px 16.5px 13.5px 15px;overflow:hidden}.uni-audio-time{margin-top:3.5px;height:16.5px;font-size:12px;color:#888;float:right}.uni-audio-info{margin-right:70px;overflow:hidden}.uni-audio-name{height:22.5px;line-height:22.5px;margin-bottom:3.5px;font-size:14px;color:#353535}.uni-audio-author,.uni-audio-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.uni-audio-author{height:14.5px;line-height:14.5px;font-size:12px;color:#888}uni-cover-image{display:block;line-height:1.2;overflow:hidden;pointer-events:auto}uni-cover-image,uni-cover-image img{height:100%;width:100%}uni-cover-image[hidden]{display:none}uni-cover-image .uni-cover-image{width:100%;height:100%;text-overflow:inherit;overflow:inherit;white-space:nowrap;-webkit-align-items:inherit;-webkit-box-align:inherit;align-items:inherit;-webkit-justify-content:inherit;-webkit-box-pack:inherit;justify-content:inherit;-webkit-flex-direction:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;flex-direction:inherit;font-size:0;display:inherit}uni-cover-view{display:block;line-height:1.2;overflow:hidden;white-space:nowrap;pointer-events:auto}uni-cover-view[hidden]{display:none}uni-cover-view .uni-cover-view{width:100%;height:100%;text-overflow:inherit;overflow:hidden;white-space:inherit;-webkit-align-items:inherit;-webkit-box-align:inherit;align-items:inherit;-webkit-justify-content:inherit;-webkit-box-pack:inherit;justify-content:inherit;-webkit-flex-direction:inherit;-webkit-box-orient:inherit;-webkit-box-direction:inherit;flex-direction:inherit;-webkit-flex-wrap:inherit;flex-wrap:inherit;display:inherit;overflow:inherit}uni-map{position:relative;width:300px;height:150px;display:block}uni-map[hidden]{display:none}uni-video{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-video[hidden]{display:none}.uni-video-container{width:100%;height:100%;background-color:#000;display:inline-block;position:absolute;top:0;left:0;overflow:hidden;object-position:inherit}.uni-video-container.uni-video-type-fullscreen{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:999}.uni-video-container.uni-video-type-fullscreen.uni-video-type-rotate-left{-webkit-transform:translate(-50%,-50%) rotate(-90deg);transform:translate(-50%,-50%) rotate(-90deg)}.uni-video-container.uni-video-type-fullscreen.uni-video-type-rotate-right{-webkit-transform:translate(-50%,-50%) rotate(90deg);transform:translate(-50%,-50%) rotate(90deg)}.uni-video-video{width:100%;height:100%;object-position:inherit}.uni-video-cover{position:absolute;top:0;left:0;bottom:0;width:100%;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-webkit-align-items:center;align-items:center;background-color:rgba(1,1,1,.5);z-index:1}.uni-video-cover-play-button{width:40px;height:40px;background-size:50%;background-repeat:no-repeat;background-position:50% 50%}.uni-video-cover-duration{color:#fff;font-size:16px;line-height:1;margin-top:10px}.uni-video-bar{height:44px;background-color:rgba(0,0,0,.5);overflow:hidden;position:absolute;bottom:0;right:0;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:0 10px;z-index:0;-webkit-transform:translateZ(0);transform:translateZ(0)}.uni-video-bar.uni-video-bar-full{left:0}.uni-video-controls{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;margin:0 8.5px}.uni-video-control-button{width:13px;height:15px;padding:14.5px 12.5px 14.5px 12.5px;margin-left:-8.5px;box-sizing:content-box}.uni-video-control-button:after{content:"";display:block;width:100%;height:100%;background-size:100%;background-position:50% 50%;background-repeat:no-repeat}.uni-video-control-button.uni-video-control-button-play:after,.uni-video-cover-play-button{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==")}.uni-video-control-button.uni-video-control-button-pause:after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC")}.uni-video-current-time,.uni-video-duration{height:14.5px;line-height:14.5px;margin-top:15px;margin-bottom:14.5px;font-size:12px;color:#cbcbcb}.uni-video-progress-container{-webkit-box-flex:2;-webkit-flex-grow:2;flex-grow:2;position:relative}.uni-video-progress{height:2px;margin:21px 12px;background-color:hsla(0,0%,100%,.4);position:relative}.uni-video-progress-buffered{position:absolute;left:0;top:0;width:0;height:100%;-webkit-transition:width .1s;transition:width .1s;background-color:hsla(0,0%,100%,.8)}.uni-video-ball{width:16px;height:16px;padding:14px;position:absolute;top:-21px;box-sizing:content-box;left:0;margin-left:-22px}.uni-video-inner{width:100%;height:100%;background-color:#fff;border-radius:50%}.uni-video-danmu-button{white-space:nowrap;line-height:1;padding:2px 10px;border:1px solid #fff;border-radius:5px;font-size:13px;color:#fff;margin:0 8.5px}.uni-video-danmu-button.uni-video-danmu-button-active{border-color:#48c23d;color:#48c23d}.uni-video-fullscreen{width:17px;height:17px;padding:8.5px;box-sizing:content-box;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAAAXNSR0IArs4c6QAAAQRJREFUWAnt1d0NwiAQB/CmS7hHX5zFxLF0Ah2hE/lg7BT4PyMJUj6Oyt299BIioZT7ARYG59wLpTXmoXOMGO/QecxtwyWW4o42AupGALkFdX1MkHxE3Q7jIbQPqNthQogpJoZkMLRlsn/gFMQEk4OoY0oQVUwNoobhQFQwgMxUKFkt0C8+Zy61d8SeR5iHWCLOwF/MCb8Tp//ex3QFsE1HlCfKFUX2OijNFMnPKD7k76YcBoL402Zh8B77+MjlXrVvwfglXA32b0MrRgxCE2nBiEJaMOIQLkYFwsGoQWoYVUgJow4pYD4Weq4ayBqfwDYQmnUK0301kITujuawu65/l2B5A4z3Qe+Ut7EBAAAAAElFTkSuQmCC");background-size:50%;background-position:50% 50%;background-repeat:no-repeat}.uni-video-fullscreen.uni-video-type-fullscreen{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAABBElEQVRYhcXWwQ3CMAwF0O+qOzAKQzAAl0pMxQQwQhmGKwcERxbgc4lEVdHUbm3zJR8qJemTo6YByS3JO8kjyQbGkHQpkOz4zcmK8YQ0BWDCkOxL+UDKombMYKwfZAkmDGLFhEIsmHCIFpMC0WDSIHOYVEgNkw6pYPIhE5j/QCoYF0g7eEkPYGej+cX82x/l6aIAIOb9CcrajrjFE/IAQGP1IgIRcYVsVs32+vx+nC9nWq6dAZDhOaPHBEDGh54O4w0pa9oxEZBFmCjIBGb6Qh4JMWGiIWpMBkSFyYLMYjIhNUw7N9GQi2aQiLxJHspjV+rl1hFrRp25uV2MRGQRBsAewPUD/HhJVOOuCzwAAAAASUVORK5CYII=")}.uni-video-danmu{position:absolute;top:0;left:0;bottom:0;width:100%;margin-top:14px;margin-bottom:44px;font-size:14px;line-height:14px;overflow:visible}.uni-video-danmu-item{line-height:1;position:absolute;color:#fff;white-space:nowrap;left:100%;-webkit-transform:translatex(0);transform:translatex(0);-webkit-transition-property:left,-webkit-transform;transition-property:left,-webkit-transform;transition-property:left,transform;transition-property:left,transform,-webkit-transform;-webkit-transition-duration:3s;transition-duration:3s;-webkit-transition-timing-function:linear;transition-timing-function:linear}.uni-video-toast{pointer-events:none;position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);border-radius:5px;background-color:hsla(0,0%,100%,.8);color:#000;display:none}.uni-video-toast.uni-video-toast-volume{width:100px;height:100px;display:block}.uni-video-toast-volume .uni-video-toast-title{width:100%;font-size:12px;line-height:16px;text-align:center;margin-top:10px;display:block}.uni-video-toast-volume .uni-video-toast-icon{fill:#000;width:50%;height:50%;margin-left:25%;display:block}.uni-video-toast-volume .uni-video-toast-value{width:80px;height:5px;margin-top:5px;margin-left:10px}.uni-video-toast-volume .uni-video-toast-value>.uni-video-toast-value-content{overflow:hidden}.uni-video-toast-volume-grids{width:80px;height:5px}.uni-video-toast-volume-grids-item{float:left;width:7.1px;height:5px;background-color:#000}.uni-video-toast-volume-grids-item:not(:first-child){margin-left:1px}.uni-video-toast.uni-video-toast-progress{display:block;background-color:rgba(0,0,0,.8);color:#fff;font-size:14px;line-height:18px;padding:6px}uni-web-view{position:absolute;left:0;right:0;top:0;bottom:0}
\ No newline at end of file
diff --git a/packages/uni-h5/dist/index.umd.js b/packages/uni-h5/dist/index.umd.js
new file mode 100644
index 0000000000000000000000000000000000000000..a1ec03a3d8722b972452d207cc67b10852600c6d
--- /dev/null
+++ b/packages/uni-h5/dist/index.umd.js
@@ -0,0 +1,26063 @@
+(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");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "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__);
+
+// 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/core/service/plugins/util.js
+var util = __webpack_require__("a741");
+
+// EXTERNAL MODULE: ./src/core/service/api/page-event.js
+var page_event = __webpack_require__("9eba");
+
+// CONCATENATED MODULE: ./src/core/service/bridge/on.js
+
+
+
+function onError(err) {
+ Object(util["a" /* callAppHook */])(getApp(), 'onError', err);
+}
+
+function onPageNotFound(page) {
+ Object(util["a" /* callAppHook */])(getApp(), 'onPageNotFound', page);
+}
+
+function onPullDownRefresh(args, pageId) {
+ var page = getCurrentPages().find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (page) {
+ Object(page_event["setPullDownRefreshPageId"])(pageId);
+ Object(util["b" /* callPageHook */])(page, 'onPullDownRefresh');
+ }
+}
+
+function callCurrentPageHook(hook, args) {
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ Object(util["b" /* callPageHook */])(pages[pages.length - 1], hook, args);
+ }
+}
+
+function createCallCurrentPageHook(hook) {
+ return function (args) {
+ callCurrentPageHook(hook, args);
+ };
+}
+
+function onAppEnterBackground() {
+ Object(util["a" /* callAppHook */])(getApp(), 'onHide');
+ callCurrentPageHook('onHide');
+}
+
+function onAppEnterForeground() {
+ Object(util["a" /* callAppHook */])(getApp(), 'onShow');
+ callCurrentPageHook('onShow');
+}
+
+function onWebInvokeAppService(_ref, pageId) {
+ var name = _ref.name,
+ arg = _ref.arg;
+
+ if (name === 'postMessage') {// TODO 小程序后退、组件销毁、分享时通知
+ } else {
+ uni[name](arg);
+ }
+}
+
+function initOn(on) {
+ on('onError', onError);
+ on('onPageNotFound', onPageNotFound);
+ 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);
+}
+// EXTERNAL MODULE: ./src/core/service/bridge/subscribe.js
+var subscribe = __webpack_require__("3d1f");
+
+// EXTERNAL MODULE: ./src/core/helpers/api.js
+var api = __webpack_require__("27a7");
+
+// EXTERNAL MODULE: ./src/platforms/h5/service/bridge.js
+var bridge = __webpack_require__("b865");
+
+// CONCATENATED MODULE: ./src/core/service/bridge/index.js
+/* 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 bridge_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; });
+/* concated harmony reexport invokeCallbackHandler */__webpack_require__.d(__webpack_exports__, "invokeCallbackHandler", function() { return api["a" /* invokeCallbackHandler */]; });
+/* concated harmony reexport publishHandler */__webpack_require__.d(__webpack_exports__, "publishHandler", function() { return bridge["a" /* publishHandler */]; });
+
+
+
+var Emitter = new external_commonjs_vue_commonjs2_vue_root_Vue_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 bridge_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);
+}
+
+initOn(on);
+Object(subscribe["a" /* default */])(bridge_subscribe);
+
+/***/ }),
+
+/***/ "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":"944f1030-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":"944f1030-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";
+
+/***/ }),
+
+/***/ "19ec":
+/***/ (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")))
+
+/***/ }),
+
+/***/ "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":"944f1030-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":"944f1030-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"]))
+
+/***/ }),
+
+/***/ "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")))
+
+/***/ }),
+
+/***/ "2ae7":
+/***/ (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__, "openLocation", function() { return openLocation; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chooseLocation", function() { return chooseLocation; });
+/**
+ * 查看位置
+ * @param {*} param0
+ * @param {*} callbackId
+ */
+function openLocation(_ref, callbackId) {
+ var latitude = _ref.latitude,
+ longitude = _ref.longitude,
+ scale = _ref.scale,
+ name = _ref.name,
+ address = _ref.address;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ getApp().$router.push({
+ type: 'navigateTo',
+ path: '/open-location',
+ query: {
+ latitude: latitude,
+ longitude: longitude,
+ scale: scale,
+ name: name,
+ address: address
+ }
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'openLocation:ok'
+ });
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'openLocation:fail'
+ });
+ });
+}
+/**
+ * 选择位置
+ * @param {*} callbackId
+ */
+
+function chooseLocation(options, callbackId) {
+ var _UniServiceJSBridge2 = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge2.invokeCallbackHandler;
+ getApp().$router.push({
+ type: 'navigateTo',
+ path: '/choose-location'
+ }, function () {
+ var fn = function fn(data) {
+ UniServiceJSBridge.unsubscribe('onChooseLocation', fn);
+
+ if (data) {
+ invoke(callbackId, Object.assign(data, {
+ errMsg: 'chooseLocation:ok'
+ }));
+ } else {
+ invoke(callbackId, {
+ errMsg: 'chooseLocation:fail'
+ });
+ }
+ };
+
+ UniServiceJSBridge.subscribe('onChooseLocation', fn);
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'chooseLocation:fail'
+ });
+ });
+}
+/* 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":"944f1030-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")))
+
+/***/ }),
+
+/***/ "2c67":
+/***/ (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__, "createAudioContext", function() { return createAudioContext; });
+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 operateAudioPlayer(audioId, pageId, type, data) {
+ UniServiceJSBridge.publishHandler(pageId + '-audio-' + audioId, {
+ audioId: audioId,
+ type: type,
+ data: data
+ }, pageId);
+}
+
+var AudioContext =
+/*#__PURE__*/
+function () {
+ function AudioContext(id, pageId) {
+ _classCallCheck(this, AudioContext);
+
+ this.id = id;
+ this.pageId = pageId;
+ }
+
+ _createClass(AudioContext, [{
+ key: "setSrc",
+ value: function setSrc(src) {
+ operateAudioPlayer(this.id, this.pageId, 'setSrc', {
+ src: src
+ });
+ }
+ }, {
+ key: "play",
+ value: function play() {
+ operateAudioPlayer(this.id, this.pageId, 'play');
+ }
+ }, {
+ key: "pause",
+ value: function pause() {
+ operateAudioPlayer(this.id, this.pageId, 'pause');
+ }
+ }, {
+ key: "stop",
+ value: function stop() {
+ operateAudioPlayer(this.id, this.pageId, 'stop');
+ }
+ }, {
+ key: "seek",
+ value: function seek(position) {
+ operateAudioPlayer(this.id, this.pageId, 'seek', {
+ position: position
+ });
+ }
+ }]);
+
+ return AudioContext;
+}();
+
+function createAudioContext(id, context) {
+ if (context) {
+ return new AudioContext(id, context.$page.id);
+ }
+
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ return new AudioContext(id, app.$route.params.__id__);
+ } else {
+ UniServiceJSBridge.emit('onError', 'createAudioContext:fail');
+ }
+}
+/* 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
+
+/***/ }),
+
+/***/ "303f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge, console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCanvasContext", function() { return createCanvasContext; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canvasGetImageData", function() { return canvasGetImageData; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canvasPutImageData", function() { return canvasPutImageData; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canvasToTempFilePath", function() { return canvasToTempFilePath; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createContext", function() { return createContext; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drawCanvas", function() { return drawCanvas; });
+/* harmony import */ var uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("62b5");
+/* harmony import */ var uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a20f");
+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); }
+
+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 _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 canvasEventCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('canvasEvent');
+UniServiceJSBridge.subscribe('onDrawCanvas', function (_ref) {
+ var callbackId = _ref.callbackId,
+ data = _ref.data;
+ var callback = canvasEventCallbacks.pop(callbackId);
+
+ if (callback) {
+ callback(data);
+ }
+});
+UniServiceJSBridge.subscribe('onCanvasMethodCallback', function (_ref2) {
+ var callbackId = _ref2.callbackId,
+ data = _ref2.data;
+ var callback = canvasEventCallbacks.pop(callbackId);
+
+ if (callback) {
+ callback(data);
+ }
+});
+
+function operateCanvas(canvasId, pageId, type, data) {
+ UniServiceJSBridge.publishHandler(pageId + '-canvas-' + canvasId, {
+ canvasId: canvasId,
+ type: type,
+ data: data
+ }, pageId);
+}
+
+var predefinedColor = {
+ aliceblue: '#f0f8ff',
+ antiquewhite: '#faebd7',
+ aqua: '#00ffff',
+ aquamarine: '#7fffd4',
+ azure: '#f0ffff',
+ beige: '#f5f5dc',
+ bisque: '#ffe4c4',
+ black: '#000000',
+ blanchedalmond: '#ffebcd',
+ blue: '#0000ff',
+ blueviolet: '#8a2be2',
+ brown: '#a52a2a',
+ burlywood: '#deb887',
+ cadetblue: '#5f9ea0',
+ chartreuse: '#7fff00',
+ chocolate: '#d2691e',
+ coral: '#ff7f50',
+ cornflowerblue: '#6495ed',
+ cornsilk: '#fff8dc',
+ crimson: '#dc143c',
+ cyan: '#00ffff',
+ darkblue: '#00008b',
+ darkcyan: '#008b8b',
+ darkgoldenrod: '#b8860b',
+ darkgray: '#a9a9a9',
+ darkgrey: '#a9a9a9',
+ darkgreen: '#006400',
+ darkkhaki: '#bdb76b',
+ darkmagenta: '#8b008b',
+ darkolivegreen: '#556b2f',
+ darkorange: '#ff8c00',
+ darkorchid: '#9932cc',
+ darkred: '#8b0000',
+ darksalmon: '#e9967a',
+ darkseagreen: '#8fbc8f',
+ darkslateblue: '#483d8b',
+ darkslategray: '#2f4f4f',
+ darkslategrey: '#2f4f4f',
+ darkturquoise: '#00ced1',
+ darkviolet: '#9400d3',
+ deeppink: '#ff1493',
+ deepskyblue: '#00bfff',
+ dimgray: '#696969',
+ dimgrey: '#696969',
+ dodgerblue: '#1e90ff',
+ firebrick: '#b22222',
+ floralwhite: '#fffaf0',
+ forestgreen: '#228b22',
+ fuchsia: '#ff00ff',
+ gainsboro: '#dcdcdc',
+ ghostwhite: '#f8f8ff',
+ gold: '#ffd700',
+ goldenrod: '#daa520',
+ gray: '#808080',
+ grey: '#808080',
+ green: '#008000',
+ greenyellow: '#adff2f',
+ honeydew: '#f0fff0',
+ hotpink: '#ff69b4',
+ indianred: '#cd5c5c',
+ indigo: '#4b0082',
+ ivory: '#fffff0',
+ khaki: '#f0e68c',
+ lavender: '#e6e6fa',
+ lavenderblush: '#fff0f5',
+ lawngreen: '#7cfc00',
+ lemonchiffon: '#fffacd',
+ lightblue: '#add8e6',
+ lightcoral: '#f08080',
+ lightcyan: '#e0ffff',
+ lightgoldenrodyellow: '#fafad2',
+ lightgray: '#d3d3d3',
+ lightgrey: '#d3d3d3',
+ lightgreen: '#90ee90',
+ lightpink: '#ffb6c1',
+ lightsalmon: '#ffa07a',
+ lightseagreen: '#20b2aa',
+ lightskyblue: '#87cefa',
+ lightslategray: '#778899',
+ lightslategrey: '#778899',
+ lightsteelblue: '#b0c4de',
+ lightyellow: '#ffffe0',
+ lime: '#00ff00',
+ limegreen: '#32cd32',
+ linen: '#faf0e6',
+ magenta: '#ff00ff',
+ maroon: '#800000',
+ mediumaquamarine: '#66cdaa',
+ mediumblue: '#0000cd',
+ mediumorchid: '#ba55d3',
+ mediumpurple: '#9370db',
+ mediumseagreen: '#3cb371',
+ mediumslateblue: '#7b68ee',
+ mediumspringgreen: '#00fa9a',
+ mediumturquoise: '#48d1cc',
+ mediumvioletred: '#c71585',
+ midnightblue: '#191970',
+ mintcream: '#f5fffa',
+ mistyrose: '#ffe4e1',
+ moccasin: '#ffe4b5',
+ navajowhite: '#ffdead',
+ navy: '#000080',
+ oldlace: '#fdf5e6',
+ olive: '#808000',
+ olivedrab: '#6b8e23',
+ orange: '#ffa500',
+ orangered: '#ff4500',
+ orchid: '#da70d6',
+ palegoldenrod: '#eee8aa',
+ palegreen: '#98fb98',
+ paleturquoise: '#afeeee',
+ palevioletred: '#db7093',
+ papayawhip: '#ffefd5',
+ peachpuff: '#ffdab9',
+ peru: '#cd853f',
+ pink: '#ffc0cb',
+ plum: '#dda0dd',
+ powderblue: '#b0e0e6',
+ purple: '#800080',
+ rebeccapurple: '#663399',
+ red: '#ff0000',
+ rosybrown: '#bc8f8f',
+ royalblue: '#4169e1',
+ saddlebrown: '#8b4513',
+ salmon: '#fa8072',
+ sandybrown: '#f4a460',
+ seagreen: '#2e8b57',
+ seashell: '#fff5ee',
+ sienna: '#a0522d',
+ silver: '#c0c0c0',
+ skyblue: '#87ceeb',
+ slateblue: '#6a5acd',
+ slategray: '#708090',
+ slategrey: '#708090',
+ snow: '#fffafa',
+ springgreen: '#00ff7f',
+ steelblue: '#4682b4',
+ tan: '#d2b48c',
+ teal: '#008080',
+ thistle: '#d8bfd8',
+ tomato: '#ff6347',
+ turquoise: '#40e0d0',
+ violet: '#ee82ee',
+ wheat: '#f5deb3',
+ white: '#ffffff',
+ whitesmoke: '#f5f5f5',
+ yellow: '#ffff00',
+ yellowgreen: '#9acd32',
+ transparent: '#00000000'
+};
+
+function checkColor(e) {
+ var t = null;
+
+ if ((t = /^#([0-9|A-F|a-f]{6})$/.exec(e)) != null) {
+ var n = parseInt(t[1].slice(0, 2), 16);
+ var o = parseInt(t[1].slice(2, 4), 16);
+ var r = parseInt(t[1].slice(4), 16);
+ return [n, o, r, 255];
+ }
+
+ if ((t = /^#([0-9|A-F|a-f]{3})$/.exec(e)) != null) {
+ var _n = t[1].slice(0, 1);
+
+ var _o = t[1].slice(1, 2);
+
+ var _r = t[1].slice(2, 3);
+
+ _n = parseInt(_n + _n, 16);
+ _o = parseInt(_o + _o, 16);
+ _r = parseInt(_r + _r, 16);
+ return [_n, _o, _r, 255];
+ }
+
+ if ((t = /^rgb\((.+)\)$/.exec(e)) != null) {
+ return t[1].split(',').map(function (e) {
+ return Math.min(255, parseInt(e.trim()));
+ }).concat(255);
+ }
+
+ if ((t = /^rgba\((.+)\)$/.exec(e)) != null) {
+ return t[1].split(',').map(function (e, t) {
+ return t === 3 ? Math.floor(255 * parseFloat(e.trim())) : Math.min(255, parseInt(e.trim()));
+ });
+ }
+
+ var i = e.toLowerCase();
+
+ if (predefinedColor.hasOwnProperty(i)) {
+ t = /^#([0-9|A-F|a-f]{6,8})$/.exec(predefinedColor[i]);
+
+ var _n2 = parseInt(t[1].slice(0, 2), 16);
+
+ var _o2 = parseInt(t[1].slice(2, 4), 16);
+
+ var _r2 = parseInt(t[1].slice(4, 6), 16);
+
+ var a = parseInt(t[1].slice(6, 8), 16);
+ a = a >= 0 ? a : 255;
+ return [_n2, _o2, _r2, a];
+ }
+
+ console.group('非法颜色: ' + e);
+ console.error('不支持颜色:' + e);
+ console.groupEnd();
+ return [0, 0, 0, 255];
+}
+
+function TextMetrics(width) {
+ this.width = width;
+}
+
+function Pattern(image, repetition) {
+ this.image = image;
+ this.repetition = repetition;
+}
+
+var CanvasGradient =
+/*#__PURE__*/
+function () {
+ function CanvasGradient(type, data) {
+ _classCallCheck(this, CanvasGradient);
+
+ this.type = type;
+ this.data = data;
+ this.colorStop = [];
+ }
+
+ _createClass(CanvasGradient, [{
+ key: "addColorStop",
+ value: function addColorStop(position, color) {
+ this.colorStop.push([position, checkColor(color)]);
+ }
+ }]);
+
+ return CanvasGradient;
+}();
+
+var methods1 = ['scale', 'rotate', 'translate', 'setTransform', 'transform'];
+var methods2 = ['drawImage', 'fillText', 'fill', 'stroke', 'fillRect', 'strokeRect', 'clearRect', 'strokeText'];
+var methods3 = ['setFillStyle', 'setTextAlign', 'setStrokeStyle', 'setGlobalAlpha', 'setShadow', 'setFontSize', 'setLineCap', 'setLineJoin', 'setLineWidth', 'setMiterLimit', 'setTextBaseline', 'setLineDash'];
+var tempCanvas;
+
+function getTempCanvas() {
+ if (!tempCanvas) {
+ tempCanvas = document.createElement('canvas');
+ }
+
+ return tempCanvas;
+}
+
+var CanvasContext =
+/*#__PURE__*/
+function () {
+ function CanvasContext(id, pageId) {
+ _classCallCheck(this, CanvasContext);
+
+ this.id = id;
+ this.pageId = pageId;
+ this.actions = [];
+ this.path = [];
+ this.subpath = [];
+ this.currentTransform = [];
+ this.currentStepAnimates = [];
+ this.drawingState = [];
+ this.state = {
+ lineDash: [0, 0],
+ shadowOffsetX: 0,
+ shadowOffsetY: 0,
+ shadowBlur: 0,
+ shadowColor: [0, 0, 0, 0],
+ font: '10px sans-serif',
+ fontSize: 10,
+ fontWeight: 'normal',
+ fontStyle: 'normal',
+ fontFamily: 'sans-serif'
+ };
+ }
+
+ _createClass(CanvasContext, [{
+ key: "draw",
+ value: function draw() {
+ var reserve = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
+
+ var actions = _toConsumableArray(this.actions);
+
+ this.actions = [];
+ this.path = [];
+ var callbackId;
+
+ if (typeof callback === 'function') {
+ callbackId = canvasEventCallbacks.push(callback);
+ }
+
+ operateCanvas(this.id, this.pageId, 'actionsChanged', {
+ actions: actions,
+ reserve: reserve,
+ callbackId: callbackId
+ });
+ }
+ }, {
+ key: "createLinearGradient",
+ value: function createLinearGradient(x0, y0, x1, y1) {
+ return new CanvasGradient('linear', [x0, y0, x1, y1]);
+ }
+ }, {
+ key: "createCircularGradient",
+ value: function createCircularGradient(x, y, r) {
+ return new CanvasGradient('radial', [x, y, r]);
+ }
+ }, {
+ key: "createPattern",
+ value: function createPattern(image, repetition) {
+ if (undefined === repetition) {
+ console.error("Failed to execute 'createPattern' on 'CanvasContext': 2 arguments required, but only 1 present.");
+ } else if (['repeat', 'repeat-x', 'repeat-y', 'no-repeat'].indexOf(repetition) < 0) {
+ console.error("Failed to execute 'createPattern' on 'CanvasContext': The provided type ('" + repetition + "') is not one of 'repeat', 'no-repeat', 'repeat-x', or 'repeat-y'.");
+ } else {
+ return new Pattern(image, repetition);
+ }
+ }
+ }, {
+ key: "measureText",
+ value: function measureText(text) {
+ var c2d = getTempCanvas().getContext('2d');
+ c2d.font = this.state.font;
+ return new TextMetrics(c2d.measureText(text).width || 0);
+ }
+ }, {
+ key: "save",
+ value: function save() {
+ this.actions.push({
+ method: 'save',
+ data: []
+ });
+ this.drawingState.push(this.state);
+ }
+ }, {
+ key: "restore",
+ value: function restore() {
+ this.actions.push({
+ method: 'restore',
+ data: []
+ });
+ this.state = this.drawingState.pop() || {
+ lineDash: [0, 0],
+ shadowOffsetX: 0,
+ shadowOffsetY: 0,
+ shadowBlur: 0,
+ shadowColor: [0, 0, 0, 0],
+ font: '10px sans-serif',
+ fontSize: 10,
+ fontWeight: 'normal',
+ fontStyle: 'normal',
+ fontFamily: 'sans-serif'
+ };
+ }
+ }, {
+ key: "beginPath",
+ value: function beginPath() {
+ this.path = [];
+ this.subpath = [];
+ }
+ }, {
+ key: "moveTo",
+ value: function moveTo(x, y) {
+ this.path.push({
+ method: 'moveTo',
+ data: [x, y]
+ });
+ this.subpath = [[x, y]];
+ }
+ }, {
+ key: "lineTo",
+ value: function lineTo(x, y) {
+ if (this.path.length === 0 && this.subpath.length === 0) {
+ this.path.push({
+ method: 'moveTo',
+ data: [x, y]
+ });
+ } else {
+ this.path.push({
+ method: 'lineTo',
+ data: [x, y]
+ });
+ }
+
+ this.subpath.push([x, y]);
+ }
+ }, {
+ key: "quadraticCurveTo",
+ value: function quadraticCurveTo(cpx, cpy, x, y) {
+ this.path.push({
+ method: 'quadraticCurveTo',
+ data: [cpx, cpy, x, y]
+ });
+ this.subpath.push([x, y]);
+ }
+ }, {
+ key: "bezierCurveTo",
+ value: function bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {
+ this.path.push({
+ method: 'bezierCurveTo',
+ data: [cp1x, cp1y, cp2x, cp2y, x, y]
+ });
+ this.subpath.push([x, y]);
+ }
+ }, {
+ key: "arc",
+ value: function arc(x, y, r, sAngle, eAngle) {
+ var counterclockwise = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
+ this.path.push({
+ method: 'arc',
+ data: [x, y, r, sAngle, eAngle, counterclockwise]
+ });
+ this.subpath.push([x, y]);
+ }
+ }, {
+ key: "rect",
+ value: function rect(x, y, width, height) {
+ this.path.push({
+ method: 'rect',
+ data: [x, y, width, height]
+ });
+ this.subpath = [[x, y]];
+ }
+ }, {
+ key: "arcTo",
+ value: function arcTo(x1, y1, x2, y2, radius) {
+ this.path.push({
+ method: 'arcTo',
+ data: [x1, y1, x2, y2, radius]
+ });
+ this.subpath.push([x2, y2]);
+ }
+ }, {
+ key: "clip",
+ value: function clip() {
+ this.actions.push({
+ method: 'clip',
+ data: _toConsumableArray(this.path)
+ });
+ }
+ }, {
+ key: "closePath",
+ value: function closePath() {
+ this.path.push({
+ method: 'closePath',
+ data: []
+ });
+
+ if (this.subpath.length) {
+ this.subpath = [this.subpath.shift()];
+ }
+ }
+ }, {
+ key: "clearActions",
+ value: function clearActions() {
+ this.actions = [];
+ this.path = [];
+ this.subpath = [];
+ }
+ }, {
+ key: "getActions",
+ value: function getActions() {
+ var actions = _toConsumableArray(this.actions);
+
+ this.clearActions();
+ return actions;
+ }
+ }, {
+ key: "lineDashOffset",
+ set: function set(value) {
+ this.actions.push({
+ method: 'setLineDashOffset',
+ data: [value]
+ });
+ }
+ }, {
+ key: "globalCompositeOperation",
+ set: function set(type) {
+ this.actions.push({
+ method: 'setGlobalCompositeOperation',
+ data: [type]
+ });
+ }
+ }, {
+ key: "shadowBlur",
+ set: function set(level) {
+ this.actions.push({
+ method: 'setShadowBlur',
+ data: [level]
+ });
+ }
+ }, {
+ key: "shadowColor",
+ set: function set(color) {
+ this.actions.push({
+ method: 'setShadowColor',
+ data: [color]
+ });
+ }
+ }, {
+ key: "shadowOffsetX",
+ set: function set(x) {
+ this.actions.push({
+ method: 'setShadowOffsetX',
+ data: [x]
+ });
+ }
+ }, {
+ key: "shadowOffsetY",
+ set: function set(y) {
+ this.actions.push({
+ method: 'setShadowOffsetY',
+ data: [y]
+ });
+ }
+ }, {
+ key: "font",
+ set: function set(value) {
+ var self = this;
+ this.state.font = value; // eslint-disable-next-line
+
+ var fontFormat = value.match(/^(([\w\-]+\s)*)(\d+r?px)(\/(\d+\.?\d*(r?px)?))?\s+(.*)/);
+
+ if (fontFormat) {
+ var style = fontFormat[1].trim().split(/\s/);
+ var fontSize = parseFloat(fontFormat[3]);
+ var fontFamily = fontFormat[7];
+ var actions = [];
+ style.forEach(function (value, index) {
+ if (['italic', 'oblique', 'normal'].indexOf(value) > -1) {
+ actions.push({
+ method: 'setFontStyle',
+ data: [value]
+ });
+ self.state.fontStyle = value;
+ } else if (['bold', 'normal'].indexOf(value) > -1) {
+ actions.push({
+ method: 'setFontWeight',
+ data: [value]
+ });
+ self.state.fontWeight = value;
+ } else if (index === 0) {
+ actions.push({
+ method: 'setFontStyle',
+ data: ['normal']
+ });
+ self.state.fontStyle = 'normal';
+ } else if (index === 1) {
+ pushAction();
+ }
+ });
+
+ if (style.length === 1) {
+ pushAction();
+ }
+
+ style = actions.map(function (action) {
+ return action.data[0];
+ }).join(' ');
+ this.state.fontSize = fontSize;
+ this.state.fontFamily = fontFamily;
+ this.actions.push({
+ method: 'setFont',
+ data: ["".concat(style, " ").concat(fontSize, "px ").concat(fontFamily)]
+ });
+ } else {
+ console.warn("Failed to set 'font' on 'CanvasContext': invalid format.");
+ }
+
+ function pushAction() {
+ actions.push({
+ method: 'setFontWeight',
+ data: ['normal']
+ });
+ self.state.fontWeight = 'normal';
+ }
+ },
+ get: function get() {
+ return this.state.font;
+ }
+ }, {
+ key: "fillStyle",
+ set: function set(color) {
+ this.setFillStyle(color);
+ }
+ }, {
+ key: "strokeStyle",
+ set: function set(color) {
+ this.setStrokeStyle(color);
+ }
+ }, {
+ key: "globalAlpha",
+ set: function set(value) {
+ value = Math.floor(255 * parseFloat(value));
+ this.actions.push({
+ method: 'setGlobalAlpha',
+ data: [value]
+ });
+ }
+ }, {
+ key: "textAlign",
+ set: function set(align) {
+ this.actions.push({
+ method: 'setTextAlign',
+ data: [align]
+ });
+ }
+ }, {
+ key: "lineCap",
+ set: function set(type) {
+ this.actions.push({
+ method: 'setLineCap',
+ data: [type]
+ });
+ }
+ }, {
+ key: "lineJoin",
+ set: function set(type) {
+ this.actions.push({
+ method: 'setLineJoin',
+ data: [type]
+ });
+ }
+ }, {
+ key: "lineWidth",
+ set: function set(value) {
+ this.actions.push({
+ method: 'setLineWidth',
+ data: [value]
+ });
+ }
+ }, {
+ key: "miterLimit",
+ set: function set(value) {
+ this.actions.push({
+ method: 'setMiterLimit',
+ data: [value]
+ });
+ }
+ }, {
+ key: "textBaseline",
+ set: function set(type) {
+ this.actions.push({
+ method: 'setTextBaseline',
+ data: [type]
+ });
+ }
+ }]);
+
+ return CanvasContext;
+}();
+
+[].concat(methods1, methods2).forEach(function (method) {
+ function get(method) {
+ switch (method) {
+ case 'fill':
+ case 'stroke':
+ return function () {
+ this.actions.push({
+ method: method + 'Path',
+ data: _toConsumableArray(this.path)
+ });
+ };
+
+ case 'fillRect':
+ return function (x, y, width, height) {
+ this.actions.push({
+ method: 'fillPath',
+ data: [{
+ method: 'rect',
+ data: [x, y, width, height]
+ }]
+ });
+ };
+
+ case 'strokeRect':
+ return function (x, y, width, height) {
+ this.actions.push({
+ method: 'strokePath',
+ data: [{
+ method: 'rect',
+ data: [x, y, width, height]
+ }]
+ });
+ };
+
+ case 'fillText':
+ case 'strokeText':
+ return function (text, x, y, maxWidth) {
+ var data = [text.toString(), x, y];
+
+ if (typeof maxWidth === 'number') {
+ data.push(maxWidth);
+ }
+
+ this.actions.push({
+ method: method,
+ data: data
+ });
+ };
+
+ case 'drawImage':
+ return function (imageResource, dx, dy, dWidth, dHeight, sx, sy, sWidth, sHeight) {
+ if (sHeight === undefined) {
+ sx = dx;
+ sy = dy;
+ sWidth = dWidth;
+ sHeight = dHeight;
+ dx = undefined;
+ dy = undefined;
+ dWidth = undefined;
+ dHeight = undefined;
+ }
+
+ var data;
+
+ function isNumber(e) {
+ return typeof e === 'number';
+ }
+
+ data = isNumber(dx) && isNumber(dy) && isNumber(dWidth) && isNumber(dHeight) ? [imageResource, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight] : isNumber(sWidth) && isNumber(sHeight) ? [imageResource, sx, sy, sWidth, sHeight] : [imageResource, sx, sy];
+ this.actions.push({
+ method: method,
+ data: data
+ });
+ };
+
+ default:
+ return function () {
+ for (var _len = arguments.length, data = new Array(_len), _key = 0; _key < _len; _key++) {
+ data[_key] = arguments[_key];
+ }
+
+ this.actions.push({
+ method: method,
+ data: data
+ });
+ };
+ }
+ }
+
+ CanvasContext.prototype[method] = get(method);
+});
+methods3.forEach(function (method) {
+ function get(method) {
+ switch (method) {
+ case 'setFillStyle':
+ case 'setStrokeStyle':
+ return function (color) {
+ if (_typeof(color) !== 'object') {
+ this.actions.push({
+ method: method,
+ data: ['normal', checkColor(color)]
+ });
+ } else {
+ this.actions.push({
+ method: method,
+ data: [color.type, color.data, color.colorStop]
+ });
+ }
+ };
+
+ case 'setGlobalAlpha':
+ return function (alpha) {
+ alpha = Math.floor(255 * parseFloat(alpha));
+ this.actions.push({
+ method: method,
+ data: [alpha]
+ });
+ };
+
+ case 'setShadow':
+ return function (offsetX, offsetY, blur, color) {
+ color = checkColor(color);
+ this.actions.push({
+ method: method,
+ data: [offsetX, offsetY, blur, color]
+ });
+ this.state.shadowBlur = blur;
+ this.state.shadowColor = color;
+ this.state.shadowOffsetX = offsetX;
+ this.state.shadowOffsetY = offsetY;
+ };
+
+ case 'setLineDash':
+ return function (pattern, offset) {
+ pattern = pattern || [0, 0];
+ offset = offset || 0;
+ this.actions.push({
+ method: method,
+ data: [pattern, offset]
+ });
+ this.state.lineDash = pattern;
+ };
+
+ case 'setFontSize':
+ return function (fontSize) {
+ this.state.font = this.state.font.replace(/\d+\.?\d*px/, fontSize + 'px');
+ this.state.fontSize = fontSize;
+ this.actions.push({
+ method: method,
+ data: [fontSize]
+ });
+ };
+
+ default:
+ return function () {
+ for (var _len2 = arguments.length, data = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ data[_key2] = arguments[_key2];
+ }
+
+ this.actions.push({
+ method: method,
+ data: data
+ });
+ };
+ }
+ }
+
+ CanvasContext.prototype[method] = get(method);
+});
+function createCanvasContext(id, context) {
+ if (context) {
+ return new CanvasContext(id, context.$page.id);
+ }
+
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ return new CanvasContext(id, app.$route.params.__id__);
+ } else {
+ UniServiceJSBridge.emit('onError', 'createCanvasContext:fail');
+ }
+}
+var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+function canvasGetImageData(_ref3, callbackId) {
+ var canvasId = _ref3.canvasId,
+ x = _ref3.x,
+ y = _ref3.y,
+ width = _ref3.width,
+ height = _ref3.height;
+ var pageId;
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ pageId = app.$route.params.__id__;
+ } else {
+ invoke(callbackId, {
+ errMsg: 'canvasGetImageData:fail'
+ });
+ return;
+ }
+
+ var cId = canvasEventCallbacks.push(function (data) {
+ var imgData = data.data;
+
+ if (imgData && imgData.length) {
+ data.data = new Uint8ClampedArray(imgData);
+ }
+
+ invoke(callbackId, data);
+ });
+ operateCanvas(canvasId, pageId, 'getImageData', {
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ callbackId: cId
+ });
+}
+function canvasPutImageData(_ref4, callbackId) {
+ var canvasId = _ref4.canvasId,
+ data = _ref4.data,
+ x = _ref4.x,
+ y = _ref4.y,
+ width = _ref4.width,
+ height = _ref4.height;
+ var pageId;
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ pageId = app.$route.params.__id__;
+ } else {
+ invoke(callbackId, {
+ errMsg: 'canvasPutImageData:fail'
+ });
+ return;
+ }
+
+ var cId = canvasEventCallbacks.push(function (data) {
+ invoke(callbackId, data);
+ });
+ operateCanvas(canvasId, pageId, 'putImageData', {
+ data: _toConsumableArray(data),
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ callbackId: cId
+ });
+}
+function canvasToTempFilePath(_ref5, callbackId) {
+ var x = _ref5.x,
+ y = _ref5.y,
+ width = _ref5.width,
+ height = _ref5.height,
+ destWidth = _ref5.destWidth,
+ destHeight = _ref5.destHeight,
+ canvasId = _ref5.canvasId,
+ fileType = _ref5.fileType,
+ qualit = _ref5.qualit;
+
+ if (typeof width !== 'undefined') {
+ width *= uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__[/* pixelRatio */ "a"];
+ }
+
+ if (typeof height !== 'undefined') {
+ height *= uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__[/* pixelRatio */ "a"];
+ }
+
+ var pageId;
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ pageId = app.$route.params.__id__;
+ } else {
+ invoke(callbackId, {
+ errMsg: 'canvasToTempFilePath:fail'
+ });
+ return;
+ }
+
+ var cId = canvasEventCallbacks.push(function (data) {
+ var imgData = data.data;
+
+ if (!imgData || !imgData.length) {
+ invoke(callbackId, {
+ errMsg: 'canvasToTempFilePath:fail'
+ });
+ return;
+ }
+
+ try {
+ imgData = new ImageData(new Uint8ClampedArray(imgData), data.width, data.height);
+ } catch (error) {
+ invoke(callbackId, {
+ errMsg: 'canvasToTempFilePath:fail'
+ });
+ return;
+ }
+
+ var canvas = getTempCanvas();
+ canvas.width = data.width;
+ canvas.height = data.height;
+ var c2d = canvas.getContext('2d');
+ c2d.putImageData(imgData, 0, 0);
+ var base64 = canvas.toDataURL('image/png');
+ var img = new Image();
+
+ img.onload = function () {
+ var width = canvas.width = typeof destWidth === 'number' ? destWidth : imgData.width * uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__[/* pixelRatio */ "a"];
+ var height = canvas.height = typeof destHeight === 'number' ? destHeight : imgData.height * uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__[/* pixelRatio */ "a"];
+
+ if (fileType === 'jpeg') {
+ c2d.fillStyle = '#fff';
+ c2d.fillRect(0, 0, width, height);
+ }
+
+ c2d.drawImage(img, 0, 0, img.width, img.height, 0, 0, width, height);
+ base64 = canvas.toDataURL("image/".concat(fileType), qualit);
+ invoke(callbackId, {
+ errMsg: 'canvasToTempFilePath:ok',
+ tempFilePath: base64
+ });
+ };
+
+ img.src = base64;
+ });
+ operateCanvas(canvasId, pageId, 'getImageData', {
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ callbackId: cId
+ });
+}
+function createContext() {
+ return new CanvasContext();
+}
+function drawCanvas(_ref6) {
+ var canvasId = _ref6.canvasId,
+ actions = _ref6.actions,
+ reserve = _ref6.reserve;
+ var app = getApp();
+
+ if (app.$route && app.$route.params.__id__) {
+ operateCanvas(canvasId, app.$route.params.__id__, 'actionsChanged', {
+ actions: actions,
+ reserve: reserve
+ });
+ } else {
+ UniServiceJSBridge.emit('onError', 'drawCanvas:fail');
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "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":"944f1030-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"]))
+
+/***/ }),
+
+/***/ "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 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(_ref) {
+ var reqId = _ref.reqId,
+ res = _ref.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(_ref2) {
+ var reqId = _ref2.reqId,
+ reqEnd = _ref2.reqEnd,
+ res = _ref2.res;
+ var callback = requestComponentObserverCallbacks.get(reqId);
+
+ if (callback) {
+ if (reqEnd) {
+ requestComponentObserverCallbacks.pop(reqId);
+ return;
+ }
+
+ callback(res);
+ }
+}
+
+function initSubscribe(subscribe) {
+ 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);
+
+/***/ }),
+
+/***/ "3e0b":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createAnimation", function() { return createAnimation; });
+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 defaultOption = {
+ duration: 400,
+ timingFunction: 'linear',
+ delay: 0,
+ transformOrigin: '50% 50% 0'
+};
+
+var MPAnimation =
+/*#__PURE__*/
+function () {
+ function MPAnimation(option) {
+ _classCallCheck(this, MPAnimation);
+
+ this.actions = [];
+ this.currentTransform = {};
+ this.currentStepAnimates = [];
+ this.option = Object.assign({}, defaultOption, option);
+ }
+
+ _createClass(MPAnimation, [{
+ key: "_getOption",
+ value: function _getOption(option) {
+ var _option = {
+ transition: Object.assign({}, this.option, option)
+ };
+ _option.transformOrigin = _option.transition.transformOrigin;
+ delete _option.transition.transformOrigin;
+ return _option;
+ }
+ }, {
+ key: "_pushAnimates",
+ value: function _pushAnimates(type, args) {
+ this.currentStepAnimates.push({
+ type: type,
+ args: args
+ });
+ }
+ }, {
+ key: "_converType",
+ value: function _converType(type) {
+ return type.replace(/[A-Z]/g, function (text) {
+ return "-".concat(text.toLowerCase());
+ });
+ }
+ }, {
+ key: "_getValue",
+ value: function _getValue(value) {
+ return typeof value === 'number' ? "".concat(value, "px") : value;
+ }
+ }, {
+ key: "export",
+ value: function _export() {
+ var actions = this.actions;
+ this.actions = [];
+ return {
+ actions: actions
+ };
+ }
+ }, {
+ key: "step",
+ value: function step(option) {
+ var _this = this;
+
+ this.currentStepAnimates.forEach(function (animate) {
+ if (animate.type !== 'style') {
+ _this.currentTransform[animate.type] = animate;
+ } else {
+ _this.currentTransform["".concat(animate.type, ".").concat(animate.args[0])] = animate;
+ }
+ });
+ this.actions.push({
+ animates: Object.values(this.currentTransform),
+ option: this._getOption(option)
+ });
+ this.currentStepAnimates = [];
+ return this;
+ }
+ }]);
+
+ return MPAnimation;
+}();
+
+var animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', 'translateZ'];
+var animateTypes2 = ['opacity', 'backgroundColor'];
+var animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];
+animateTypes1.concat(animateTypes2, animateTypes3).forEach(function (type) {
+ MPAnimation.prototype[type] = function () {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ if (animateTypes2.concat(animateTypes3).includes(type)) {
+ this._pushAnimates('style', [this._converType(type), animateTypes3.includes(type) ? this._getValue(args[0]) : args[0]]);
+ } else {
+ this._pushAnimates(type, args);
+ }
+
+ return this;
+ };
+});
+function createAnimation(option) {
+ return new MPAnimation(option);
+}
+
+/***/ }),
+
+/***/ "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
+ }
+};
+
+/***/ }),
+
+/***/ "4062":
+/***/ (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__, "showModal", function() { return showModal; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showToast", function() { return showToast; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideToast", function() { return hideToast; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showLoading", function() { return showLoading; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideLoading", function() { return hideLoading; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showActionSheet", function() { return showActionSheet; });
+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 _UniServiceJSBridge = UniServiceJSBridge,
+ emit = _UniServiceJSBridge.emit,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+function showModal(args, callbackId) {
+ emit('onShowModal', args, function (type) {
+ invoke(callbackId, _defineProperty({}, type, true));
+ });
+}
+function showToast(args) {
+ emit('onShowToast', args);
+ return {};
+}
+function hideToast() {
+ emit('onHideToast');
+ return {};
+}
+function showLoading(args) {
+ emit('onShowLoading', args);
+ return {};
+}
+function hideLoading() {
+ emit('onHideLoading');
+ return {};
+}
+function showActionSheet(args, callbackId) {
+ emit('onShowActionSheet', args, function (tapIndex) {
+ if (tapIndex === -1) {
+ invoke(callbackId, {
+ errMsg: 'showActionSheet:fail cancel'
+ });
+ } else {
+ invoke(callbackId, {
+ tapIndex: tapIndex
+ });
+ }
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "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']));
+
+/***/ }),
+
+/***/ "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__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__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__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__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":"944f1030-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__, "DownloadTask", function() { return DownloadTask; });
+/* 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":"944f1030-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);
+
+/***/ }),
+
+/***/ "57a7":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createInnerAudioContext", function() { return createInnerAudioContext; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("cb0f");
+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 innerAudioContextEventNames = ['onCanplay', 'onPlay', 'onPause', 'onStop', 'onEnded', 'onTimeUpdate', 'onError', 'onWaiting', 'onSeeking', 'onSeeked'];
+var innerAudioContextOffEventNames = ['offCanplay', 'offPlay', 'offPause', 'offStop', 'offEnded', 'offTimeUpdate', 'offError', 'offWaiting', 'offSeeking', 'offSeeke'];
+/**
+ * 音频上下文对象
+ */
+
+var InnerAudioContext =
+/*#__PURE__*/
+function () {
+ /**
+ * 原始音频对象
+ */
+
+ /**
+ * 是否暂停中
+ */
+
+ /**
+ * 开始时间
+ */
+
+ /**
+ * 事件监听
+ */
+
+ /**
+ * 音频地址
+ */
+
+ /**
+ * 音频上下文初始化
+ */
+ function InnerAudioContext() {
+ var _this = this;
+
+ _classCallCheck(this, InnerAudioContext);
+
+ _defineProperty(this, "_audio", void 0);
+
+ _defineProperty(this, "_stoping", void 0);
+
+ _defineProperty(this, "startTime", void 0);
+
+ _defineProperty(this, "_events", void 0);
+
+ _defineProperty(this, "_src", void 0);
+
+ var audio = this._audio = new Audio();
+ this._stoping = false; // 和audio对象同名同效果的属性
+
+ var propertys = ['src', 'autoplay', 'loop', 'duration', 'currentTime', 'paused', 'volume'];
+ propertys.forEach(function (property) {
+ Object.defineProperty(_this, property, {
+ set: property === 'src' ? function (src) {
+ audio.src = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(src);
+ _this._src = src;
+ return src;
+ } : function (val) {
+ audio[property] = val;
+ return val;
+ },
+ get: property === 'src' ? function () {
+ return _this._src;
+ } : function () {
+ return audio[property];
+ }
+ });
+ });
+ this.startTime = 0;
+ Object.defineProperty(this, 'obeyMuteSwitch', {
+ set: function set(val) {
+ return false;
+ },
+ get: function get() {
+ return false;
+ }
+ });
+ Object.defineProperty(this, 'buffered', {
+ get: function get() {
+ var buffered = audio.buffered;
+
+ if (buffered.length) {
+ return buffered.end(buffered.length - 1);
+ } else {
+ return 0;
+ }
+ }
+ }); // 初始化事件监听列表
+
+ this._events = {};
+ innerAudioContextEventNames.forEach(function (eventName) {
+ _this._events[eventName] = [];
+ });
+ audio.addEventListener('loadedmetadata', function () {
+ var startTime = Number(_this.startTime) || 0;
+
+ if (startTime > 0) {
+ audio.currentTime = startTime;
+ }
+ }); // 和audio对象同名同效果的事件
+
+ var eventNames = ['canplay', 'play', 'pause', 'ended', 'timeUpdate', 'error', 'waiting', 'seeking', 'seeked'];
+ var stopEventNames = ['pause', 'seeking', 'seeked', 'timeUpdate'];
+ eventNames.forEach(function (eventName) {
+ audio.addEventListener(eventName.toLowerCase(), function () {
+ // stop事件过滤
+ if (_this._stoping && stopEventNames.indexOf(eventName) >= 0) {
+ return;
+ }
+
+ _this._events["on".concat(eventName.substr(0, 1).toUpperCase()).concat(eventName.substr(1))].forEach(function (callback) {
+ callback();
+ });
+ }, false);
+ });
+ }
+ /**
+ * 播放
+ */
+
+
+ _createClass(InnerAudioContext, [{
+ key: "play",
+ value: function play() {
+ this._stoping = false;
+
+ this._audio.play();
+ }
+ /**
+ * 暂停
+ */
+
+ }, {
+ key: "pause",
+ value: function pause() {
+ this._audio.pause();
+ }
+ /**
+ * 停止
+ */
+
+ }, {
+ key: "stop",
+ value: function stop() {
+ this._stoping = true;
+
+ this._audio.pause();
+
+ this._audio.currentTime = 0;
+
+ this._events.onStop.forEach(function (callback) {
+ callback();
+ });
+ }
+ /**
+ * 跳转到
+ * @param {number} position
+ */
+
+ }, {
+ key: "seek",
+ value: function seek(position) {
+ this._stoping = false;
+ position = Number(position);
+
+ if (typeof position === 'number' && !isNaN(position)) {
+ this._audio.currentTime = position;
+ }
+ }
+ /**
+ * 销毁
+ */
+
+ }, {
+ key: "destroy",
+ value: function destroy() {
+ this.stop();
+ }
+ }]);
+
+ return InnerAudioContext;
+}(); // 批量设置音频上下文事件监听方法
+
+
+innerAudioContextEventNames.forEach(function (eventName) {
+ InnerAudioContext.prototype[eventName] = function (callback) {
+ if (typeof callback === 'function') {
+ this._events[eventName].push(callback);
+ }
+ };
+}); // 批量设置音频上下文事件取消监听方法
+
+innerAudioContextOffEventNames.forEach(function (eventName) {
+ InnerAudioContext.prototype[eventName] = function (callback) {
+ var handle = this._events[eventName.replace('off', 'on')];
+
+ var index = handle.indexOf(callback);
+
+ if (index >= 0) {
+ handle.splice(index, 1);
+ }
+ };
+});
+/**
+ * 创建音频上下文
+ */
+
+function createInnerAudioContext() {
+ return new InnerAudioContext();
+}
+
+/***/ }),
+
+/***/ "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":"944f1030-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