diff --git a/.eslintignore b/.eslintignore
index 52236164372..3052408a733 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -43,3 +43,4 @@ packages/uni-cli-shared/components/ad-interstitial.vue
packages/uni-cli-shared/components/ad-rewarded-video.vue
packages/uni-cli-shared/lib/uni_modules/uni_modules.js
packages/uni-cli-shared/lib/uts/uts.js
+packages/uni-mp-weibo/src
\ No newline at end of file
diff --git a/build/build.js b/build/build.js
index ce684dd540b..4d771a20a76 100644
--- a/build/build.js
+++ b/build/build.js
@@ -25,7 +25,7 @@ let name = 'index'
let filename = ''
let entry = './lib/' + process.env.UNI_PLATFORM + '/main.js'
-if (process.env.UNI_PLATFORM === 'h5' && process.env.UNI_UI === 'true') {
+if ((process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') && process.env.UNI_UI === 'true') {
entry = './lib/' + process.env.UNI_PLATFORM + '/ui.js'
}
@@ -63,7 +63,7 @@ service.run('build', {
process.exit(1)
})
-if (process.env.UNI_PLATFORM === 'h5' && process.env.UNI_WATCH === 'false') {
+if ((process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') && process.env.UNI_WATCH === 'false') {
const packagePath = path.join(__dirname, `../packages/uni-${process.env.UNI_PLATFORM}`)
const packageJsonPath = path.join(packagePath, 'package.json')
del(path.join(packagePath, '{lib,src}'))
diff --git a/build/vue.config.js b/build/vue.config.js
index 52ae304f441..bd030018c71 100644
--- a/build/vue.config.js
+++ b/build/vue.config.js
@@ -12,7 +12,7 @@ const postCssConfig = require('../postcss.config')
let outputDir = resolve('./packages/uni-' + process.env.UNI_PLATFORM + '/dist')
-if (process.env.UNI_PLATFORM === 'h5' && process.env.UNI_UI === 'true') {
+if ((process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') && process.env.UNI_UI === 'true') {
outputDir = resolve('./packages/uni-' + process.env.UNI_PLATFORM + '-ui/dist')
}
@@ -20,7 +20,7 @@ if (process.env.UNI_PLATFORM === 'app-plus' && process.env.UNI_VIEW === 'true')
outputDir = resolve('./packages/uni-' + process.env.UNI_PLATFORM + '/dist')
}
-if (process.env.UNI_PLATFORM === 'h5') { postCssConfig.plugins.push(splitMediaPlugin) }
+if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') { postCssConfig.plugins.push(splitMediaPlugin) }
module.exports = {
publicPath: '/',
@@ -30,7 +30,7 @@ module.exports = {
transpileDependencies: ['@dcloudio/uni-i18n'],
productionSourceMap: false,
configureWebpack: webpackConfig,
- parallel: process.env.UNI_PLATFORM !== 'h5' || process.env.UNI_WATCH !== 'false' || process.env.UNI_UI === 'true',
+ parallel: (process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'mp-weibo') || process.env.UNI_WATCH !== 'false' || process.env.UNI_UI === 'true',
chainWebpack: config => {
config.devtool('source-map')
@@ -48,7 +48,7 @@ module.exports = {
})
config.plugins.delete('hmr') // remove hot module reload
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
config
.plugin('webpack-build-done')
.use(webpack.ProgressPlugin, [function (percentage, message, ...args) {
diff --git a/lib/mp-weibo/extends-api.js b/lib/mp-weibo/extends-api.js
new file mode 100644
index 00000000000..b6fabe32f16
--- /dev/null
+++ b/lib/mp-weibo/extends-api.js
@@ -0,0 +1,3 @@
+import 'uni-sub-platform/service/index'
+import * as api from 'uni-platform/service/api/index'
+export default api
diff --git a/lib/mp-weibo/main.js b/lib/mp-weibo/main.js
new file mode 100644
index 00000000000..42dade0f8b7
--- /dev/null
+++ b/lib/mp-weibo/main.js
@@ -0,0 +1,66 @@
+/**
+ * 1.导出全局对象(UniViewJSBridge,UniServiceJSBridge,uni,getApp,getCurrentPages)
+ * 2.引入 Vue 插件(uniVueServicePlugin,uniVueServicePlugin)
+ * 3.引入 Vue 组件
+ */
+import Vue from 'vue'
+// import 'uni-platform/view/index.css'
+import initVue from 'uni-core/vue'
+
+class UniApp {
+ constructor () {
+ this._init()
+ }
+
+ _init () {
+ global.UniViewJSBridge = {
+ subscribe: UniViewJSBridge.subscribe,
+ publishHandler: UniViewJSBridge.publishHandler,
+ subscribeHandler: UniViewJSBridge.subscribeHandler
+ }
+
+ global.UniServiceJSBridge = {
+ subscribe: UniServiceJSBridge.subscribe,
+ publishHandler: UniServiceJSBridge.publishHandler,
+ subscribeHandler: UniServiceJSBridge.subscribeHandler
+ }
+
+ const {
+ default: uni,
+ getApp,
+ getCurrentPages
+ } = require('uni-platform/service/index')
+
+ // 与微信JS-SDK同名的方法
+ // const sameNameApis = ['setClipboardData', 'getClipboardData', 'onUserCaptureScreen', 'openBluetoothAdapter', 'startBluetoothDevicesDiscovery', 'onBluetoothDeviceFound', 'stopBluetoothDevicesDiscovery', 'onBluetoothAdapterStateChange', 'getConnectedBluetoothDevices', 'getBluetoothDevices', 'getBluetoothAdapterState', 'closeBluetoothAdapter', 'writeBLECharacteristicValue', 'readBLECharacteristicValue', 'onBLEConnectionStateChange', 'onBLECharacteristicValueChange', 'notifyBLECharacteristicValueChange', 'getBLEDeviceServices', 'getBLEDeviceCharacteristics', 'createBLEConnection', 'closeBLEConnection', 'onBeaconServiceChange', 'onBeaconUpdate', 'getBeacons', 'startBeaconDiscovery', 'stopBeaconDiscovery', 'chooseImage', 'previewImage', 'getNetworkType', 'onNetworkStatusChange', 'openLocation', 'getLocation']
+ // 默认会被iOS企业微信替换的方法
+ const sameNameApis = ['chooseImage']
+ sameNameApis.forEach(item => {
+ Object.defineProperty(uni, item, {
+ writable: false,
+ configurable: false
+ })
+ })
+
+ global.uni = uni
+
+ global.wx = global.uni
+
+ global.getApp = getApp
+ global.getCurrentPages = getCurrentPages
+
+ Vue.use(require('uni-service/plugins').default, {
+ routes: __uniRoutes
+ })
+
+ Vue.use(require('uni-view/plugins').default, {
+ routes: __uniRoutes
+ })
+
+ initVue(Vue)
+ require('uni-platform/components')
+ require('uni-components')
+ }
+}
+global.UniApp = UniApp
+global.__uniConfig && new UniApp()
diff --git a/lib/mp-weibo/ui-api.js b/lib/mp-weibo/ui-api.js
new file mode 100644
index 00000000000..3ce4bea67e3
--- /dev/null
+++ b/lib/mp-weibo/ui-api.js
@@ -0,0 +1,27 @@
+import {
+ canIUse
+} from 'uni-core/service/api/base/can-i-use'
+import {
+ upx2px
+} from 'uni-core/service/api/base/upx2px'
+import {
+ getLocation
+} from 'uni-platform/service/api/location/get-location'
+import {
+ onCompassChange,
+ stopCompass
+} from 'uni-platform/service/api/device/compass'
+import {
+ getSystemInfoSync
+} from 'uni-platform/service/api/device/get-system-info'
+
+// TODO route
+
+export default {
+ canIUse,
+ upx2px,
+ getLocation,
+ onCompassChange,
+ stopCompass,
+ getSystemInfoSync
+}
diff --git a/lib/mp-weibo/ui.js b/lib/mp-weibo/ui.js
new file mode 100644
index 00000000000..ca77b85cfa5
--- /dev/null
+++ b/lib/mp-weibo/ui.js
@@ -0,0 +1,54 @@
+import Vue from 'vue'
+
+// 使用白名单过滤(前期有一批自定义组件使用了 uni-)
+import tags from 'uni-helpers/tags'
+
+import 'uni-core/view/index.css'
+
+import uni from './ui-api.js'
+
+import {
+ processEvent
+} from 'uni-core/view/plugins/events'
+
+const oldIsReservedTag = Vue.config.isReservedTag
+
+global.uni = uni
+
+Vue.config.isReservedTag = function (tag) {
+ return tags.indexOf(tag) !== -1 || oldIsReservedTag(tag)
+}
+
+Vue.config.ignoredElements = tags
+
+const oldGetTagNamespace = Vue.config.getTagNamespace
+
+const conflictTags = ['switch', 'image', 'text', 'view']
+
+Vue.config.getTagNamespace = function (tag) {
+ if (~conflictTags.indexOf(tag)) { // svg 部分标签名称与 uni 标签冲突
+ return false
+ }
+ return oldGetTagNamespace(tag) || false
+}
+
+const findUniTarget = function ($event, $el) {
+ let target = $event.target
+ for (; target && target !== $el; target = target.parentNode) {
+ if (target.tagName && target.tagName.indexOf('UNI-') === 0) {
+ break
+ }
+ }
+ return target
+}
+
+Vue.prototype.$handleEvent = function ($event) {
+ if ($event instanceof Event) { // 未处理的 event 对象 需要对 target 校正及包装
+ // 查找 uniTarget
+ const target = findUniTarget($event, this.$el)
+ $event = processEvent.call(this, $event.type, $event, {}, target || $event.target, $event.currentTarget)
+ }
+ return $event
+}
+
+require('uni-components')
diff --git a/lib/mp-weibo/uni.automator.js b/lib/mp-weibo/uni.automator.js
new file mode 100644
index 00000000000..fa2c0fd3450
--- /dev/null
+++ b/lib/mp-weibo/uni.automator.js
@@ -0,0 +1 @@
+"use strict";var e=require("debug"),t=require("postcss-selector-parser");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=o(e),r=o(t);const s=n.default("automator:devtool");function a(e){e.walk((e=>{if("tag"===e.type){const t=e.value;e.value="page"===t?"uni-page-body":"uni-"+t}}))}const i=["Page.getElement","Page.getElements","Element.getElement","Element.getElements"];function c(e){try{return require(e)}catch(t){return require(require.resolve(e,{paths:[process.cwd()]}))}}/^win/.test(process.platform);const p=["chromium","firefox","webkit"];let l=!1;try{l=!!c("playwright")}catch(e){}const u=new Map;function f(e="chromium"){const t=e&&p.includes(e)?e:p[0];let o=u.get(t);return o||(o=function(e){if("webkit"===e)return h("webkit");if("firefox"===e)return h("firefox");return l?h("chromium"):function(){const e=c("puppeteer");let t,o;return{type:"chromium",provider:"puppeteer",async open(n,r,a){t=await e.launch(r.options);const i=t.process();i?s("%s %o",i.spawnfile,r.options):s("%o",r.options),o=await t.newPage(),o.on("console",(e=>{a.emit("App.logAdded",{type:e.type(),args:[e.text()]})})),o.on("pageerror",(e=>{a.emit("App.exceptionThrown",e)})),await o.goto(r.url||n),await o.waitFor(1e3)},close:()=>t.close(),screenshot:(e=!1)=>o.screenshot({encoding:"base64",fullPage:e})}}()}(t),u.set(t,o)),o}function h(e){const t=c("playwright");let o,n;return{type:e,provider:"playwright",async open(r,a,i){o=await t[e].launch(a.options),"firefox"===e&&(a.contextOptions.isMobile=!1),s(`browser.newContext ${JSON.stringify(a.contextOptions)}`);const c=await o.newContext(a.contextOptions);n=await c.newPage(),n.on("console",(e=>{i.emit("App.logAdded",{type:e.type(),args:[e.text()]})})),n.on("pageerror",(e=>{i.emit("App.exceptionThrown",e)})),await n.goto(a.url||r),await n.waitForTimeout(1e3)},close:()=>o.close(),screenshot:(e=!1)=>n.screenshot({fullPage:e}).then((e=>e.toString("base64")))}}let w;const g={"Tool.close":{reflect:async()=>{await w.close()}},"App.exit":{reflect:async()=>{}},"App.enableLog":{reflect:()=>Promise.resolve()},"App.captureScreenshot":{reflect:async(e,t)=>{const o=await w.screenshot(!!t.fullPage);return s(`App.captureScreenshot ${o.length}`),{data:o}}}};!function(e){i.forEach((t=>{e[t]=function(e){return{reflect:async(t,o)=>t(e,o,!1),params:e=>(e.selector&&(e.selector=r.default(a).processSync(e.selector)),e)}}(t)}))}(g);const d={devtools:{name:"browser",paths:[],validate:async function(e){return e.options=e.options||{},e.executablePath&&!e.options.executablePath&&(e.options.executablePath=e.executablePath),e.contextOptions={viewport:Object.assign({width:375,height:667},e.options.defaultViewport||{}),hasTouch:!0,isMobile:!0,deviceScaleFactor:2},e.options.defaultViewport=Object.assign({width:375,height:667,deviceScaleFactor:2,hasTouch:!0,isMobile:!0},e.options.defaultViewport||{}),e.teardown||(e.teardown=!1===e.options.headless?"disconnect":"close"),e},create:async function(e,t,o){w=f(process.env.BROWSER),s("createDevtools "+(w.provider+" "+w.type+" "+JSON.stringify(t))),await w.open(e,t,o)}},shouldCompile:(e,t)=>!t.url,adapter:g};module.exports=d;
diff --git a/lib/mp-weibo/uni.config.js b/lib/mp-weibo/uni.config.js
new file mode 100644
index 00000000000..54fc22b4b0a
--- /dev/null
+++ b/lib/mp-weibo/uni.config.js
@@ -0,0 +1,65 @@
+const fs = require('fs')
+const path = require('path')
+
+function getTemplatePath (template) {
+ if (template) {
+ const userTemplate = path.resolve(process.env.UNI_INPUT_DIR, template)
+ if (fs.existsSync(userTemplate)) { return userTemplate }
+ }
+ return path.resolve(process.env.UNI_CLI_CONTEXT, 'public/index.html')
+}
+
+function transform (content, platformOptions) {
+ if (platformOptions.darkmode === true) {
+ // darkmode
+ try {
+ content += fs.readFileSync(require.resolve('@dcloudio/uni-h5/dist/index.dark.css'))
+ } catch (error) { }
+ }
+ if (process.env.NODE_ENV === 'production') {
+ return content + // shadow
+ 'body::after{position:fixed;content:\'\';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}'
+ }
+ return content
+}
+
+function getIndexCssPath (assetsDir, template, hashKey) {
+ const CopyWebpackPluginVersion = Number(require('copy-webpack-plugin/package.json').version.split('.')[0])
+ const VUE_APP_INDEX_CSS_HASH = process.env[hashKey]
+ if (VUE_APP_INDEX_CSS_HASH) {
+ try {
+ const templateContent = fs.readFileSync(getTemplatePath(template))
+ if (new RegExp('\\b' + hashKey + '\\b').test(templateContent)) {
+ return path.join(assetsDir, `[name].${VUE_APP_INDEX_CSS_HASH}${CopyWebpackPluginVersion > 7 ? '' : '.'}[ext]`)
+ }
+ } catch (e) { }
+ }
+ return assetsDir
+}
+
+module.exports = {
+ options: {
+ cssVars: {
+ '--status-bar-height': '0px'
+ },
+ filterTag: 'wxs',
+ vue: '@dcloudio/vue-cli-plugin-uni/packages/h5-vue'
+ },
+ copyWebpackOptions (platformOptions, vueOptions) {
+ const copyOptions = [
+ {
+ from: require.resolve('@dcloudio/uni-mp-weibo/dist/index.css'),
+ to: getIndexCssPath(vueOptions.assetsDir, platformOptions.template, 'VUE_APP_INDEX_CSS_HASH'),
+ transform (content) {
+ return transform(content, platformOptions)
+ }
+ },
+ 'hybrid/html'
+ ]
+ global.uniModules.forEach(module => {
+ copyOptions.push('uni_modules/' + module + '/hybrid/html')
+ })
+
+ return copyOptions
+ }
+}
diff --git a/package.json b/package.json
index ef28e89c5ae..5256b87bbc8 100644
--- a/package.json
+++ b/package.json
@@ -34,7 +34,10 @@
"release": "npm run lint:cli && lerna publish --force-publish=*",
"release:alpha": "npm run lint:cli && lerna publish --force-publish=* --npm-tag=alpha",
"release:next": "npm run lint:cli && lerna publish --force-publish=* --npm-tag=next",
- "release:v3": "npm run lint:cli && lerna publish --no-git-tag-version --force-publish=* --npm-tag=v3"
+ "release:v3": "npm run lint:cli && lerna publish --no-git-tag-version --force-publish=* --npm-tag=v3",
+ "build:mp-weibo": "npm run lint && cross-env NODE_ENV=development UNI_WATCH=false UNI_PLATFORM=mp-weibo node build/build.js",
+ "dev:mp-weibo": "npm run lint && cross-env NODE_ENV=production UNI_WATCH=true UNI_PLATFORM=mp-weibo node build/build.js"
+
},
"dependencies": {
"base64-arraybuffer": "^0.2.0",
diff --git a/packages/uni-cli-shared/lib/manifest.js b/packages/uni-cli-shared/lib/manifest.js
index 156aa101c65..7c5c74a8400 100644
--- a/packages/uni-cli-shared/lib/manifest.js
+++ b/packages/uni-cli-shared/lib/manifest.js
@@ -98,6 +98,15 @@ function getH5Options (manifestJson) {
configureH5(h5)
})
+ // 处理微博小程序
+ if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ h5.publicPath = './'
+ h5.router = {
+ base: './',
+ mode: 'hash'
+ }
+ }
+
return h5
}
diff --git a/packages/uni-mp-weibo/.gitignore b/packages/uni-mp-weibo/.gitignore
new file mode 100644
index 00000000000..7f1c89372fb
--- /dev/null
+++ b/packages/uni-mp-weibo/.gitignore
@@ -0,0 +1,2 @@
+/lib/
+/src/
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/.npmignore b/packages/uni-mp-weibo/.npmignore
new file mode 100644
index 00000000000..14ef7d49b8f
--- /dev/null
+++ b/packages/uni-mp-weibo/.npmignore
@@ -0,0 +1,2 @@
+!/lib/
+!/src/
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/LICENSE b/packages/uni-mp-weibo/LICENSE
new file mode 100755
index 00000000000..7a4a3ea2424
--- /dev/null
+++ b/packages/uni-mp-weibo/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/dist/demo.html b/packages/uni-mp-weibo/dist/demo.html
new file mode 100644
index 00000000000..62b34ba10f7
--- /dev/null
+++ b/packages/uni-mp-weibo/dist/demo.html
@@ -0,0 +1,10 @@
+
+
index demo
+
+
+
+
+
+
diff --git a/packages/uni-mp-weibo/dist/index.css b/packages/uni-mp-weibo/dist/index.css
new file mode 100644
index 00000000000..f243c643e36
--- /dev/null
+++ b/packages/uni-mp-weibo/dist/index.css
@@ -0,0 +1,4075 @@
+
+uni-tabbar {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ z-index: 998;
+}
+uni-tabbar .uni-tabbar {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ z-index: 998;
+ box-sizing: border-box;
+}
+uni-tabbar.uni-tabbar-top,
+uni-tabbar.uni-tabbar-bottom,
+uni-tabbar.uni-tabbar-top .uni-tabbar,
+uni-tabbar.uni-tabbar-bottom .uni-tabbar {
+ position: fixed;
+ left: var(--window-left);
+ right: var(--window-right);
+}
+.uni-app--showlayout+uni-tabbar.uni-tabbar-top,
+.uni-app--showlayout+uni-tabbar.uni-tabbar-bottom,
+.uni-app--showlayout+uni-tabbar.uni-tabbar-top .uni-tabbar,
+.uni-app--showlayout+uni-tabbar.uni-tabbar-bottom .uni-tabbar {
+ left: var(--window-margin);
+ right: var(--window-margin);
+}
+uni-tabbar.uni-tabbar-bottom .uni-tabbar {
+ bottom: 0;
+ 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%;
+ 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 {
+ 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;
+ -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 {
+ position: relative;
+ 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-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ cursor: pointer;
+}
+uni-tabbar .uni-tabbar__icon {
+ position: relative;
+ display: inline-block;
+ margin-top: 5px;
+}
+uni-tabbar .uni-tabbar__icon.uni-tabbar__icon__diff {
+ margin-top: 0px;
+ width: 34px;
+ height: 34px;
+}
+uni-tabbar .uni-tabbar__icon img {
+ width: 100%;
+ height: 100%;
+}
+uni-tabbar .uni-tabbar__iconfont {
+ font-family: 'UniTabbarIconFont';
+}
+uni-tabbar .uni-tabbar__label {
+ position: relative;
+ text-align: center;
+ font-size: 10px;
+}
+uni-tabbar .uni-tabbar-border {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 1px;
+ -webkit-transform: scaleY(0.5);
+ transform: scaleY(0.5);
+}
+uni-tabbar .uni-tabbar__reddot {
+ position: absolute;
+ top: 2px;
+ right: 0;
+ width: 12px;
+ height: 12px;
+ border-radius: 50%;
+ background-color: #f43530;
+ color: #ffffff;
+ -webkit-transform: translate(40%, 0%);
+ transform: translate(40%, 0%);
+}
+uni-tabbar .uni-tabbar__badge {
+ width: auto;
+ height: 16px;
+ line-height: 16px;
+ border-radius: 16px;
+ min-width: 16px;
+ padding: 0 2px;
+ font-size: 12px;
+ text-align: center;
+ white-space: nowrap;
+}
+uni-tabbar .uni-tabbar__mid {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ position: absolute;
+ bottom: 0;
+ background-size: 100% 100%;
+}
+
+
+uni-content {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-flex: 1;
+ -webkit-flex: 1 0 auto;
+ flex: 1 0 auto;
+ height: 100%;
+}
+uni-main {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+ width: 100%;
+}
+uni-top-window+uni-content {
+ height: calc(100vh - var(--top-window-height));
+}
+uni-left-window {
+ position: relative;
+ width: var(--window-left);
+ -webkit-box-ordinal-group: 0;
+ -webkit-order: -1;
+ order: -1;
+ overflow-x: hidden;
+}
+uni-right-window {
+ position: relative;
+ width: var(--window-right);
+ overflow-x: hidden;
+}
+uni-left-window[data-show],
+uni-right-window[data-show] {
+ position: absolute;
+}
+uni-right-window[data-show] {
+ right: 0;
+}
+uni-content .uni-mask,
+.uni-left-window,
+.uni-right-window {
+ z-index: 997;
+}
+.uni-mask+.uni-left-window,
+.uni-mask+.uni-right-window {
+ position: fixed;
+}
+.uni-top-window {
+ position: fixed;
+ left: var(--window-margin);
+ right: var(--window-margin);
+ top: 0;
+ z-index: 998;
+ overflow: hidden;
+}
+
+
+uni-toast {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 999;
+ display: block;
+ box-sizing: border-box;
+ pointer-events: none;
+ font-size: 16px;
+}
+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: #ffffff;
+ background-color: rgba(17, 17, 17, 0.7);
+ padding: 10px 20px;
+ border-radius: 5px;
+ font-size: 13px;
+ text-align: center;
+ max-width: 100%;
+ word-break: break-word;
+ 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, 0.7);
+ text-align: center;
+ border-radius: 5px;
+ color: #ffffff;
+}
+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: #ffffff;
+ font-size: 55px;
+}
+uni-toast .uni-icon_toast.uni-icon-error:before {
+ color: #ffffff;
+ font-size: 50px;
+}
+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: #ffffff;
+ 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 0.3em;
+}
+uni-modal .uni-modal__title {
+ font-weight: 400;
+ font-size: 18px;
+ word-wrap: break-word;
+ word-break: break-all;
+ white-space: pre-wrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+}
+uni-modal .uni-modal__bd {
+ padding: 1.3em 1.6em 1.3em;
+ min-height: 40px;
+ font-size: 15px;
+ line-height: 1.4;
+ word-wrap: break-word;
+ word-break: break-all;
+ white-space: pre-wrap;
+ color: #999999;
+ max-height: 400px;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+uni-modal .uni-modal__textarea {
+ resize: none;
+ border: 0;
+ margin: 0;
+ width: 90%;
+ padding: 10px;
+ font-size: 20px;
+ outline: none;
+ border: none;
+ background-color: #eee;
+ text-decoration: inherit;
+}
+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(0.5);
+ transform: scaleY(0.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;
+ cursor: pointer;
+}
+uni-modal .uni-modal__btn:active {
+ background-color: #eeeeee;
+}
+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(0.5);
+ transform: scaleX(0.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-actionsheet {
+ display: block;
+ box-sizing: border-box;
+}
+uni-actionsheet .uni-actionsheet {
+ position: fixed;
+ left: 6px;
+ right: 6px;
+ bottom: 6px;
+ -webkit-transform: translate(0, 100%);
+ transform: translate(0, 100%);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 999;
+ visibility: hidden;
+ -webkit-transition: visibility 0.3s, -webkit-transform 0.3s;
+ transition: visibility 0.3s, -webkit-transform 0.3s;
+ transition: transform 0.3s, visibility 0.3s;
+ transition: transform 0.3s, visibility 0.3s, -webkit-transform 0.3s;
+}
+uni-actionsheet .uni-actionsheet.uni-actionsheet_toggle {
+ visibility: visible;
+ -webkit-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+uni-actionsheet .uni-actionsheet * {
+ box-sizing: border-box;
+}
+uni-actionsheet .uni-actionsheet__menu,
+uni-actionsheet .uni-actionsheet__action {
+ border-radius: 5px;
+ background-color: #fcfcfd;
+}
+uni-actionsheet .uni-actionsheet__action {
+ margin-top: 6px;
+}
+uni-actionsheet .uni-actionsheet__cell,
+uni-actionsheet .uni-actionsheet__title {
+ position: relative;
+ padding: 10px 6px;
+ text-align: center;
+ font-size: 18px;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ cursor: pointer;
+}
+uni-actionsheet .uni-actionsheet__title {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: 1;
+ color: var(--UI-FG);
+ background-color: #fff;
+ border-radius: 5px 5px 0 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+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(0.5);
+ transform: scaleY(0.5);
+}
+uni-actionsheet .uni-actionsheet__cell:active {
+ background-color: #ececec;
+}
+uni-actionsheet .uni-actionsheet__cell:first-child:before {
+ display: none;
+}
+@media screen and (min-width: 500px) and (min-height: 500px) {
+.uni-mask.uni-actionsheet__mask {
+ background: none;
+}
+uni-actionsheet .uni-actionsheet {
+ width: 300px;
+ left: 50%;
+ right: auto;
+ top: 50%;
+ bottom: auto;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ opacity: 0;
+ -webkit-transition: opacity 0.3s, visibility 0.3s;
+ transition: opacity 0.3s, visibility 0.3s;
+}
+uni-actionsheet .uni-actionsheet.uni-actionsheet_toggle {
+ opacity: 1;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+}
+uni-actionsheet .uni-actionsheet__menu {
+ box-shadow: 0px 0 20px 5px rgba(0, 0, 0, 0.3);
+}
+uni-actionsheet .uni-actionsheet__action {
+ display: none;
+}
+}
+
+
+.image-view-area,
+.image-view-view {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+.image-view-img {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ max-height: 100%;
+ max-width: 100%;
+}
+
+
+.uni-system-preview-image {
+ display: block;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 999;
+ background: rgba(0, 0, 0, 0.8);
+}
+.uni-system-preview-image-swiper {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+}
+.uni-system-preview-image .nav-btn-back {
+ position: absolute;
+ box-sizing: border-box;
+ top: 0;
+ right: 0;
+ width: 44px;
+ height: 44px;
+ padding: 6px;
+ line-height: 32px;
+ font-size: 26px;
+ color: white;
+ text-align: center;
+ cursor: pointer;
+}
+
+* {
+ margin: 0;
+ -webkit-tap-highlight-color: transparent;
+}
+@font-face {
+ font-weight: normal;
+ 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: normal;
+ font-style: normal;
+ font-family: "unibtn";
+ src: url('data:application/octet-stream;base64,AAEAAAAKAIAAAwAgT1MvMvUTHSwAAACsAAAAYGNtYXD/1LSBAAABDAAAAVpnbHlmz06L9gAAAmgAAAQ0aGVhZA501cwAAAacAAAANmhoZWEH7wQ6AAAG1AAAACRobXR4JCoHAwAABvgAAAAkbG9jYQQeBSgAAAccAAAAFG1heHAADQBLAAAHMAAAACBuYW1l5hEPkgAAB1AAAAHacG9zdAQfBCEAAAksAAAAPAAEBAUBkAAFAAACmQLMAAAAjwKZAswAAAHrADMBCQAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAEDmAP/9A8D/wABAA8AAQAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAAAAABUAAMAAQAAABwABAA4AAAACgAIAAIAAuYC5gbmUf/9//8AAOYA5gTmUP/9//8aARoAGbcAAwABAAAAAAAAAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAWAAeQLBAuoAFQAAASY0NzYyFwEeARUUBgcBBiInJjQ3AQFgCAgHFgcBNQQEBAT+ywcWBwgIASICxQcXBwgI/twECwUGCwT+3AgIBxcIARMAAAABAVgAeQK5AuoAFQAACQIWFAcGIicBLgE1NDY3ATYyFxYUArn+3gEiCAgIFQj+zAUDAwUBNAgVCAgCxf7t/u0IFwcICAEkBAsGBQsEASQICAcXAAACANAAaQO6Aw0AGwA0AAAlFAYjISImNRE0NjsBNSMiBhURFBYzITI2PQEjEycHFwcOAw8BMzU+ATc+AT8CBxc3JwNSBwT9wgQGBgSwwBEYGBECXxEXLmikIW53SoJjPQUBLwU2LS11QAZqbiGkAaUEBwcEAagFBjEZEf40ERkZEqUBKKwjcwEGPF9+RwgHPG4rKzIEAQF0IqwCAAACAJcAXgNzAxsALwBIAAABLgEvAi4BIyIGDwIOAQcGFh8BBwYWFx4BMzI2PwEXHgEzMjY3PgEnNDUnNz4BBTYmLwE3PgE/ARceAR8BBw4BHwEnJgYPAQNzAgoG42cDCgcGCgNk4wYKAgEDBKUlAQUFAwYEAgUDyswCBQMGCgMCAQEoowUD/foBAwSNwgUJAlZYAgkFw4wEAwEirgULBK4CFAYIAR/NBgYGBs4jAQgGBgwEn+IGDAQCAgIBbGoBAQYGAwkDAQHeoQUMsAYKBIgdAQYFsbAFBgEbiQQLBcFaAwECXAACAL8AdQNQAxEAIAA8AAABIgYdARQGIyEiJj0BNCYjIgYdAR4BMyEyNj0BNCYnLgE3AS4BIyIGBwEGFBceATMyNjcBNjIXARYyNz4BAvcKDgsH/nUICw4KCQ8BJhsBjBsnBAMDCVT+5goYDQ0YCf7mBgcDCQUECAQBGQUQBQEaBxMHBgEBsA4J4gcLCwfiCQ4OCeIbJycb4gQJAwQDNAEaCgkJCf7lBxMGBAMDAwEZBQX+5wYHBhMAAwDcAXYDMQH6AAsAFwAjAAABMjY1NCYjIgYVFBYhMjY1NCYjIgYVFBYhMjY1NCYjIgYVFBYBHhwnJxwbJycBAxwnJxwbJycBBBsnJxscJycBdicbGycnGxsnJxsbJycbGycnGxsnJxsbJwAAAQDsAJ0DFALOACUAAAE3NjQnJiIPAScmIgcGFB8BBwYUFx4BMzI2PwEXHgEzMjY3NjQnAijsCQkIGAjs6ggYCAkJ6uwJCQQKBgULBOzsBAsFBgoECQkBu+oJFwkICOvrCAgIGAjr6wgYCAQEBATr7QUEBQQIFwkAAQBdAIwD0AL4AB4AAAEWFRYHAQYHBgcGIyIvASYvAQEmJzQ3PgEXCQE2MzYDwwwBDP3/BAUCAgcGCAcEAwMD/toJAQoMHQwBDAHoCw8PAu4LDRAL/dsEAgECAQECAgMCASELDg8NCQIL/vkCCAoBAAEAAAABAADLWb2BXw889QALBAAAAAAA1ZTIqwAAAADVlMirAF0AXgPQAxsAAAAIAAIAAAAAAAAAAQAAA8D/wAAABCoAXQBGA9AAAQAAAAAAAAAAAAAAAAAAAAkEAAAABAABYAQAAVgEAADQBAAAlwQAAL8EAADcBAAA7AQqAF0AAAAAACoAVACiARQBcAGmAeICGgABAAAACQBJAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADgAAAAEAAAAAAAIABwAOAAEAAAAAAAMADgAVAAEAAAAAAAQADgAjAAEAAAAAAAUACwAxAAEAAAAAAAYADgA8AAEAAAAAAAoAGgBKAAMAAQQJAAEAHABkAAMAAQQJAAIADgCAAAMAAQQJAAMAHACOAAMAAQQJAAQAHACqAAMAAQQJAAUAFgDGAAMAAQQJAAYAHADcAAMAAQQJAAoANAD4c3RyZWFtaWNvbmZvbnRSZWd1bGFyc3RyZWFtaWNvbmZvbnRzdHJlYW1pY29uZm9udFZlcnNpb24gMS4wc3RyZWFtaWNvbmZvbnRGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBzAHQAcgBlAGEAbQBpAGMAbwBuAGYAbwBuAHQAUgBlAGcAdQBsAGEAcgBzAHQAcgBlAGEAbQBpAGMAbwBuAGYAbwBuAHQAcwB0AHIAZQBhAG0AaQBjAG8AbgBmAG8AbgB0AFYAZQByAHMAaQBvAG4AIAAxAC4AMABzAHQAcgBlAGEAbQBpAGMAbwBuAGYAbwBuAHQARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAJAAABAgEDAQQBBQEGAQcBCAEJAAAAAAAAAAA=') format('truetype')
+}
+html,
+body {
+ -webkit-user-select: none;
+ user-select: none;
+ width: 100%;
+ height: 100%;
+}
+
+/* html {
+ height: 100%
+} */
+body {
+ overflow-x: hidden;
+}
+body,
+uni-page-body {
+ background-color: var(--UI-BG-0);
+ color: var(--UI-FG-0);
+}
+[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-icon-error:before {
+ content: "\EA0B";
+}
+.uni-loading,
+uni-button[loading]:before {
+ background: transparent 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, end) infinite;
+ animation: uni-loading 1s steps(12, end) infinite;
+ background-size: 100%;
+}
+@-webkit-keyframes uni-loading {
+0% {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+}
+100% {
+ -webkit-transform: rotate3d(0, 0, 1, 360deg);
+ transform: rotate3d(0, 0, 1, 360deg);
+}
+}
+@keyframes uni-loading {
+0% {
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
+ transform: rotate3d(0, 0, 1, 0deg);
+}
+100% {
+ -webkit-transform: rotate3d(0, 0, 1, 360deg);
+ transform: rotate3d(0, 0, 1, 360deg);
+}
+}
+
+/*
+html,
+body,
+uni-app,
+uni-page {
+ height: 100%;
+} */
+.uni-mask {
+ position: fixed;
+ z-index: 999;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.5);
+}
+.uni-fade-enter-active,
+.uni-fade-leave-active {
+ -webkit-transition-duration: 0.25s;
+ transition-duration: 0.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-view,
+[nvue] uni-label,
+[nvue] uni-swiper-item,
+[nvue] uni-scroll-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] uni-button{
+ margin: 0;
+}
+[nvue-dir-row] uni-view,
+[nvue-dir-row] uni-label,
+[nvue-dir-row] uni-swiper-item {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+}
+[nvue-dir-column] uni-view,
+[nvue-dir-column] uni-label,
+[nvue-dir-column] uni-swiper-item {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: column;
+ flex-direction: column;
+}
+[nvue-dir-row-reverse] uni-view,
+[nvue-dir-row-reverse] uni-label,
+[nvue-dir-row-reverse] uni-swiper-item {
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+}
+[nvue-dir-column-reverse] uni-view,
+[nvue-dir-column-reverse] uni-label,
+[nvue-dir-column-reverse] uni-swiper-item {
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: reverse;
+ -webkit-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+}
+[nvue] uni-view,
+[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 {
+ position: relative;
+ border: 0px solid #000000;
+ box-sizing: border-box;
+}
+[nvue] uni-swiper-item {
+ position: absolute;
+}
+html {
+ /* --UI-BG-0: #ededed; */
+ --UI-BG: #fff;
+ --UI-BG-1: #f7f7f7;
+ --UI-BG-2: #fff;
+ --UI-BG-3: #f7f7f7;
+ --UI-BG-4: #4c4c4c;
+ --UI-BG-5: #fff;
+ --UI-FG: #000;
+ --UI-FG-0: rgba(0, 0, 0, 0.9);
+ --UI-FG-HALF: rgba(0, 0, 0, 0.9);
+ --UI-FG-1: rgba(0, 0, 0, 0.5);
+ --UI-FG-2: rgba(0, 0, 0, 0.3);
+ --UI-FG-3: rgba(0, 0, 0, 0.1);
+}
+
+
+uni-app {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+}
+
+
+uni-page-head {
+ display: block;
+ box-sizing: border-box;
+}
+uni-page-head .uni-page-head {
+ position: fixed;
+ left: var(--window-left);
+ right: var(--window-right);
+ height: 44px;
+ height: calc(44px + constant(safe-area-inset-top));
+ height: calc(44px + env(safe-area-inset-top));
+ padding: 7px 3px;
+ padding-top: calc(7px + constant(safe-area-inset-top));
+ padding-top: calc(7px + env(safe-area-inset-top));
+ 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-titlePenetrate,
+uni-page-head .uni-page-head-titlePenetrate .uni-page-head-bd,
+uni-page-head .uni-page-head-titlePenetrate .uni-page-head-bd * {
+ pointer-events: none;
+}
+uni-page-head .uni-page-head-titlePenetrate * {
+ pointer-events: auto;
+}
+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;
+ height: calc(44px + constant(safe-area-inset-top));
+ height: calc(44px + env(safe-area-inset-top));
+}
+uni-page-head .uni-placeholder-titlePenetrate {
+ pointer-events: none;
+}
+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;
+}
+.uni-page-head-btn {
+ position: relative;
+ width: auto;
+ margin: 0 2px;
+ word-break: keep-all;
+ white-space: pre;
+ cursor: pointer;
+}
+.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, 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: white;
+ width: 18px;
+ height: 18px;
+ line-height: 18px;
+ border-radius: 18px;
+ overflow: hidden;
+ -webkit-transform: scale(0.5) translate(40%, -40%);
+ transform: scale(0.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(0.7) translate(40%, -40%);
+ transform: scale(0.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(0.8);
+ transform: rotate(-90deg) scale(0.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: bold;
+ 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-head .uni-page-head__title .uni-page-head__title_image {
+ width: auto;
+ height: 26px;
+ vertical-align: middle;
+}
+uni-page-head .uni-page-head-shadow {
+ overflow: visible;
+}
+uni-page-head .uni-page-head-shadow::after {
+ content: "";
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 100%;
+ height: 5px;
+ background-size: 100% 100%;
+}
+uni-page-head .uni-page-head-shadow-grey::after {
+ background-image: url("https://cdn.dcloud.net.cn/img/shadow-grey.png");
+}
+uni-page-head .uni-page-head-shadow-blue::after {
+ background-image: url("https://cdn.dcloud.net.cn/img/shadow-blue.png");
+}
+uni-page-head .uni-page-head-shadow-green::after {
+ background-image: url("https://cdn.dcloud.net.cn/img/shadow-green.png");
+}
+uni-page-head .uni-page-head-shadow-orange::after {
+ background-image: url("https://cdn.dcloud.net.cn/img/shadow-orange.png");
+}
+uni-page-head .uni-page-head-shadow-red::after {
+ background-image: url("https://cdn.dcloud.net.cn/img/shadow-red.png");
+}
+uni-page-head .uni-page-head-shadow-yellow::after {
+ background-image: url("https://cdn.dcloud.net.cn/img/shadow-yellow.png");
+}
+uni-page-head .uni-icon-clear {
+ -webkit-align-self: center;
+ align-self: center;
+ padding-right: 5px;
+}
+
+
+uni-page-wrapper {
+ display: block;
+ height: 100%;
+ position: relative;
+}
+uni-page-head[uni-page-head-type="default"] ~ uni-page-wrapper {
+ height: calc(100% - 44px);
+ height: calc(100% - 44px - constant(safe-area-inset-top));
+ height: calc(100% - 44px - env(safe-area-inset-top));
+}
+uni-page-body {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+}
+
+
+uni-page-refresh {
+ position: absolute;
+ top: 0;
+ width: 100%;
+ height: 40px;
+ display: block;
+ box-sizing: border-box;
+}
+uni-page-refresh .uni-page-refresh {
+ position: absolute;
+ top: -45px;
+ left: 50%;
+ -webkit-transform: translate3d(-50%, 0, 0);
+ transform: translate3d(-50%, 0, 0);
+ 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;
+ background: #fff;
+ border-radius: 50%;
+ 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-inner {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ line-height: 0;
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+}
+uni-page-refresh.uni-page-refresh--pulling .uni-page-refresh,
+ uni-page-refresh.uni-page-refresh--aborting .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 {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+}
+uni-page-refresh.uni-page-refresh--pulling .uni-page-refresh__spinner,
+ uni-page-refresh.uni-page-refresh--aborting .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 {
+100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+}
+}
+@keyframes uni-page-refresh-rotate {
+100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+}
+}
+@-webkit-keyframes uni-page-refresh-dash {
+0% {
+ stroke-dasharray: 1, 200;
+ stroke-dashoffset: 0;
+}
+50% {
+ stroke-dasharray: 89, 200;
+ stroke-dashoffset: -35px;
+}
+100% {
+ 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;
+}
+100% {
+ 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 10px;
+ 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;
+}
+
+
+@font-face {
+ font-weight: normal;
+ font-style: normal;
+ font-family: "unimapbtn";
+ src: url("data:application/octet-stream;base64,AAEAAAAKAIAAAwAgT1MvMkLLXiQAAACsAAAAYGNtYXAADe3YAAABDAAAAUJnbHlmzCeOEgAAAlAAAAD4aGVhZBcH/NkAAANIAAAANmhoZWEHvgOiAAADgAAAACRobXR4BAAAAAAAA6QAAAAGbG9jYQB8AAAAAAOsAAAABm1heHABDwBlAAADtAAAACBuYW1laz5x0AAAA9QAAALZcG9zdAEQAAIAAAawAAAAJwAEBAABkAAFAAgCiQLMAAAAjwKJAswAAAHrADIBCAAAAgAFAwAAAAAAAAAAAAAQAAAAAAAAAAAAAABQZkVkAEDsMuwyA4D/gABcA4AAgAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAOwy//8AAOwy//8TzwABAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAD/oAPgA2AACAAwAFgAAAEeATI2NCYiBgUjLgEnNTQmIgYdAQ4BByMiBhQWOwEeARcVFBYyNj0BPgE3MzI2NCYBNTQmIgYdAS4BJzMyNjQmKwE+ATcVFBYyNj0BHgEXIyIGFBY7AQ4BAbABLUQtLUQtAg8iD9OcEhwSnNMPIg4SEg4iD9OcEhwSnNMPIg4SEv5SEhwSga8OPg4SEg4+Dq+BEhwSga8OPg4SEg4+Dq8BgCItLUQtLQKc0w8iDhISDiIP05wSHBKc0w8iDhISDiIP05wSHBL+gj4OEhIOPg6vgRIcEoGvDj4OEhIOPg6vgRIcEoGvAAEAAAABAABmV+0zXw889QALBAAAAAAA2gRcbgAAAADaBFxuAAD/oAPgA2AAAAAIAAIAAAAAAAAAAQAAA4D/gABcBAAAAAAgA+AAAQAAAAAAAAAAAAAAAAAAAAEEAAAAAAAAAAAAAAAAfAAAAAEAAAACAFkAAwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAAASAN4AAQAAAAAAAAAVAAAAAQAAAAAAAQARABUAAQAAAAAAAgAHACYAAQAAAAAAAwARAC0AAQAAAAAABAARAD4AAQAAAAAABQALAE8AAQAAAAAABgARAFoAAQAAAAAACgArAGsAAQAAAAAACwATAJYAAwABBAkAAAAqAKkAAwABBAkAAQAiANMAAwABBAkAAgAOAPUAAwABBAkAAwAiAQMAAwABBAkABAAiASUAAwABBAkABQAWAUcAAwABBAkABgAiAV0AAwABBAkACgBWAX8AAwABBAkACwAmAdUKQ3JlYXRlZCBieSBpY29uZm9udAp1bmljaG9vc2Vsb2NhdGlvblJlZ3VsYXJ1bmljaG9vc2Vsb2NhdGlvbnVuaWNob29zZWxvY2F0aW9uVmVyc2lvbiAxLjB1bmljaG9vc2Vsb2NhdGlvbkdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAAoAQwByAGUAYQB0AGUAZAAgAGIAeQAgAGkAYwBvAG4AZgBvAG4AdAAKAHUAbgBpAGMAaABvAG8AcwBlAGwAbwBjAGEAdABpAG8AbgBSAGUAZwB1AGwAYQByAHUAbgBpAGMAaABvAG8AcwBlAGwAbwBjAGEAdABpAG8AbgB1AG4AaQBjAGgAbwBvAHMAZQBsAG8AYwBhAHQAaQBvAG4AVgBlAHIAcwBpAG8AbgAgADEALgAwAHUAbgBpAGMAaABvAG8AcwBlAGwAbwBjAGEAdABpAG8AbgBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAABAgAA")
+ format("truetype");
+}
+.uni-system-choose-location {
+ display: block;
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background: #f8f8f8;
+}
+.uni-system-choose-location .map {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 300px;
+}
+.uni-system-choose-location .map-location {
+ position: absolute;
+ left: 50%;
+ bottom: 50%;
+ width: 32px;
+ height: 52px;
+ margin-left: -16px;
+ cursor: pointer;
+ background-size: 100%;
+}
+.uni-system-choose-location .map-move {
+ position: absolute;
+ bottom: 50px;
+ right: 10px;
+ width: 40px;
+ height: 40px;
+ box-sizing: border-box;
+ line-height: 40px;
+ background-color: white;
+ border-radius: 50%;
+ pointer-events: auto;
+ cursor: pointer;
+ box-shadow: 0px 0 5px 1px rgba(0, 0, 0, 0.3);
+}
+.uni-system-choose-location .map-move > i {
+ display: block;
+ width: 100%;
+ height: 100%;
+ font: normal normal normal 14px/1 "unimapbtn";
+ line-height: inherit;
+ text-align: center;
+ font-size: 24px;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+}
+.uni-system-choose-location .nav {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 44px;
+ background-color: transparent;
+ background-image: -webkit-linear-gradient(
+ top,
+ rgba(0, 0, 0, 0.3),
+ rgba(0, 0, 0, 0)
+ );
+ background-image: linear-gradient(
+ to bottom,
+ rgba(0, 0, 0, 0.3),
+ rgba(0, 0, 0, 0)
+ );
+}
+.uni-system-choose-location .nav-btn {
+ position: absolute;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ width: 60px;
+ height: 44px;
+ padding: 6px;
+ line-height: 32px;
+ font-size: 26px;
+ color: white;
+ text-align: center;
+ cursor: pointer;
+}
+.uni-system-choose-location .nav-btn.confirm {
+ left: auto;
+ right: 0;
+}
+.uni-system-choose-location .nav-btn.disable {
+ opacity: 0.4;
+}
+.uni-system-choose-location .nav-btn > .uni-btn-icon {
+ display: block;
+ width: 100%;
+ height: 100%;
+ line-height: inherit;
+ border-radius: 2px;
+}
+.uni-system-choose-location .nav-btn.confirm > .uni-btn-icon {
+ background-color: #007aff;
+}
+.uni-system-choose-location .menu {
+ position: absolute;
+ top: 300px;
+ left: 0;
+ width: 100%;
+ bottom: 0;
+ background-color: white;
+}
+.uni-system-choose-location .search {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ height: 50px;
+ padding: 8px;
+ line-height: 34px;
+ box-sizing: border-box;
+ background-color: white;
+}
+.uni-system-choose-location .search-input {
+ -webkit-box-flex: 1;
+ -webkit-flex: 1;
+ flex: 1;
+ height: 100%;
+ border-radius: 5px;
+ padding: 0 5px;
+ background: #ebebeb;
+}
+.uni-system-choose-location .search-btn {
+ margin-left: 5px;
+ color: #007aff;
+ font-size: 17px;
+ text-align: center;
+}
+.uni-system-choose-location .list {
+ position: absolute;
+ top: 50px;
+ left: 0;
+ width: 100%;
+ bottom: 0;
+ padding-bottom: 10px;
+ /* background-color: #f6f6f6; */
+}
+.uni-system-choose-location .list-loading {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ height: 50px;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.uni-system-choose-location .list-item {
+ position: relative;
+ padding: 10px;
+ padding-right: 40px;
+ cursor: pointer;
+}
+.uni-system-choose-location .list-item.selected::before {
+ position: absolute;
+ top: 50%;
+ right: 10px;
+ width: 30px;
+ height: 30px;
+ margin-top: -15px;
+ text-align: center;
+ content: "\e651";
+ font: normal normal normal 14px/1 "unibtn";
+ font-size: 24px;
+ line-height: 30px;
+ color: #007aff;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+}
+.uni-system-choose-location .list-item:not(:last-child)::after {
+ position: absolute;
+ content: "";
+ height: 1px;
+ left: 10px;
+ bottom: 0;
+ width: 100%;
+ background-color: #d3d3d3;
+}
+.uni-system-choose-location .list-item-title {
+ font-size: 14px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.uni-system-choose-location .list-item-detail {
+ font-size: 12px;
+ color: #808080;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+@media screen and (min-width: 800px) {
+.uni-system-choose-location .map {
+ top: 0;
+ height: 100%;
+}
+.uni-system-choose-location .map-move {
+ bottom: 10px;
+ right: 320px;
+}
+.uni-system-choose-location .menu {
+ top: 54px;
+ left: auto;
+ right: 10px;
+ width: 300px;
+ bottom: 10px;
+ max-height: 600px;
+ box-shadow: 0px 0 20px 5px rgba(0, 0, 0, 0.3);
+}
+}
+
+
+.uni-system-open-location {
+ display: block;
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background: #f8f8f8;
+ z-index: 999;
+}
+.uni-system-open-location .map {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ bottom: 80px;
+ height: auto;
+}
+.uni-system-open-location .info {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 80px;
+ background-color: white;
+ padding: 15px;
+ box-sizing: border-box;
+ line-height: 1.5;
+}
+.uni-system-open-location .info > .name {
+ font-size: 17px;
+ color: #111111;
+}
+.uni-system-open-location .info > .address {
+ font-size: 14px;
+ color: #666666;
+}
+.uni-system-open-location .info > .nav {
+ position: absolute;
+ top: 50%;
+ right: 15px;
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ margin-top: -25px;
+ background-color: #007aff;
+}
+.uni-system-open-location .info > .nav > svg {
+ display: block;
+ width: 100%;
+ height: 100%;
+ padding: 10px;
+ box-sizing: border-box;
+}
+.uni-system-open-location .map-move {
+ position: absolute;
+ bottom: 50px;
+ right: 10px;
+ width: 40px;
+ height: 40px;
+ box-sizing: border-box;
+ line-height: 40px;
+ background-color: white;
+ border-radius: 50%;
+ pointer-events: auto;
+ cursor: pointer;
+ box-shadow: 0px 0 5px 1px rgba(0, 0, 0, 0.3);
+}
+.uni-system-open-location .map-move > i {
+ display: block;
+ width: 100%;
+ height: 100%;
+ font: normal normal normal 14px/1 "unimapbtn";
+ line-height: inherit;
+ text-align: center;
+ font-size: 24px;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+}
+.uni-system-open-location .nav-btn-back {
+ position: absolute;
+ box-sizing: border-box;
+ top: 0;
+ left: 0;
+ width: 44px;
+ height: 44px;
+ padding: 6px;
+ line-height: 32px;
+ font-size: 26px;
+ color: white;
+ text-align: center;
+ cursor: pointer;
+}
+.uni-system-open-location .nav-btn-back > .uni-btn-icon {
+ display: block;
+ width: 100%;
+ height: 100%;
+ line-height: inherit;
+ border-radius: 50%;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+.uni-system-open-location .map-content {
+ position: absolute;
+ left: 0;
+ top: 0px;
+ width: 100%;
+ bottom: 0;
+ overflow: hidden;
+}
+.uni-system-open-location .map-content.fix-position {
+ top: -74px;
+ bottom: -44px;
+}
+.uni-system-open-location .map-content > iframe {
+ width: 100%;
+ height: 100%;
+ border: none;
+}
+.uni-system-open-location .actTonav {
+ position: absolute;
+ right: 16px;
+ bottom: 56px;
+ width: 60px;
+ height: 60px;
+ border-radius: 60px;
+}
+
+
+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,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABatJREFUaAXVWl1IpFUYnllZGUf3wlz6MXER1ES7s83VUDJw6KpdaSTDwMnYFSK6KNirooHullKQCNzQRjZ/wom1u9ALQ0mT1ktFdEBWXLdibaH1jwmx5zme83W+z2Hm+7bZmc8X3jl/73vO837n/z3j9aSBjo6O8lBNC7gZXAUuBxeCz4FJj8APwTHwCngaPOX1evcRZocAuhAcAt8G74KdEnWoyzpobGYIjfnBn4D/BqeLWBfr9Du1wmtXAZXnQPY9cBj8HNhEe3t7sbW1tfn19fW7m5ubD5aXl7dnZmYeUKipqel8dXV1UUlJyfmysrILFRUV9X6/n8PMSveREQYPYHgdWgsTpW0ZAPDPQ3kC/JJeCUEvLi7+NDg4+EskEvldL0sVD4VCz3Z1db1SW1v7egJj7kD/Coy4l6qelAYAfB0quQ02vno8Hr8/OTkZaWtrmzo4ODhK1Uiycp/P5x0fH28JBAKh3Nxcow3osDdaYcRCMv2kBgD8O1D+BuyTlcTn5+cj7e3t0Y2NjX+SVey0rLS09OzY2Fiwvr4+BN1cqX+A8CqM+E6mTwRnTuTIDAn+FpIC/OHh4V+9vb0fNzQ0jKYbPJtknaybbbAtCYNt35JYZJY5SNgDctj8DFEBfnd3d627u/vT4eHhP8zqTybV0dHxTH9//+f5+fkVsgX2xKuJhtMJAwCeE/Y3sBiPBF9XV/fh0tISK8kY1dTU+BYWFvo0IzgnLlontmkIATyXSq42Ajy7kl8+0+D5ldgm29aGEzFNSIwUEWQyADlc59VSGe/r6/ssU8PmGI75l20TA3LjsoTYiNEgYwjBMu6CPKuIr4/Vph+TasyQzGJkbm7ubaxO1yQEDqVyDKU9pvUe+AhpAZ7rPJbKHyjgBuKyTUwSCzESqyBhAL4+D1PXZZ6Hm9STWCpV/U5DYiEmTe+6xOwRQwiJEAq/pQCPB0VFRdf+7w7LutJJ3LG3t7dvaseOdzGMImoIXVaN8WzjNvDERkzEpnAiFJjP4OvzMhJQBTyYqbjdEDov7+/vf4+6pu0wZQcGBi7arV/JWbAFiN2Lnzcg8COFuGkVFBSo2a70UoYEhC5+OqWgJoAv+mdeXt5bWpat6M7Ozk1tc7vMIfSa0lxdXf1VxZ2ETsGz7sfRoV4sFtMxNtOAF1hAugs6jrn3lxcmDV0VDTBuRrxJaYWujFowltMA40LNa6ArUWugLBgLaYByfXjUHVaTd13UgvEcDTjVRAPodBJE74GKuzW0YHxEA+gxE0TXh4q7NbRgfEgDeIQWRL+Nirs1tGCM0YAVBZZOJxV3a2jBuEIDphVYesxU3EnIY4ETeco+jg71LBinacAUWNxueFSlx4yCTmh0dPRLJ4AoOzIy8oWTNihLbNpxmpin1H2AnrcrFJqdnf0KM901tzFiUoQ94M3GxsYPZHoC94FW9gBJnEYZoa8SBy1hGNNuIWIiNg2PwKwbIPYDdhF9lZqgK6LEpA0fYv3PAHQF94IbCikdrcXFxWdVOtsh/abEpOG4ITGbvBI9EBA3f3qJo9FoUFPIapROX81zTYzEKkgNIQ8s4qwOH2d7PPQS9/T0vKjS2QqJQXqsFYSwxCrSpsmK6yVdi7zx0APmoVuvs7Pz/Wx55+jkHRoa+jonJ+cp4gHdAV+CAcbrjckASsCI0+vcpQGw7h6CVrDwRvMCTS8xvwbLM0Fsy+KZJha+1hCbiYw5oOdCkM86V1UejWBXZmJOsA22pXkeCIOvNAmfmk4MIQWaIYZTwiemYDAY3dracsUTU1IDpBGn95FP9Yac2KfzmVUzgkssHxfCYOGGR2gQvXp0jNG3lOyh+wKosrLykmWMq3q4SYXBth+6laLtEL3hqr8a2AZuFYQhrvizR8pJbAWeKA1j6OFuATeDq8D09hWClc+Jp0ceGHn/5hWWt8C0/N3mX15C4bDnCIuAAAAAAElFTkSuQmCC);
+}
+.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: #888888;
+ 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;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.uni-audio-author {
+ height: 14.5px;
+ line-height: 14.5px;
+ font-size: 12px;
+ color: #888888;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+
+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: #000000;
+ background-color: #f8f8f8;
+ cursor: pointer;
+}
+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, 0.2);
+ -webkit-transform: scale(0.5);
+ transform: scale(0.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: #000000;
+ background-color: #f8f8f8;
+}
+uni-button[type="primary"] {
+ color: #ffffff;
+ background-color: #007aff;
+}
+uni-button[type="warn"] {
+ color: #ffffff;
+ background-color: #e64340;
+}
+uni-button[disabled] {
+ color: rgba(255, 255, 255, 0.6);
+ cursor: not-allowed;
+}
+uni-button[disabled][type="default"],
+uni-button[disabled]:not([type]) {
+ color: rgba(0, 0, 0, 0.3);
+ background-color: #f7f7f7;
+}
+uni-button[disabled][type="primary"] {
+ background-color: rgba(0, 122, 255, 0.6);
+}
+uni-button[disabled][type="warn"] {
+ background-color: #ec8b89;
+}
+uni-button[type="primary"][plain] {
+ color: #007aff;
+ border: 1px solid #007aff;
+ background-color: transparent;
+}
+uni-button[type="primary"][plain][disabled] {
+ color: rgba(0, 0, 0, 0.2);
+ border-color: rgba(0, 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: transparent;
+}
+uni-button[type="default"][plain][disabled] {
+ color: rgba(0, 0, 0, 0.2);
+ border-color: rgba(0, 0, 0, 0.2);
+}
+uni-button[type="default"][plain]:after {
+ border-width: 0;
+}
+uni-button[plain] {
+ color: #353535;
+ border: 1px solid #353535;
+ background-color: transparent;
+}
+uni-button[plain][disabled] {
+ color: rgba(0, 0, 0, 0.2);
+ border-color: rgba(0, 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: transparent;
+}
+uni-button[type="warn"][plain][disabled] {
+ color: rgba(0, 0, 0, 0.2);
+ border-color: rgba(0, 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]:not([disabled]) {
+ cursor: progress;
+}
+uni-button[loading]:before {
+ content: " ";
+ display: inline-block;
+ width: 18px;
+ height: 18px;
+ vertical-align: middle;
+ -webkit-animation: uni-loading 1s steps(12, end) infinite;
+ animation: uni-loading 1s steps(12, end) infinite;
+ background-size: 100%;
+}
+uni-button[loading][type="primary"] {
+ color: rgba(255, 255, 255, 0.6);
+ background-color: #0062cc;
+}
+uni-button[loading][type="primary"][plain] {
+ color: #007aff;
+ background-color: transparent;
+}
+uni-button[loading][type="default"] {
+ color: rgba(0, 0, 0, 0.6);
+ background-color: #dedede;
+}
+uni-button[loading][type="default"][plain] {
+ color: #353535;
+ background-color: transparent;
+}
+uni-button[loading][type="warn"] {
+ color: rgba(255, 255, 255, 0.6);
+ background-color: #ce3c39;
+}
+uni-button[loading][type="warn"][plain] {
+ color: #e64340;
+ background-color: transparent;
+}
+uni-button[loading][native]:before {
+ content: none;
+}
+.button-hover {
+ color: rgba(0, 0, 0, 0.6);
+ background-color: #dedede;
+}
+.button-hover[plain] {
+ color: rgba(53, 53, 53, 0.6);
+ border-color: rgba(53, 53, 53, 0.6);
+ background-color: transparent;
+}
+.button-hover[type="primary"] {
+ color: rgba(255, 255, 255, 0.6);
+ background-color: #0062cc;
+}
+.button-hover[type="primary"][plain] {
+ color: rgba(0, 122, 255, 0.6);
+ border-color: rgba(0, 122, 255, 0.6);
+ background-color: transparent;
+}
+.button-hover[type="default"] {
+ color: rgba(0, 0, 0, 0.6);
+ background-color: #dedede;
+}
+.button-hover[type="default"][plain] {
+ color: rgba(53, 53, 53, 0.6);
+ border-color: rgba(53, 53, 53, 0.6);
+ background-color: transparent;
+}
+.button-hover[type="warn"] {
+ color: rgba(255, 255, 255, 0.6);
+ background-color: #ce3c39;
+}
+.button-hover[type="warn"][plain] {
+ color: rgba(230, 67, 64, 0.6);
+ border-color: rgba(230, 67, 64, 0.6);
+ background-color: transparent;
+}
+
+
+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;
+ cursor: pointer;
+}
+uni-checkbox[hidden] {
+ display: none;
+}
+uni-checkbox[disabled] {
+ cursor: not-allowed;
+}
+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: #FFFFFF;
+ border-radius: 3px;
+ width: 22px;
+ height: 22px;
+ position: relative;
+}
+uni-checkbox:not([disabled]) .uni-checkbox-input:hover {
+ border-color: #007aff;
+}
+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(0.73);
+ -webkit-transform: translate(-50%, -48%) scale(0.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;
+}
+
+.ql-container {
+ display: block;
+ position: relative;
+ box-sizing: border-box;
+ -webkit-user-select: text;
+ user-select: text;
+ outline: none;
+ overflow: hidden;
+ width: 100%;
+ height: 200px;
+ min-height: 200px;
+}
+.ql-container[hidden] {
+ display: none;
+}
+.ql-container .ql-editor {
+ position: relative;
+ font-size: inherit;
+ line-height: inherit;
+ font-family: inherit;
+ min-height: inherit;
+ width: 100%;
+ height: 100%;
+ padding: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+ -webkit-tap-highlight-color: transparent;
+ -webkit-touch-callout: none;
+ -webkit-overflow-scrolling: touch;
+}
+.ql-container .ql-editor::-webkit-scrollbar {
+ width: 0 !important;
+}
+.ql-container .ql-editor.scroll-disabled {
+ overflow: hidden;
+}
+.ql-container .ql-image-overlay {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ position: absolute;
+ box-sizing: border-box;
+ border: 1px dashed #ccc;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-user-select: none;
+ user-select: none;
+}
+.ql-container .ql-image-overlay .ql-image-size {
+ position: absolute;
+ padding: 4px 8px;
+ text-align: center;
+ background-color: #fff;
+ color: #888;
+ border: 1px solid #ccc;
+ box-sizing: border-box;
+ opacity: 0.8;
+ right: 4px;
+ top: 4px;
+ font-size: 12px;
+ display: inline-block;
+ width: auto;
+}
+.ql-container .ql-image-overlay .ql-image-toolbar {
+ position: relative;
+ text-align: center;
+ box-sizing: border-box;
+ background: #000;
+ border-radius: 5px;
+ color: #fff;
+ font-size: 0;
+ min-height: 24px;
+ z-index: 100;
+}
+.ql-container .ql-image-overlay .ql-image-toolbar span {
+ display: inline-block;
+ cursor: pointer;
+ padding: 5px;
+ font-size: 12px;
+ border-right: 1px solid #fff;
+}
+.ql-container .ql-image-overlay .ql-image-toolbar span:last-child {
+ border-right: 0;
+}
+.ql-container .ql-image-overlay .ql-image-toolbar span.triangle-up {
+ padding: 0;
+ position: absolute;
+ top: -12px;
+ left: 50%;
+ -webkit-transform: translatex(-50%);
+ transform: translatex(-50%);
+ width: 0;
+ height: 0;
+ border-width: 6px;
+ border-style: solid;
+ border-color: transparent transparent black transparent;
+}
+.ql-container .ql-image-overlay .ql-image-handle {
+ position: absolute;
+ height: 12px;
+ width: 12px;
+ border-radius: 50%;
+ border: 1px solid #ccc;
+ box-sizing: border-box;
+ background: #fff;
+}
+.ql-container img {
+ display: inline-block;
+ max-width: 100%;
+}
+.ql-clipboard p {
+ margin: 0;
+ padding: 0;
+}
+.ql-editor {
+ box-sizing: border-box;
+ height: 100%;
+ outline: none;
+ overflow-y: auto;
+ tab-size: 4;
+ -moz-tab-size: 4;
+ text-align: left;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+.ql-editor > * {
+ cursor: text;
+}
+.ql-editor p,
+.ql-editor ol,
+.ql-editor ul,
+.ql-editor pre,
+.ql-editor blockquote,
+.ql-editor h1,
+.ql-editor h2,
+.ql-editor h3,
+.ql-editor h4,
+.ql-editor h5,
+.ql-editor h6 {
+ margin: 0;
+ padding: 0;
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
+}
+.ql-editor ol > li,
+.ql-editor ul > li {
+ list-style-type: none;
+}
+.ql-editor ul > li::before {
+ content: '\2022';
+}
+.ql-editor ul[data-checked=true],
+.ql-editor ul[data-checked=false] {
+ pointer-events: none;
+}
+.ql-editor ul[data-checked=true] > li *,
+.ql-editor ul[data-checked=false] > li * {
+ pointer-events: all;
+}
+.ql-editor ul[data-checked=true] > li::before,
+.ql-editor ul[data-checked=false] > li::before {
+ color: #777;
+ cursor: pointer;
+ pointer-events: all;
+}
+.ql-editor ul[data-checked=true] > li::before {
+ content: '\2611';
+}
+.ql-editor ul[data-checked=false] > li::before {
+ content: '\2610';
+}
+.ql-editor li::before {
+ display: inline-block;
+ white-space: nowrap;
+ width: 2em;
+}
+.ql-editor ol li {
+ counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
+ counter-increment: list-0;
+}
+.ql-editor ol li:before {
+ content: counter(list-0, decimal) '. ';
+}
+.ql-editor ol li.ql-indent-1 {
+ counter-increment: list-1;
+}
+.ql-editor ol li.ql-indent-1:before {
+ content: counter(list-1, lower-alpha) '. ';
+}
+.ql-editor ol li.ql-indent-1 {
+ counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
+}
+.ql-editor ol li.ql-indent-2 {
+ counter-increment: list-2;
+}
+.ql-editor ol li.ql-indent-2:before {
+ content: counter(list-2, lower-roman) '. ';
+}
+.ql-editor ol li.ql-indent-2 {
+ counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
+}
+.ql-editor ol li.ql-indent-3 {
+ counter-increment: list-3;
+}
+.ql-editor ol li.ql-indent-3:before {
+ content: counter(list-3, decimal) '. ';
+}
+.ql-editor ol li.ql-indent-3 {
+ counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
+}
+.ql-editor ol li.ql-indent-4 {
+ counter-increment: list-4;
+}
+.ql-editor ol li.ql-indent-4:before {
+ content: counter(list-4, lower-alpha) '. ';
+}
+.ql-editor ol li.ql-indent-4 {
+ counter-reset: list-5 list-6 list-7 list-8 list-9;
+}
+.ql-editor ol li.ql-indent-5 {
+ counter-increment: list-5;
+}
+.ql-editor ol li.ql-indent-5:before {
+ content: counter(list-5, lower-roman) '. ';
+}
+.ql-editor ol li.ql-indent-5 {
+ counter-reset: list-6 list-7 list-8 list-9;
+}
+.ql-editor ol li.ql-indent-6 {
+ counter-increment: list-6;
+}
+.ql-editor ol li.ql-indent-6:before {
+ content: counter(list-6, decimal) '. ';
+}
+.ql-editor ol li.ql-indent-6 {
+ counter-reset: list-7 list-8 list-9;
+}
+.ql-editor ol li.ql-indent-7 {
+ counter-increment: list-7;
+}
+.ql-editor ol li.ql-indent-7:before {
+ content: counter(list-7, lower-alpha) '. ';
+}
+.ql-editor ol li.ql-indent-7 {
+ counter-reset: list-8 list-9;
+}
+.ql-editor ol li.ql-indent-8 {
+ counter-increment: list-8;
+}
+.ql-editor ol li.ql-indent-8:before {
+ content: counter(list-8, lower-roman) '. ';
+}
+.ql-editor ol li.ql-indent-8 {
+ counter-reset: list-9;
+}
+.ql-editor ol li.ql-indent-9 {
+ counter-increment: list-9;
+}
+.ql-editor ol li.ql-indent-9:before {
+ content: counter(list-9, decimal) '. ';
+}
+.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
+ padding-left: 2em;
+}
+.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
+ padding-left: 2em;
+}
+.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
+ padding-right: 2em;
+}
+.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
+ padding-right: 2em;
+}
+.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
+ padding-left: 4em;
+}
+.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
+ padding-left: 4em;
+}
+.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
+ padding-right: 4em;
+}
+.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
+ padding-right: 4em;
+}
+.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
+ padding-left: 6em;
+}
+.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
+ padding-left: 6em;
+}
+.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
+ padding-right: 6em;
+}
+.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
+ padding-right: 6em;
+}
+.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
+ padding-left: 8em;
+}
+.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
+ padding-left: 8em;
+}
+.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
+ padding-right: 8em;
+}
+.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
+ padding-right: 8em;
+}
+.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
+ padding-left: 10em;
+}
+.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
+ padding-left: 10em;
+}
+.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
+ padding-right: 10em;
+}
+.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
+ padding-right: 10em;
+}
+.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
+ padding-left: 12em;
+}
+.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
+ padding-left: 12em;
+}
+.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
+ padding-right: 12em;
+}
+.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
+ padding-right: 12em;
+}
+.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
+ padding-left: 14em;
+}
+.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
+ padding-left: 14em;
+}
+.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
+ padding-right: 14em;
+}
+.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
+ padding-right: 14em;
+}
+.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
+ padding-left: 16em;
+}
+.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
+ padding-left: 16em;
+}
+.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
+ padding-right: 16em;
+}
+.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
+ padding-right: 16em;
+}
+.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
+ padding-left: 18em;
+}
+.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
+ padding-left: 18em;
+}
+.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
+ padding-right: 18em;
+}
+.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
+ padding-right: 18em;
+}
+.ql-editor .ql-direction-rtl {
+ direction: rtl;
+ text-align: inherit;
+}
+.ql-editor .ql-align-center {
+ text-align: center;
+}
+.ql-editor .ql-align-justify {
+ text-align: justify;
+}
+.ql-editor .ql-align-right {
+ text-align: right;
+}
+.ql-editor.ql-blank::before {
+ color: rgba(0, 0, 0, 0.6);
+ content: attr(data-placeholder);
+ font-style: italic;
+ pointer-events: none;
+ position: absolute;
+}
+.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
+ pointer-events: none;
+}
+.ql-clipboard {
+ left: -100000px;
+ height: 1px;
+ overflow-y: hidden;
+ position: absolute;
+ top: 50%;
+}
+
+
+uni-icon {
+ display: inline-block;
+ font-size: 0;
+ box-sizing: border-box;
+}
+uni-icon[hidden] {
+ display: none;
+}
+uni-icon > i {
+ font: normal normal normal 14px/1 "weui";
+}
+uni-icon > i:before {
+ margin: 0;
+ box-sizing: border-box;
+}
+@font-face {
+ font-weight: normal;
+ font-style: normal;
+ font-family: "weui";
+ src: url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx8AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5Zp+UEEcAAASUAAAIvGhlYWQUqc7xAAAA4AAAADZoaGVhB/YD+wAAALwAAAAkaG10eEJoAAAAAAHUAAAASGxvY2EUxhJeAAAEbAAAACZtYXhwASEAQwAAARgAAAAgbmFtZeNcHtgAAA1QAAAB5nBvc3T6OoZLAAAPOAAAAOYAAQAAA+gAAABaA+gAAAAAA7MAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAAMCU2KdfDzz1AAsD6AAAAADY7EUUAAAAANjsRRQAAAAAA7MD5AAAAAgAAgAAAAAAAAABAAAAEgA3AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPoAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARACKAMQBEgFgAZIB4gH6AioCeAK0AwwDZAOiA9wEEAReAAAAAgAAAAADlQOVABQAKQAAJSInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAIAAAAAA7MDswAXAC0AAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBiIvASY2OwERNDY7ATIWFREzMhYB7nZnZDs9PTtkZ3Z8amY7Pj47Zmkhdg4oDnYODRddCwcmBwtdFw0Dsz47Zmp8dmdkOz09O2Rndn1pZjs+/fCaEhKaEhoBFwgLCwj+6RoAAwAAAAADlQOVABQAGAAhAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDETMRJzI2NCYiBhQWAfRxYV83OTk3X2HiYV83OTk3X2GQPh8RGRkiGRlTOTdfYeJhXzc5OTdfYeJhXzc5AfT+3QEjKhgjGBgjGAAAAAACAAAAAAOxA+QAFwAsAAABBgcGDwERFBcWFxYXNjc2NzY1EScmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9WlsP3A3Rz5sXmxsXW09SDdwQGuP/tUEBIoDAxIBBQFxAQUCARICBQERBAPjFyASJBL+rI51ZUg/HBw/SGV1jgFUEiQSIP66/tkDA48EBBkCAVYCAQHlAQIQBAAAAAADAAAAAAOxA+QAFwAmAC8AAAEGBwYPAREUFxYXFhc2NzY3NjURJyYnJgczMhYVAxQGKwEiJwM0NhMiJjQ2MhYUBgH1aWtAcDdHPmxebGxdbT1IN3BAa4M0BAYMAwImBQELBh4PFhYeFRUD5BggEiQS/q2PdWRJPh0dPklkdY8BUxIkEiD4BgT+xgIDBQE6BAb+QBUfFRUfFQAAAAACAAAAAAOVA5UAFAAaAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJwcXAScB9HFhXzc5OTdfYeJhXzc5OTdfYaJzLJ8BFi1TOTdfYeJhXzc5OTdfYeJhXzc5AUhzLJ8BFSwAAAAAAwAAAAADlQOVABQAKQAvAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTNxcBJzcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1Uz8iT+6p8jUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIBBPIj/uufJAAAAAEAAAAAA5kDGAAHAAAlATcXARcBBgGF/vg7zgHYOv3vAcsBCTvPAdg7/e4BAAAAAAIAAAAAA5UDlQAFABoAAAE1IxUXNwMiJyYnJjQ3Njc2MhcWFxYUBwYHBgITPrEsvnFhXzc5OTdfYeJhXzc5OTdfYQIO4PqxLP7kOTdfYeJhXzc5OTdfYeJhXzc5AAAAAAMAAAAAA5UDlQAFABoALwAAARcHJzUzAyInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAg2iI7EyGXFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1UCCaIksfr9ZTk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAMAAAAAA5UDlQAUABgAIQAAJSInJicmNDc2NzYyFxYXFhQHBgcGAxMzEwMyNjQmIg4BFgH0cWFfNzk5N19h4mFfNzk5N19hkQU2BSAQFRUgFQEWUzk3X2HiYV83OTk3X2HiYV83OQKV/sQBPP43Fh8VFR8WAAAAAAQAAAAAA5UDlQAUACkALQA2AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTMxEjEyImNDYyFhQGAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVSzIyGREZGSIZGVM5N19h4mFfNzk5N19h4mFfNzkyMjFTVchVUzEyMjFTVchVUzEyAcL+3QFNGCMYGCMYAAAAAwAAAAADlQOVABQAKQA1AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTFwcnByc3JzcXNxcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1WHgiOCgiOCgiOCgiNTOTdfYeJhXzc5OTdfYeJhXzc5MjIxU1XIVVMxMjIxU1XIVVMxMgFvgiOCgiOCgiOCgiMAAAACAAAAAANUA0IAGAAlAAABFwcnDgEjIicmJyY0NzY3NjIXFhcWFRQGJzQuASIOARQeATI+AQKoqyOsJ180T0RCJycnJ0JEn0RCJiglDUFvg29BQW+Db0EBYKwjrCAjKCZCRJ9EQicnJydCRE82YZdBb0FBb4NvQUFvAAAAAgAAAAADlQOVAAsAIAAAATcnBycHFwcXNxc3AyInJicmNDc2NzYyFxYXFhQHBgcGAiB9LH19LH19LH19LKlxYV83OTk3X2HiYV83OTk3X2EB9H0sfX0sfX0sfX0s/tw5N19h4mFfNzk5N19h4mFfNzkAAAACAAAAAAOVA5UAFAAcAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJzcnBwYfAQH0cWFfNzk5N19h4mFfNzk5N19hHoqKK7UBAbVTOTdfYeJhXzc5OTdfYeJhXzc5ARKPjy27AQG6AAAAAAUAAAAAA1cDbAAJAB0AJwArAC8AAAETHgEzITI2NxMzAw4BIyEiJicDIzU0NjMhMhYdASUyFh0BIzU0NjMHMxMjEzMDIwEaIgETDQEuDRMBIjIiAjAh/tIhMAIiVgwJApoJDP7xCQzQDAkVMhUyiTIVMgLd/cgOEhIOAjj9xSEuLiECOx4IDAwIHo4MCR0dCQz6/okBd/6JAAAAAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlLXN1Y2Nlc3MJc2FmZS13YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA")
+ format("truetype");
+}
+.uni-icon-success:before {
+ content: "\EA06";
+}
+.uni-icon-success_circle:before {
+ content: "\EA07";
+}
+.uni-icon-success_no_circle:before {
+ content: "\EA08";
+}
+.uni-icon-safe_success:before {
+ content: "\EA04";
+}
+.uni-icon-safe_warn:before {
+ content: "\EA05";
+}
+.uni-icon-info:before {
+ content: "\EA03";
+}
+.uni-icon-info_circle:before {
+ content: "\EA0C";
+}
+.uni-icon-warn:before {
+ content: "\EA0B";
+}
+.uni-icon-waiting:before {
+ content: "\EA09";
+}
+.uni-icon-waiting_circle:before {
+ content: "\EA0A";
+}
+.uni-icon-circle:before {
+ content: "\EA01";
+}
+.uni-icon-cancel:before {
+ content: "\EA0D";
+}
+.uni-icon-download:before {
+ content: "\EA02";
+}
+.uni-icon-search:before {
+ content: "\EA0E";
+}
+.uni-icon-clear:before {
+ content: "\EA0F";
+}
+.uni-icon-success {
+ color: #007aff;
+}
+.uni-icon-success_circle {
+ color: #007aff;
+}
+.uni-icon-success_no_circle {
+ color: #007aff;
+}
+.uni-icon-safe_success {
+ color: #007aff;
+}
+.uni-icon-safe_warn {
+ color: #ffbe00;
+}
+.uni-icon-info {
+ color: #10aeff;
+}
+.uni-icon-info_circle {
+ color: #007aff;
+}
+.uni-icon-warn {
+ color: #f76260;
+}
+.uni-icon-waiting {
+ color: #10aeff;
+}
+.uni-icon-waiting_circle {
+ color: #10aeff;
+}
+.uni-icon-circle {
+ color: #c9c9c9;
+}
+.uni-icon-cancel {
+ color: #f43530;
+}
+.uni-icon-download {
+ color: #007aff;
+}
+.uni-icon-search {
+ color: #b2b2b2;
+}
+.uni-icon-clear {
+ color: #b2b2b2;
+}
+
+
+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;
+ overflow: hidden;
+}
+uni-input[hidden] {
+ display: none;
+}
+.uni-input-wrapper,
+.uni-input-placeholder,
+.uni-input-form,
+.uni-input-input {
+ outline: none;
+ border: none;
+ padding: 0;
+ margin: 0;
+ text-decoration: inherit;
+}
+.uni-input-wrapper,
+.uni-input-form {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ -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;
+}
+.uni-input-placeholder,
+.uni-input-input {
+ width: 100%;
+}
+.uni-input-placeholder {
+ position: absolute;
+ top: auto !important;
+ left: 0;
+ color: gray;
+ overflow: hidden;
+ text-overflow: clip;
+ white-space: pre;
+ word-break: keep-all;
+ pointer-events: none;
+ line-height: inherit;
+}
+.uni-input-input {
+ position: relative;
+ display: block;
+ height: 100%;
+ background: none;
+ color: inherit;
+ opacity: 1;
+ 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,
+.uni-input-input[type="search"]::-webkit-search-decoration {
+ display: none;
+}
+.uni-input-input::-webkit-outer-spin-button,
+.uni-input-input::-webkit-inner-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+.uni-input-input[type="number"] {
+ -moz-appearance: textfield;
+}
+.uni-input-input:disabled {
+ /* 用于重置iOS14以下禁用状态文字颜色 */
+ -webkit-text-fill-color: currentcolor;
+}
+
+
+.uni-label-pointer {
+ cursor: pointer;
+}
+
+
+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: 0px;
+ left: 0px;
+ position: absolute;
+ cursor: grab;
+}
+uni-movable-view[hidden] {
+ display: none;
+}
+
+
+uni-navigator {
+ height: auto;
+ width: auto;
+ display: block;
+ cursor: pointer;
+}
+uni-navigator[hidden] {
+ display: none;
+}
+.navigator-hover {
+ background-color: rgba(0, 0, 0, 0.1);
+ opacity: 0.7;
+}
+
+
+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%;
+ overflow: hidden;
+}
+.uni-picker-view-mask {
+ transform: translateZ(0);
+ -webkit-transform: translateZ(0);
+}
+.uni-picker-view-indicator,
+.uni-picker-view-mask {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ z-index: 3;
+ pointer-events: none;
+}
+.uni-picker-view-mask {
+ top: 0;
+ height: 100%;
+ margin: 0 auto;
+ background: -webkit-linear-gradient(top,
+ hsla(0, 0%, 100%, 0.95),
+ hsla(0, 0%, 100%, 0.6)),
+ -webkit-linear-gradient(bottom, hsla(0, 0%, 100%, 0.95), hsla(0, 0%, 100%, 0.6));
+ background: linear-gradient(180deg,
+ hsla(0, 0%, 100%, 0.95),
+ hsla(0, 0%, 100%, 0.6)),
+ linear-gradient(0deg, hsla(0, 0%, 100%, 0.95), hsla(0, 0%, 100%, 0.6));
+ background-position: top, bottom;
+ background-size: 100% 102px;
+ background-repeat: no-repeat;
+}
+.uni-picker-view-indicator {
+ height: 34px;
+ /* top: 102px; */
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+}
+.uni-picker-view-content {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ will-change: transform;
+ padding: 102px 0;
+ cursor: pointer;
+}
+.uni-picker-view-content>* {
+ height: 34px;
+ overflow: hidden;
+}
+.uni-picker-view-indicator:after,
+.uni-picker-view-indicator:before {
+ content: " ";
+ position: absolute;
+ left: 0;
+ right: 0;
+ height: 1px;
+ color: #e5e5e5;
+}
+.uni-picker-view-indicator:before {
+ top: 0;
+ border-top: 1px solid #e5e5e5;
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: scaleY(0.5);
+ transform: scaleY(0.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(0.5);
+ transform: scaleY(0.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-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;
+ cursor: pointer;
+}
+uni-radio[hidden] {
+ display: none;
+}
+uni-radio[disabled] {
+ cursor: not-allowed;
+}
+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: #ffffff;
+ border-radius: 50%;
+ width: 22px;
+ height: 22px;
+ position: relative;
+}
+uni-radio:not([disabled]) .uni-radio-input:hover {
+ border-color: #007aff;
+}
+uni-radio .uni-radio-input.uni-radio-input-checked:before {
+ font: normal normal normal 14px/1 "uni";
+ content: "\EA08";
+ color: #ffffff;
+ font-size: 18px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -48%) scale(0.73);
+ -webkit-transform: translate(-50%, -48%) scale(0.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 {
+from {
+ top: 0;
+}
+}
+@keyframes once-show {
+from {
+ 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%;
+ /* display: flex; 时在安卓下会导致scrollWidth和offsetWidth一样 */
+ height: 100%;
+ max-height: inherit;
+}
+.uni-scroll-view-content {
+ width: 100%;
+ height: 100%;
+}
+.uni-scroll-view-refresher {
+ position: relative;
+ overflow: hidden;
+}
+.uni-scroll-view-refresh {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.uni-scroll-view-refresh-inner {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-box-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ line-height: 0;
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ background-color: #fff;
+ box-shadow: 0 1px 6px rgba(0, 0, 0, 0.117647),
+ 0 1px 4px rgba(0, 0, 0, 0.117647);
+}
+.uni-scroll-view-refresh__spinner {
+ -webkit-transform-origin: center center;
+ transform-origin: center center;
+ -webkit-animation: uni-scroll-view-refresh-rotate 2s linear infinite;
+ animation: uni-scroll-view-refresh-rotate 2s linear infinite;
+}
+.uni-scroll-view-refresh__spinner > circle {
+ stroke: currentColor;
+ stroke-linecap: round;
+ -webkit-animation: uni-scroll-view-refresh-dash 2s linear infinite;
+ animation: uni-scroll-view-refresh-dash 2s linear infinite;
+}
+@-webkit-keyframes uni-scroll-view-refresh-rotate {
+0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+}
+}
+@keyframes uni-scroll-view-refresh-rotate {
+0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+}
+100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+}
+}
+@-webkit-keyframes uni-scroll-view-refresh-dash {
+0% {
+ stroke-dasharray: 1, 200;
+ stroke-dashoffset: 0;
+}
+50% {
+ stroke-dasharray: 89, 200;
+ stroke-dashoffset: -35px;
+}
+100% {
+ stroke-dasharray: 89, 200;
+ stroke-dashoffset: -124px;
+}
+}
+@keyframes uni-scroll-view-refresh-dash {
+0% {
+ stroke-dasharray: 1, 200;
+ stroke-dashoffset: 0;
+}
+50% {
+ stroke-dasharray: 89, 200;
+ stroke-dashoffset: -35px;
+}
+100% {
+ stroke-dasharray: 89, 200;
+ stroke-dashoffset: -124px;
+}
+}
+
+
+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-transition: background-color 0.3s ease;
+ transition: background-color 0.3s ease;
+ -webkit-tap-highlight-color: transparent;
+}
+uni-slider .uni-slider-track {
+ height: 100%;
+ border-radius: 6px;
+ background-color: #007aff;
+ -webkit-transition: background-color 0.3s ease;
+ transition: background-color 0.3s ease;
+}
+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 0.3s ease;
+ transition: border-color 0.3s ease;
+}
+uni-slider .uni-slider-handle {
+ width: 28px;
+ height: 28px;
+ margin-top: -14px;
+ margin-left: -14px;
+ background-color: transparent;
+ z-index: 3;
+ cursor: grab;
+}
+uni-slider .uni-slider-thumb {
+ z-index: 2;
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
+}
+uni-slider .uni-slider-step {
+ position: absolute;
+ width: 100%;
+ height: 2px;
+ background: transparent;
+ z-index: 1;
+}
+uni-slider .uni-slider-value {
+ width: 3ch;
+ 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%;
+ cursor: grab;
+}
+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%, 0);
+ transform: translate(-50%, 0);
+}
+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: translate(0, -50%);
+ transform: translate(0, -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, 0.3);
+ border-radius: 50%;
+}
+uni-swiper .uni-swiper-dot-active {
+ background-color: #000000;
+}
+uni-swiper .uni-swiper-navigation {
+ width: 26px;
+ height: 26px;
+ cursor: pointer;
+ position: absolute;
+ top: 50%;
+ margin-top: -13px;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ -webkit-transition: all 0.2s;
+ transition: all 0.2s;
+ border-radius: 50%;
+ opacity: 1;
+}
+uni-swiper .uni-swiper-navigation-disabled {
+ opacity: 0.35;
+ cursor: not-allowed;
+}
+uni-swiper .uni-swiper-navigation-hide {
+ opacity: 0;
+ cursor: auto;
+ pointer-events: none;
+}
+uni-swiper .uni-swiper-navigation-prev {
+ left: 10px;
+}
+uni-swiper .uni-swiper-navigation-prev i {
+ margin-left: -1px;
+ left: 10px;
+}
+uni-swiper .uni-swiper-navigation-prev.uni-swiper-navigation-vertical {
+ top: 18px;
+ left: 50%;
+ margin-left: -13px;
+}
+uni-swiper .uni-swiper-navigation-prev.uni-swiper-navigation-vertical i {
+ -webkit-transform: rotate(90deg);
+ transform: rotate(90deg);
+ margin-left: auto;
+ margin-top: -2px;
+}
+uni-swiper .uni-swiper-navigation-next {
+ right: 10px;
+}
+uni-swiper .uni-swiper-navigation-next i {
+ -webkit-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+uni-swiper .uni-swiper-navigation-next.uni-swiper-navigation-vertical {
+ top: auto;
+ bottom: 5px;
+ left: 50%;
+ margin-left: -13px;
+}
+uni-swiper .uni-swiper-navigation-next.uni-swiper-navigation-vertical i {
+ margin-top: 2px;
+ -webkit-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+
+
+uni-switch {
+ -webkit-tap-highlight-color: transparent;
+ display: inline-block;
+ cursor: pointer;
+}
+uni-switch[hidden] {
+ display: none;
+}
+uni-switch[disabled] {
+ cursor: not-allowed;
+}
+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 0.1s, border 0.1s;
+ transition: background-color 0.1s, border 0.1s;
+}
+uni-switch[disabled] .uni-switch-input {
+ opacity: .7;
+}
+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 0.3s;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.3s;
+}
+uni-switch .uni-switch-input:after {
+ content: " ";
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 30px;
+ height: 30px;
+ border-radius: 15px;
+ background-color: #FFFFFF;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
+ transition: -webkit-transform 0.3s;
+ -webkit-transition: -webkit-transform 0.3s;
+ transition: transform 0.3s;
+ transition: transform 0.3s, -webkit-transform 0.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: #FFFFFF;
+ border-radius: 3px;
+ width: 22px;
+ height: 22px;
+ position: relative;
+ color: #007aff;
+}
+uni-switch:not([disabled]) .uni-checkbox-input:hover {
+ border-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(0.73);
+ -webkit-transform: translate(-50%, -48%) scale(0.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;
+ white-space: pre-wrap;
+ word-break: break-all;
+}
+uni-textarea[hidden] {
+ display: none;
+}
+.uni-textarea-wrapper,
+.uni-textarea-placeholder,
+.uni-textarea-line,
+.uni-textarea-compute,
+.uni-textarea-textarea {
+ outline: none;
+ border: none;
+ padding: 0;
+ margin: 0;
+ text-decoration: inherit;
+}
+.uni-textarea-wrapper {
+ display: block;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ min-height: inherit;
+ overflow-y: hidden;
+}
+.uni-textarea-placeholder,
+.uni-textarea-line,
+.uni-textarea-compute,
+.uni-textarea-textarea {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ white-space: inherit;
+ word-break: inherit;
+}
+.uni-textarea-placeholder {
+ color: grey;
+ overflow: hidden;
+}
+.uni-textarea-line,
+.uni-textarea-compute {
+ visibility: hidden;
+ height: auto;
+}
+.uni-textarea-line {
+ width: 1em;
+}
+.uni-textarea-textarea {
+ resize: none;
+ background: none;
+ color: inherit;
+ opacity: 1;
+ font: inherit;
+ line-height: inherit;
+ letter-spacing: inherit;
+ text-align: inherit;
+ text-indent: inherit;
+ text-transform: inherit;
+ text-shadow: inherit;
+}
+/* 用于解决 iOS textarea 内部默认边距 */
+.uni-textarea-textarea-fix-margin {
+ width: auto;
+ right: 0;
+ margin: 0 -3px;
+}
+.uni-textarea-textarea:disabled {
+ /* 用于重置iOS14以下禁用状态文字颜色 */
+ -webkit-text-fill-color: currentcolor;
+}
+
+
+uni-ad {
+ display: block;
+ overflow: hidden;
+}
+uni-ad[hidden] {
+ display: none;
+}
+
+
+uni-cover-image {
+ display: block;
+ line-height: 1.2;
+ overflow: hidden;
+ height: 100%;
+ width: 100%;
+ pointer-events: auto;
+}
+uni-cover-image img {
+ width: 100%;
+ height: 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-control{
+ position:absolute;
+ width:0;
+ height:0;
+ top:0;
+ left:0;
+ z-index:999;
+}
+.uni-map-control-icon{
+ position:absolute;
+ max-width:initial;
+}
+
+
+uni-map {
+ position: relative;
+ width: 300px;
+ height: 150px;
+ display: block;
+}
+uni-map[hidden] {
+ display: none;
+}
+
+ /* 处理高德地图 marker label 默认样式 */
+.amap-marker-label{
+ padding:0;
+ border:none;
+ background-color: transparent;
+}
+ /* 处理高德地图 open-location icon 被遮挡问题 */
+.amap-marker>.amap-icon>img{
+ left:0!important;
+ top:0!important;
+}
+
+
+uni-picker {
+ position: relative;
+ display: block;
+ cursor: pointer;
+}
+uni-picker[hidden] {
+ display: none;
+}
+uni-picker[disabled] {
+ cursor: not-allowed;
+}
+.uni-picker-container {
+ display: none;
+ position: fixed;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ box-sizing: border-box;
+ z-index: 999;
+ font-size: 16px;
+}
+.uni-picker-container .uni-picker-custom * {
+ box-sizing: border-box;
+}
+.uni-picker-container .uni-picker-custom {
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ -webkit-transform: translate(0, 100%);
+ transform: translate(0, 100%);
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ z-index: 999;
+ width: 100%;
+ background-color: #fff;
+ visibility: hidden;
+ -webkit-transition: visibility 0.3s, -webkit-transform 0.3s;
+ transition: visibility 0.3s, -webkit-transform 0.3s;
+ transition: transform 0.3s, visibility 0.3s;
+ transition: transform 0.3s, visibility 0.3s, -webkit-transform 0.3s;
+}
+.uni-picker-container .uni-picker-custom.uni-picker-toggle {
+ visibility: visible;
+ -webkit-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+.uni-picker-container .uni-picker-content {
+ position: relative;
+ display: block;
+ width: 100%;
+ height: 238px;
+ background-color: white;
+}
+.uni-picker-container .uni-picker-item {
+ padding: 0;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ color: #000;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+ cursor: pointer;
+}
+.uni-picker-container .uni-picker-header {
+ display: block;
+ position: relative;
+ text-align: center;
+ width: 100%;
+ height: 45px;
+}
+.uni-picker-container .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(0.5);
+ transform: scaleY(0.5);
+}
+.uni-picker-container .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;
+ cursor: pointer;
+}
+.uni-picker-container .uni-picker-action.uni-picker-action-cancel {
+ float: left;
+ color: #888;
+}
+.uni-picker-container .uni-picker-action.uni-picker-action-confirm {
+ float: right;
+ color: #007aff;
+}
+.uni-picker-container .uni-picker-select {
+ display: none;
+}
+.uni-picker-system {
+ position: absolute;
+ display: none;
+ display: block;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
+.uni-picker-system > input {
+ position: absolute;
+ border: none;
+ height: 100%;
+ opacity: 0;
+ /* Chrome 无效 */
+ cursor: pointer;
+}
+.uni-picker-system > input.firefox {
+ top: 0;
+ left: 0;
+ width: 100%;
+}
+.uni-picker-system > input.chrome {
+ /* 日历空白位置宽度 32px */
+ top: 0;
+ left: 0;
+ width: 2em;
+ font-size: 32px;
+ height: 32px;
+}
+@media screen and (min-width: 500px) and (min-height: 500px) {
+.uni-mask.uni-picker-mask {
+ background: none;
+}
+.uni-picker-container .uni-picker-custom {
+ width: 300px;
+ left: 50%;
+ right: auto;
+ top: 50%;
+ bottom: auto;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ opacity: 0;
+ border-radius: 5px;
+ -webkit-transition: opacity 0.3s, visibility 0.3s;
+ transition: opacity 0.3s, visibility 0.3s;
+ box-shadow: 0px 0 20px 5px rgba(0, 0, 0, 0.3);
+}
+.uni-picker-container .uni-picker-header {
+ border-radius: 5px 5px 0 0;
+}
+.uni-picker-container .uni-picker-content {
+ /* transform 用于解决 Safari overflow 失效的问题 */
+ -webkit-transform: translate(0 0);
+ transform: translate(0 0);
+ overflow: hidden;
+ border-radius: 0 0 5px 5px;
+}
+.uni-picker-container .uni-picker-custom.uni-picker-toggle {
+ opacity: 1;
+ -webkit-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+}
+.uni-selector-select .uni-picker-header,
+ .uni-selector-select .uni-picker-content {
+ display: none;
+}
+.uni-selector-select .uni-picker-select {
+ display: block;
+ max-height: 300px;
+ overflow: auto;
+ background-color: white;
+ border-radius: 5px;
+ padding: 6px 0;
+}
+.uni-selector-select .uni-picker-item {
+ padding: 0 10px;
+ color: #555555;
+}
+.uni-selector-select .uni-picker-item:hover {
+ background-color: #f6f6f6;
+}
+.uni-selector-select .uni-picker-item.selected {
+ color: #007aff;
+}
+}
+
+
+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: black;
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow: hidden;
+ object-position: inherit;
+}
+.uni-video-container.uni-video-type-fullscreen {
+ position: fixed;
+ z-index: 999;
+}
+.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, 0.5);
+ z-index: 1;
+}
+.uni-video-slots {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ pointer-events: none;
+}
+.uni-video-cover-play-button {
+ width: 40px;
+ height: 40px;
+ background-size: 50%;
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ cursor: pointer;
+}
+.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, 0.5);
+ overflow: hidden;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ display: flex;
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ align-items: center;
+ padding: 0 10px;
+ z-index: 0;
+ /* 解决全屏后被 video 遮挡的问题 */
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+.uni-video-bar.uni-video-bar-full {
+ left: 0;
+}
+.uni-video-controls {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ display: flex;
+ -webkit-box-flex: 1;
+ -webkit-flex-grow: 1;
+ 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;
+ cursor: pointer;
+}
+.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;
+ flex-grow: 2;
+ position: relative;
+}
+.uni-video-progress {
+ height: 2px;
+ margin: 21px 12px;
+ background-color: rgba(255, 255, 255, 0.4);
+ position: relative;
+ cursor: pointer;
+}
+.uni-video-progress-buffered {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 0;
+ height: 100%;
+ -webkit-transition: width 0.1s;
+ transition: width 0.1s;
+ background-color: rgba(255, 255, 255, 0.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: #ffffff;
+ 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;
+ cursor: pointer;
+}
+.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;
+ cursor: pointer;
+}
+.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: #ffffff;
+ 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: rgba(255, 255, 255, 0.8);
+ color: #000000;
+ 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: #000000;
+ 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: #000000;
+}
+.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, 0.8);
+ color: white;
+ font-size: 14px;
+ line-height: 18px;
+ padding: 6px;
+}
+
+
+uni-view {
+ display: block;
+}
+uni-view[hidden] {
+ display: none;
+}
+
+
+uni-web-view {
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+}
+uni-web-view.uni-webview--fullscreen {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+}
+
diff --git a/packages/uni-mp-weibo/dist/index.dark.css b/packages/uni-mp-weibo/dist/index.dark.css
new file mode 100644
index 00000000000..602e99810dc
--- /dev/null
+++ b/packages/uni-mp-weibo/dist/index.dark.css
@@ -0,0 +1 @@
+@media(prefers-color-scheme:dark){uni-button,uni-button[type='default']{color:#d6d6d6;background-color:#343434}.button-hover,.button-hover[type='default']{color:#d6d6d6;background-color:rgba(255,255,255,0.1)}uni-button[disabled][type='default'],uni-button[disabled]:not([type]){color:rgba(255,255,255,0.2);background-color:rgba(255,255,255,0.08)}uni-button[type='primary'][plain][disabled]{color:rgba(255,255,255,0.2);border-color:rgba(255,255,255,0.2)}uni-button[type='default'][plain]{color:#d6d6d6;border:1px solid #d6d6d6}.button-hover[type='default'][plain]{color:rgba(150,150,150,0.6);border-color:rgba(150,150,150,0.6);background-color:rgba(50,50,50,0.2)}uni-button[type='default'][plain][disabled]{border-color:hsla(0,0%,100%,0.2);color:hsla(0,0%,100%,0.2)}}@media(prefers-color-scheme:dark){.uni-picker-view-indicator:before{border-top-color:var(--UI-FG-3)}.uni-picker-view-indicator:after{border-bottom-color:var(--UI-FG-3)}.uni-picker-view-mask{background-image:-webkit-linear-gradient(top,rgba(35,35,35,0.95),rgba(35,35,35,0.6)),-webkit-linear-gradient(bottom,rgba(35,35,35,0.95),rgba(35,35,35,0.6));background-image:linear-gradient(180deg,rgba(35,35,35,0.95),rgba(35,35,35,0.6)),linear-gradient(0,rgba(35,35,35,0.95),rgba(35,35,35,0.6))}}@media(prefers-color-scheme:dark){uni-switch .uni-switch-input{border-color:#3b3b3f}uni-switch .uni-switch-input,uni-switch .uni-switch-input:before{background-color:#3b3b3f}uni-switch .uni-switch-input:after{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,0.4)}uni-switch .uni-checkbox-input{background-color:#2c2c2c;border:1px solid #656565}}@media(prefers-color-scheme:dark){html{--UI-BG-CLOLOR-ACTIVE:#373737;--UI-BORDER-CLOLOR-1:#373737;--UI-BG:#000;--UI-BG-0:#191919;--UI-BG-1:#1f1f1f;--UI-BG-2:#232323;--UI-BG-3:#2f2f2f;--UI-BG-4:#606060;--UI-BG-5:#2c2c2c;--UI-FG:#fff;--UI-FG-0:hsla(0,0%,100%,0.8);--UI-FG-HALF:hsla(0,0%,100%,0.6);--UI-FG-1:hsla(0,0%,100%,0.5);--UI-FG-2:hsla(0,0%,100%,0.3);--UI-FG-3:hsla(0,0%,100%,0.05)}.uni-mask{background:rgba(0,0,0,.6)}}@media(prefers-color-scheme:dark){uni-actionsheet .uni-actionsheet__title{background-color:var(--UI-BG-1);border-bottom-color:var(--UI-BORDER-CLOLOR-1)}uni-actionsheet .uni-actionsheet__action,uni-actionsheet .uni-actionsheet__menu{background-color:var(--UI-BG-2)}uni-actionsheet .uni-actionsheet__cell:active{background-color:var(--UI-BG-CLOLOR-ACTIVE)}uni-actionsheet .uni-actionsheet__cell:before{border-top-color:var(--UI-BORDER-CLOLOR-1);color:var(--UI-BORDER-CLOLOR-1)}}@media(prefers-color-scheme:dark){uni-modal .uni-modal{color:var(--UI-FG-0);background-color:var(--UI-BG-2)}uni-modal .uni-modal__bd{color:var(--UI-FG-1)}uni-modal .uni-modal__btn:active{color:#aaa;background-color:var(--UI-BG-CLOLOR-ACTIVE)}uni-modal .uni-modal__ft:after,uni-modal .uni-modal__btn:after{color:var(--UI-BORDER-CLOLOR-1);border-color:var(--UI-BORDER-CLOLOR-1)}}@media(prefers-color-scheme:dark){uni-toast .uni-toast{background-color:#606060;color:var(--UI-FG-0)}uni-toast .uni-icon_toast.uni-icon-error:before,uni-toast .uni-icon_toast.uni-icon-success-no-circle:before{color:rgba(255,255,255,0.9)}}@media(prefers-color-scheme:dark){uni-page-body{background-color:#191919;color:hsla(0,0%,100%,0.8)}}@media(prefers-color-scheme:dark){.uni-picker-container .uni-picker-content{background-color:var(--UI-BG-2)}.uni-picker-container .uni-picker-action.uni-picker-action-cancel{color:var(--UI-FG-0)}.uni-picker-container .uni-picker-custom{background-color:var(--UI-BG-2)}.uni-selector-select .uni-picker-item{color:var(--UI-FG-0)}.uni-picker-container .uni-picker-header:after{border-bottom-color:var(--UI-FG-3)}}
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/dist/index.umd.js b/packages/uni-mp-weibo/dist/index.umd.js
new file mode 100644
index 00000000000..fe559b6d592
--- /dev/null
+++ b/packages/uni-mp-weibo/dist/index.umd.js
@@ -0,0 +1,40494 @@
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory(require("vue-router"), require("vue"), require("@dcloudio/uni-i18n"));
+ else if(typeof define === 'function' && define.amd)
+ define([, , ], factory);
+ else if(typeof exports === 'object')
+ exports["index"] = factory(require("vue-router"), require("vue"), require("@dcloudio/uni-i18n"));
+ else
+ root["index"] = factory(root["VueRouter"], root["Vue"], root["@dcloudio/uni-i18n"]);
+})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__6389__, __WEBPACK_EXTERNAL_MODULE__8bbf__, __WEBPACK_EXTERNAL_MODULE_d46d__) {
+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");
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ "0001":
+/***/ (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__, "loadFontFace", function() { return loadFontFace; });
+/* harmony import */ var uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a118");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("db70");
+
+
+UniServiceJSBridge.subscribe('onLoadFontFaceCallback', function (_ref) {
+ var callbackId = _ref.callbackId,
+ data = _ref.data;
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbackId, data);
+});
+function loadFontFace(options, callbackId) {
+ var pageId = Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentPageId */ "a"])();
+
+ if (!pageId) {
+ return {
+ errMsg: 'loadFontFace:fail not font page'
+ };
+ }
+
+ UniServiceJSBridge.publishHandler('loadFontFace', {
+ options: options,
+ callbackId: callbackId
+ }, pageId);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "0035":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageHead_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("781d");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageHead_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageHead_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_pageHead_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "010d":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "0113":
+/***/ (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 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__);
+
+var Emitter = new vue__WEBPACK_IMPORTED_MODULE_0___default.a();
+
+function apply(ctx, method, args) {
+ return ctx[method].apply(ctx, args);
+}
+
+function $on() {
+ return apply(Emitter, '$on', Array.prototype.slice.call(arguments));
+}
+function $off() {
+ return apply(Emitter, '$off', Array.prototype.slice.call(arguments));
+}
+function $once() {
+ return apply(Emitter, '$once', Array.prototype.slice.call(arguments));
+}
+function $emit() {
+ return apply(Emitter, '$emit', Array.prototype.slice.call(arguments));
+}
+
+/***/ }),
+
+/***/ "02b5":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("e5e5");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "02c9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initPolyfill; });
+/**
+ * 补充一些环境兼容内容,如小程序 需要使用的 selectComponent...
+ * 之所以在框架内补充,而不是在 mp-runtime 中处理,是因为小程序自定义组件可能需要获取 page 对象并使用 selectComponent
+ * 故, 暂时添加到所有 vm 上
+ * @param {Object} Vue
+ */
+
+/**
+ * 先简单支持 id 和 class
+ * @param {Object} selector
+ */
+function parseSelector(selector) {
+ if (selector.indexOf('#') === 0) {
+ var id = selector.substr(1);
+ return function match(vnode) {
+ // props
+ if (vnode.componentInstance && vnode.componentInstance.id === id) {
+ return true;
+ } // attrs
+
+
+ if (vnode.data && vnode.data.attrs && vnode.data.attrs.id === id) {
+ return true;
+ }
+
+ return false;
+ };
+ } else if (selector.indexOf('.') === 0) {
+ var clazz = selector.substr(1);
+ return function match(vnode) {
+ return vnode.data && matchClass(clazz, vnode.data.staticClass, vnode.data.class);
+ };
+ }
+}
+
+var CLASS_RE = /\s+/;
+
+function matchClass(clazz) {
+ var staticClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+ var dynamicClass = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
+
+ if (staticClass) {
+ return staticClass.split(CLASS_RE).indexOf(clazz) !== -1;
+ }
+
+ if (dynamicClass && typeof dynamicClass === 'string') {
+ return dynamicClass.split(CLASS_RE).indexOf(clazz) !== -1;
+ }
+}
+
+function querySelector(vm, matchSelector) {
+ if (matchSelector(vm.$vnode || vm._vnode)) {
+ return vm;
+ }
+
+ var $children = vm.$children;
+
+ for (var i = 0; i < $children.length; i++) {
+ var childVm = querySelector($children[i], matchSelector);
+
+ if (childVm) {
+ return childVm;
+ }
+ }
+}
+
+function querySelectorAll(vm, matchSelector, ret) {
+ if (matchSelector(vm.$vnode || vm._vnode)) {
+ ret.push(vm);
+ }
+
+ var $children = vm.$children;
+
+ for (var i = 0; i < $children.length; i++) {
+ querySelectorAll($children[i], matchSelector, ret);
+ }
+
+ return ret;
+}
+
+function initPolyfill(Vue) {
+ Vue.prototype.createIntersectionObserver = function createIntersectionObserver(options) {
+ return uni.createIntersectionObserver(this, options);
+ };
+
+ Vue.prototype.createMediaQueryObserver = function createMediaQueryObserver(options) {
+ return uni.createMediaQueryObserver(this, options);
+ };
+
+ Vue.prototype.selectComponent = function selectComponent(selector) {
+ return querySelector(this, parseSelector(selector));
+ };
+
+ Vue.prototype.selectAllComponents = function selectAllComponents(selector) {
+ return querySelectorAll(this, parseSelector(selector), []);
+ };
+}
+
+/***/ }),
+
+/***/ "02ed":
+/***/ (function(module) {
+
+module.exports = JSON.parse("{\"uni.app.quit\":\"再按一次退出應用\",\"uni.async.error\":\"連接服務器超時,點擊屏幕重試\",\"uni.showActionSheet.cancel\":\"取消\",\"uni.showToast.unpaired\":\"請注意 showToast 與 hideToast 必須配對使用\",\"uni.showLoading.unpaired\":\"請注意 showLoading 與 hideLoading 必須配對使用\",\"uni.showModal.cancel\":\"取消\",\"uni.showModal.confirm\":\"確定\",\"uni.chooseImage.cancel\":\"取消\",\"uni.chooseImage.sourceType.album\":\"從相冊選擇\",\"uni.chooseImage.sourceType.camera\":\"拍攝\",\"uni.chooseVideo.cancel\":\"取消\",\"uni.chooseVideo.sourceType.album\":\"從相冊選擇\",\"uni.chooseVideo.sourceType.camera\":\"拍攝\",\"uni.chooseFile.notUserActivation\":\"文件選擇器對話框只能在由用戶激活時顯示\",\"uni.previewImage.cancel\":\"取消\",\"uni.previewImage.button.save\":\"保存圖像\",\"uni.previewImage.save.success\":\"保存圖像到相冊成功\",\"uni.previewImage.save.fail\":\"保存圖像到相冊失敗\",\"uni.setClipboardData.success\":\"內容已復制\",\"uni.scanCode.title\":\"掃碼\",\"uni.scanCode.album\":\"相冊\",\"uni.scanCode.fail\":\"識別失敗\",\"uni.scanCode.flash.on\":\"輕觸照亮\",\"uni.scanCode.flash.off\":\"輕觸關閉\",\"uni.startSoterAuthentication.authContent\":\"指紋識別中...\",\"uni.startSoterAuthentication.waitingContent\":\"無法識別\",\"uni.picker.done\":\"完成\",\"uni.picker.cancel\":\"取消\",\"uni.video.danmu\":\"彈幕\",\"uni.video.volume\":\"音量\",\"uni.button.feedback.title\":\"問題反饋\",\"uni.button.feedback.send\":\"發送\",\"uni.chooseLocation.search\":\"搜索地點\",\"uni.chooseLocation.cancel\":\"取消\"}");
+
+/***/ }),
+
+/***/ "03fa":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTopWindow", function() { return showTopWindow; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTopWindow", function() { return hideTopWindow; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showLeftWindow", function() { return showLeftWindow; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideLeftWindow", function() { return hideLeftWindow; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showRightWindow", function() { return showRightWindow; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideRightWindow", function() { return hideRightWindow; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTopWindowStyle", function() { return getTopWindowStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLeftWindowStyle", function() { return getLeftWindowStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRightWindowStyle", function() { return getRightWindowStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTopWindowStyle", function() { return setTopWindowStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setLeftWindowStyle", function() { return setLeftWindowStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setRightWindowStyle", function() { return setRightWindowStyle; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+
+function showWindow(type, show) {
+ var api = show ? 'show' : 'hide' + Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* capitalize */ "c"])(type) + 'Window';
+ var app = getApp();
+
+ if (app) {
+ var msg = app.$children[0].$refs.layout.showWindow(type, show);
+
+ if (msg) {
+ return {
+ errMsg: "".concat(api, ":fail ").concat(msg)
+ };
+ }
+
+ return {};
+ }
+
+ return {
+ errMsg: "".concat(api, ":fail app not ready")
+ };
+}
+
+function showTopWindow() {
+ return showWindow('top', true);
+}
+function hideTopWindow() {
+ return showWindow('top', false);
+}
+function showLeftWindow() {
+ return showWindow('left', true);
+}
+function hideLeftWindow() {
+ return showWindow('left', false);
+}
+function showRightWindow() {
+ return showWindow('right', true);
+}
+function hideRightWindow() {
+ return showWindow('right', false);
+}
+
+function getWindowStyle(type) {
+ var api = 'get' + Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* capitalize */ "c"])(type) + 'WindowStyle';
+ var app = getApp();
+
+ if (!app) {
+ return {
+ errMsg: "".concat(api, ":fail app not ready")
+ };
+ }
+
+ var msg = app.$children[0].$refs.layout.getWindowStyle(type);
+
+ if (typeof msg === 'string' && msg.indexOf('Window not found') !== -1) {
+ return {
+ errMsg: "".concat(api, ":fail ").concat(msg)
+ };
+ }
+
+ return msg;
+}
+
+function getTopWindowStyle(style) {
+ return getWindowStyle('top');
+}
+function getLeftWindowStyle(style) {
+ return getWindowStyle('left');
+}
+function getRightWindowStyle(style) {
+ return getWindowStyle('right');
+}
+
+function setWindowStyle(type, style) {
+ var api = 'set' + Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* capitalize */ "c"])(type) + 'WindowStyle';
+ var app = getApp();
+
+ if (!app) {
+ return {
+ errMsg: "".concat(api, ":fail app not ready")
+ };
+ }
+
+ var msg = app.$children[0].$refs.layout.setWindowStyle(type, style);
+
+ if (msg) {
+ return {
+ errMsg: "".concat(api, ":fail ").concat(msg)
+ };
+ }
+
+ return {};
+}
+
+function setTopWindowStyle(style) {
+ return setWindowStyle('top', style);
+}
+function setLeftWindowStyle(style) {
+ return setWindowStyle('left', style);
+}
+function setRightWindowStyle(style) {
+ return setWindowStyle('right', style);
+}
+
+/***/ }),
+
+/***/ "03fe":
+/***/ (function(module, exports) {
+
+
+
+/***/ }),
+
+/***/ "052f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ initOn; });
+
+// EXTERNAL MODULE: ./src/core/service/plugins/util.js
+var util = __webpack_require__("a741");
+
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/service/api/ui/pull-down-refresh.js
+var pull_down_refresh = __webpack_require__("8f41");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/service/on-web-invoke-app-service.js
+function onWebInvokeAppService(_ref, pageId) {
+ var name = _ref.name,
+ arg = _ref.arg;
+
+ if (name === 'postMessage') {// TODO 小程序后退、组件销毁、分享时通知
+ } else {
+ uni[name](arg);
+ }
+}
+// CONCATENATED MODULE: ./src/core/service/bridge/on.js
+
+
+
+function initOn(on, _ref) {
+ var getApp = _ref.getApp,
+ getCurrentPages = _ref.getCurrentPages;
+
+ function onError(err) {
+ Object(util["a" /* callAppHook */])(getApp(), 'onError', err);
+ }
+
+ function onPageNotFound(page) {
+ Object(util["a" /* callAppHook */])(getApp(), 'onPageNotFound', page);
+ }
+
+ function onResize(args, pageId) {
+ var page = getCurrentPages().find(function (page) {
+ return page.$page.id === pageId;
+ });
+ page && Object(util["b" /* callPageHook */])(page, 'onResize', args);
+ }
+
+ function onPullDownRefresh(args, pageId) {
+ var page = getCurrentPages().find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (page) {
+ Object(pull_down_refresh["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(enterOptions) {
+ Object(util["a" /* callAppHook */])(getApp(), 'onShow', enterOptions);
+ var pages = getCurrentPages();
+
+ if (pages.length === 0) {
+ return;
+ }
+
+ callCurrentPageHook('onShow');
+ }
+
+ var routeHooks = {
+ navigateTo: function navigateTo() {
+ callCurrentPageHook('onHide');
+ },
+ navigateBack: function navigateBack() {
+ callCurrentPageHook('onShow');
+ }
+ };
+
+ function onAppRoute(_ref2) {
+ var type = _ref2.type;
+ var routeHook = routeHooks[type];
+ routeHook && routeHook();
+ }
+
+ on('onError', onError);
+ on('onPageNotFound', onPageNotFound);
+
+ if (true) {
+ // 后续有时间,h5 平台也要迁移到 onAppRoute
+ on('onAppRoute', onAppRoute);
+ }
+
+ on('onAppEnterBackground', onAppEnterBackground);
+ on('onAppEnterForeground', onAppEnterForeground);
+ on('onResize', onResize);
+ on('onPullDownRefresh', onPullDownRefresh);
+ on('onTabItemTap', createCallCurrentPageHook('onTabItemTap'));
+ on('onNavigationBarButtonTap', createCallCurrentPageHook('onNavigationBarButtonTap'));
+ on('onNavigationBarSearchInputChanged', createCallCurrentPageHook('onNavigationBarSearchInputChanged'));
+ on('onNavigationBarSearchInputConfirmed', createCallCurrentPageHook('onNavigationBarSearchInputConfirmed'));
+ on('onNavigationBarSearchInputClicked', createCallCurrentPageHook('onNavigationBarSearchInputClicked'));
+ on('onNavigationBarSearchInputFocusChanged', createCallCurrentPageHook('onNavigationBarSearchInputFocusChanged'));
+ on('onWebInvokeAppService', onWebInvokeAppService);
+}
+
+/***/ }),
+
+/***/ "0729":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/view/components/cover-image/index.vue?vue&type=template&id=d8b1303a&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-cover-image',_vm._g({attrs:{"src":_vm.src}},_vm.$listeners),[_c('div',{staticClass:"uni-cover-image"},[(_vm.src)?_c('img',{attrs:{"src":_vm.$getRealPath(_vm.src)},on:{"load":_vm._load,"error":_vm._error}}):_vm._e()])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/cover-image/index.vue?vue&type=template&id=d8b1303a&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/view/components/cover-image/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ var cover_imagevue_type_script_lang_js_ = ({
+ name: 'CoverImage',
+ props: {
+ src: {
+ type: String,
+ default: ''
+ }
+ },
+ methods: {
+ _load: function _load($event) {
+ this.$trigger('load', $event);
+ },
+ _error: function _error($event) {
+ this.$trigger('error', $event);
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/cover-image/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_cover_imagevue_type_script_lang_js_ = (cover_imagevue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/view/components/cover-image/index.vue?vue&type=style&index=0&lang=css&
+var cover_imagevue_type_style_index_0_lang_css_ = __webpack_require__("0d8a");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/cover-image/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_cover_imagevue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var cover_image = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "0741":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("5bb5");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createPageMixin; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a741");
+/* harmony import */ var _create_page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("a87e");
+
+
+
+function createPageMixin() {
+ return {
+ created: function pageCreated() {
+ try {
+ var options = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* decodedQuery */ "e"])(this.$route.query);
+ Object(_create_page__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(this, options);
+ Object(_util__WEBPACK_IMPORTED_MODULE_1__[/* callPageHook */ "b"])(this, 'onLoad', options);
+ Object(_util__WEBPACK_IMPORTED_MODULE_1__[/* callPageHook */ "b"])(this, 'onShow');
+ } catch (e) {
+ console.error(e);
+ }
+
+ if (true) {
+ var onShareAppMessage = this.$options.onShareAppMessage;
+
+ if (onShareAppMessage && typeof onShareAppMessage === 'function') {
+ uni.sendShareMessage({
+ data: onShareAppMessage.call(this)
+ });
+ } else if (Array.isArray(onShareAppMessage) && onShareAppMessage.length && typeof onShareAppMessage[0] === 'function') {
+ uni.sendShareMessage({
+ data: onShareAppMessage[0].call(this)
+ });
+ } else {
+ uni.sendShareMessage({
+ data: null
+ });
+ }
+ }
+ }
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "07cc":
+/***/ (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__, "openDocument", function() { return openDocument; });
+/**
+ * 打开文档
+ * @param {*} param0
+ * @param {*} callbackId
+ */
+function openDocument(_ref, callbackId) {
+ var filePath = _ref.filePath;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ window.open(filePath);
+ invoke(callbackId, {
+ errMsg: 'openDocument:ok'
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "091a":
+/***/ (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 uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("62b5");
+/* harmony import */ var uni_helpers_windows__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("1634");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("db70");
+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_0__[/* default */ "a"])('requestComponentObserver');
+var defaultOptions = {
+ thresholds: [0],
+ initialRatio: 0,
+ observeAll: false
+};
+
+var ServiceIntersectionObserver = /*#__PURE__*/function () {
+ function ServiceIntersectionObserver(component, options) {
+ _classCallCheck(this, ServiceIntersectionObserver);
+
+ this.pageId = component.$page && component.$page.id;
+ this.component = component._$id || component; // app-plus 平台传输_$id
+
+ this.options = Object.assign({}, defaultOptions, options);
+ }
+
+ _createClass(ServiceIntersectionObserver, [{
+ 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,
+ component: this.component,
+ options: this.options
+ }, Object(uni_helpers_windows__WEBPACK_IMPORTED_MODULE_1__[/* checkInWindows */ "a"])(this.component) ? this.component : this.pageId);
+ }
+ }, {
+ key: "disconnect",
+ value: function disconnect() {
+ UniServiceJSBridge.publishHandler('destroyComponentObserver', {
+ reqId: this.reqId
+ }, Object(uni_helpers_windows__WEBPACK_IMPORTED_MODULE_1__[/* checkInWindows */ "a"])(this.component) ? this.component : this.pageId);
+ }
+ }]);
+
+ return ServiceIntersectionObserver;
+}();
+
+function createIntersectionObserver(context, options) {
+ if (!context._isVue) {
+ options = context;
+ context = null;
+ }
+
+ if (context) {
+ return new ServiceIntersectionObserver(context, options);
+ }
+
+ return new ServiceIntersectionObserver(Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentPageVm */ "b"])('createIntersectionObserver'), options);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "0998":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("010d");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "0b74":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/components/page/pageRefresh.vue?vue&type=template&id=0529dab0&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-page-refresh',[_c('div',{staticClass:"uni-page-refresh",style:({'margin-top':_vm.offset+'px'})},[_c('div',{staticClass:"uni-page-refresh-inner"},[_c('svg',{staticClass:"uni-page-refresh__icon",attrs:{"fill":_vm.color,"width":"24","height":"24","viewBox":"0 0 24 24"}},[_c('path',{attrs:{"d":"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"}}),_c('path',{attrs:{"d":"M0 0h24v24H0z","fill":"none"}})]),_c('svg',{staticClass:"uni-page-refresh__spinner",attrs:{"width":"24","height":"24","viewBox":"25 25 50 50"}},[_c('circle',{staticClass:"uni-page-refresh__path",attrs:{"stroke":_vm.color,"cx":"50","cy":"50","r":"20","fill":"none","stroke-width":"4","stroke-miterlimit":"10"}})])])])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/components/page/pageRefresh.vue?vue&type=template&id=0529dab0&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/components/page/pageRefresh.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ var pageRefreshvue_type_script_lang_js_ = ({
+ name: 'PageRefresh',
+ props: {
+ color: {
+ type: String,
+ default: '#2BD009'
+ },
+ offset: {
+ type: Number,
+ default: 0
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/components/page/pageRefresh.vue?vue&type=script&lang=js&
+ /* harmony default export */ var page_pageRefreshvue_type_script_lang_js_ = (pageRefreshvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/components/page/pageRefresh.vue?vue&type=style&index=0&lang=css&
+var pageRefreshvue_type_style_index_0_lang_css_ = __webpack_require__("ca40");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/components/page/pageRefresh.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ page_pageRefreshvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var pageRefresh = __webpack_exports__["a"] = (component.exports);
+
+/***/ }),
+
+/***/ "0baa":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chooseFile", function() { return chooseFile; });
+var MEDIA_TYPE = ['all', 'image', 'video'];
+var SOURCE_TYPES = ['album', 'camera'];
+var chooseFile = {
+ count: {
+ type: Number,
+ required: false,
+ default: 100,
+ validator: function validator(count, params) {
+ if (count <= 0) {
+ params.count = 100;
+ }
+ }
+ },
+ sourceType: {
+ type: Array,
+ required: false,
+ default: SOURCE_TYPES,
+ validator: function validator(sourceType, params) {
+ sourceType = sourceType.filter(function (sourceType) {
+ return SOURCE_TYPES.includes(sourceType);
+ });
+ params.sourceType = sourceType.length ? sourceType : SOURCE_TYPES;
+ }
+ },
+ type: {
+ type: String,
+ required: false,
+ default: 'all',
+ validator: function validator(type, params) {
+ if (!MEDIA_TYPE.includes(type)) params.type = MEDIA_TYPE[0];
+ params.type = params.type === 'all' ? params.type = '*' : params.type;
+ }
+ },
+ extension: {
+ type: Array,
+ default: [''],
+ validator: function validator(extension, params) {
+ if (extension.length === 0) {
+ return 'param extension should not be empty.';
+ }
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "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 functional 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
+ }
+}
+
+
+/***/ }),
+
+/***/ "0cee":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "downloadFile", function() { return downloadFile; });
+/* harmony import */ var uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("93af");
+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: "offProgressUpdate",
+ value: function offProgressUpdate(callback) {
+ var index = this._callbacks.indexOf(callback);
+
+ if (index >= 0) {
+ this._callbacks.splice(index, 1);
+ }
+ }
+ /**
+ * 停止任务
+ */
+
+ }, {
+ 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,
+ _ref$timeout = _ref.timeout,
+ timeout = _ref$timeout === void 0 ? __uniConfig.networkTimeout && __uniConfig.networkTimeout.request || 60 * 1000 : _ref$timeout;
+ 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;
+ var filename; // 使用 getResponseHeader 跨域时会出现警告,但相比 getAllResponseHeaders 更方便
+
+ var contentDisposition = xhr.getResponseHeader('content-disposition');
+
+ if (contentDisposition) {
+ // 暂时仅解析 filename 不解析 filename*
+ var res = contentDisposition.match(/filename="?(\S+)"?\b/);
+
+ if (res) {
+ filename = res[1];
+ }
+ }
+
+ blob.name = filename || Object(uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__[/* getFileName */ "c"])(url);
+ invoke(callbackId, {
+ errMsg: 'downloadFile:ok',
+ statusCode: statusCode,
+ tempFilePath: Object(uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__[/* fileToUrl */ "b"])(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")))
+
+/***/ }),
+
+/***/ "0d8a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("195b");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "0dd1":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "on", function() { return on; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "off", function() { return off; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "emit", function() { return emit; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribe", function() { return subscribe; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unsubscribe", function() { return unsubscribe; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeHandler", function() { return subscribeHandler; });
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8bbf");
+/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("27a7");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "invokeCallbackHandler", function() { return uni_helpers_api__WEBPACK_IMPORTED_MODULE_1__["a"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "removeCallbackHandler", function() { return uni_helpers_api__WEBPACK_IMPORTED_MODULE_1__["b"]; });
+
+/* harmony import */ var uni_platform_service_bridge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("fa2c");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishHandler", function() { return uni_platform_service_bridge__WEBPACK_IMPORTED_MODULE_2__["b"]; });
+
+
+var Emitter = new vue__WEBPACK_IMPORTED_MODULE_0___default.a();
+var on = Emitter.$on.bind(Emitter);
+var off = Emitter.$off.bind(Emitter);
+var once = Emitter.$once.bind(Emitter);
+var emit = Emitter.$emit.bind(Emitter);
+
+function subscribe(event, callback) {
+ return on('view.' + event, callback);
+}
+function unsubscribe(event, callback) {
+ return off('view.' + event, callback);
+}
+function subscribeHandler(event, args, pageId) {
+ if (false) {}
+
+ return emit('view.' + event, args, pageId);
+}
+
+
+/***/ }),
+
+/***/ "0f55":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("55e3");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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('/');
+}
+
+/***/ }),
+
+/***/ "100c":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "1029":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8af1");
+/* harmony import */ var uni_helpers_html_parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("18fd");
+/* harmony import */ var _formats__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("b253");
+/* harmony import */ var _load_script__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("93ab");
+function _typeof(obj) { "@babel/helpers - typeof"; 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 isiOS() {
+ if (false) {} else if (true) {
+ var ua = navigator.userAgent;
+ var isIOS = /iphone|ipad|ipod/i.test(ua);
+ var isMac = /Macintosh|Mac/i.test(ua);
+ var isIPadOS = isMac && navigator.maxTouchPoints > 0;
+ return isIOS || isIPadOS;
+ }
+
+ return false;
+}
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'Editor',
+ mixins: [uni_mixins__WEBPACK_IMPORTED_MODULE_0__[/* subscriber */ "g"], uni_mixins__WEBPACK_IMPORTED_MODULE_0__[/* emitter */ "a"], uni_mixins__WEBPACK_IMPORTED_MODULE_0__[/* keyboard */ "e"]],
+ props: {
+ id: {
+ type: String,
+ default: ''
+ },
+ readOnly: {
+ type: [Boolean, String],
+ default: false
+ },
+ placeholder: {
+ type: String,
+ default: ''
+ },
+ showImgSize: {
+ type: [Boolean, String],
+ default: false
+ },
+ showImgToolbar: {
+ type: [Boolean, String],
+ default: false
+ },
+ showImgResize: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ data: function data() {
+ return {
+ quillReady: false
+ };
+ },
+ computed: {},
+ watch: {
+ readOnly: function readOnly(value) {
+ if (this.quillReady) {
+ var quill = this.quill;
+ quill.enable(!value);
+
+ if (!value) {
+ quill.blur();
+ }
+ }
+ },
+ placeholder: function placeholder(value) {
+ if (this.quillReady) {
+ this.setPlaceHolder(value);
+ }
+ }
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ var imageResizeModules = [];
+
+ if (this.showImgSize) {
+ imageResizeModules.push('DisplaySize');
+ }
+
+ if (this.showImgToolbar) {
+ imageResizeModules.push('Toolbar');
+ }
+
+ if (this.showImgResize) {
+ imageResizeModules.push('Resize');
+ }
+
+ var quillSrc = false ? undefined : 'https://unpkg.com/quill@1.3.7/dist/quill.min.js';
+ Object(_load_script__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(window.Quill, quillSrc, function () {
+ if (imageResizeModules.length) {
+ var imageResizeSrc = false ? undefined : 'https://unpkg.com/quill-image-resize-mp@3.0.1/image-resize.min.js';
+ Object(_load_script__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"])(window.ImageResize, imageResizeSrc, function () {
+ _this.initQuill(imageResizeModules);
+ });
+ } else {
+ _this.initQuill(imageResizeModules);
+ }
+ });
+ },
+ methods: {
+ _textChangeHandler: function _textChangeHandler() {
+ this.$trigger('input', {}, this.getContents());
+ },
+ _handleSubscribe: function _handleSubscribe(_ref) {
+ var _this2 = this;
+
+ var type = _ref.type,
+ data = _ref.data;
+ var options = data.options,
+ callbackId = data.callbackId;
+ var quill = this.quill;
+ var Quill = window.Quill;
+ var res;
+ var range;
+ var errMsg;
+
+ if (this.quillReady) {
+ switch (type) {
+ case 'format':
+ {
+ var _options$name = options.name,
+ name = _options$name === void 0 ? '' : _options$name,
+ _options$value = options.value,
+ value = _options$value === void 0 ? false : _options$value;
+ range = quill.getSelection(true);
+ var format = quill.getFormat(range)[name] || false;
+
+ if (['bold', 'italic', 'underline', 'strike', 'ins'].includes(name)) {
+ value = !format;
+ } else if (name === 'direction') {
+ value = value === 'rtl' && format ? false : value;
+ var align = quill.getFormat(range).align;
+
+ if (value === 'rtl' && !align) {
+ quill.format('align', 'right', Quill.sources.USER);
+ } else if (!value && align === 'right') {
+ quill.format('align', false, Quill.sources.USER);
+ }
+ } else if (name === 'indent') {
+ var rtl = quill.getFormat(range).direction === 'rtl';
+ value = value === '+1';
+
+ if (rtl) {
+ value = !value;
+ }
+
+ value = value ? '+1' : '-1';
+ } else {
+ if (name === 'list') {
+ value = value === 'check' ? 'unchecked' : value;
+ format = format === 'checked' ? 'unchecked' : format;
+ }
+
+ value = format && format !== (value || false) || !format && value ? value : !format;
+ }
+
+ quill.format(name, value, Quill.sources.USER);
+ }
+ break;
+
+ case 'insertDivider':
+ range = quill.getSelection(true);
+ quill.insertText(range.index, '\n', Quill.sources.USER);
+ quill.insertEmbed(range.index + 1, 'divider', true, Quill.sources.USER);
+ quill.setSelection(range.index + 2, Quill.sources.SILENT);
+ break;
+
+ case 'insertImage':
+ {
+ range = quill.getSelection(true);
+
+ var _options$src = options.src,
+ src = _options$src === void 0 ? '' : _options$src,
+ _options$alt = options.alt,
+ alt = _options$alt === void 0 ? '' : _options$alt,
+ _options$width = options.width,
+ width = _options$width === void 0 ? '' : _options$width,
+ _options$height = options.height,
+ height = _options$height === void 0 ? '' : _options$height,
+ _options$extClass = options.extClass,
+ extClass = _options$extClass === void 0 ? '' : _options$extClass,
+ _options$data = options.data,
+ _data = _options$data === void 0 ? {} : _options$data;
+
+ var path = this.$getRealPath(src);
+ quill.insertEmbed(range.index, 'image', path, Quill.sources.SILENT);
+ var local = /^(file|blob):/.test(path) ? path : false;
+ quill.formatText(range.index, 1, 'data-local', local, Quill.sources.SILENT);
+ quill.formatText(range.index, 1, 'alt', alt, Quill.sources.SILENT);
+ quill.formatText(range.index, 1, 'width', width, Quill.sources.SILENT);
+ quill.formatText(range.index, 1, 'height', height, Quill.sources.SILENT);
+ quill.formatText(range.index, 1, 'class', extClass, Quill.sources.SILENT);
+ quill.formatText(range.index, 1, 'data-custom', Object.keys(_data).map(function (key) {
+ return "".concat(key, "=").concat(_data[key]);
+ }).join('&'), Quill.sources.SILENT);
+ quill.setSelection(range.index + 1, Quill.sources.SILENT);
+ quill.scrollIntoView();
+ setTimeout(function () {
+ _this2._textChangeHandler();
+ }, 1000);
+ }
+ break;
+
+ case 'insertText':
+ {
+ range = quill.getSelection(true);
+ var _options$text = options.text,
+ text = _options$text === void 0 ? '' : _options$text;
+ quill.insertText(range.index, text, Quill.sources.USER);
+ quill.setSelection(range.index + text.length, 0, Quill.sources.SILENT);
+ }
+ break;
+
+ case 'setContents':
+ {
+ var delta = options.delta,
+ html = options.html;
+
+ if (_typeof(delta) === 'object') {
+ quill.setContents(delta, Quill.sources.SILENT);
+ } else if (typeof html === 'string') {
+ quill.setContents(this.html2delta(html), Quill.sources.SILENT);
+ } else {
+ errMsg = 'contents is missing';
+ }
+ }
+ break;
+
+ case 'getContents':
+ res = this.getContents();
+ break;
+
+ case 'clear':
+ quill.setContents([]);
+ break;
+
+ case 'removeFormat':
+ {
+ range = quill.getSelection(true);
+ var parchment = Quill.import('parchment');
+
+ if (range.length) {
+ quill.removeFormat(range, Quill.sources.USER);
+ } else {
+ Object.keys(quill.getFormat(range)).forEach(function (key) {
+ if (parchment.query(key, parchment.Scope.INLINE)) {
+ quill.format(key, false);
+ }
+ });
+ }
+ }
+ break;
+
+ case 'undo':
+ quill.history.undo();
+ break;
+
+ case 'redo':
+ quill.history.redo();
+ break;
+
+ case 'blur':
+ quill.blur();
+ break;
+
+ case 'getSelectionText':
+ range = quill.selection.savedRange;
+ res = {
+ text: ''
+ };
+
+ if (range && range.length !== 0) {
+ res.text = quill.getText(range.index, range.length);
+ }
+
+ break;
+
+ case 'scrollIntoView':
+ quill.scrollIntoView();
+ break;
+
+ default:
+ break;
+ }
+
+ this.updateStatus(range);
+ } else {
+ errMsg = 'not ready';
+ }
+
+ if (callbackId) {
+ UniViewJSBridge.publishHandler('onEditorMethodCallback', {
+ callbackId: callbackId,
+ data: Object.assign({}, res, {
+ errMsg: "".concat(type, ":").concat(errMsg ? 'fail ' + errMsg : 'ok')
+ })
+ }, this.$page.id);
+ }
+ },
+ setPlaceHolder: function setPlaceHolder(value) {
+ var placeHolderAttrName = 'data-placeholder';
+ var QuillRoot = this.quill.root;
+ QuillRoot.getAttribute(placeHolderAttrName) !== value && QuillRoot.setAttribute(placeHolderAttrName, value);
+ },
+ initQuill: function initQuill(imageResizeModules) {
+ var _this3 = this;
+
+ var Quill = window.Quill;
+ _formats__WEBPACK_IMPORTED_MODULE_2__[/* register */ "a"](Quill);
+ var options = {
+ toolbar: false,
+ readOnly: this.readOnly,
+ placeholder: this.placeholder,
+ modules: {}
+ };
+
+ if (imageResizeModules.length) {
+ Quill.register('modules/ImageResize', window.ImageResize.default);
+ options.modules.ImageResize = {
+ modules: imageResizeModules
+ };
+ }
+
+ var quill = this.quill = new Quill(this.$el, options);
+ var $el = quill.root;
+ var events = ['focus', 'blur', 'input'];
+ events.forEach(function (name) {
+ $el.addEventListener(name, function ($event) {
+ var contents = _this3.getContents();
+
+ if (name === 'input') {
+ if (isiOS()) {
+ var regExpContent = (contents.html.match(/([\s\S]*)<\/span>/) || [])[1];
+ var placeholder = regExpContent && regExpContent.replace(/\s/g, '') ? '' : _this3.placeholder;
+
+ _this3.setPlaceHolder(placeholder);
+ }
+
+ $event.stopPropagation();
+ } else {
+ _this3.$trigger(name, $event, contents);
+ }
+ });
+ });
+ quill.on(Quill.events.TEXT_CHANGE, this._textChangeHandler);
+ quill.on(Quill.events.SELECTION_CHANGE, this.updateStatus.bind(this));
+ quill.on(Quill.events.SCROLL_OPTIMIZE, function () {
+ var range = quill.selection.getRange()[0];
+
+ _this3.updateStatus(range);
+ });
+ quill.clipboard.addMatcher(Node.ELEMENT_NODE, function (node, delta) {
+ if (_this3.skipMatcher) {
+ return delta;
+ }
+
+ delta.ops = delta.ops.filter(function (_ref2) {
+ var insert = _ref2.insert;
+ return typeof insert === 'string';
+ }).map(function (_ref3) {
+ var insert = _ref3.insert;
+ return {
+ insert: insert
+ };
+ });
+ return delta;
+ });
+ this.initKeyboard($el);
+ this.quillReady = true;
+ this.$trigger('ready', event, {});
+ },
+ getContents: function getContents() {
+ var quill = this.quill;
+ var html = quill.root.innerHTML;
+ var text = quill.getText();
+ var delta = quill.getContents();
+ return {
+ html: html,
+ text: text,
+ delta: delta
+ };
+ },
+ html2delta: function html2delta(html) {
+ var tags = ['span', 'strong', 'b', 'ins', 'em', 'i', 'u', 'a', 'del', 's', 'sub', 'sup', 'img', 'div', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'ol', 'ul', 'li', 'br'];
+ var content = '';
+ var disable;
+ Object(uni_helpers_html_parser__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(html, {
+ start: function start(tag, attrs, unary) {
+ if (!tags.includes(tag)) {
+ disable = !unary;
+ return;
+ }
+
+ disable = false;
+ var arrts = attrs.map(function (_ref4) {
+ var name = _ref4.name,
+ value = _ref4.value;
+ return "".concat(name, "=\"").concat(value, "\"");
+ }).join(' ');
+ var start = "<".concat(tag, " ").concat(arrts, " ").concat(unary ? '/' : '', ">");
+ content += start;
+ },
+ end: function end(tag) {
+ if (!disable) {
+ content += "".concat(tag, ">");
+ }
+ },
+ chars: function chars(text) {
+ if (!disable) {
+ content += text;
+ }
+ }
+ });
+ this.skipMatcher = true;
+ var delta = this.quill.clipboard.convert(content);
+ this.skipMatcher = false;
+ return delta;
+ },
+ updateStatus: function updateStatus(range) {
+ var _this4 = this;
+
+ var status = range ? this.quill.getFormat(range) : {};
+ var keys = Object.keys(status);
+
+ if (keys.length !== Object.keys(this.__status || {}).length || keys.find(function (key) {
+ return status[key] !== _this4.__status[key];
+ })) {
+ this.__status = status;
+ this.$trigger('statuschange', {}, status);
+ }
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "1082":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=7acdb8d2&
+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.style)}),(_vm.mode === 'widthFix' || _vm.mode === 'heightFix')?_c('v-uni-resize-sensor',{ref:"sensor",on:{"resize":function($event){return _vm._fixSize()}}}):_vm._e()],1)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/image/index.vue?vue&type=template&id=7acdb8d2&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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&
+function _typeof(obj) { "@babel/helpers - typeof"; 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 fixNumber(number) {
+ // fix: 解决 Chrome 浏览器上某些情况下导致 1px 缝隙的问题
+ if ((typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) && navigator.vendor === 'Google Inc.' && number > 10) {
+ number = Math.round(number / 2) * 2;
+ }
+
+ return number;
+}
+
+/* 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
+ },
+ draggable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ data: function data() {
+ return {
+ originalWidth: 0,
+ originalHeight: 0,
+ originalStyle: {
+ width: '',
+ height: ''
+ },
+ contentPath: ''
+ };
+ },
+ computed: {
+ ratio: function ratio() {
+ return this.originalWidth && this.originalHeight ? this.originalWidth / this.originalHeight : 0;
+ },
+ style: function style() {
+ 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':
+ case 'heightFix':
+ 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-image': this.contentPath ? "url(\"".concat(this.contentPath, "\")") : 'none',
+ 'background-position': position,
+ 'background-size': size,
+ 'background-repeat': repeat
+ };
+ }
+ },
+ watch: {
+ src: function src(newValue, oldValue) {
+ this._loadImage();
+ },
+ mode: function mode(newValue, oldValue) {
+ if (oldValue === 'widthFix' || oldValue === 'heightFix') {
+ this._resetSize();
+ }
+
+ if (newValue === 'widthFix' || newValue === 'heightFix') {
+ this._fixSize();
+ }
+ },
+ contentPath: function contentPath(val) {
+ if (!val && this.__img) {
+ this.__img.remove();
+
+ delete this.__img;
+ }
+ }
+ },
+ mounted: function mounted() {
+ this.originalStyle.width = this.$el.style.width || '';
+ this.originalStyle.height = this.$el.style.height || '';
+
+ this._loadImage();
+ },
+ beforeDestroy: function beforeDestroy() {
+ this._clearImage();
+ },
+ methods: {
+ _fixSize: function _fixSize() {
+ if (this.ratio) {
+ var $el = this.$el;
+
+ if (this.mode === 'widthFix') {
+ var width = $el.offsetWidth;
+
+ if (width) {
+ $el.style.height = fixNumber(width / this.ratio) + 'px';
+ }
+ } else if (this.mode === 'heightFix') {
+ var height = $el.offsetHeight;
+
+ if (height) {
+ $el.style.width = fixNumber(height * this.ratio) + 'px';
+ }
+ }
+ }
+
+ window.dispatchEvent(new CustomEvent('updateview'));
+ },
+ _resetSize: function _resetSize() {
+ this.$el.style.width = this.originalStyle.width;
+ this.$el.style.height = this.originalStyle.height;
+ },
+ _resetData: function _resetData() {
+ this.originalWidth = 0;
+ this.originalHeight = 0;
+ this.contentPath = '';
+ },
+ _loadImage: function _loadImage() {
+ var _this = this;
+
+ var realImagePath = this.$getRealPath(this.src);
+
+ if (realImagePath) {
+ var img = this._img = this._img || new Image();
+
+ img.onload = function ($event) {
+ _this._img = null;
+ var width = _this.originalWidth = img.width;
+ var height = _this.originalHeight = img.height;
+
+ _this._fixSize();
+
+ _this.contentPath = realImagePath;
+ img.draggable = _this.draggable;
+
+ if (_this.__img) {
+ _this.__img.remove();
+ }
+
+ _this.__img = img;
+
+ _this.$el.appendChild(img);
+
+ _this.$trigger('load', $event, {
+ width: width,
+ height: height
+ });
+ };
+
+ img.onerror = function ($event) {
+ _this._img = null;
+
+ _this._resetData(); // 与微信小程序保持一致,保留之前样式
+ // this._resetSize()
+
+
+ _this.$trigger('error', $event, {
+ errMsg: "GET ".concat(_this.src, " 404 (Not Found)")
+ });
+ };
+
+ img.src = realImagePath;
+ } else {
+ this._clearImage();
+
+ this._resetData(); // 与微信小程序保持一致,保留之前样式
+ // this._resetSize()
+
+ }
+ },
+ _clearImage: function _clearImage() {
+ var img = this._img;
+
+ if (img) {
+ img.onload = null;
+ img.onerror = null;
+ this._img = null;
+ }
+ }
+ }
+});
+// 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 uni_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a6b0");
+/* harmony import */ var _router_guard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("23e5");
+
+
+var appVm = false;
+function getApp() {
+ return appVm;
+}
+function getCurrentPages() {
+ var isAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ var ignoreError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+ var pages = [];
+ var app = getApp();
+
+ if (!app) {
+ if (ignoreError) {
+ 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';
+ });
+ var layoutVm = childrenVm.$children.find(function (vm) {
+ return vm.$options.name === 'Layout';
+ });
+
+ if (layoutVm) {
+ childrenVm = layoutVm;
+ }
+
+ 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 pageBody = vm.$children[0].$children.find(function (vm) {
+ return vm.$options.name === 'PageBody';
+ });
+ var pageVm = pageBody && 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(Vue, vm, routes) {
+ appVm = vm;
+ appVm.$vm = vm;
+ appVm.globalData = appVm.$options.globalData || {};
+ Object(uni_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__[/* initAppLocale */ "d"])(Vue, appVm); // initEvents(appVm)
+
+ Object(_router_guard__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(appVm, routes);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "11d0":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_image_view_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a92f");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_image_view_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_image_view_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_image_view_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "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__("8ef5");
+
+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
+ }
+};
+
+/***/ }),
+
+/***/ "1506":
+/***/ (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__, "operateVideoPlayer", function() { return operateVideoPlayer; });
+function operateVideoPlayer(videoId, pageVm, type, data) {
+ var pageId = pageVm.$page.id;
+ UniServiceJSBridge.publishHandler(pageId + '-video-' + videoId, {
+ videoId: videoId,
+ type: type,
+ data: data
+ }, pageId);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "1585":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addPhoneContact", function() { return addPhoneContact; });
+var addPhoneContact = {
+ firstName: {
+ type: String,
+ required: true,
+ validator: function validator(firstName) {
+ if (!firstName) {
+ return 'addPhoneContact:fail parameter error: parameter.firstName should not be empty String;';
+ }
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "1634":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return checkInWindows; });
+var WINDOW_NAMES = ['VUniLeftWindow', 'VUniTopWindow', 'VUniRightWindow'];
+function checkInWindows(vm) {
+ if (false) {}
+
+ while (vm) {
+ if (WINDOW_NAMES.indexOf(vm.$options.name) !== -1) {
+ return true;
+ }
+
+ vm = vm.$parent;
+ }
+}
+
+/***/ }),
+
+/***/ "170b":
+/***/ (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; });
+var _UniServiceJSBridge = UniServiceJSBridge,
+ emit = _UniServiceJSBridge.emit,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+function showModal(args, callbackId) {
+ emit('onShowModal', args, function (res) {
+ invoke(callbackId, res);
+ });
+}
+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")))
+
+/***/ }),
+
+/***/ "1757":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "17fd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=78f9b380&
+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,"mousedown":_vm._hoverMousedown,"mouseup":_vm._hoverMouseup,"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=78f9b380&
+
+// EXTERNAL MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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__("ac0f");
+
+// 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);
+
+/***/ }),
+
+/***/ "1800":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getWindowOffset; });
+/* harmony import */ var uni_helpers_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("65a8");
+/* harmony import */ var safe_area_insets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("d8c8");
+/* harmony import */ var safe_area_insets__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(safe_area_insets__WEBPACK_IMPORTED_MODULE_1__);
+
+
+function getWindowOffset() {
+ if (uni.canIUse('css.var')) {
+ var style = document.documentElement.style;
+
+ var _top = parseInt((style.getPropertyValue('--window-top').match(/\d+/) || ['0'])[0]);
+
+ var _bottom = parseInt((style.getPropertyValue('--window-bottom').match(/\d+/) || ['0'])[0]);
+
+ var left = parseInt((style.getPropertyValue('--window-left').match(/\d+/) || ['0'])[0]);
+ var right = parseInt((style.getPropertyValue('--window-right').match(/\d+/) || ['0'])[0]);
+ var topWindowHeight = parseInt((style.getPropertyValue('--top-window-height').match(/\d+/) || ['0'])[0]);
+ return {
+ top: (_top ? _top + safe_area_insets__WEBPACK_IMPORTED_MODULE_1___default.a.top : 0) + (topWindowHeight || 0),
+ bottom: _bottom ? _bottom + safe_area_insets__WEBPACK_IMPORTED_MODULE_1___default.a.bottom : 0,
+ left: left ? left + safe_area_insets__WEBPACK_IMPORTED_MODULE_1___default.a.left : 0,
+ right: right ? right + safe_area_insets__WEBPACK_IMPORTED_MODULE_1___default.a.right : 0
+ };
+ }
+
+ var top = 0;
+ var bottom = 0;
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ var pageVm = pages[pages.length - 1].$parent.$parent;
+ var navigationBarType = pageVm.navigationBar.type;
+ top = navigationBarType === 'default' || navigationBarType === 'float' ? uni_helpers_constants__WEBPACK_IMPORTED_MODULE_0__[/* NAVBAR_HEIGHT */ "a"] : 0;
+ }
+
+ var app = getApp();
+
+ if (app) {
+ bottom = app.$children[0] && app.$children[0].showTabBar ? uni_helpers_constants__WEBPACK_IMPORTED_MODULE_0__[/* TABBAR_HEIGHT */ "d"] : 0;
+ }
+
+ return {
+ top: top,
+ bottom: bottom,
+ left: 0,
+ right: 0
+ };
+}
+
+/***/ }),
+
+/***/ "1889":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+var api = Object.create(null);
+
+var modules = __webpack_require__("c7cf");
+
+modules.keys().forEach(function (key) {
+ Object.assign(api, modules(key));
+});
+/* harmony default export */ __webpack_exports__["a"] = (api);
+
+/***/ }),
+
+/***/ "18bf":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return initScrollBounce; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return disableScrollBounce; });
+function initScrollBounce() {}
+function disableScrollBounce(_ref) {
+ var disable = _ref.disable;
+}
+
+/***/ }),
+
+/***/ "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;
+}
+
+/***/ }),
+
+/***/ "1934":
+/***/ (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
+ }
+};
+
+/***/ }),
+
+/***/ "1955":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__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");
+
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/helpers/scroll.js
+var helpers_scroll = __webpack_require__("18bf");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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&
+
+
+
+
+
+
+function initClick(dom) {
+ var MAX_MOVE = 20;
+ var x = 0;
+ var y = 0;
+ dom.addEventListener('touchstart', function (event) {
+ var info = event.changedTouches[0];
+ x = info.clientX;
+ y = info.clientY;
+ });
+ dom.addEventListener('touchend', function (event) {
+ var info = event.changedTouches[0];
+
+ if (Math.abs(info.clientX - x) < MAX_MOVE && Math.abs(info.clientY - y) < MAX_MOVE) {
+ var customEvent = new CustomEvent('click', {
+ bubbles: true,
+ cancelable: true,
+ target: event.target,
+ currentTarget: event.currentTarget
+ });
+ ['screenX', 'screenY', 'clientX', 'clientY', 'pageX', 'pageY'].forEach(function (key) {
+ customEvent[key] = info[key];
+ });
+ event.target.dispatchEvent(customEvent);
+ }
+ });
+}
+
+/* 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.deltaY = 0;
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ this.touchtrack(this.$refs.main, '_handleTrack', true);
+ this.setCurrent(this.current);
+ this.$nextTick(function () {
+ _this.init();
+
+ _this.update();
+ });
+ initClick(this.$el);
+ Object(helpers_scroll["b" /* initScrollBounce */])();
+ var $vm = this;
+
+ while ($vm) {
+ var scopeId = $vm.$options._scopeId;
+
+ if (scopeId) {
+ this.$refs.indicator.setAttribute(scopeId, '');
+ }
+
+ $vm = $vm.$parent;
+ }
+ },
+ 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);
+
+ Object(helpers_scroll["a" /* disableScrollBounce */])({
+ disable: true
+ });
+ break;
+
+ case 'move':
+ this._handleTouchMove(e);
+
+ e.stopPropagation();
+ break;
+
+ case 'end':
+ case 'cancel':
+ this._handleTouchEnd(e);
+
+ Object(helpers_scroll["a" /* disableScrollBounce */])({
+ disable: false
+ });
+ }
+ }
+ },
+ _handleTap: function _handleTap(_ref) {
+ var clientY = _ref.clientY;
+
+ if (!this._scroller.isScrolling()) {
+ var rect = this.$el.getBoundingClientRect();
+ var r = clientY - rect.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;
+ var current = Math.min(this.current + s, this.length - 1);
+ this.current = current = Math.max(current, 0);
+
+ this._scroller.scrollTo(current * this.indicatorHeight);
+ }
+ }
+ },
+ _handleWheel: function _handleWheel($event) {
+ var deltaY = this.deltaY + $event.deltaY;
+
+ if (Math.abs(deltaY) > 10) {
+ this.deltaY = 0;
+ var current = Math.min(this.current + (deltaY < 0 ? -1 : 1), this.length - 1);
+ this.current = current = Math.max(current, 0);
+
+ this._scroller.scrollTo(current * this.indicatorHeight);
+ } else {
+ this.deltaY = deltaY;
+ }
+
+ $event.preventDefault();
+ },
+ 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 current = Math.min(_this3.current, _this3.length - 1);
+ current = Math.max(current, 0);
+
+ _this3._scroller.update(current * _this3.indicatorHeight, undefined, _this3.indicatorHeight);
+ });
+ },
+ _resize: function _resize(_ref2) {
+ var height = _ref2.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: {
+ on: this.$listeners
+ }
+ }, [createElement('div', {
+ ref: 'main',
+ staticClass: 'uni-picker-view-group',
+ on: {
+ wheel: this._handleWheel,
+ click: this._handleTap
+ }
+ }, [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);
+
+/***/ }),
+
+/***/ "195b":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "19c4":
+/***/ (function(module, exports, __webpack_require__) {
+
+var map = {
+ "./base/base64.js": "6481",
+ "./base/can-i-use.js": "957a",
+ "./base/event-bus.js": "b0ef",
+ "./base/interceptor.js": "a954",
+ "./base/upx2px.js": "2289",
+ "./context/canvas.js": "82b9",
+ "./context/context.js": "3bfb",
+ "./device/add-phone-contact.js": "1585",
+ "./device/make-phone-call.js": "f102",
+ "./device/scan-code.js": "ea0f",
+ "./device/set-clipboard-data.js": "b501",
+ "./file/file.js": "2da2",
+ "./file/open-document.js": "2604",
+ "./location/choose-location.js": "e5bb",
+ "./location/get-location.js": "19d9",
+ "./location/open-location.js": "70bb",
+ "./media/choose-file.js": "0baa",
+ "./media/choose-image.js": "f1b2",
+ "./media/choose-video.js": "ed9f",
+ "./media/compress-image.js": "dc12",
+ "./media/compress-video.js": "5243",
+ "./media/get-image-info.js": "b866",
+ "./media/get-video-info.js": "3f15",
+ "./media/preview-image.js": "11fb",
+ "./media/save-image-to-photos-album.js": "4f53",
+ "./network/download-file.js": "439a",
+ "./network/request.js": "a201",
+ "./network/socket.js": "abb2",
+ "./network/upload-file.js": "9a3e",
+ "./plugin/get-provider.js": "4e7c",
+ "./plugin/load-sub-package.js": "d013",
+ "./plugin/pre-login.js": "f68f",
+ "./route/route.js": "332a",
+ "./storage/storage.js": "ec33",
+ "./ui/load-font-face.js": "5ff9",
+ "./ui/navigation-bar.js": "1934",
+ "./ui/page-scroll-to.js": "232e",
+ "./ui/popup.js": "2246",
+ "./ui/tab-bar.js": "5621"
+};
+
+
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ if(!__webpack_require__.o(map, req)) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return map[req];
+}
+webpackContext.keys = function webpackContextKeys() {
+ return Object.keys(map);
+};
+webpackContext.resolve = webpackContextResolve;
+module.exports = webpackContext;
+webpackContext.id = "19c4";
+
+/***/ }),
+
+/***/ "19d9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLocation", function() { return getLocation; });
+var coordTypes = ['wgs84', 'gcj02'];
+var getLocation = {
+ type: {
+ type: String,
+ validator: function validator(value, params) {
+ value = (value || '').toLowerCase();
+ params.type = coordTypes.indexOf(value) < 0 ? coordTypes[0] : value;
+ }
+ },
+ altitude: {
+ type: Boolean,
+ default: false
+ }
+};
+
+/***/ }),
+
+/***/ "1b3d":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+/* harmony default export */ __webpack_exports__["default"] = ({
+ data: function data() {
+ return {
+ previewImage: {
+ visible: false
+ }
+ };
+ },
+ created: function created() {
+ var _this = this;
+
+ UniServiceJSBridge.on('onShowPreviewImage', function (args, callback) {
+ _this.previewImage = Object.assign({}, args, {
+ visible: true
+ });
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(callback) && _this.$nextTick(callback);
+ });
+ UniServiceJSBridge.on('onClosePreviewImage', function (callback) {
+ _this._onPreviewClose();
+
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(callback) && _this.$nextTick(callback);
+ });
+ UniServiceJSBridge.on('onHidePopup', function (_) {
+ _this.previewImage.visible = false;
+ });
+ },
+ methods: {
+ // 处理 preview-image close 回调
+ _onPreviewClose: function _onPreviewClose(res) {
+ this.previewImage.visible = false;
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "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);
+
+ if (this._contextId) {
+ this._toggleListeners('unsubscribe', this._contextId);
+ }
+ },
+ methods: {
+ _toggleListeners: function _toggleListeners(type, id, watch) {
+ if (watch && !id) {
+ // id被置空
+ return;
+ }
+
+ if (!Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(this._handleSubscribe)) {
+ return;
+ } // 纠正VUniVideo等组件命名为Video
+
+
+ UniViewJSBridge[type](this.$page.id + '-' + this.$options.name.replace(/VUni([A-Z])/, '$1').toLowerCase() + '-' + id, this._handleSubscribe);
+ },
+ _getContextInfo: function _getContextInfo() {
+ var id = "context-".concat(this._uid);
+
+ if (!this._contextId) {
+ this._toggleListeners('subscribe', id);
+
+ this._contextId = id;
+ }
+
+ return {
+ name: this.$options.name.replace(/VUni([A-Z])/, '$1').toLowerCase(),
+ id: id,
+ page: this.$page.id
+ };
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "1c64":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("97b9");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "1c73":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return requestMediaQueryObserver; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return destroyMediaQueryObserver; });
+var mediaQueryObservers = {};
+var listeners = {}; // 用公用对象存储监听器
+// 拼接媒体查询条件
+
+function handleMediaQueryStr($props) {
+ var mediaQueryStr = [];
+ var propsMenu = ['width', 'minWidth', 'maxWidth', 'height', 'minHeight', 'maxHeight', 'orientation'];
+
+ for (var _i = 0, _propsMenu = propsMenu; _i < _propsMenu.length; _i++) {
+ var item = _propsMenu[_i];
+
+ if (item !== 'orientation' && $props[item] !== '' && Number($props[item]) >= 0) {
+ mediaQueryStr.push("(".concat(humpToLine(item), ": ").concat(Number($props[item]), "px)"));
+ }
+
+ if (item === 'orientation' && $props[item]) {
+ mediaQueryStr.push("(".concat(humpToLine(item), ": ").concat($props[item], ")"));
+ }
+ }
+
+ mediaQueryStr = mediaQueryStr.join(' and ');
+ return mediaQueryStr;
+}
+
+function humpToLine(name) {
+ return name.replace(/([A-Z])/g, '-$1').toLowerCase();
+} // 请求媒体查询对象
+
+
+function requestMediaQueryObserver(_ref) {
+ var reqId = _ref.reqId,
+ options = _ref.options;
+ // 创建一个媒体查询对象
+ var mediaQueryObserver = mediaQueryObservers[reqId] = window.matchMedia(handleMediaQueryStr(options)); // 创建一个监听器
+
+ var listener = listeners[reqId] = function (e) {
+ UniViewJSBridge.publishHandler('onRequestMediaQueryObserver', {
+ reqId: reqId,
+ res: e.matches
+ });
+ };
+
+ listener(mediaQueryObserver); // 监听前执行一次媒体查询
+
+ mediaQueryObserver.addListener(listener);
+} // 销毁媒体查询对象
+
+function destroyMediaQueryObserver(_ref2) {
+ var reqId = _ref2.reqId;
+ var listener = listeners[reqId]; // 需要移除的某个监听
+
+ var mediaQueryObserver = mediaQueryObservers[reqId];
+
+ if (mediaQueryObserver) {
+ mediaQueryObserver.removeListener(listener); // 移除监听
+
+ delete mediaQueryObservers[reqId];
+ UniViewJSBridge.publishHandler('onRequestMediaQueryObserver', {
+ reqId: reqId,
+ reqEnd: true
+ });
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "1ca3":
+/***/ (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__);
+
+function base64ToArrayBuffer(str) {
+ return Object(base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0__["decode"])(str);
+}
+function arrayBufferToBase64(buffer) {
+ return Object(base64_arraybuffer__WEBPACK_IMPORTED_MODULE_0__["encode"])(buffer);
+}
+
+/***/ }),
+
+/***/ "1e4d":
+/***/ (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);
+}
+
+/***/ }),
+
+/***/ "1efd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__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/mp-weibo/helpers/get-real-path.js
+var get_real_path = __webpack_require__("8ef5");
+
+// 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) {
+ if ( true && src.startsWith('Temp')) {
+ return "../../".concat(src);
+ }
+
+ return src ? Object(get_real_path["a" /* default */])(src) : 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) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function converPx(value) {
+ if (/^-?\d+[ur]px$/i.test(value)) {
+ return value.replace(/(^-?\d+)[ur]px$/i, function (text, num) {
+ return "".concat(uni.upx2px(parseFloat(num)), "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', 'background-color'];
+ 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) >= 0) {
+ args.length = 1;
+ }
+
+ transform.push("".concat(type, "(").concat(args.join(','), ")"));
+ } else if (animateTypes3.concat(animateTypes4).includes(args[0])) {
+ type = args[0];
+ var value = args[1];
+ 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);
+ }
+ }
+
+ setTimeout(function () {
+ animate();
+ }, 0);
+}
+/* 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__("9b79")];
+var components_elements = {};
+
+if (false) { var key, components_module; }
+
+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];
+
+ if (!componentConfig.functional) {
+ componentConfig.mixins.push(animation);
+ }
+
+ componentConfig.name = 'VUni' + componentConfig.name;
+ componentConfig.isReserved = true; // 全局注册组件
+
+ external_commonjs_vue_commonjs2_vue_root_Vue_default.a.component(componentConfig.name, componentConfig);
+ });
+});
+
+/***/ }),
+
+/***/ "1fe2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/view/components/view/index.vue?vue&type=template&id=a1b76a64&
+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,"mousedown":_vm._hoverMousedown,"mouseup":_vm._hoverMouseup}},_vm.$listeners),[_vm._t("default")],2):_c('uni-view',_vm._g({},_vm.$listeners),[_vm._t("default")],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/view/index.vue?vue&type=template&id=a1b76a64&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/hover.js
+var hover = __webpack_require__("83a6");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/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/platforms/mp-weibo/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/platforms/mp-weibo/view/components/view/index.vue?vue&type=style&index=0&lang=css&
+var viewvue_type_style_index_0_lang_css_ = __webpack_require__("39fc");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/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);
+
+/***/ }),
+
+/***/ "1ff3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "uploadFile", function() { return uploadFile; });
+/* harmony import */ var uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a118");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("db70");
+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 UploadTask = /*#__PURE__*/function () {
+ function UploadTask(uploadTaskId, callbackId) {
+ _classCallCheck(this, UploadTask);
+
+ this.id = uploadTaskId;
+ this._callbackId = callbackId;
+ this._callbacks = [];
+ }
+
+ _createClass(UploadTask, [{
+ key: "abort",
+ value: function abort() {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('operateUploadTask', {
+ uploadTaskId: this.id,
+ operationType: 'abort'
+ });
+ }
+ }, {
+ key: "onProgressUpdate",
+ value: function onProgressUpdate(callback) {
+ if (typeof callback !== 'function') {
+ return;
+ }
+
+ this._callbacks.push(callback);
+ }
+ }, {
+ key: "onHeadersReceived",
+ value: function onHeadersReceived() {}
+ }, {
+ key: "offProgressUpdate",
+ value: function offProgressUpdate(callback) {
+ var index = this._callbacks.indexOf(callback);
+
+ if (index >= 0) {
+ this._callbacks.splice(index, 1);
+ }
+ }
+ }, {
+ key: "offHeadersReceived",
+ value: function offHeadersReceived() {}
+ }]);
+
+ return UploadTask;
+}();
+
+var uploadTasks = Object.create(null);
+Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* onMethod */ "d"])('onUploadTaskStateChange', function (_ref) {
+ var uploadTaskId = _ref.uploadTaskId,
+ state = _ref.state,
+ data = _ref.data,
+ statusCode = _ref.statusCode,
+ progress = _ref.progress,
+ totalBytesSent = _ref.totalBytesSent,
+ totalBytesExpectedToSend = _ref.totalBytesExpectedToSend,
+ errMsg = _ref.errMsg;
+ var uploadTask = uploadTasks[uploadTaskId];
+ var callbackId = uploadTask._callbackId;
+
+ switch (state) {
+ case 'progressUpdate':
+ uploadTask._callbacks.forEach(function (callback) {
+ callback({
+ progress: progress,
+ totalBytesSent: totalBytesSent,
+ totalBytesExpectedToSend: totalBytesExpectedToSend
+ });
+ });
+
+ break;
+
+ case 'success':
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbackId, {
+ data: data,
+ statusCode: statusCode,
+ errMsg: 'request:ok'
+ });
+ // eslint-disable-next-line no-fallthrough
+
+ case 'fail':
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'request:fail ' + errMsg
+ });
+ // eslint-disable-next-line no-fallthrough
+
+ default:
+ // progressUpdate 可能晚于 success
+ setTimeout(function () {
+ delete uploadTasks[uploadTaskId];
+ }, 100);
+ break;
+ }
+});
+function uploadFile(args, callbackId) {
+ var _invokeMethod = Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('createUploadTask', args),
+ uploadTaskId = _invokeMethod.uploadTaskId;
+
+ var task = new UploadTask(uploadTaskId, callbackId);
+ uploadTasks[uploadTaskId] = task;
+ return task;
+}
+
+/***/ }),
+
+/***/ "2209":
+/***/ (function(module) {
+
+module.exports = JSON.parse("{\"uni.app.quit\":\"再按一次退出应用\",\"uni.async.error\":\"连接服务器超时,点击屏幕重试\",\"uni.showActionSheet.cancel\":\"取消\",\"uni.showToast.unpaired\":\"请注意 showToast 与 hideToast 必须配对使用\",\"uni.showLoading.unpaired\":\"请注意 showLoading 与 hideLoading 必须配对使用\",\"uni.showModal.cancel\":\"取消\",\"uni.showModal.confirm\":\"确定\",\"uni.chooseImage.cancel\":\"取消\",\"uni.chooseImage.sourceType.album\":\"从相册选择\",\"uni.chooseImage.sourceType.camera\":\"拍摄\",\"uni.chooseVideo.cancel\":\"取消\",\"uni.chooseVideo.sourceType.album\":\"从相册选择\",\"uni.chooseVideo.sourceType.camera\":\"拍摄\",\"uni.chooseFile.notUserActivation\":\"文件选择器对话框只能在由用户激活时显示\",\"uni.previewImage.cancel\":\"取消\",\"uni.previewImage.button.save\":\"保存图像\",\"uni.previewImage.save.success\":\"保存图像到相册成功\",\"uni.previewImage.save.fail\":\"保存图像到相册失败\",\"uni.setClipboardData.success\":\"内容已复制\",\"uni.scanCode.title\":\"扫码\",\"uni.scanCode.album\":\"相册\",\"uni.scanCode.fail\":\"识别失败\",\"uni.scanCode.flash.on\":\"轻触照亮\",\"uni.scanCode.flash.off\":\"轻触关闭\",\"uni.startSoterAuthentication.authContent\":\"指纹识别中...\",\"uni.startSoterAuthentication.waitingContent\":\"无法识别\",\"uni.picker.done\":\"完成\",\"uni.picker.cancel\":\"取消\",\"uni.video.danmu\":\"弹幕\",\"uni.video.volume\":\"音量\",\"uni.button.feedback.title\":\"问题反馈\",\"uni.button.feedback.send\":\"发送\",\"uni.chooseLocation.search\":\"搜索地点\",\"uni.chooseLocation.cancel\":\"取消\"}");
+
+/***/ }),
+
+/***/ "220e":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge, console) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("ffdc");
+/* harmony import */ var uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("a6b0");
+/* harmony import */ var _helpers_location__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("636c");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'SystemChooseLocation',
+ filters: {
+ distance: function distance(_distance) {
+ if (_distance > 100) {
+ return "".concat(_distance > 1000 ? (_distance / 1000).toFixed(1) + 'k' : _distance.toFixed(0), "m | ");
+ } else if (_distance > 0) {
+ return '<100m | ';
+ } else {
+ return '';
+ }
+ }
+ },
+ mixins: [uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_2__[/* i18nMixin */ "c"]],
+ data: function data() {
+ var _this$$route$query = this.$route.query,
+ latitude = _this$$route$query.latitude,
+ longitude = _this$$route$query.longitude;
+ return {
+ latitude: latitude,
+ longitude: longitude,
+ pageSize: 20,
+ pageIndex: 1,
+ hasNextPage: true,
+ nextPage: null,
+ selectedIndex: -1,
+ list: [],
+ keyword: '',
+ searching: false,
+ loading: true,
+ adcode: '',
+ locationStyle: "background-image: url(\"".concat(_helpers_location__WEBPACK_IMPORTED_MODULE_3__[/* ICON_PATH_TARGET */ "b"], "\")")
+ };
+ },
+ computed: {
+ selected: function selected() {
+ return this.list[this.selectedIndex];
+ },
+ boundary: function boundary() {
+ return this.adcode ? "region(".concat(this.adcode, ",1,").concat(this.latitude, ",").concat(this.longitude, ")") : "nearby(".concat(this.latitude, ",").concat(this.longitude, ",5000)");
+ }
+ },
+ created: function created() {
+ var _this = this;
+
+ if (!this.latitude || !this.longitude) {
+ this.moveToLocation();
+ }
+
+ this.search = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* debounce */ "d"])(function () {
+ _this.reset();
+
+ if (_this.keyword) {
+ _this.getList();
+ }
+ }, 1000);
+ this.$watch('searching', function (val) {
+ _this.reset();
+
+ if (!val) {
+ _this.getList();
+ }
+ });
+ },
+ methods: {
+ choose: function choose() {
+ if (this.selected) {
+ UniViewJSBridge.publishHandler('onChooseLocation', Object.assign({}, this.selected));
+ getApp().$router.back();
+ }
+ },
+ back: function back() {
+ UniViewJSBridge.publishHandler('onChooseLocation', null);
+ getApp().$router.back();
+ },
+ moveToLocation: function moveToLocation() {
+ uni.getLocation({
+ type: 'gcj02',
+ success: this.move.bind(this),
+ fail: function fail() {// this.move({
+ // latitude: 39.90960456049752,
+ // longitude: 116.3972282409668
+ // })
+ }
+ });
+ },
+ onRegionChange: function onRegionChange(_ref) {
+ var centerLocation = _ref.detail.centerLocation;
+
+ if (centerLocation) {
+ // TODO 图钉 icon 动画
+ this.move(centerLocation);
+ }
+ },
+ pushData: function pushData(array) {
+ var _this2 = this;
+
+ array.forEach(function (item) {
+ _this2.list.push({
+ name: item.title || item.name,
+ address: item.address,
+ distance: item._distance || item.distance,
+ latitude: item.location.lat,
+ longitude: item.location.lng
+ });
+ });
+ },
+ getList: function getList() {
+ var _this3 = this;
+
+ this.loading = true;
+ var mapInfo = Object(_helpers_location__WEBPACK_IMPORTED_MODULE_3__[/* getMapInfo */ "e"])();
+
+ if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_3__[/* MapType */ "d"].GOOGLE) {
+ if (this.pageIndex > 1 && this.nextPage) {
+ this.nextPage();
+ return;
+ }
+
+ var service = new window.google.maps.places.PlacesService(document.createElement('div'));
+ service[this.searching ? 'textSearch' : 'nearbySearch']({
+ location: {
+ lat: this.latitude,
+ lng: this.longitude
+ },
+ query: this.keyword,
+ radius: 5000
+ }, function (results, state, page) {
+ _this3.loading = false;
+
+ if (results && results.length) {
+ results.forEach(function (item) {
+ _this3.list.push({
+ name: item.name || '',
+ address: item.vicinity || item.formatted_address || '',
+ distance: 0,
+ latitude: item.geometry.location.lat(),
+ longitude: item.geometry.location.lng()
+ });
+ });
+ }
+
+ if (page) {
+ if (!page.hasNextPage) {
+ _this3.hasNextPage = false;
+ } else {
+ _this3.nextPage = function () {
+ page.nextPage();
+ };
+ }
+ }
+ });
+ } else if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_3__[/* MapType */ "d"].QQ) {
+ var url = this.searching ? "https://apis.map.qq.com/ws/place/v1/search?output=jsonp&key=".concat(mapInfo.key, "&boundary=").concat(this.boundary, "&keyword=").concat(this.keyword, "&page_size=").concat(this.pageSize, "&page_index=").concat(this.pageIndex) : "https://apis.map.qq.com/ws/geocoder/v1/?output=jsonp&key=".concat(mapInfo.key, "&location=").concat(this.latitude, ",").concat(this.longitude, "&get_poi=1&poi_options=page_size=").concat(this.pageSize, ";page_index=").concat(this.pageIndex); // TODO 列表加载失败提示
+
+ Object(_helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_1__[/* getJSONP */ "a"])(url, {
+ callback: 'callback'
+ }, function (res) {
+ _this3.loading = false;
+
+ if (_this3.searching && 'data' in res && res.data.length) {
+ _this3.pushData(res.data);
+ } else if ('result' in res) {
+ var result = res.result;
+ _this3.adcode = result.ad_info ? result.ad_info.adcode : '';
+
+ if (result.pois) {
+ _this3.pushData(result.pois);
+ }
+
+ if (_this3.list.length === _this3.pageSize * _this3.pageIndex) {
+ _this3.hasNextPage = false;
+ }
+ }
+ }, function () {
+ _this3.loading = false;
+ });
+ } else if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_3__[/* MapType */ "d"].AMAP) {
+ var self = this;
+ window.AMap.plugin('AMap.PlaceSearch', function () {
+ if (self.longitude && self.latitude) {
+ var placeSearch = new window.AMap.PlaceSearch({
+ city: '全国',
+ pageSize: 10,
+ pageIndex: self.pageIndex
+ });
+ var keyword = self.searching ? self.keyword : '';
+ var radius = self.searching ? 50000 : 5000;
+ placeSearch.searchNearBy(keyword, [self.longitude, self.latitude], radius, function (status, result) {
+ if (status === 'error') {
+ console.error(result);
+ } else if (status === 'no_data') {
+ self.hasNextPage = false;
+ } else {
+ self.pushData(result.poiList.pois);
+ }
+ });
+ }
+
+ self.loading = false;
+ });
+ }
+ },
+ loadMore: function loadMore() {
+ if (!this.loading && this.hasNextPage) {
+ this.pageIndex++;
+ this.getList();
+ }
+ },
+ reset: function reset() {
+ this.selectedIndex = -1;
+ this.pageIndex = 1;
+ this.hasNextPage = true;
+ this.nextPage = null;
+ this.list = [];
+ },
+ move: function move(_ref2) {
+ var latitude = _ref2.latitude,
+ longitude = _ref2.longitude;
+ this.latitude = latitude;
+ this.longitude = longitude;
+
+ if (!this.searching) {
+ this.reset();
+ this.getList();
+ }
+ },
+ input: function input() {
+ this.search();
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "2246":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* 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__, "showLoading", function() { return showLoading; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showActionSheet", function() { return showActionSheet; });
+/* harmony import */ var uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a6b0");
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8ef5");
+
+
+var showModal = {
+ title: {
+ type: String,
+ default: ''
+ },
+ content: {
+ type: String,
+ default: ''
+ },
+ showCancel: {
+ type: Boolean,
+ default: true
+ },
+ cancelText: {
+ type: String,
+ default: function _default() {
+ return Object(uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__[/* t */ "g"])('uni.showModal.cancel');
+ }
+ },
+ cancelColor: {
+ type: String,
+ default: '#000'
+ },
+ confirmText: {
+ type: String,
+ default: function _default() {
+ return Object(uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__[/* t */ "g"])('uni.showModal.confirm');
+ }
+ },
+ confirmColor: {
+ type: String,
+ default: '#007aff'
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ }
+};
+var showToast = {
+ title: {
+ type: String,
+ default: ''
+ },
+ icon: {
+ default: 'success',
+ validator: function validator(icon, params) {
+ if (['success', 'loading', 'error', 'none'].indexOf(icon) === -1) {
+ params.icon = 'success';
+ }
+ }
+ },
+ image: {
+ type: String,
+ default: '',
+ validator: function validator(image, params) {
+ if (image) {
+ params.image = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(image);
+ }
+ }
+ },
+ duration: {
+ type: Number,
+ default: 1500
+ },
+ mask: {
+ type: Boolean,
+ default: false
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ }
+};
+var showLoading = {
+ title: {
+ type: String,
+ default: ''
+ },
+ icon: {
+ type: String,
+ default: 'loading'
+ },
+ duration: {
+ type: Number,
+ default: 100000000 // 简单处理 showLoading,直接设置个大值
+
+ },
+ mask: {
+ type: Boolean,
+ default: false
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ }
+};
+var showActionSheet = {
+ itemList: {
+ type: Array,
+ required: true,
+ validator: function validator(itemList, params) {
+ if (!itemList.length) {
+ return 'parameter.itemList should have at least 1 item';
+ }
+ }
+ },
+ itemColor: {
+ type: String,
+ default: '#000'
+ },
+ visible: {
+ type: Boolean,
+ default: true
+ },
+ popover: {
+ type: Object
+ }
+};
+
+/***/ }),
+
+/***/ "2289":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "upx2px", function() { return upx2px; });
+var upx2px = [{
+ name: 'upx',
+ type: [Number, String],
+ required: true
+}];
+
+/***/ }),
+
+/***/ "22ed":
+/***/ (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__, "chooseLocation", function() { return chooseLocation; });
+/**
+ * 选择位置
+ * @param {*} callbackId
+ */
+function chooseLocation(options, callbackId) {
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ getApp().$router.push({
+ type: 'navigateTo',
+ path: '/choose-location',
+ query: options
+ }, 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")))
+
+/***/ }),
+
+/***/ "232e":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pageScrollTo", function() { return pageScrollTo; });
+var pageScrollTo = {
+ scrollTop: {
+ type: Number
+ },
+ duration: {
+ type: Number,
+ default: 300,
+ validator: function validator(duration, params) {
+ params.duration = Math.max(0, duration);
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "23ab":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "23e5":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* 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 && to.type !== 'reLaunch') {
+ // 相同页面阻止
+ // 处理外部修改 history 导致卡在当前页面的问题
+ if (to.fullPath !== from.fullPath) {
+ addKeepAliveInclude.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;
+ } // 小程序没有这个逻辑,当时为何加了保留并更新 tabBar 的逻辑?
+ // if (from.meta.isTabBar) { // 如果是 tabBar,需要更新系统组件 tabBar 内的 list 数据
+ // to.meta.isTabBar = true
+ // to.meta.tabBarIndex = from.meta.tabBarIndex
+ // const 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' && to.type !== 'redirectTo' && from.meta.id) {
+ // 如果不是 reLaunch、redirectTo,且 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; // 使用 beforeEach 时的 pages
+
+ if (from.meta.isSet) {
+ fromVm = currentPages.find(function (pageVm) {
+ return pageVm.$page.meta.pagePath === from.meta.pagePath;
+ });
+ } else {
+ fromVm = currentPages.find(function (pageVm) {
+ return pageVm.$page.id === fromId;
+ });
+ }
+
+ function unloadPage(vm) {
+ if (vm) {
+ Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(vm, 'onUnload');
+ var index = currentPages.indexOf(vm);
+
+ if (index >= 0) {
+ currentPages.splice(index, 1);
+ }
+ }
+ }
+
+ switch (to.type) {
+ case 'navigateTo':
+ // 前一个页面触发 onHide
+ fromVm && Object(_util__WEBPACK_IMPORTED_MODULE_0__[/* callPageHook */ "b"])(fromVm, 'onHide');
+ break;
+
+ case 'redirectTo':
+ // 前一个页面触发 onUnload
+ unloadPage(fromVm);
+ 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
+ unloadPage(fromVm);
+
+ if (this.$router._$delta > 1) {
+ deltaIds.reverse().forEach(function (deltaId) {
+ var pageVm = currentPages.find(function (pageVm) {
+ return pageVm.$page.id === deltaId;
+ });
+ unloadPage(pageVm);
+ });
+ }
+ }
+
+ break;
+ }
+
+ delete this.$router._$delta;
+ deltaIds.length = 0;
+
+ if (to.type !== 'reLaunch') {
+ // 因为 reLaunch 会重置 id,故不触发 onShow,switchTab 在 beforeRouteEnter 中触发
+ // 直接获取所有 pages,getCurrentPages 正常情况下仅返回页面栈内,传 true 则返回所有已存在(主要是 tabBar 页面)
+ var pages = getCurrentPages(true);
+ var toVm; // 使用最新的 pages
+
+ if (to.meta.isSet) {
+ toVm = pages.find(function (pageVm) {
+ return pageVm.$page.meta.pagePath === to.meta.pagePath;
+ });
+ } else {
+ toVm = pages.find(function (pageVm) {
+ return pageVm.$page.id === toId;
+ });
+ }
+
+ if (toVm) {
+ // 目标页面若已存在,则触发 onShow
+ // 延迟执行 onShow,防止与 UniServiceJSBridge.emit('onHidePopup') 冲突。
+ setTimeout(function () {
+ if (true) {
+ UniServiceJSBridge.emit('onNavigationBarChange', toVm.$parent.$parent.navigationBar);
+ }
+
+ 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);
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "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) { "@babel/helpers - typeof"; 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) {
+ event.mp = Object.assign({
+ '@warning': 'mp is deprecated'
+ }, event);
+ event._processed = true;
+ return event;
+}
+/**
+ * app-plus titleNView
+ */
+
+function mergeTitleNView(navigationBar, titleNView) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(titleNView)) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(titleNView, 'backgroundColor')) {
+ navigationBar.backgroundColor = titleNView.backgroundColor;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(titleNView, 'buttons')) {
+ navigationBar.buttons = titleNView.buttons;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(titleNView, 'titleColor')) {
+ navigationBar.textColor = titleNView.titleColor;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(titleNView, 'titleText')) {
+ navigationBar.titleText = titleNView.titleText;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(titleNView, 'titleSize')) {
+ navigationBar.titleSize = titleNView.titleSize;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(titleNView, 'type')) {
+ navigationBar.type = titleNView.type;
+ }
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(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";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=5331e675&
+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.showPlaceholder),expression:"showPlaceholder"}],ref:"placeholder",staticClass:"uni-input-placeholder",class:_vm.placeholderClass,style:(_vm.placeholderStyle),domProps:{"textContent":_vm._s(_vm.placeholder)}}),((_vm.inputType)==='checkbox'&&(!_vm.disabled || !_vm.fixColor))?_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.valueSync),expression:"valueSync"},{name:"keyboard",rawName:"v-keyboard"},{name:"field",rawName:"v-field"}],ref:"input",staticClass:"uni-input-input",attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlength,"step":_vm._step,"enterkeyhint":_vm.confirmType,"pattern":_vm.type === 'number' ? '[0-9]*' : null,"autocomplete":_vm.autocomplete,"inputmode":_vm.inputmode,"type":"checkbox"},domProps:{"checked":Array.isArray(_vm.valueSync)?_vm._i(_vm.valueSync,null)>-1:(_vm.valueSync)},on:{"change":[function($event){var $$a=_vm.valueSync,$$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.valueSync=$$a.concat([$$v]))}else{$$i>-1&&(_vm.valueSync=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.valueSync=$$c}},function($event){$event.stopPropagation();}],"focus":_vm._onFocus,"blur":_vm._onBlur,"input":function($event){$event.stopPropagation();return _vm._onInput($event)},"compositionstart":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionend":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionupdate":function($event){$event.stopPropagation();return _vm._onComposition($event)},"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();return _vm._onKeyup($event)}}}):((_vm.inputType)==='radio'&&(!_vm.disabled || !_vm.fixColor))?_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.valueSync),expression:"valueSync"},{name:"keyboard",rawName:"v-keyboard"},{name:"field",rawName:"v-field"}],ref:"input",staticClass:"uni-input-input",attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlength,"step":_vm._step,"enterkeyhint":_vm.confirmType,"pattern":_vm.type === 'number' ? '[0-9]*' : null,"autocomplete":_vm.autocomplete,"inputmode":_vm.inputmode,"type":"radio"},domProps:{"checked":_vm._q(_vm.valueSync,null)},on:{"change":[function($event){_vm.valueSync=null},function($event){$event.stopPropagation();}],"focus":_vm._onFocus,"blur":_vm._onBlur,"input":function($event){$event.stopPropagation();return _vm._onInput($event)},"compositionstart":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionend":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionupdate":function($event){$event.stopPropagation();return _vm._onComposition($event)},"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();return _vm._onKeyup($event)}}}):(!_vm.disabled || !_vm.fixColor)?_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.valueSync),expression:"valueSync"},{name:"keyboard",rawName:"v-keyboard"},{name:"field",rawName:"v-field"}],ref:"input",staticClass:"uni-input-input",attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlength,"step":_vm._step,"enterkeyhint":_vm.confirmType,"pattern":_vm.type === 'number' ? '[0-9]*' : null,"autocomplete":_vm.autocomplete,"inputmode":_vm.inputmode,"type":_vm.inputType},domProps:{"value":(_vm.valueSync)},on:{"change":function($event){$event.stopPropagation();},"focus":_vm._onFocus,"blur":_vm._onBlur,"input":[function($event){if($event.target.composing){ return; }_vm.valueSync=$event.target.value},function($event){$event.stopPropagation();return _vm._onInput($event)}],"compositionstart":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionend":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionupdate":function($event){$event.stopPropagation();return _vm._onComposition($event)},"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.stopPropagation();return _vm._onKeyup($event)}}}):_vm._e(),(_vm.disabled && _vm.fixColor)?_c('input',{ref:"input",staticClass:"uni-input-input",attrs:{"tabindex":"-1","readonly":_vm.disabled,"type":_vm.inputType,"maxlength":_vm.maxlength,"step":_vm._step},domProps:{"value":_vm.valueSync},on:{"focus":function ($event) { return $event.target.blur(); }}}):_vm._e()])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/input/index.vue?vue&type=template&id=5331e675&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// EXTERNAL MODULE: ./src/shared/index.js + 8 modules
+var shared = __webpack_require__("f2b3");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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', 'tel'];
+var NUMBER_TYPES = ['number', 'digit'];
+var AUTOCOMPLETES = ['off', 'one-time-code'];
+var INPUT_MODES = ['none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url'];
+/* harmony default export */ var inputvue_type_script_lang_js_ = ({
+ name: 'Input',
+ mixins: [mixins["b" /* field */]],
+ props: {
+ name: {
+ type: String,
+ default: ''
+ },
+ type: {
+ type: String,
+ default: 'text'
+ },
+ password: {
+ type: [Boolean, String],
+ default: false
+ },
+ placeholder: {
+ type: String,
+ default: ''
+ },
+ placeholderStyle: {
+ type: String,
+ default: ''
+ },
+ placeholderClass: {
+ type: String,
+ default: 'input-placeholder'
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ maxlength: {
+ type: [Number, String],
+ default: 140
+ },
+ confirmType: {
+ type: String,
+ default: 'done'
+ },
+ textContentType: {
+ type: String,
+ default: ''
+ },
+ step: {
+ type: String,
+ default: '0.000000000000000001'
+ },
+ inputmode: {
+ type: String,
+ default: undefined,
+ validator: function validator(value) {
+ return !!~INPUT_MODES.indexOf(value);
+ }
+ }
+ },
+ data: function data() {
+ return {
+ 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) ? this.step : '';
+ },
+ autocomplete: function autocomplete() {
+ var camelizeIndex = AUTOCOMPLETES.indexOf(this.textContentType);
+ var kebabCaseIndex = AUTOCOMPLETES.indexOf(Object(shared["n" /* kebabCase */])(this.textContentType));
+ var index = camelizeIndex !== -1 ? camelizeIndex : kebabCaseIndex !== -1 ? kebabCaseIndex : 0;
+ return AUTOCOMPLETES[index];
+ },
+ showPlaceholder: function showPlaceholder() {
+ var dotIndex = this.type === 'digit' ? this.cachedValue.indexOf('.') : -1;
+ return !(this.composing || this.valueSync.length || this.cachedValue === '-' || dotIndex !== -1 && dotIndex === this.cachedValue.length - 1);
+ }
+ },
+ watch: {
+ maxlength: function maxlength(value) {
+ var realValue = this.valueSync.slice(0, parseInt(value, 10));
+ realValue !== this.valueSync && (this.valueSync = realValue);
+ },
+ valueSync: function valueSync(value) {
+ if (this.type === 'number' && !(this.cachedValue === '-' && value === '')) {
+ this.cachedValue = value;
+ }
+ }
+ },
+ 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;
+ }
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _onKeyup: function _onKeyup($event) {
+ var input = $event.target;
+ this.$trigger('confirm', $event, {
+ value: input.value
+ });
+
+ if (!this.confirmHold) {
+ input.blur();
+ }
+ },
+ _onInput: function _onInput($event, force) {
+ var _this = this;
+
+ var outOfMaxlength = false;
+
+ if (this.composing && this.ignoreCompositionEvent) {
+ return;
+ }
+
+ if (this.inputType === 'number') {
+ // type="number" 不支持 maxlength 属性,因此需要主动限制长度。
+ var maxlength = parseInt(this.maxlength, 10);
+
+ if (maxlength > 0 && $event.target.value.length > maxlength) {
+ // 输入前字符长度超出范围,则不触发input,且将值还原
+ // 否则截取一定长度且触发input
+ if (this.cachedValue.length === maxlength) {
+ this.valueSync = this.cachedValue;
+ outOfMaxlength = true;
+ } else {
+ $event.target.value = $event.target.value.slice(0, maxlength);
+ this.valueSync = $event.target.value;
+ }
+ } // 数字类型输入错误时无法获取具体的值,自定义校验和纠正。
+
+
+ this.__clearCachedValue && $event.target.removeEventListener('blur', this.__clearCachedValue);
+
+ if ($event.target.validity && !$event.target.validity.valid) {
+ if ((!this.cachedValue || !$event.target.value) && $event.data === '-' || this.cachedValue[0] === '-' && $event.inputType === 'deleteContentBackward') {
+ this.cachedValue = '-';
+ this.valueSync = '';
+
+ var clearCachedValue = this.__clearCachedValue = function () {
+ _this.cachedValue = $event.target.value = '';
+ };
+
+ $event.target.addEventListener('blur', clearCachedValue);
+ return;
+ } // 处理小数点
+
+
+ if (this.cachedValue) {
+ if (this.cachedValue.indexOf('.') !== -1) {
+ // 删除到小数点时
+ if ($event.data !== '.' && $event.inputType === 'deleteContentBackward') {
+ var dotIndex = this.cachedValue.indexOf('.');
+ this.cachedValue = $event.target.value = this.valueSync = this.cachedValue.slice(0, dotIndex);
+ return this.$triggerInput($event, {
+ value: this.valueSync
+ }, force);
+ }
+ } else if ($event.data === '.') {
+ // 输入小数点时
+ this.cachedValue += '.';
+
+ this.__clearCachedValue = function () {
+ _this.cachedValue = _this.valueSync = $event.target.value = _this.cachedValue.slice(0, -1);
+ };
+
+ $event.target.addEventListener('blur', this.__clearCachedValue);
+ return false;
+ }
+ }
+
+ this.cachedValue = this.valueSync = $event.target.value = this.cachedValue === '-' ? '' : this.cachedValue; // 输入非法字符不触发 input 事件
+
+ return;
+ } else {
+ this.cachedValue = this.valueSync;
+ }
+ }
+
+ if (outOfMaxlength) return;
+ this.valueSync = this.$refs.input.value;
+ this.$triggerInput($event, {
+ value: this.valueSync
+ }, force);
+ },
+ _onComposition: function _onComposition($event) {
+ switch ($event.type) {
+ case 'compositionstart':
+ this.composing = true;
+ break;
+
+ case 'compositionend':
+ if (this.composing) {
+ this.composing = false; // 部分输入法 compositionend 事件可能晚于 input
+
+ this._onInput($event);
+ }
+
+ break;
+ }
+
+ !this.ignoreCompositionEvent && this.$trigger($event.type, $event, {
+ data: $event.data
+ });
+ },
+ _resetFormData: function _resetFormData() {
+ this.valueSync = '';
+ },
+ _getFormData: function _getFormData() {
+ return this.name ? {
+ value: this.valueSync,
+ 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);
+
+/***/ }),
+
+/***/ "253f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8ef5");
+/* harmony import */ var _observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2abe");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'CustomTabBar',
+ props: {
+ selected: {
+ type: Number,
+ default: 0
+ },
+ showIcon: {
+ type: Boolean,
+ default: true
+ },
+ direction: {
+ type: String,
+ default: 'horizontal'
+ }
+ },
+ data: function data() {
+ return {
+ selectedIndex: this.selected
+ };
+ },
+ computed: {
+ tabBarOptions: function tabBarOptions() {
+ return _observable__WEBPACK_IMPORTED_MODULE_1__[/* tabBar */ "a"];
+ },
+ hasTabBar: function hasTabBar() {
+ return _observable__WEBPACK_IMPORTED_MODULE_1__[/* tabBar */ "a"].list && _observable__WEBPACK_IMPORTED_MODULE_1__[/* tabBar */ "a"].list.length;
+ },
+ showTabBar: function showTabBar() {
+ var app = getApp();
+
+ if (app) {
+ return !app.$children[0].hideTabBar;
+ }
+
+ return true;
+ }
+ },
+ watch: {
+ selected: function selected(val) {
+ this.selectedIndex = val; // 同步至内置tabBar
+
+ var tabBar = getApp().$children[0].$refs.tabBar;
+
+ if (tabBar) {
+ tabBar.selectedIndex = val;
+ }
+ },
+ '$route': function $route(to, from) {
+ if (to.meta.isTabBar) {
+ var index = _observable__WEBPACK_IMPORTED_MODULE_1__[/* tabBar */ "a"].list.findIndex(function (item) {
+ return to.meta.pagePath === item.pagePath;
+ });
+
+ if (index > -1) {
+ this.selectedIndex = index;
+ }
+ }
+ }
+ },
+ methods: {
+ _getRealPath: function _getRealPath(filePath) {
+ var SCHEME_RE = /^([a-z-]+:)?\/\//i;
+ var DATA_RE = /^data:.*,.*/;
+
+ if (!(SCHEME_RE.test(filePath) || DATA_RE.test(filePath)) && filePath.indexOf('/') !== 0) {
+ filePath = '/' + filePath;
+ }
+
+ return Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(filePath);
+ },
+ _switchTab: function _switchTab(_ref, index) {
+ var text = _ref.text,
+ pagePath = _ref.pagePath;
+ this.selectedIndex = index;
+ var url = '/' + pagePath;
+
+ if (url === __uniRoutes[0].alias) {
+ url = '/';
+ }
+
+ var detail = {
+ index: index,
+ text: text,
+ pagePath: pagePath
+ };
+ this.$emit('onTabItemTap', detail);
+
+ if (this.$route.path === url) {
+ UniServiceJSBridge.emit('onTabItemTap', detail);
+ }
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "25ce":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=d2fad642&
+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=d2fad642&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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["f" /* 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);
+
+/***/ }),
+
+/***/ "25df":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createCallout; });
+/* harmony import */ var _helpers_location__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("44ab");
+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; }
+
+
+function createCallout(maps) {
+ function onAdd() {
+ var div = this.div;
+ var panes = this.getPanes();
+ panes.floatPane.appendChild(div);
+ }
+
+ function onRemove() {
+ var parentNode = this.div.parentNode;
+
+ if (parentNode) {
+ parentNode.removeChild(this.div);
+ }
+ }
+
+ function createAMapText() {
+ var _this = this;
+
+ var option = this.option;
+ this.Text = new maps.Text({
+ text: option.content,
+ anchor: 'bottom-center',
+ // 设置文本标记锚点
+ offset: new maps.Pixel(0, option.offsetY - 16),
+ style: {
+ padding: (option.padding || 8) + 'px',
+ 'line-height': (option.fontSize || 14) + 'px',
+ 'border-radius': (option.borderRadius || 0) + 'px',
+ 'border-color': "".concat(option.bgColor || '#fff', " transparent transparent"),
+ 'background-color': option.bgColor || '#fff',
+ 'box-shadow': '0 2px 6px 0 rgba(114, 124, 245, .5)',
+ 'text-align': 'center',
+ 'font-size': (option.fontSize || 14) + 'px',
+ color: option.color || '#000'
+ },
+ position: option.position
+ }); // 不通过 addListener 方式绑定事件,为了规避高德地图覆盖物点击触发map点击问题
+
+ this.Text.dom.addEventListener('click', function (e) {
+ handleAMapTextClick(_this, e);
+ });
+ this.Text.dom.addEventListener('touchend', function (e) {
+ handleAMapTextClick(_this, e);
+ });
+ this.Text.setMap(option.map);
+ }
+
+ function handleAMapTextClick(self, e) {
+ self.callback(e, self.parent);
+ e.stopPropagation();
+ }
+
+ function removeAMapText() {
+ if (this.Text) {
+ this.option.map.remove(this.Text);
+ }
+ }
+
+ var Callout = /*#__PURE__*/function () {
+ _createClass(Callout, [{
+ key: "onclick",
+ set: function set(callback) {
+ this.div.onclick = callback;
+ },
+ get: function get() {
+ return this.div.onclick;
+ }
+ }]);
+
+ function Callout() {
+ var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
+ var parent = arguments.length > 2 ? arguments[2] : undefined;
+
+ _classCallCheck(this, Callout);
+
+ _defineProperty(this, "option", void 0);
+
+ _defineProperty(this, "position", void 0);
+
+ _defineProperty(this, "index", void 0);
+
+ _defineProperty(this, "visible", void 0);
+
+ _defineProperty(this, "alwaysVisible", void 0);
+
+ _defineProperty(this, "div", void 0);
+
+ _defineProperty(this, "triangle", void 0);
+
+ _defineProperty(this, "callback", void 0);
+
+ _defineProperty(this, "parent", void 0);
+
+ _defineProperty(this, "Text", void 0);
+
+ _defineProperty(this, "createAMapText", createAMapText);
+
+ _defineProperty(this, "removeAMapText", removeAMapText);
+
+ _defineProperty(this, "onAdd", onAdd);
+
+ _defineProperty(this, "construct", onAdd);
+
+ _defineProperty(this, "onRemove", onRemove);
+
+ _defineProperty(this, "destroy", onRemove);
+
+ this.option = option || {};
+ this.visible = this.alwaysVisible = option.display === 'ALWAYS';
+
+ if (_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "b"]) {
+ this.callback = callback;
+ this.parent = parent;
+
+ if (this.visible) {
+ this.createAMapText();
+ }
+ } else {
+ var map = option.map;
+ this.position = option.position;
+ this.index = 1;
+ var div = this.div = document.createElement('div');
+ var divStyle = div.style;
+ divStyle.position = 'absolute';
+ divStyle.whiteSpace = 'nowrap';
+ divStyle.transform = 'translateX(-50%) translateY(-100%)';
+ divStyle.zIndex = '1';
+ divStyle.boxShadow = option.boxShadow || 'none';
+ divStyle.display = this.visible ? 'block' : 'none';
+ var triangle = this.triangle = document.createElement('div');
+ triangle.setAttribute('style', 'position: absolute;white-space: nowrap;border-width: 4px;border-style: solid;border-color: #fff transparent transparent;border-image: initial;font-size: 12px;padding: 0px;background-color: transparent;width: 0px;height: 0px;transform: translate(-50%, 100%);left: 50%;bottom: 0;');
+ this.setStyle(option);
+ div.appendChild(triangle);
+
+ if (map) {
+ this.setMap(map);
+ }
+ }
+ }
+
+ _createClass(Callout, [{
+ key: "setOption",
+ value: function setOption(option) {
+ this.option = option;
+
+ if (option.display === 'ALWAYS') {
+ this.alwaysVisible = this.visible = true;
+ } else {
+ this.alwaysVisible = false;
+ }
+
+ if (_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "b"]) {
+ if (this.visible) {
+ this.createAMapText();
+ }
+ } else {
+ this.setPosition(option.position);
+ this.setStyle(option);
+ }
+ }
+ }, {
+ key: "setStyle",
+ value: function setStyle(option) {
+ var div = this.div;
+ var divStyle = div.style;
+ div.innerText = option.content || '';
+ divStyle.lineHeight = (option.fontSize || 14) + 'px';
+ divStyle.fontSize = (option.fontSize || 14) + 'px';
+ divStyle.padding = (option.padding || 8) + 'px';
+ divStyle.color = option.color || '#000';
+ divStyle.borderRadius = (option.borderRadius || 0) + 'px';
+ divStyle.backgroundColor = option.bgColor || '#fff';
+ divStyle.marginTop = '-' + ((option.top || 0) + 5) + 'px';
+ this.triangle.style.borderColor = "".concat(option.bgColor || '#fff', " transparent transparent");
+ }
+ }, {
+ key: "setPosition",
+ value: function setPosition(position) {
+ this.position = position;
+ this.draw();
+ }
+ }, {
+ key: "draw",
+ value: function draw() {
+ var overlayProjection = this.getProjection();
+
+ if (!this.position || !this.div || !overlayProjection) {
+ return;
+ }
+
+ var pixel = overlayProjection.fromLatLngToDivPixel(this.position);
+ var divStyle = this.div.style;
+ divStyle.left = pixel.x + 'px';
+ divStyle.top = pixel.y + 'px';
+ }
+ }, {
+ key: "changed",
+ value: function changed() {
+ var divStyle = this.div.style;
+ divStyle.display = this.visible ? 'block' : 'none';
+ }
+ }]);
+
+ return Callout;
+ }();
+
+ if (!_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "b"]) {
+ var prototype = Callout.prototype;
+ var overlay = new (maps.OverlayView || maps.Overlay)();
+
+ for (var key in overlay) {
+ if (!(key in prototype)) {
+ prototype[key] = overlay[key];
+ }
+ }
+ }
+
+ return Callout;
+}
+
+/***/ }),
+
+/***/ "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"]))
+
+/***/ }),
+
+/***/ "26e0":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "2765":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("5f8d");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__, "b", function() { return removeCallbackHandler; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return wrapperUnimplemented; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", 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 _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("6710");
+/* harmony import */ var uni_api_protocol__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("cc76");
+/* harmony import */ var _params__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("de29");
+
+
+
+
+
+
+
+function invokeCallbackHandlerFail(err, apiName, callbackId) {
+ var errMsg = "".concat(apiName, ":fail ").concat(err);
+
+ if (false) {}
+
+ 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
+}]; // 目前已用到的仅这三个
+// 完整的可能包含:
+// beforeValidate,
+// beforeSuccess,
+// afterSuccess,
+// beforeFail,
+// afterFail,
+// beforeCancel,
+// afterCancel,
+// beforeAll,
+// afterAll
+
+var IGNORE_KEYS = ['beforeValidate', 'beforeAll', 'beforeSuccess'];
+
+function validateParams(apiName, paramsData, callbackId) {
+ var paramTypes = uni_api_protocol__WEBPACK_IMPORTED_MODULE_4__[/* 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 */ "k"])(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 (IGNORE_KEYS.indexOf(keys[i]) !== -1) {
+ continue;
+ }
+
+ var _err = Object(_params__WEBPACK_IMPORTED_MODULE_5__[/* 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;
+ invokeCallbacks[callbackId] = {
+ name: invokeCallbackName,
+ keepAlive: true,
+ callback: callback
+ };
+ return callbackId;
+}
+
+function getKeepAliveApiCallback(apiName, callback) {
+ for (var key in invokeCallbacks) {
+ var item = invokeCallbacks[key];
+
+ if (item.name.startsWith('api.' + apiName.replace(/^off/, 'on')) && item.callback === callback) {
+ delete invokeCallbacks[key];
+ return Number(key);
+ }
+ }
+
+ return 'fail';
+}
+
+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 */ "l"])(params)) {
+ return {
+ params: params
+ };
+ }
+
+ params = Object.assign({}, params);
+
+ var _getApiCallbacks = Object(_utils__WEBPACK_IMPORTED_MODULE_3__[/* getApiCallbacks */ "a"])(params),
+ success = _getApiCallbacks.success,
+ fail = _getApiCallbacks.fail,
+ cancel = _getApiCallbacks.cancel,
+ complete = _getApiCallbacks.complete;
+
+ var hasSuccess = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(success);
+ var hasFail = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(fail);
+ var hasCancel = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(cancel);
+ var hasComplete = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(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 */ "k"])(extra)) {
+ wrapperCallbacks[name] = Object(_catch__WEBPACK_IMPORTED_MODULE_1__[/* tryCatchFramework */ "b"])(extra);
+ }
+ }
+
+ var beforeSuccess = wrapperCallbacks.beforeSuccess,
+ afterSuccess = wrapperCallbacks.afterSuccess,
+ beforeFail = wrapperCallbacks.beforeFail,
+ afterFail = wrapperCallbacks.afterFail,
+ beforeCancel = wrapperCallbacks.beforeCancel,
+ afterCancel = wrapperCallbacks.afterCancel,
+ beforeAll = wrapperCallbacks.beforeAll,
+ afterAll = wrapperCallbacks.afterAll;
+ var callbackId = invokeCallbackId++;
+ var invokeCallbackName = 'api.' + apiName + '.' + callbackId;
+
+ var invokeCallback = function invokeCallback(res) {
+ res.errMsg = res.errMsg || apiName + ':ok'; // 部分 api 可能返回的 errMsg 的 api 名称部分不一致,格式化为正确的
+
+ if (res.errMsg.indexOf(':ok') !== -1) {
+ res.errMsg = apiName + ':ok';
+ } else if (res.errMsg.indexOf(':cancel') !== -1) {
+ res.errMsg = apiName + ':cancel';
+ } else if (res.errMsg.indexOf(':fail') !== -1) {
+ var errDetail = '';
+ var spaceIndex = res.errMsg.indexOf(' ');
+
+ if (spaceIndex > -1) {
+ errDetail = res.errMsg.substr(spaceIndex);
+ }
+
+ res.errMsg = apiName + ':fail' + errDetail;
+ }
+
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(beforeAll) && beforeAll(res);
+ var errMsg = res.errMsg;
+
+ if (errMsg.indexOf(apiName + ':ok') === 0) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(beforeSuccess) && beforeSuccess(res, params);
+ hasSuccess && success(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(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 */ "k"])(beforeCancel) && beforeCancel(res);
+ hasCancel && cancel(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(afterCancel) && afterCancel(res);
+ } else if (errMsg.indexOf(apiName + ':fail') === 0) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(beforeFail) && beforeFail(res);
+ hasFail && fail(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(afterFail) && afterFail(res);
+ }
+
+ hasComplete && complete(res);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(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 */ "l"])(args) && !validateParams(apiName, args, callbackId)) {
+ return {
+ params: args,
+ callbackId: false
+ };
+ }
+
+ return {
+ params: args,
+ callbackId: callbackId
+ };
+} // onNativeEventReceive((event,data)=>{}) 需要两个参数,写死最多两个参数,避免改动太大,影响已有逻辑
+
+
+function invokeCallbackHandler(invokeCallbackId, res, extras) {
+ if (typeof invokeCallbackId === 'number') {
+ var invokeCallback = invokeCallbacks[invokeCallbackId];
+
+ if (invokeCallback) {
+ if (!invokeCallback.keepAlive) {
+ delete invokeCallbacks[invokeCallbackId];
+ }
+
+ return invokeCallback.callback(res, extras);
+ }
+ }
+
+ return res;
+}
+function removeCallbackHandler(invokeCallbackId) {
+ delete invokeCallbacks[invokeCallbackId];
+}
+function wrapperUnimplemented(name) {
+ return function todo(args) {
+ console.error('API `' + name + '` is not yet implemented');
+ };
+}
+
+function wrapperExtras(name, extras) {
+ var protocolOptions = uni_api_protocol__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"][name];
+
+ if (protocolOptions) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(protocolOptions.beforeAll) && (extras.beforeAll = protocolOptions.beforeAll);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(protocolOptions.beforeSuccess) && (extras.beforeSuccess = protocolOptions.beforeSuccess);
+ }
+} // 部分 API 直接实现
+
+
+var unwrappers = ['getPushClientId', 'onPushMessage', 'offPushMessage'];
+function wrapper(name, invokeMethod) {
+ var extras = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+
+ if (unwrappers.indexOf(name) > -1 || !Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(invokeMethod)) {
+ return invokeMethod;
+ }
+
+ wrapperExtras(name, extras);
+ 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((name.startsWith('off') ? getKeepAliveApiCallback : 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 */ "k"])(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 */ "l"])(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";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./src/shared/index.js + 8 modules
+var shared = __webpack_require__("f2b3");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+
+/* 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, oldVal) {
+ var _this = this;
+
+ if (true) {
+ 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) {
+ Object(shared["f" /* deepClone */])(this.$slots.default, createElement).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 picker_view_render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_picker_viewvue_type_script_lang_js_,
+ picker_view_render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var picker_view = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "27c2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/editor/index.vue?vue&type=template&id=9ca2212c&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-editor',_vm._g({staticClass:"ql-container",attrs:{"id":_vm.id}},_vm.$listeners))}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/editor/index.vue?vue&type=template&id=9ca2212c&
+
+// EXTERNAL MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/editor/index.vue?vue&type=script&lang=js&
+var editorvue_type_script_lang_js_ = __webpack_require__("1029");
+
+// CONCATENATED MODULE: ./src/core/view/components/editor/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_editorvue_type_script_lang_js_ = (editorvue_type_script_lang_js_["a" /* default */]);
+// EXTERNAL MODULE: ./src/core/view/components/editor/editor.css?vue&type=style&index=0&lang=css&
+var editorvue_type_style_index_0_lang_css_ = __webpack_require__("e298");
+
+// 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/editor/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_editorvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var editor = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "2827":
+/***/ (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__, "offNetworkStatusChange", function() { return offNetworkStatusChange; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNetworkType", function() { return getNetworkType; });
+var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+var callbackIds = [];
+
+function changeHandler() {
+ var _getNetworkType = getNetworkType(),
+ networkType = _getNetworkType.networkType;
+
+ callbackIds.forEach(function (callbackId) {
+ invoke(callbackId, {
+ errMsg: 'onNetworkStatusChange:ok',
+ isConnected: networkType !== 'none',
+ networkType: networkType
+ });
+ });
+}
+
+function onNetworkStatusChange(callbackId) {
+ var connection = navigator.connection || navigator.webkitConnection;
+ callbackIds.push(callbackId);
+
+ if (connection) {
+ connection.addEventListener('change', changeHandler);
+ } else {
+ window.addEventListener('offline', changeHandler);
+ window.addEventListener('online', changeHandler);
+ }
+}
+function offNetworkStatusChange(callbackId) {
+ // 暂不支持移除所有监听
+ if (callbackId) {
+ var index = callbackIds.indexOf(callbackId);
+
+ if (index >= 0) {
+ callbackIds.splice(index, 1);
+ }
+ }
+
+ if (!callbackIds.length) {
+ var connection = navigator.connection || navigator.webkitConnection;
+
+ if (connection) {
+ connection.removeEventListener('change', changeHandler);
+ } else {
+ window.removeEventListener('offline', changeHandler);
+ window.removeEventListener('online', changeHandler);
+ }
+ }
+}
+function getNetworkType() {
+ var connection = navigator.connection || navigator.webkitConnection;
+ var networkType = 'unknown';
+
+ if (connection) {
+ networkType = connection.type;
+
+ if (networkType === 'cellular' && connection.effectiveType) {
+ networkType = connection.effectiveType.replace('slow-', '');
+ } else if (!['none', 'wifi'].includes(networkType)) {
+ networkType = 'unknown';
+ }
+ } else if (navigator.onLine === false) {
+ networkType = 'none';
+ }
+
+ return {
+ errMsg: 'getNetworkType:ok',
+ networkType: networkType
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "28c0":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return EventChannel; });
+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 EventChannel = /*#__PURE__*/function () {
+ function EventChannel(id, events) {
+ var _this = this;
+
+ _classCallCheck(this, EventChannel);
+
+ this.id = id;
+ this.listener = {};
+ this.emitCache = {};
+
+ if (events) {
+ Object.keys(events).forEach(function (name) {
+ _this.on(name, events[name]);
+ });
+ }
+ }
+
+ _createClass(EventChannel, [{
+ key: "emit",
+ value: function emit(eventName) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ var fns = this.listener[eventName];
+
+ if (!fns) {
+ return (this.emitCache[eventName] || (this.emitCache[eventName] = [])).push(args);
+ }
+
+ fns.forEach(function (opt) {
+ opt.fn.apply(opt.fn, args);
+ });
+ this.listener[eventName] = fns.filter(function (opt) {
+ return opt.type !== 'once';
+ });
+ }
+ }, {
+ key: "on",
+ value: function on(eventName, fn) {
+ this._addListener(eventName, 'on', fn);
+
+ this._clearCache(eventName);
+ }
+ }, {
+ key: "once",
+ value: function once(eventName, fn) {
+ this._addListener(eventName, 'once', fn);
+
+ this._clearCache(eventName);
+ }
+ }, {
+ key: "off",
+ value: function off(eventName, fn) {
+ var fns = this.listener[eventName];
+
+ if (!fns) {
+ return;
+ }
+
+ if (fn) {
+ for (var i = 0; i < fns.length;) {
+ if (fns[i].fn === fn) {
+ fns.splice(i, 1);
+ i--;
+ }
+
+ i++;
+ }
+ } else {
+ delete this.listener[eventName];
+ }
+ }
+ }, {
+ key: "_clearCache",
+ value: function _clearCache(eventName) {
+ var cacheArgs = this.emitCache[eventName];
+
+ if (cacheArgs) {
+ for (; cacheArgs.length > 0;) {
+ this.emit.apply(this, [eventName].concat(cacheArgs.shift()));
+ }
+ }
+ }
+ }, {
+ key: "_addListener",
+ value: function _addListener(eventName, type, fn) {
+ (this.listener[eventName] || (this.listener[eventName] = [])).push({
+ fn: fn,
+ type: type
+ });
+ }
+ }]);
+
+ return EventChannel;
+}();
+
+
+
+/***/ }),
+
+/***/ "2abe":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return tabBar; });
+/* 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_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a6b0");
+/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("7651");
+
+
+
+var originalTabBar = __uniConfig.tabBar || {};
+__uniConfig.tabBar = vue__WEBPACK_IMPORTED_MODULE_0___default.a.observable(Object(_theme__WEBPACK_IMPORTED_MODULE_2__[/* parseTheme */ "b"])(Object(uni_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__[/* initTabBarI18n */ "f"])(originalTabBar)));
+Object(_theme__WEBPACK_IMPORTED_MODULE_2__[/* onThemeChange */ "a"])(function () {
+ var tabBarStyle = Object(_theme__WEBPACK_IMPORTED_MODULE_2__[/* parseTheme */ "b"])(Object(uni_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__[/* initTabBarI18n */ "f"])(originalTabBar));
+ __uniConfig.tabBar.backgroundColor = tabBarStyle.backgroundColor;
+ __uniConfig.tabBar.borderStyle = tabBarStyle.borderStyle;
+ __uniConfig.tabBar.color = tabBarStyle.color;
+ __uniConfig.tabBar.selectedColor = tabBarStyle.selectedColor;
+ __uniConfig.tabBar.blurEffect = tabBarStyle.blurEffect;
+
+ if (tabBarStyle.list && tabBarStyle.list.length && __uniConfig.tabBar.list.length) {
+ tabBarStyle.list.forEach(function (item, index) {
+ __uniConfig.tabBar.list[index].iconPath = item.iconPath;
+ __uniConfig.tabBar.list[index].selectedIconPath = item.selectedIconPath;
+ });
+ }
+});
+var tabBar = __uniConfig.tabBar;
+
+/***/ }),
+
+/***/ "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: "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")))
+
+/***/ }),
+
+/***/ "2c79":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "2da2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saveFile", function() { return saveFile; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFileInfo", function() { return getFileInfo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSavedFileInfo", function() { return getSavedFileInfo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeSavedFile", function() { return removeSavedFile; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8ef5");
+
+var saveFile = {
+ tempFilePath: {
+ type: String,
+ required: true,
+ validator: function validator(value, params) {
+ params.tempFilePath = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(value);
+ }
+ }
+};
+var TYPES = ['md5', 'sha1'];
+var getFileInfo = {
+ filePath: {
+ type: String,
+ required: true,
+ validator: function validator(value, params) {
+ params.filePath = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(value);
+ }
+ },
+ digestAlgorithm: {
+ type: String,
+ validator: function validator(value, params) {
+ params.digestAlgorithm = TYPES.includes(value) ? value : TYPES[0];
+ },
+ default: TYPES[0]
+ }
+};
+var getSavedFileInfo = {
+ filePath: {
+ type: String,
+ required: true,
+ validator: function validator(value, params) {
+ params.filePath = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(value);
+ }
+ }
+};
+var removeSavedFile = {
+ filePath: {
+ type: String,
+ required: true,
+ validator: function validator(value, params) {
+ params.filePath = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(value);
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "2eae":
+/***/ (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"]
+};
+
+/***/ }),
+
+/***/ "2ec6":
+/***/ (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__, "setPageMeta", function() { return setPageMeta; });
+function setPageMeta(args) {
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ UniServiceJSBridge.publishHandler('setPageMeta', args, pages[pages.length - 1].$page.id);
+ }
+
+ return {};
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "303a":
+/***/ (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__, "CanvasContext", function() { return CanvasContext; });
+/* 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 import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("62b5");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("db70");
+/* harmony import */ var _bridge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("a118");
+/* harmony import */ var uni_platform_service_api_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("6e03");
+function _typeof(obj) { "@babel/helpers - typeof"; 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) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+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_1__[/* default */ "a"])('canvasEvent');
+UniServiceJSBridge.subscribe('onCanvasMethodCallback', function (_ref) {
+ var callbackId = _ref.callbackId,
+ data = _ref.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) {
+ // 其他开发者适配的echarts会传入一个undefined到这里
+ e = e || '#000000';
+ 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 (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(predefinedColor, 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.error('unsupported color:' + e);
+ return [0, 0, 0, 255];
+}
+
+function Pattern(image, repetition) {
+ this.type = 'pattern';
+ this.data = image;
+ this.colorStop = 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'];
+
+function _measureText(text, font) {
+ var canvas = document.createElement('canvas');
+ var c2d = canvas.getContext('2d');
+ c2d.font = font;
+ return c2d.measureText(text).width || 0;
+}
+
+function TextMetrics(width) {
+ this.width = width;
+}
+
+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 font = this.state.font;
+ var width = 0;
+
+ if (true) {
+ width = _measureText(text, font);
+ } else { var webview; }
+
+ return new TextMetrics(width);
+ }
+ }, {
+ 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 = [];
+ this.path.push({
+ method: 'beginPath',
+ data: []
+ });
+ }
+ }, {
+ 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 pageId = Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentPageId */ "a"])();
+
+ if (pageId) {
+ return new CanvasContext(id, pageId);
+ } else {
+ UniServiceJSBridge.emit('onError', 'createCanvasContext:fail');
+ }
+}
+function canvasGetImageData(_ref2, callbackId) {
+ var canvasId = _ref2.canvasId,
+ x = _ref2.x,
+ y = _ref2.y,
+ width = _ref2.width,
+ height = _ref2.height;
+ var pageId = Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentPageId */ "a"])();
+
+ if (!pageId) {
+ Object(_bridge__WEBPACK_IMPORTED_MODULE_3__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'canvasGetImageData:fail'
+ });
+ return;
+ }
+
+ var cId = canvasEventCallbacks.push(function (data) {
+ var imgData = data.data;
+
+ if (imgData && imgData.length) {
+ if (false) { var pako; }
+
+ data.data = new Uint8ClampedArray(imgData);
+ }
+
+ Object(_bridge__WEBPACK_IMPORTED_MODULE_3__[/* invoke */ "a"])(callbackId, data);
+ });
+ operateCanvas(canvasId, pageId, 'getImageData', {
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ callbackId: cId
+ });
+}
+function canvasPutImageData(_ref3, callbackId) {
+ var canvasId = _ref3.canvasId,
+ data = _ref3.data,
+ x = _ref3.x,
+ y = _ref3.y,
+ width = _ref3.width,
+ height = _ref3.height;
+ var pageId = Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentPageId */ "a"])();
+
+ if (!pageId) {
+ Object(_bridge__WEBPACK_IMPORTED_MODULE_3__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'canvasPutImageData:fail'
+ });
+ return;
+ }
+
+ var cId = canvasEventCallbacks.push(function (data) {
+ Object(_bridge__WEBPACK_IMPORTED_MODULE_3__[/* invoke */ "a"])(callbackId, data);
+ });
+ var compressed; // iOS真机非调试模式压缩太慢暂时排除
+
+ if (false) { var pako; } else {
+ // fix ...
+ data = Array.prototype.slice.call(data);
+ }
+
+ operateCanvas(canvasId, pageId, 'putImageData', {
+ data: data,
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ compressed: compressed,
+ callbackId: cId
+ });
+}
+function canvasToTempFilePath(_ref4, callbackId) {
+ var _ref4$x = _ref4.x,
+ x = _ref4$x === void 0 ? 0 : _ref4$x,
+ _ref4$y = _ref4.y,
+ y = _ref4$y === void 0 ? 0 : _ref4$y,
+ width = _ref4.width,
+ height = _ref4.height,
+ destWidth = _ref4.destWidth,
+ destHeight = _ref4.destHeight,
+ canvasId = _ref4.canvasId,
+ fileType = _ref4.fileType,
+ quality = _ref4.quality;
+ var pageId = Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* getCurrentPageId */ "a"])();
+
+ if (!pageId) {
+ Object(_bridge__WEBPACK_IMPORTED_MODULE_3__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'canvasToTempFilePath:fail'
+ });
+ return;
+ }
+
+ var cId = canvasEventCallbacks.push(function (res) {
+ Object(_bridge__WEBPACK_IMPORTED_MODULE_3__[/* invoke */ "a"])(callbackId, res);
+ });
+ var dirname = "".concat(uni_platform_service_api_constants__WEBPACK_IMPORTED_MODULE_4__["TEMP_PATH"], "/canvas");
+ operateCanvas(canvasId, pageId, 'toTempFilePath', {
+ x: x,
+ y: y,
+ width: width,
+ height: height,
+ destWidth: destWidth,
+ destHeight: destHeight,
+ fileType: fileType,
+ quality: quality,
+ dirname: dirname,
+ callbackId: cId
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "31c6":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return loadMaps; });
+/* harmony import */ var _helpers_location__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("636c");
+/* harmony import */ var _callout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("3b51");
+
+
+var maps;
+var callbacksMap = {};
+var GOOGLE_MAP_CALLBACKNAME = '__map_callback__';
+function loadMaps(libraries, callback) {
+ var mapInfo = Object(_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* getMapInfo */ "e"])();
+
+ if (!mapInfo.key) {
+ console.error('Map key not configured.');
+ return;
+ }
+
+ var callbacks = callbacksMap[mapInfo.type] = callbacksMap[mapInfo.type] || [];
+
+ if (maps) {
+ callback(maps);
+ } else if (window[mapInfo.type] && window[mapInfo.type].maps) {
+ maps = _helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "c"] ? window[mapInfo.type] : window[mapInfo.type].maps;
+ maps.Callout = maps.Callout || Object(_callout__WEBPACK_IMPORTED_MODULE_1__[/* createCallout */ "a"])(maps);
+ callback(maps);
+ } else if (callbacks.length) {
+ callbacks.push(callback);
+ } else {
+ callbacks.push(callback);
+ var globalExt = window;
+ var callbackName = GOOGLE_MAP_CALLBACKNAME + mapInfo.type;
+
+ globalExt[callbackName] = function () {
+ delete globalExt[callbackName];
+ maps = _helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "c"] ? window[mapInfo.type] : window[mapInfo.type].maps;
+ maps.Callout = Object(_callout__WEBPACK_IMPORTED_MODULE_1__[/* createCallout */ "a"])(maps);
+ callbacks.forEach(function (callback) {
+ return callback(maps);
+ });
+ callbacks.length = 0;
+ };
+
+ var script = document.createElement('script');
+ var src = getScriptBaseUrl(mapInfo.type);
+
+ if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* MapType */ "d"].QQ) {
+ libraries.push('geometry');
+ }
+
+ if (libraries.length) {
+ src += "libraries=".concat(libraries.join('%2C'), "&");
+ }
+
+ if (_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "c"]) {
+ handleAMapSecurityPolicy(mapInfo);
+ }
+
+ script.src = "".concat(src, "key=").concat(mapInfo.key, "&callback=").concat(callbackName);
+
+ script.onerror = function () {
+ console.error('Map load failed.');
+ };
+
+ document.body.appendChild(script);
+ }
+}
+
+function getScriptBaseUrl(mapType) {
+ var urlMap = {
+ qq: 'https://map.qq.com/api/js?v=2.exp&',
+ google: 'https://maps.googleapis.com/maps/api/js?',
+ AMap: 'https://webapi.amap.com/maps?v=2.0&'
+ };
+ return urlMap[mapType];
+}
+
+function handleAMapSecurityPolicy(mapInfo) {
+ window._AMapSecurityConfig = {
+ securityJsCode: mapInfo.securityJsCode || '',
+ serviceHost: mapInfo.serviceHost || ''
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "332a":
+/***/ (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 export (binding) */ __webpack_require__.d(__webpack_exports__, "preloadPage", function() { return preloadPage; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "unPreloadPage", function() { return unPreloadPage; });
+/* 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';
+ }
+ } // switchTab不允许传递参数,reLaunch到一个tabBar页面是可以的
+
+
+ if ((type === 'switchTab' || type === 'preloadPage') && routeOptions.meta.isTabBar && params.openType !== 'appLaunch') {
+ url = pagePath;
+ } // 首页自动格式化为`/`
+
+
+ if (routeOptions.meta.isEntry) {
+ url = url.replace(routeOptions.alias, '/');
+ } // 参数格式化
+
+
+ params.url = encodeQueryString(url);
+
+ if (type === 'unPreloadPage') {
+ return;
+ } else if (type === 'preloadPage') {
+ if (false) {}
+
+ if (routeOptions.meta.isTabBar) {
+ var pages = getCurrentPages(true);
+ var tabBarPagePath = (routeOptions.alias || routeOptions.path).substr(1);
+
+ if (pages.find(function (page) {
+ return page.route === tabBarPagePath;
+ })) {
+ return 'tabBar page `' + tabBarPagePath + '` already exists';
+ }
+ }
+
+ return;
+ } // 主要拦截目标为用户快速点击时触发的多次跳转,该情况,通常前后 url 是一样的
+
+
+ if (navigatorLock === url && params.openType !== 'appLaunch') {
+ return "".concat(navigatorLock, " locked");
+ } // 至少 onLaunch 之后,再启用lock逻辑(onLaunch之前可能开发者手动调用路由API,来提前跳转)
+ // enableNavigatorLock 临时开关(不对外开放),避免该功能上线后,有部分情况异常,可以让开发者临时关闭 lock 功能
+
+
+ if (__uniConfig.ready && __uniConfig.enableNavigatorLock !== false) {
+ navigatorLock = url;
+ }
+ };
+}
+
+var navigatorLock;
+
+function createProtocol(type) {
+ var extras = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ return Object.assign({
+ url: {
+ type: String,
+ required: true,
+ validator: createValidator(type)
+ },
+ beforeAll: function beforeAll() {
+ navigatorLock = '';
+ }
+ }, 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']));
+var preloadPage = {
+ url: {
+ type: String,
+ required: true,
+ validator: createValidator('preloadPage')
+ }
+};
+var unPreloadPage = {
+ url: {
+ type: String,
+ required: true,
+ validator: createValidator('unPreloadPage')
+ }
+};
+
+/***/ }),
+
+/***/ "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__("3972");
+
+function disableScroll(evt) {
+ evt.preventDefault();
+}
+function pageScrollTo(_ref) {
+ var scrollTop = _ref.scrollTop,
+ selector = _ref.selector,
+ duration = _ref.duration;
+
+ if (typeof scrollTop === 'undefined') {
+ var el = document.querySelector(selector);
+
+ if (el) {
+ var _el$getBoundingClient = el.getBoundingClientRect(),
+ top = _el$getBoundingClient.top,
+ height = _el$getBoundingClient.height;
+
+ scrollTop = top + window.pageYOffset;
+
+ if (true) {
+ scrollTop -= height;
+ }
+ }
+ }
+
+ 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)`
+}
+var testReachBottomTimer;
+var lastScrollHeight = 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 scrollHeight = document.documentElement.scrollHeight; // 部分浏览器窗口高度变化后document.documentelement.clientheight不会变化,采用window.innerHeight
+
+ var windowHeight = window.innerHeight;
+ var scrollY = window.scrollY;
+ var isBottom = scrollY > 0 && scrollHeight > windowHeight && scrollY + windowHeight + onReachBottomDistance >= scrollHeight; // 兼容部分浏览器滚动时scroll事件不触发
+
+ var heightChanged = Math.abs(scrollHeight - lastScrollHeight) > onReachBottomDistance;
+
+ if (isBottom && (!hasReachBottom || heightChanged)) {
+ lastScrollHeight = scrollHeight;
+ hasReachBottom = true;
+ return true;
+ }
+
+ if (!isBottom && hasReachBottom) {
+ hasReachBottom = false;
+ }
+
+ return false;
+ }
+
+ function trigger() {
+ var pages = getCurrentPages();
+
+ if (!pages.length || pages[pages.length - 1].$page.id !== pageId) {
+ return;
+ } // 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
+ });
+ }
+
+ function testReachBottom() {
+ if (isReachBottom()) {
+ Object(uni_platform_view_bridge__WEBPACK_IMPORTED_MODULE_0__[/* publishHandler */ "a"])('onReachBottom', {}, pageId);
+ onReachBottom = false;
+ setTimeout(function () {
+ onReachBottom = true;
+ }, 350);
+ return true;
+ }
+ }
+
+ if (enablePageReachBottom && onReachBottom) {
+ if (testReachBottom()) {} else {
+ // 解决部分浏览器滚动中js获取窗口高度不准确导致的问题
+ testReachBottomTimer = setTimeout(testReachBottom, 300);
+ }
+ }
+
+ ticking = false;
+ }
+
+ return function onScroll() {
+ clearTimeout(testReachBottomTimer);
+
+ if (!ticking) {
+ requestAnimationFrame(trigger);
+ }
+
+ ticking = true;
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "3469":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/view/components/map/index.vue?vue&type=template&id=128d1848&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-map',_vm._g({ref:"mapContainer",attrs:{"id":_vm.id}},_vm.$listeners),[_vm._l((_vm.markers),function(item){return _c('map-marker',_vm._b({key:item.id},'map-marker',item,false))}),_vm._l((_vm.controls),function(item,index){return _c('map-control',_vm._b({key:item.id || index},'map-control',item,false))}),_vm._l((_vm.polygons),function(item){return _c('map-polygon',_vm._b({key:JSON.stringify(item.points)},'map-polygon',item,false))}),_c('div',{ref:"map",staticStyle:{"width":"100%","height":"100%","position":"relative","overflow":"hidden"},on:{"click":function($event){$event.stopPropagation();}}}),_c('div',{staticStyle:{"position":"absolute","top":"0","width":"100%","height":"100%","overflow":"hidden","pointer-events":"none"}},[_vm._t("default")],2)],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/map/index.vue?vue&type=template&id=128d1848&
+
+// EXTERNAL MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/view/components/map/index.vue?vue&type=script&lang=js&
+var mapvue_type_script_lang_js_ = __webpack_require__("f1a0");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/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/mp-weibo/view/components/map/index.vue?vue&type=style&index=0&lang=css&
+var mapvue_type_style_index_0_lang_css_ = __webpack_require__("dd2d");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/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);
+
+/***/ }),
+
+/***/ "3566":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("7653");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "3569":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "35d0":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getPageHolder", function() { return getPageHolder; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCurrentPage", function() { return isCurrentPage; });
+function getPageHolder(__page__) {
+ if (__page__) {
+ return __page__.$holder;
+ }
+
+ var pages = getCurrentPages();
+ var len = pages.length;
+
+ if (len) {
+ return pages[len - 1].$holder;
+ }
+}
+function isCurrentPage(pageHolder) {
+ var pages = getCurrentPages();
+ var len = pages.length;
+
+ if (len) {
+ return pages[len - 1].$holder === pageHolder;
+ }
+
+ return false;
+}
+
+/***/ }),
+
+/***/ "3648":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "canIUse", function() { return /* binding */ canIUse; });
+
+// EXTERNAL MODULE: ./src/shared/index.js + 8 modules
+var shared = __webpack_require__("f2b3");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/helpers/can-i-use.js
+function cssSupports(css) {
+ return window.CSS && CSS.supports && (CSS.supports(css) || CSS.supports.apply(CSS, css.split(':')));
+}
+
+/* harmony default export */ var can_i_use = ({
+ 'css.var': cssSupports('--a:0'),
+ 'css.env': cssSupports('top:env(a)'),
+ 'css.constant': cssSupports('top:constant(a)')
+});
+// EXTERNAL MODULE: ./src/core/service/platform-api.js + 1 modules
+var platform_api = __webpack_require__("9fe4");
+
+// CONCATENATED MODULE: ./src/core/service/api/base/can-i-use.js
+
+
+ // TODO 待处理其他 API 的检测
+
+function canIUse(schema) {
+ if (Object(shared["i" /* hasOwn */])(can_i_use, schema)) {
+ return can_i_use[schema];
+ }
+
+ if (Object(shared["i" /* hasOwn */])(platform_api["a" /* default */], schema)) {
+ return true;
+ }
+
+ return false;
+}
+
+/***/ }),
+
+/***/ "3676":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRecorderManager", function() { return getRecorderManager; });
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("db70");
+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 callbacks = {
+ pause: null,
+ resume: null,
+ start: null,
+ stop: null,
+ error: null
+};
+
+var RecorderManager = /*#__PURE__*/function () {
+ function RecorderManager() {
+ _classCallCheck(this, RecorderManager);
+
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* onMethod */ "d"])('onRecorderStateChange', function (res) {
+ var state = res.state;
+ delete res.state;
+ delete res.errMsg;
+
+ if (typeof callbacks[state] === 'function') {
+ callbacks[state](res);
+ }
+ });
+ }
+
+ _createClass(RecorderManager, [{
+ key: "onError",
+ value: function onError(callback) {
+ callbacks.error = callback;
+ }
+ }, {
+ key: "onFrameRecorded",
+ value: function onFrameRecorded(callback) {}
+ }, {
+ key: "onInterruptionBegin",
+ value: function onInterruptionBegin(callback) {}
+ }, {
+ key: "onInterruptionEnd",
+ value: function onInterruptionEnd(callback) {}
+ }, {
+ key: "onPause",
+ value: function onPause(callback) {
+ callbacks.pause = callback;
+ }
+ }, {
+ key: "onResume",
+ value: function onResume(callback) {
+ callbacks.resume = callback;
+ }
+ }, {
+ key: "onStart",
+ value: function onStart(callback) {
+ callbacks.start = callback;
+ }
+ }, {
+ key: "onStop",
+ value: function onStop(callback) {
+ callbacks.stop = callback;
+ }
+ }, {
+ key: "pause",
+ value: function pause() {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('operateRecorder', {
+ operationType: 'pause'
+ });
+ }
+ }, {
+ key: "resume",
+ value: function resume() {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('operateRecorder', {
+ operationType: 'resume'
+ });
+ }
+ }, {
+ key: "start",
+ value: function start(options) {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('operateRecorder', Object.assign({}, options, {
+ operationType: 'start'
+ }));
+ }
+ }, {
+ key: "stop",
+ value: function stop() {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('operateRecorder', {
+ operationType: 'stop'
+ });
+ }
+ }]);
+
+ return RecorderManager;
+}();
+
+var recorderManager;
+function getRecorderManager() {
+ return recorderManager || (recorderManager = new RecorderManager());
+}
+
+/***/ }),
+
+/***/ "3972":
+/***/ (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__("c8ba")))
+
+/***/ }),
+
+/***/ "39aa":
+/***/ (function(module) {
+
+module.exports = JSON.parse("{\"uni.app.quit\":\"Press back button again to exit\",\"uni.async.error\":\"The connection timed out, click the screen to try again.\",\"uni.showActionSheet.cancel\":\"Cancel\",\"uni.showToast.unpaired\":\"Please note showToast must be paired with hideToast\",\"uni.showLoading.unpaired\":\"Please note showLoading must be paired with hideLoading\",\"uni.showModal.cancel\":\"Cancel\",\"uni.showModal.confirm\":\"OK\",\"uni.chooseImage.cancel\":\"Cancel\",\"uni.chooseImage.sourceType.album\":\"Album\",\"uni.chooseImage.sourceType.camera\":\"Camera\",\"uni.chooseVideo.cancel\":\"Cancel\",\"uni.chooseVideo.sourceType.album\":\"Album\",\"uni.chooseVideo.sourceType.camera\":\"Camera\",\"uni.chooseFile.notUserActivation\":\"File chooser dialog can only be shown with a user activation\",\"uni.previewImage.cancel\":\"Cancel\",\"uni.previewImage.button.save\":\"Save Image\",\"uni.previewImage.save.success\":\"Saved successfully\",\"uni.previewImage.save.fail\":\"Save failed\",\"uni.setClipboardData.success\":\"Content copied\",\"uni.scanCode.title\":\"Scan code\",\"uni.scanCode.album\":\"Album\",\"uni.scanCode.fail\":\"Recognition failure\",\"uni.scanCode.flash.on\":\"Tap to turn light on\",\"uni.scanCode.flash.off\":\"Tap to turn light off\",\"uni.startSoterAuthentication.authContent\":\"Fingerprint recognition\",\"uni.startSoterAuthentication.waitingContent\":\"Unrecognizable\",\"uni.picker.done\":\"Done\",\"uni.picker.cancel\":\"Cancel\",\"uni.video.danmu\":\"Danmu\",\"uni.video.volume\":\"Volume\",\"uni.button.feedback.title\":\"feedback\",\"uni.button.feedback.send\":\"send\",\"uni.chooseLocation.search\":\"Find Place\",\"uni.chooseLocation.cancel\":\"Cancel\"}");
+
+/***/ }),
+
+/***/ "39fc":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("6423");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "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__("c8ba")))
+
+/***/ }),
+
+/***/ "3ae8":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "3af1":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return onThemeChange; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return offThemeChange; });
+/* unused harmony export parseTheme */
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _service_api_base_get_browser_info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("fb3e");
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _service_api_base_get_browser_info__WEBPACK_IMPORTED_MODULE_1__["a"]; });
+
+/* harmony import */ var uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("65a8");
+
+
+
+
+function onThemeChange() {
+ var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
+
+ if (__uniConfig.darkmode) {
+ UniServiceJSBridge.on('api.' + uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* ON_THEME_CHANGE */ "b"], callback);
+ }
+}
+function offThemeChange() {
+ var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
+ UniServiceJSBridge.off('api.' + uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* ON_THEME_CHANGE */ "b"], callback);
+}
+function parseTheme(pageStyle) {
+ var parsedStyle = {};
+
+ if (__uniConfig.darkmode) {
+ var theme = Object(_service_api_base_get_browser_info__WEBPACK_IMPORTED_MODULE_1__[/* getTheme */ "a"])();
+ parsedStyle = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* normallizeStyles */ "o"])(pageStyle, __uniConfig.themeConfig, theme);
+ }
+
+ return __uniConfig.darkmode ? parsedStyle : pageStyle;
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "3b50":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _helpers_location__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("44ab");
+
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ props: {
+ // 边框虚线,腾讯地图支持,google 高德 地图不支持,默认值为[0, 0] 为实线,非 [0, 0] 为虚线,H5 端无法像微信小程序一样控制虚线的间隔像素大小
+ dashArray: {
+ type: Array,
+ default: function _default() {
+ return [0, 0];
+ }
+ },
+ // 经纬度数组,[{latitude: 0, longitude: 0}]
+ points: {
+ type: Array,
+ required: true
+ },
+ // 描边的宽度
+ strokeWidth: {
+ type: Number,
+ default: 1
+ },
+ // 描边的颜色,十六进制
+ strokeColor: {
+ type: String,
+ default: '#000000'
+ },
+ // 填充颜色,十六进制
+ fillColor: {
+ type: String,
+ default: '#00000000'
+ },
+ // 设置多边形 Z 轴数值
+ zIndex: {
+ type: Number,
+ default: 0
+ }
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ var $parent = this.$parent; // 当地图准备好以后调用指定的回调函数
+
+ $parent.mapReady(function () {
+ _this.drawPolygon(); // 遍历 props 对象,观察其中的每个属性,当属性发生变化时,更新地图上的 polygon
+
+
+ Object.keys(_this.$props).forEach(function (key) {
+ _this.$watch(key, function () {
+ _this.drawPolygon();
+ }, {
+ deep: true
+ });
+ });
+ });
+ },
+ methods: {
+ // 绘制区域
+ drawPolygon: function drawPolygon() {
+ // polygon 组件的 props 配置
+ var points = this.points,
+ strokeWidth = this.strokeWidth,
+ strokeColor = this.strokeColor,
+ dashArray = this.dashArray,
+ fillColor = this.fillColor,
+ zIndex = this.zIndex; // 从父组件解析 _maps、_map 和 $trigger,下面要用
+
+ var _this$$parent = this.$parent,
+ _maps = _this$$parent._maps,
+ _map = _this$$parent._map;
+ var path = points.map(function (item) {
+ var latitude = item.latitude,
+ longitude = item.longitude;
+ return _helpers_location__WEBPACK_IMPORTED_MODULE_1__[/* IS_AMAP */ "b"] ? [longitude, latitude] : new _maps.LatLng(latitude, longitude);
+ });
+
+ var _hexToRgba = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hexToRgba */ "j"])(fillColor),
+ fcR = _hexToRgba.r,
+ fcG = _hexToRgba.g,
+ fcB = _hexToRgba.b,
+ fcA = _hexToRgba.a;
+
+ var _hexToRgba2 = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hexToRgba */ "j"])(strokeColor),
+ scR = _hexToRgba2.r,
+ scG = _hexToRgba2.g,
+ scB = _hexToRgba2.b,
+ scA = _hexToRgba2.a;
+
+ var polygonOptions = {
+ // 多边形是否可点击。
+ clickable: true,
+ // 鼠标在多边形内的光标样式。
+ cursor: 'crosshair',
+ // 多边形是否可编辑。
+ editable: false,
+ // 地图实例,即要显示多边形的地图
+ // @ts-ignore
+ map: _map,
+ // 区域填充色
+ fillColor: '',
+ // 多边形的路径,以经纬度坐标数组构成。
+ path: path,
+ // 区域边框
+ strokeColor: '',
+ // 多边形的边框样式。实线是solid,虚线是dash。
+ strokeDashStyle: dashArray.some(function (item) {
+ return item > 0;
+ }) ? 'dash' : 'solid',
+ // 多边形的边框线宽。
+ strokeWeight: strokeWidth,
+ // 多边形是否可见。
+ visible: true,
+ // 多边形的zIndex值。
+ zIndex: zIndex
+ }; // 多边形的填充色、边框以及相应的透明度
+
+ if (_maps.Color) {
+ // 说明是 腾讯地图,google map 实例没有 Color 属性
+ // 将类型转为两者共有的 string,避免 ts 报错
+ polygonOptions.fillColor = new _maps.Color(fcR, fcG, fcB, fcA);
+ polygonOptions.strokeColor = new _maps.Color(scR, scG, scB, scA);
+ } else {
+ // google map
+ polygonOptions.fillColor = "rgb(".concat(fcR, ", ").concat(fcG, ", ").concat(fcB, ")");
+ polygonOptions.fillOpacity = fcA;
+ polygonOptions.strokeColor = "rgb(".concat(scR, ", ").concat(scG, ", ").concat(scB, ")");
+ polygonOptions.strokeOpacity = scA;
+ }
+
+ if (this.polygonIns) {
+ // 更新区域属性
+ this.polygonIns.setOptions(polygonOptions);
+ return;
+ } // 说明是新增区域
+
+
+ this.polygonIns = new _maps.Polygon(polygonOptions);
+ }
+ },
+ // 卸载时清除地图上绘制的 polygon
+ beforeDestroy: function beforeDestroy() {
+ this.polygonIns.setMap(null);
+ this.polygonIns = null;
+ },
+ render: function render() {
+ return null;
+ }
+});
+
+/***/ }),
+
+/***/ "3b51":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createCallout; });
+/* harmony import */ var _helpers_location__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("636c");
+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; }
+
+
+function createCallout(maps) {
+ function onAdd() {
+ var div = this.div;
+ var panes = this.getPanes();
+ panes.floatPane.appendChild(div);
+ }
+
+ function onRemove() {
+ var parentNode = this.div.parentNode;
+
+ if (parentNode) {
+ parentNode.removeChild(this.div);
+ }
+ }
+
+ function createAMapText() {
+ var _this = this;
+
+ var option = this.option;
+ this.Text = new maps.Text({
+ text: option.content,
+ anchor: 'bottom-center',
+ // 设置文本标记锚点
+ offset: new maps.Pixel(0, option.offsetY - 16),
+ style: {
+ padding: (option.padding || 8) + 'px',
+ 'line-height': (option.fontSize || 14) + 'px',
+ 'border-radius': (option.borderRadius || 0) + 'px',
+ 'border-color': "".concat(option.bgColor || '#fff', " transparent transparent"),
+ 'background-color': option.bgColor || '#fff',
+ 'box-shadow': '0 2px 6px 0 rgba(114, 124, 245, .5)',
+ 'text-align': 'center',
+ 'font-size': (option.fontSize || 14) + 'px',
+ color: option.color || '#000'
+ },
+ position: option.position
+ }); // 不通过 addListener 方式绑定事件,为了规避高德地图覆盖物点击触发map点击问题
+
+ this.Text.dom.addEventListener('click', function (e) {
+ handleAMapTextClick(_this, e);
+ });
+ this.Text.dom.addEventListener('touchend', function (e) {
+ handleAMapTextClick(_this, e);
+ });
+ this.Text.setMap(option.map);
+ }
+
+ function handleAMapTextClick(self, e) {
+ self.callback(e, self.parent);
+ e.stopPropagation();
+ }
+
+ function removeAMapText() {
+ if (this.Text) {
+ this.option.map.remove(this.Text);
+ }
+ }
+
+ var Callout = /*#__PURE__*/function () {
+ _createClass(Callout, [{
+ key: "onclick",
+ set: function set(callback) {
+ this.div.onclick = callback;
+ },
+ get: function get() {
+ return this.div.onclick;
+ }
+ }]);
+
+ function Callout() {
+ var option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ var callback = arguments.length > 1 ? arguments[1] : undefined;
+ var parent = arguments.length > 2 ? arguments[2] : undefined;
+
+ _classCallCheck(this, Callout);
+
+ _defineProperty(this, "option", void 0);
+
+ _defineProperty(this, "position", void 0);
+
+ _defineProperty(this, "index", void 0);
+
+ _defineProperty(this, "visible", void 0);
+
+ _defineProperty(this, "alwaysVisible", void 0);
+
+ _defineProperty(this, "div", void 0);
+
+ _defineProperty(this, "triangle", void 0);
+
+ _defineProperty(this, "callback", void 0);
+
+ _defineProperty(this, "parent", void 0);
+
+ _defineProperty(this, "Text", void 0);
+
+ _defineProperty(this, "createAMapText", createAMapText);
+
+ _defineProperty(this, "removeAMapText", removeAMapText);
+
+ _defineProperty(this, "onAdd", onAdd);
+
+ _defineProperty(this, "construct", onAdd);
+
+ _defineProperty(this, "onRemove", onRemove);
+
+ _defineProperty(this, "destroy", onRemove);
+
+ this.option = option || {};
+ this.visible = this.alwaysVisible = option.display === 'ALWAYS';
+
+ if (_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "c"]) {
+ this.callback = callback;
+ this.parent = parent;
+
+ if (this.visible) {
+ this.createAMapText();
+ }
+ } else {
+ var map = option.map;
+ this.position = option.position;
+ this.index = 1;
+ var div = this.div = document.createElement('div');
+ var divStyle = div.style;
+ divStyle.position = 'absolute';
+ divStyle.whiteSpace = 'nowrap';
+ divStyle.transform = 'translateX(-50%) translateY(-100%)';
+ divStyle.zIndex = '1';
+ divStyle.boxShadow = option.boxShadow || 'none';
+ divStyle.display = this.visible ? 'block' : 'none';
+ var triangle = this.triangle = document.createElement('div');
+ triangle.setAttribute('style', 'position: absolute;white-space: nowrap;border-width: 4px;border-style: solid;border-color: #fff transparent transparent;border-image: initial;font-size: 12px;padding: 0px;background-color: transparent;width: 0px;height: 0px;transform: translate(-50%, 100%);left: 50%;bottom: 0;');
+ this.setStyle(option);
+ div.appendChild(triangle);
+
+ if (map) {
+ this.setMap(map);
+ }
+ }
+ }
+
+ _createClass(Callout, [{
+ key: "setOption",
+ value: function setOption(option) {
+ this.option = option;
+
+ if (option.display === 'ALWAYS') {
+ this.alwaysVisible = this.visible = true;
+ } else {
+ this.alwaysVisible = false;
+ }
+
+ if (_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "c"]) {
+ if (this.visible) {
+ this.createAMapText();
+ }
+ } else {
+ this.setPosition(option.position);
+ this.setStyle(option);
+ }
+ }
+ }, {
+ key: "setStyle",
+ value: function setStyle(option) {
+ var div = this.div;
+ var divStyle = div.style;
+ div.innerText = option.content || '';
+ divStyle.lineHeight = (option.fontSize || 14) + 'px';
+ divStyle.fontSize = (option.fontSize || 14) + 'px';
+ divStyle.padding = (option.padding || 8) + 'px';
+ divStyle.color = option.color || '#000';
+ divStyle.borderRadius = (option.borderRadius || 0) + 'px';
+ divStyle.backgroundColor = option.bgColor || '#fff';
+ divStyle.marginTop = '-' + ((option.top || 0) + 5) + 'px';
+ this.triangle.style.borderColor = "".concat(option.bgColor || '#fff', " transparent transparent");
+ }
+ }, {
+ key: "setPosition",
+ value: function setPosition(position) {
+ this.position = position;
+ this.draw();
+ }
+ }, {
+ key: "draw",
+ value: function draw() {
+ var overlayProjection = this.getProjection();
+
+ if (!this.position || !this.div || !overlayProjection) {
+ return;
+ }
+
+ var pixel = overlayProjection.fromLatLngToDivPixel(this.position);
+ var divStyle = this.div.style;
+ divStyle.left = pixel.x + 'px';
+ divStyle.top = pixel.y + 'px';
+ }
+ }, {
+ key: "changed",
+ value: function changed() {
+ var divStyle = this.div.style;
+ divStyle.display = this.visible ? 'block' : 'none';
+ }
+ }]);
+
+ return Callout;
+ }();
+
+ if (!_helpers_location__WEBPACK_IMPORTED_MODULE_0__[/* IS_AMAP */ "c"]) {
+ var prototype = Callout.prototype;
+ var overlay = new (maps.OverlayView || maps.Overlay)();
+
+ for (var key in overlay) {
+ if (!(key in prototype)) {
+ prototype[key] = overlay[key];
+ }
+ }
+ }
+
+ return Callout;
+}
+
+/***/ }),
+
+/***/ "3bfb":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createAudioContext", function() { return createAudioContext; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createVideoContext", function() { return createVideoContext; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createMapContext", function() { return createMapContext; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "createCanvasContext", function() { return createCanvasContext; });
+var validator = [{
+ name: 'id',
+ type: String,
+ required: true
+}];
+var createAudioContext = validator;
+var createVideoContext = validator;
+var createMapContext = validator;
+var createCanvasContext = [{
+ name: 'canvasId',
+ type: String,
+ required: true
+}, {
+ name: 'componentInstance',
+ type: Object
+}];
+
+/***/ }),
+
+/***/ "3d1f":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initSubscribe; });
+/* harmony import */ var uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("62b5");
+/* harmony import */ var _plugins_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a741");
+
+
+function initSubscribe(subscribe, _ref) {
+ var getApp = _ref.getApp,
+ getCurrentPages = _ref.getCurrentPages;
+
+ function createPageEvent(eventType) {
+ return function (args, pageId) {
+ pageId = parseInt(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 if (false) {}
+ };
+ }
+
+ var requestComponentInfoCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('requestComponentInfo');
+
+ function onRequestComponentInfo(_ref2) {
+ var reqId = _ref2.reqId,
+ res = _ref2.res;
+ var callback = requestComponentInfoCallbacks.pop(reqId);
+
+ if (callback) {
+ callback(res);
+ }
+ }
+
+ var requestComponentObserverCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('requestComponentObserver');
+
+ function onRequestComponentObserver(_ref3) {
+ var reqId = _ref3.reqId,
+ reqEnd = _ref3.reqEnd,
+ res = _ref3.res;
+ var callback = requestComponentObserverCallbacks.get(reqId);
+
+ if (callback) {
+ if (reqEnd) {
+ requestComponentObserverCallbacks.pop(reqId);
+ return;
+ }
+
+ callback(res);
+ }
+ }
+
+ var requestMediaQueryObserverCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('requestMediaQueryObserver');
+
+ function onRequestMediaQueryObserver(_ref4) {
+ var reqId = _ref4.reqId,
+ reqEnd = _ref4.reqEnd,
+ res = _ref4.res;
+ var callback = requestMediaQueryObserverCallbacks.get(reqId);
+
+ if (callback) {
+ if (reqEnd) {
+ requestMediaQueryObserverCallbacks.pop(reqId);
+ return;
+ }
+
+ callback(res);
+ }
+ }
+
+ if (true) {
+ subscribe('onPageReady', createPageEvent('onReady'));
+ }
+
+ subscribe('onPageScroll', createPageEvent('onPageScroll'));
+ subscribe('onReachBottom', createPageEvent('onReachBottom'));
+ subscribe('onRequestComponentInfo', onRequestComponentInfo);
+ subscribe('onRequestComponentObserver', onRequestComponentObserver);
+ subscribe('onRequestMediaQueryObserver', onRequestMediaQueryObserver);
+}
+
+/***/ }),
+
+/***/ "3da9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("fdb1");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "3e8c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=template&id=377d3dc7&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-resize-sensor',{on:{"~animationstart":function($event){return _vm.update($event)}}},[_c('div',{on:{"scroll":_vm.update}},[_c('div')]),_c('div',{on:{"scroll":_vm.update}},[_c('div')])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/resize-sensor/index.vue?vue&type=template&id=377d3dc7&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+var MAX = 100000;
+/* 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();
+ }
+ },
+ activated: function activated() {
+ this.reset();
+ },
+ methods: {
+ reset: function reset() {
+ var expand = this.$el.firstChild;
+ expand.scrollLeft = MAX;
+ expand.scrollTop = MAX;
+ var shrink = this.$el.lastChild;
+ shrink.scrollLeft = MAX;
+ shrink.scrollTop = MAX;
+ },
+ update: function update() {
+ this.size.width = this.$el.offsetWidth;
+ this.size.height = this.$el.offsetHeight;
+ this.reset();
+ }
+ }
+});
+// 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
+
+
+
+
+
+
+/* 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);
+
+/***/ }),
+
+/***/ "3ea2":
+/***/ (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__, "chooseFile", function() { return chooseFile; });
+/* harmony import */ var uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("93af");
+/* harmony import */ var uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a6b0");
+/* harmony import */ var _create_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("d951");
+/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("8af1");
+
+
+
+
+var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+var fileInput = null;
+function chooseFile(_ref, callbackId) {
+ var count = _ref.count,
+ sourceType = _ref.sourceType,
+ type = _ref.type,
+ extension = _ref.extension;
+
+ // TODO handle sizeType 尝试通过 canvas 压缩
+ if (fileInput) {
+ document.body.removeChild(fileInput);
+ fileInput = null;
+ }
+
+ fileInput = Object(_create_input__WEBPACK_IMPORTED_MODULE_2__["default"])({
+ count: count,
+ sourceType: sourceType,
+ type: type,
+ extension: extension
+ });
+ document.body.appendChild(fileInput);
+ fileInput.addEventListener('change', function (event) {
+ var tempFiles = [];
+ var fileCount = event.target.files.length;
+
+ var _loop = function _loop(i) {
+ var file = event.target.files[i];
+ var filePath = void 0;
+ Object.defineProperty(file, 'path', {
+ get: function get() {
+ filePath = filePath || Object(uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__[/* fileToUrl */ "b"])(file);
+ return filePath;
+ }
+ });
+ if (i < count) tempFiles.push(file);
+ };
+
+ for (var i = 0; i < fileCount; i++) {
+ _loop(i);
+ }
+
+ var res = {
+ errMsg: 'chooseFile:ok',
+
+ get tempFilePaths() {
+ return tempFiles.map(function (_ref2) {
+ var path = _ref2.path;
+ return path;
+ });
+ },
+
+ tempFiles: tempFiles
+ };
+ invoke(callbackId, res); // TODO 用户取消选择时,触发 fail,目前尚未找到合适的方法。
+ });
+ fileInput.click();
+
+ if (!uni_mixins__WEBPACK_IMPORTED_MODULE_3__[/* interact */ "d"].getStatus()) {
+ console.warn("".concat(Object(uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__[/* t */ "g"])('uni.chooseFile.notUserActivation')));
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "3f15":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getVideoInfo", function() { return getVideoInfo; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8ef5");
+
+var getVideoInfo = {
+ src: {
+ type: String,
+ required: true,
+ validator: function validator(src, params) {
+ params.src = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(src);
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "42f9":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "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 VAR INJECTION */(function(console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initVue; });
+/* harmony import */ var uni_helpers_tags__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5129");
+/* harmony import */ var uni_helpers_tags__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(uni_helpers_tags__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85b6");
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("f2b3");
+// 使用白名单过滤(前期有一批自定义组件使用了 uni-)
+
+
+
+function initVue(Vue) {
+ Vue.config.errorHandler = function (err, vm, info) {
+ var errType = Object(uni_shared__WEBPACK_IMPORTED_MODULE_2__[/* toRawType */ "u"])(err);
+ Vue.util.warn("Error in ".concat(info, ": \"").concat(errType === 'Error' ? err.toString() : err, "\""), vm);
+ var app = typeof getApp === 'function' && getApp();
+
+ if (app && Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* hasLifecycleHook */ "c"])(app.$options, 'onError')) {
+ app.__call_hook('onError', err);
+ } else {
+ if (false) {} else {
+ console.error(err);
+ }
+ }
+ };
+
+ var oldIsReservedTag = Vue.config.isReservedTag;
+
+ Vue.config.isReservedTag = function (tag) {
+ return uni_helpers_tags__WEBPACK_IMPORTED_MODULE_0___default.a.indexOf(tag) !== -1 || oldIsReservedTag(tag);
+ };
+
+ Vue.config.ignoredElements = uni_helpers_tags__WEBPACK_IMPORTED_MODULE_0___default.a;
+ var oldGetTagNamespace = Vue.config.getTagNamespace;
+ var conflictTags = ['switch', 'image', 'text', 'view'];
+
+ Vue.config.getTagNamespace = function (tag) {
+ if (~conflictTags.indexOf(tag)) {
+ // svg 部分标签名称与 uni 标签冲突
+ return false;
+ }
+
+ return oldGetTagNamespace(tag);
+ };
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "44ab":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ICON_PATH_ORIGIN; });
+/* unused harmony export ICON_PATH_TARGET */
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return MapType; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getMapInfo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return IS_AMAP; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return translateCoordinateSystem; });
+/* harmony import */ var _get_jsonp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fda8");
+/* harmony import */ var _view_components_map_maps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("d497");
+
+
+var ICON_PATH_ORIGIN = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAC01BMVEUAAAAAef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef96quGStdqStdpbnujMzMzCyM7Gyc7Ky83MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAef8GfP0yjfNWnOp0qOKKsdyYt9mju9aZt9mMstx1qeJYnekyjvIIfP0qivVmouaWttnMzMyat9lppOUujPQKffxhoOfNzc3Y2Njh4eHp6enu7u7y8vL19fXv7+/i4uLZ2dnOzs6auNgOf/sKff15quHR0dHx8fH9/f3////j4+N6quFdn+iywdPb29vw8PD+/v7c3NyywtLa2tr29vbS0tLd3d38/Pzf39/o6Ojc7f+q0v+HwP9rsf9dqv9Hnv9Vpv/q6urj8P+Vx/9Am/8Pgf8Iff/z8/OAvP95uf/n5+c5l//V6f+52v+y1//7+/vt7e0rkP/09PTQ0NDq9P8Whf+cy//W1tbe3t7A3v/m5ubs7OxOov/r6+vk5OQiaPjKAAAAknRSTlMACBZ9oB71/jiqywJBZATT6hBukRXv+zDCAVrkDIf4JbQsTb7eVeJLbwfa8Rh4G/OlPS/6/kxQ9/xdmZudoJxNVhng7B6wtWdzAtQOipcF1329wS44doK/BAkyP1pvgZOsrbnGXArAg34G2IsD1eMRe7bi7k5YnqFT9V0csyPedQyYD3p/Fje+hDpskq/MwpRBC6yKp2MAAAQdSURBVHja7Zn1exMxGIAPHbrhDsPdneHuNtzd3d3dIbjLh93o2o4i7TpgG1Jk0g0mMNwd/gTa5rq129reHnK5e/bk/TFNk/dJ7r5894XjGAwGg8GgTZasCpDIll1+hxw5vXLJLpEboTx5ZXbIhyzkl9fB28cqUaCgrBKFkI3CcjoUKYolihWXUSI7EihRUjaHXF52CVRKLoe8eZIdUOkyMknkRw6UlcehYAFHiXK+skgURk6Ul8OhQjFnCVRRBolKqRxQ5SzUHaqgNGSj7VCmalqJnDkoS5RF6ZCbroNvufQkUD6qEuXTdUA+3hQdqiEXVKfnUKOmK4latalJ1EEuoZZ6162HJ9x/4OChw0eOHj12/MTJU6dxG7XUu751tjNnz4ET5y9ctLZTSr0beKFLl89bpuUDrqgC1RqNWqsKuqqzNFw7e51S6u3tc+OmZUJ9kCHY6ECwOkRvab51iUrqXej2HYDQsHBjWgx3Ae7dppB6N2wEcF9jdMGDUIDGTaR2aNoM9FqjG7QmaN5CWgc/gIePjG559BigpZQOrYB/4jBfRGRUtDkmJjY6KjLCofkpD62lc2gDfMpWPIuLdwyV8XEpHgaddBZ+wBuSFcwJqSN2ovmZ/dfnOvCTxqGtwzq8SEjv4EhISn48eWgnhUP7DvDSvgzxrs6vV6+FLiro2EkCic4QKkzwJsH1KYreCp0eQhfyDl1B/w4P/xa5JVJ4U03QjbRD9x7wXlgH5IE3wmMBHXoSlugFAcI6f/AkkSi8q6HQm6xDn77wEQ8djTwSj3tqAMguRTe4ikeOQyJ4YV+KfkQl+oNW5GbY4gWOWgbwJ+kwAD6Fi90MK2ZsrIeBBCUGwRXbqJ+/iJMQliIEBhOU6AJhtlG/IpHE2bqrYQg5h6HA4yQiRqwEfkGCdTCMmMRw+IbPDCQaHCsCYAQxiZHw3TbmD/ESOHgHwShiEqPhp/gggYkSztIxxCRawy/bmEniJaJtfwiEscQkxkFgRqJESqQwwHhiEuMBp3Vm8RK/cZoHEzKXhCK2QxEPpiJe0YlKCFaKCNv/cYBNUsBRPlkJSc0U+dM7E9H0ThGJbgZT/iR7yj+VqMS06Qr4+OFm2JdCxIa8lugzkJs5K6MfxAaYPUcBpYG5khZJEkUUSb7DPCnKRfPBXj6M8FwuegoLpCgXcQszVjhbJFUJUee2hBhLoYTIcYtB57KY+opSMdVqwatSlZVj05aV//CwJLMX2DluaUcwhXm4ali2XOoLjxUrPV26zFtF4f5p0Gp310+z13BUWNvbehEXona6iAtX/zVZmtfN4WixfsNky4S6gCCVVq3RPLdfSfpv3MRRZfPoLc6Xs/5bt3EyMGzE9h07/Xft2t15z6i9+zgGg8FgMBgMBoPBYDAYDAYj8/APG67Rie8pUDsAAAAASUVORK5CYII=';
+var ICON_PATH_TARGET = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAACcCAMAAAC3Fl5oAAAB3VBMVEVMaXH/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/EhL/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/Dw//AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/GRn/NTX/Dw//Fhb/AAD/AAD/AAD/GRn/GRn/Y2P/AAD/AAD/ExP/Ghr/AAD/AAD/MzP/GRn/AAD/Hh7/AAD/RUX/AAD/AAD/AAD/AAD/AAD/AAD/Dg7/AAD/HR3/Dw//FRX/SUn/AAD/////kJD/DQ3/Zmb/+/v/wMD/mJj/6en/vb3/1NT//Pz/ODj/+fn/3Nz/nJz/j4//9/f/7e3/9vb/7Oz/2Nj/x8f/Ozv/+Pj/3d3/nZ3/2dn//f3/6Oj/2tr/v7//09P/vr7/mZn/l5cdSvP3AAAAe3RSTlMAAhLiZgTb/vztB/JMRhlp6lQW86g8mQ4KFPs3UCH5U8huwlesWtTYGI7RsdVeJGfTW5rxnutLsvXWF8vQNdo6qQbuz7D4hgVIx2xtw8GC1TtZaIw0i84P98tU0/fsj7PKaAgiZZxeVfo8Z52eg1P0nESrENnjXVPUgw/uuSmDAAADsUlEQVR42u3aZ3cTRxgF4GtbYleSLdnGcsENG2ODjbExEHrvhAQCIb1Bem+QdkeuuFMNBBJIfmuOckzZI8/srHYmH3Lm+QNXK632LTvQ03Tu/IWeU/tTGTKT2n+q58L5c00wpXJd47DHEt5w47pKxLbhdLdPKb/7dBYxVLxw1GcI/2h1BcpzKNFHLX2JQ4gumaiitqpEEhEdOMJI9h5AFC3feYzI+7IF2tpSLEOqDXpObPRYFm/jCWho/4Ble7MdoT7fzhhq9yHEz28wltU1UPrJZ0wd66HwicfYvEFIfePTAP8tSLTupBHvtGJFH9bSkNrNWEHzERrT34xSH9Ogr1CijkbVAUH1KRqVqkdQAw07iIAaGlcTqI+/0LjeJJ5J0IIEnkpXMdzs4sTtW9dnZq7fuj2xOMtwVWk88RHDjBYejYvnjD8qjOpfQsUqhvj7oSjxcJIhVj3pyKqpNjYvVjQ/RrXq5YABKi3MCYm5BSrtWO5v11DlmlC4RpU1WRS9SJU7QukOVbpQ9JLu549+Dd0AUOlTbkGEuk85vxLAK5QbuytC3R2j3HoAjZSbFxrmKTcCoJdSk0LLJKV6gSaPMqNTQsvUKGW8JrxKqUWhaZFSeWyh1LTQNE2pHF6mzOy40DQ+S5mLimJcENoKlOnBWsr8KbRNUGYt5LXgd6HtD3lNQIoyN4S2G5RJIUOZm0LbTcqsBqVmhLYZSlkPsP4VWf+Rrd+m1v9o9h8Vv5p42C1R5qL1x7WRglOgVN52yfwNOBu76P+lLPoYidu23KPciIHGa07ZeIW1jvcNtI7q5vexCPGYCmf+m/Y9a3sAwQ5bI9T7ukPgPcn9GToEao+xk1OixJT+GIsvNAbx6eAgPq0xiF+KtkpYKhRXCQ8eFFcJhSWGu3rZ8jJkCM8kz9K4TUnrC6mAgzTsB9tLwQ2W15qfosQ2GrQNpZr7aczbzVjBZsvLcaC1g0bsbIVEnU8DOr6H1KDH2LwtUBi0/JII6Dxm9zUXkH+XMWzfh1Dte1i2Pe3QkC77Zel7aehpO8wyHG6Dtt0NjKxhN6I4uSli/TqJiJJDUQ4NDCURXTrXRy1XcumyD24M+AzhD1RXIIZsl/LoyZmurJHDM7s8lvB2FQ/PmPJ6PseAXP5HGMYAAC7ABbgAF+ACXIALcAEuwAW4ABfgAlyAC3ABLsAFuID/d8Cx4NEt8/byOf0wLnis8zjMq9/Kp7bWw4JOj8u8TlhRl+G/Mp2wpOX48GffvvZ1CyL4B53LAS6zb08EAAAAAElFTkSuQmCC';
+var MapType = {
+ QQ: 'qq',
+ GOOGLE: 'google',
+ AMAP: 'AMap',
+ UNKNOWN: ''
+};
+function getMapInfo() {
+ if (__uniConfig.qqMapKey) {
+ return {
+ type: MapType.QQ,
+ key: __uniConfig.qqMapKey
+ };
+ }
+
+ if (__uniConfig.googleMapKey) {
+ return {
+ type: MapType.GOOGLE,
+ key: __uniConfig.googleMapKey
+ };
+ }
+
+ if (__uniConfig.aMapKey) {
+ return {
+ type: MapType.AMAP,
+ key: __uniConfig.aMapKey,
+ securityJsCode: __uniConfig.aMapSecurityJsCode,
+ serviceHost: __uniConfig.aMapServiceHost
+ };
+ }
+
+ return {
+ type: MapType.UNKNOWN,
+ key: ''
+ };
+}
+var IS_AMAP = getMapInfo().type === MapType.AMAP;
+function translateCoordinateSystem(type, coords, skip) {
+ var mapInfo = getMapInfo();
+ var wgs84Map = [MapType.GOOGLE];
+
+ if (type.toUpperCase() === 'WGS84' || wgs84Map.includes(mapInfo.type) || skip) {
+ return Promise.resolve(coords);
+ }
+
+ if (mapInfo.type === MapType.QQ) {
+ return new Promise(function (resolve, reject) {
+ Object(_get_jsonp__WEBPACK_IMPORTED_MODULE_0__[/* getJSONP */ "a"])("https://apis.map.qq.com/jsapi?qt=translate&type=1&points=".concat(coords.longitude, ",").concat(coords.latitude, "&key=").concat(mapInfo.key, "&output=jsonp&pf=jsapi&ref=jsapi"), {
+ callback: 'cb'
+ }, function (res) {
+ if ('detail' in res && 'points' in res.detail && res.detail.points.length) {
+ var location = res.detail.points[0];
+ resolve({
+ longitude: location.lng,
+ latitude: location.lat,
+ altitude: coords.altitude,
+ accuracy: coords.accuracy,
+ altitudeAccuracy: coords.altitudeAccuracy,
+ heading: coords.heading,
+ speed: coords.speed
+ });
+ } else {
+ reject(new Error('translate coordinate system fail'));
+ }
+ }, function () {
+ return reject(new Error('translate coordinate system fail'));
+ });
+ });
+ }
+
+ if (mapInfo.type === MapType.AMAP) {
+ return new Promise(function (resolve, reject) {
+ Object(_view_components_map_maps__WEBPACK_IMPORTED_MODULE_1__[/* loadMaps */ "a"])([], function () {
+ window.AMap.convertFrom([coords.longitude, coords.latitude], 'gps', function (_, res) {
+ if (res.info === 'ok' && res.locations.length) {
+ var _res$locations$ = res.locations[0],
+ lat = _res$locations$.lat,
+ lng = _res$locations$.lng;
+ resolve({
+ longitude: lng,
+ latitude: lat,
+ altitude: coords.altitude,
+ accuracy: coords.accuracy,
+ altitudeAccuracy: coords.altitudeAccuracy,
+ heading: coords.heading,
+ speed: coords.speed
+ });
+ } else {
+ reject(new Error('translate coordinate system fail'));
+ }
+ });
+ });
+ });
+ }
+}
+
+/***/ }),
+
+/***/ "44fb":
+/***/ (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, ")");
+ });
+ });
+ } else if (this.type === 'float') {
+ var _iconElems = this.$el.querySelectorAll('.uni-btn-icon');
+
+ var _iconElemsStyles = [];
+
+ for (var _i2 = 0; _i2 < _iconElems.length; _i2++) {
+ _iconElemsStyles.push(_iconElems[_i2].style);
+ }
+
+ var _borderRadiusElems = this.$el.querySelectorAll('.uni-page-head-btn');
+
+ var _oldColors = [];
+ var _borderRadiusElemsStyles = [];
+
+ for (var _i3 = 0; _i3 < _borderRadiusElems.length; _i3++) {
+ var _borderRadiusElem = _borderRadiusElems[_i3];
+
+ _oldColors.push(getComputedStyle(_borderRadiusElem).backgroundColor);
+
+ _borderRadiusElemsStyles.push(_borderRadiusElem.style);
+ }
+ }
+ },
+ 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 */ "j"])(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")))
+
+/***/ }),
+
+/***/ "454d":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeTabBarBadge", function() { return removeTabBarBadge; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBarRedDot", function() { return showTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBarRedDot", function() { return hideTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onTabBarMidButtonTap", function() { return onTabBarMidButtonTap; });
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("db70");
+/* harmony import */ var uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a118");
+
+
+function removeTabBarBadge(_ref) {
+ var index = _ref.index;
+ return Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('setTabBarBadge', {
+ index: index,
+ type: 'none'
+ });
+}
+function showTabBarRedDot(_ref2) {
+ var index = _ref2.index;
+ return Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('setTabBarBadge', {
+ index: index,
+ type: 'redDot'
+ });
+}
+var hideTabBarRedDot = removeTabBarBadge;
+var callbacks = [];
+Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* onMethod */ "d"])('onTabBarMidButtonTap', function (res) {
+ callbacks.forEach(function (callbackId) {
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_1__[/* invoke */ "a"])(callbackId, res);
+ });
+});
+function onTabBarMidButtonTap(callbackId) {
+ callbacks.push(callbackId);
+}
+
+/***/ }),
+
+/***/ "45d2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "upx2px", function() { return upx2px; });
+var EPS = 1e-4;
+var BASE_DEVICE_WIDTH = 750;
+var isIOS = false;
+var deviceWidth = 0;
+var deviceDPR = 0;
+
+function checkDeviceWidth() {
+ var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),
+ platform = _uni$getSystemInfoSyn.platform,
+ pixelRatio = _uni$getSystemInfoSyn.pixelRatio,
+ windowWidth = _uni$getSystemInfoSyn.windowWidth;
+
+ deviceWidth = windowWidth;
+ deviceDPR = pixelRatio;
+ isIOS = platform === 'ios';
+}
+
+function checkValue(value, defaultValue) {
+ value = Number(value);
+ return isNaN(value) ? defaultValue : value;
+}
+
+function upx2px(number, newDeviceWidth) {
+ if (deviceWidth === 0) {
+ checkDeviceWidth();
+ }
+
+ number = Number(number);
+
+ if (number === 0) {
+ return 0;
+ }
+
+ var config = __uniConfig.globalStyle || __uniConfig.window || {};
+ var maxWidth = checkValue(config.rpxCalcMaxDeviceWidth, 960);
+ var baseWidth = checkValue(config.rpxCalcBaseDeviceWidth, 375);
+ var includeWidth = checkValue(config.rpxCalcIncludeWidth, 750);
+ var width = newDeviceWidth || deviceWidth;
+ width = number === includeWidth || width <= maxWidth ? width : baseWidth;
+ var result = number / BASE_DEVICE_WIDTH * width;
+
+ if (result < 0) {
+ result = -result;
+ }
+
+ result = Math.floor(result + EPS);
+
+ if (result === 0) {
+ if (deviceDPR === 1 || !isIOS) {
+ result = 1;
+ } else {
+ result = 0.5;
+ }
+ }
+
+ return number < 0 ? -result : result;
+}
+
+/***/ }),
+
+/***/ "4814":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "4b1a":
+/***/ (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__("fda8");
+/* harmony import */ var _helpers_location__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("44ab");
+/* harmony import */ var _view_components_map_maps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("d497");
+
+
+
+/**
+ * 获取定位信息
+ * @param {*} options
+ * @param {*} callbackId
+ */
+
+function getLocation(_ref, callbackId) {
+ var type = _ref.type,
+ altitude = _ref.altitude,
+ isHighAccuracy = _ref.isHighAccuracy,
+ highAccuracyExpireTime = _ref.highAccuracyExpireTime;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ var mapInfo = Object(_helpers_location__WEBPACK_IMPORTED_MODULE_1__[/* getMapInfo */ "d"])();
+ new Promise(function (resolve, reject) {
+ if (navigator.geolocation) {
+ navigator.geolocation.getCurrentPosition(function (res) {
+ return resolve({
+ coords: res.coords
+ });
+ }, reject, {
+ enableHighAccuracy: isHighAccuracy || altitude,
+ timeout: highAccuracyExpireTime || 1000 * 100
+ });
+ } else {
+ reject(new Error('device nonsupport geolocation'));
+ }
+ }).catch(function () {
+ return new Promise(function (resolve, reject) {
+ if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_1__[/* MapType */ "c"].QQ) {
+ Object(_helpers_get_jsonp__WEBPACK_IMPORTED_MODULE_0__[/* getJSONP */ "a"])("https://apis.map.qq.com/ws/location/v1/ip?output=jsonp&key=".concat(mapInfo.key), {
+ callback: 'callback'
+ }, function (res) {
+ if ('result' in res && res.result.location) {
+ var location = res.result.location;
+ resolve({
+ coords: {
+ latitude: location.lat,
+ longitude: location.lng
+ },
+ skip: true
+ });
+ } else {
+ reject(new Error(res.message || JSON.stringify(res)));
+ }
+ }, function () {
+ return reject(new Error('network error'));
+ });
+ } else if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_1__[/* MapType */ "c"].GOOGLE) {
+ uni.request({
+ method: 'POST',
+ url: "https://www.googleapis.com/geolocation/v1/geolocate?key=".concat(mapInfo.key),
+ success: function success(res) {
+ var data = res.data;
+
+ if ('location' in data) {
+ resolve({
+ coords: {
+ latitude: data.location.lat,
+ longitude: data.location.lng,
+ accuracy: data.accuracy
+ },
+ skip: true
+ });
+ } else {
+ reject(new Error(data.error && data.error.message || JSON.stringify(res)));
+ }
+ },
+ fail: function fail() {
+ reject(new Error('network error'));
+ }
+ });
+ } else if (mapInfo.type === _helpers_location__WEBPACK_IMPORTED_MODULE_1__[/* MapType */ "c"].AMAP) {
+ Object(_view_components_map_maps__WEBPACK_IMPORTED_MODULE_2__[/* loadMaps */ "a"])([], function () {
+ window.AMap.plugin('AMap.Geolocation', function () {
+ var geolocation = new window.AMap.Geolocation({
+ enableHighAccuracy: true,
+ timeout: 10000
+ });
+ geolocation.getCurrentPosition(function (status, data) {
+ if (status === 'complete') {
+ resolve({
+ coords: {
+ latitude: data.position.lat,
+ longitude: data.position.lng,
+ accuracy: data.accuracy
+ },
+ skip: true
+ });
+ } else {
+ reject(new Error(data.message));
+ }
+ });
+ });
+ });
+ } else {
+ reject(new Error('network error'));
+ }
+ });
+ }).then(function (_ref2) {
+ var coords = _ref2.coords,
+ skip = _ref2.skip;
+ Object(_helpers_location__WEBPACK_IMPORTED_MODULE_1__[/* translateCoordinateSystem */ "e"])(type, coords, skip).then(function (coords) {
+ invoke(callbackId, Object.assign(coords, {
+ errMsg: 'getLocation:ok',
+ verticalAccuracy: coords.altitudeAccuracy || 0,
+ // 无专门水平精度,使用位置精度替代
+ horizontalAccuracy: coords.accuracy
+ }));
+ }).catch(function (error) {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail ' + error.message
+ });
+ });
+ }).catch(function (error) {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail ' + error.message || false
+ });
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "4ca9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(console) {/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("6389");
+/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(vue_router__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85b6");
+/* harmony import */ var _app__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("abbf");
+/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("0784");
+/* harmony import */ var _lifecycle__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("aa92");
+/* harmony import */ var _polyfill__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("02c9");
+/* harmony import */ var _app_router_guard__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("23e5");
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("f2b3");
+
+
+
+
+
+
+
+
+
+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);
+ var search = window.location.search;
+ var hash = window.location.hash; // 检查和纠正 path
+
+ if (base[base.length - 1] === '/' && path === base.substring(0, base.length - 1)) {
+ path = base;
+ window.history.replaceState({}, '', base + search + hash);
+ }
+
+ if (base && path.indexOf(base) === 0) {
+ path = path.slice(base.length);
+ }
+
+ return (path || '/') + search + 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;
+
+ if (( true) && Vue.config.devtools && typeof window !== 'undefined' && window.navigator.userAgent.toLowerCase().indexOf('hbuilderx') !== -1) {
+ // HBuilderX 内置浏览器禁用 devtools 提示
+ Vue.config.devtools = false;
+ }
+
+ Object(_polyfill__WEBPACK_IMPORTED_MODULE_5__[/* initPolyfill */ "a"])(Vue);
+ Object(_lifecycle__WEBPACK_IMPORTED_MODULE_4__[/* lifecycleMixin */ "a"])(Vue);
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_7__[/* uniIdMixin */ "v"])(Vue);
+ /* eslint-disable no-undef */
+
+ if (typeof __UNI_ROUTER_BASE__ !== 'undefined') {
+ __uniConfig.router.base = __UNI_ROUTER_BASE__;
+ }
+
+ 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_6__[/* 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"])(Vue, routes, entryRoute); // mixin app hooks
+
+ Object.keys(appMixin).forEach(function (hook) {
+ options[hook] = options[hook] ? [].concat(appMixin[hook], options[hook]) : [appMixin[hook]];
+ }); // router
+
+ options.router = router; // onError
+
+ if (!Array.isArray(options.onError) || options.onError.length === 0) {
+ options.onError = [function (err) {
+ console.error(err);
+ }];
+ }
+ } else if (Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* isPage */ "d"])(this)) {
+ var pageMixin = Object(_page__WEBPACK_IMPORTED_MODULE_3__[/* createPageMixin */ "a"])(); // mixin page hooks
+
+ Object.keys(pageMixin).forEach(function (hook) {
+ if (options.mpOptions) {
+ // 小程序适配出来的 vue 组件(保证先调用小程序适配里的 created,再触发 onLoad)
+ options[hook] = options[hook] ? [].concat(options[hook], pageMixin[hook]) : [pageMixin[hook]];
+ } else {
+ 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.prototype.createMediaQueryObserver = function createMediaQueryObserver(args) {
+ return uni.createMediaQueryObserver(this, args);
+ };
+
+ Vue.use(vue_router__WEBPACK_IMPORTED_MODULE_0___default.a);
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "4ccd":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony default export */ __webpack_exports__["default"] = ({
+ data: function data() {
+ return {
+ popupWidth: 0,
+ popupHeight: 0
+ };
+ },
+ computed: {
+ isDesktop: function isDesktop() {
+ return this.popupWidth >= 500 && this.popupHeight >= 500;
+ },
+ popupStyle: function popupStyle() {
+ var style = {};
+ var contentStyle = style.content = {};
+ var triangleStyle = style.triangle = {};
+ var popover = this.popover;
+
+ function getNumber(value) {
+ return Number(value) || 0;
+ }
+
+ if (this.isDesktop && popover) {
+ Object.assign(triangleStyle, {
+ position: 'absolute',
+ width: '0',
+ height: '0',
+ 'margin-left': '-6px',
+ 'border-style': 'solid'
+ });
+ var popoverLeft = getNumber(popover.left);
+ var popoverWidth = getNumber(popover.width);
+ var popoverTop = getNumber(popover.top);
+ var popoverHeight = getNumber(popover.height);
+ var center = popoverLeft + popoverWidth / 2;
+ contentStyle.transform = 'none !important';
+ var contentLeft = Math.max(0, center - 300 / 2);
+ contentStyle.left = "".concat(contentLeft, "px");
+ var triangleLeft = Math.max(12, center - contentLeft);
+ triangleLeft = Math.min(300 - 12, triangleLeft);
+ triangleStyle.left = "".concat(triangleLeft, "px");
+ var vcl = this.popupHeight / 2;
+
+ if (popoverTop + popoverHeight - vcl > vcl - popoverTop) {
+ contentStyle.top = 'auto';
+ contentStyle.bottom = "".concat(this.popupHeight - popoverTop + 6, "px");
+ triangleStyle.bottom = '-6px';
+ triangleStyle['border-width'] = '6px 6px 0 6px';
+ triangleStyle['border-color'] = '#fcfcfd transparent transparent transparent';
+ } else {
+ contentStyle.top = "".concat(popoverTop + popoverHeight + 6, "px");
+ triangleStyle.top = '-6px';
+ triangleStyle['border-width'] = '0 6px 6px 6px';
+ triangleStyle['border-color'] = 'transparent transparent #fcfcfd transparent';
+ }
+ }
+
+ return style;
+ }
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ var fixSize = function fixSize() {
+ var _uni$getSystemInfoSyn = uni.getSystemInfoSync(),
+ windowWidth = _uni$getSystemInfoSyn.windowWidth,
+ windowHeight = _uni$getSystemInfoSyn.windowHeight,
+ windowTop = _uni$getSystemInfoSyn.windowTop;
+
+ _this.popupWidth = windowWidth;
+ _this.popupHeight = windowHeight + windowTop;
+ };
+
+ window.addEventListener('resize', fixSize);
+ fixSize();
+ this.$once('hook:beforeDestroy', function () {
+ window.removeEventListener('resize', fixSize);
+ });
+ }
+});
+
+/***/ }),
+
+/***/ "4d0b":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getImageInfo", function() { return getImageInfo; });
+function _getServiceAddress() {
+ return window.location.protocol + '//' + window.location.host;
+}
+
+function getImageInfo(_ref, callbackId) {
+ var src = _ref.src;
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+ var img = new Image();
+ var realPath = src;
+
+ img.onload = function () {
+ invoke(callbackId, {
+ errMsg: 'getImageInfo:ok',
+ width: img.naturalWidth,
+ height: img.naturalHeight,
+ path: realPath.indexOf('/') === 0 ? _getServiceAddress() + realPath : realPath
+ });
+ };
+
+ img.onerror = function (e) {
+ invoke(callbackId, {
+ errMsg: 'getImageInfo:fail'
+ });
+ };
+
+ img.src = src;
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "4d87":
+/***/ (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__);
+/* harmony import */ var uni_core_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("442e");
+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; }
+
+/**
+ * 1.导出全局对象(UniViewJSBridge,UniServiceJSBridge,uni,getApp,getCurrentPages)
+ * 2.引入 Vue 插件(uniVueServicePlugin,uniVueServicePlugin)
+ * 3.引入 Vue 组件
+ */
+ // import 'uni-platform/view/index.css'
+
+
+
+var UniApp = /*#__PURE__*/function () {
+ function UniApp() {
+ _classCallCheck(this, UniApp);
+
+ this._init();
+ }
+
+ _createClass(UniApp, [{
+ key: "_init",
+ value: function _init() {
+ global.UniViewJSBridge = {
+ subscribe: UniViewJSBridge.subscribe,
+ publishHandler: UniViewJSBridge.publishHandler,
+ subscribeHandler: UniViewJSBridge.subscribeHandler
+ };
+ global.UniServiceJSBridge = {
+ subscribe: UniServiceJSBridge.subscribe,
+ publishHandler: UniServiceJSBridge.publishHandler,
+ subscribeHandler: UniServiceJSBridge.subscribeHandler
+ };
+
+ var _require = __webpack_require__("a33d"),
+ uni = _require.default,
+ getApp = _require.getApp,
+ getCurrentPages = _require.getCurrentPages; // 与微信JS-SDK同名的方法
+ // const sameNameApis = ['setClipboardData', 'getClipboardData', 'onUserCaptureScreen', 'openBluetoothAdapter', 'startBluetoothDevicesDiscovery', 'onBluetoothDeviceFound', 'stopBluetoothDevicesDiscovery', 'onBluetoothAdapterStateChange', 'getConnectedBluetoothDevices', 'getBluetoothDevices', 'getBluetoothAdapterState', 'closeBluetoothAdapter', 'writeBLECharacteristicValue', 'readBLECharacteristicValue', 'onBLEConnectionStateChange', 'onBLECharacteristicValueChange', 'notifyBLECharacteristicValueChange', 'getBLEDeviceServices', 'getBLEDeviceCharacteristics', 'createBLEConnection', 'closeBLEConnection', 'onBeaconServiceChange', 'onBeaconUpdate', 'getBeacons', 'startBeaconDiscovery', 'stopBeaconDiscovery', 'chooseImage', 'previewImage', 'getNetworkType', 'onNetworkStatusChange', 'openLocation', 'getLocation']
+ // 默认会被iOS企业微信替换的方法
+
+
+ var sameNameApis = ['chooseImage'];
+ sameNameApis.forEach(function (item) {
+ Object.defineProperty(uni, item, {
+ writable: false,
+ configurable: false
+ });
+ });
+ 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
+ });
+ Object(uni_core_vue__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(vue__WEBPACK_IMPORTED_MODULE_0___default.a);
+
+ __webpack_require__("e726");
+
+ __webpack_require__("1efd");
+ }
+ }]);
+
+ return UniApp;
+}();
+
+global.UniApp = UniApp;
+global.__uniConfig && new UniApp();
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c"), __webpack_require__("c8ba"), __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "4da7":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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__("53c1");
+
+// 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);
+
+/***/ }),
+
+/***/ "4e7c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getProvider", function() { return getProvider; });
+var service = {
+ OAUTH: 'OAUTH',
+ SHARE: 'SHARE',
+ PAYMENT: 'PAYMENT',
+ PUSH: 'PUSH'
+};
+var getProvider = {
+ service: {
+ type: String,
+ required: true,
+ validator: function validator(value, params) {
+ value = (value || '').toUpperCase();
+
+ if (value && Object.values(service).indexOf(value) < 0) {
+ return 'service error';
+ }
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "4f1c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=3449b06f&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-switch',_vm._g({attrs:{"disabled":_vm.disabled},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:(_vm.checkedColor)}),_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=3449b06f&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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["f" /* 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: ''
+ }
+ },
+ data: function data() {
+ return {
+ switchChecked: this.checked
+ };
+ },
+ computed: {
+ checkedColor: function checkedColor() {
+ if (this.switchChecked && this.color) {
+ return {
+ backgroundColor: this.color,
+ borderColor: this.color
+ };
+ }
+
+ return {};
+ }
+ },
+ 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);
+
+/***/ }),
+
+/***/ "4f53":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "saveImageToPhotosAlbum", function() { return saveImageToPhotosAlbum; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8ef5");
+
+var saveImageToPhotosAlbum = {
+ filePath: {
+ type: String,
+ required: true,
+ validator: function validator(filePath, params) {
+ params.filePath = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(filePath);
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "4fef":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("23ab");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "501c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "on", function() { return /* binding */ on; });
+__webpack_require__.d(__webpack_exports__, "off", function() { return /* binding */ off; });
+__webpack_require__.d(__webpack_exports__, "once", function() { return /* binding */ once; });
+__webpack_require__.d(__webpack_exports__, "emit", function() { return /* binding */ emit; });
+__webpack_require__.d(__webpack_exports__, "subscribe", function() { return /* binding */ view_bridge_subscribe; });
+__webpack_require__.d(__webpack_exports__, "unsubscribe", function() { return /* binding */ unsubscribe; });
+__webpack_require__.d(__webpack_exports__, "subscribeHandler", function() { return /* binding */ subscribeHandler; });
+__webpack_require__.d(__webpack_exports__, "publishHandler", function() { return /* reexport */ bridge["a" /* publishHandler */]; });
+
+// 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_);
+
+// CONCATENATED MODULE: ./src/core/view/bridge/subscribe/api/set-page-meta.js
+function setPageMeta(_ref) {
+ var pageStyle = _ref.pageStyle,
+ rootFontSize = _ref.rootFontSize;
+ var pageElm = document.querySelector('uni-page-body') || document.body;
+ pageElm.setAttribute('style', pageStyle);
+
+ if (rootFontSize && document.documentElement.style.fontSize !== rootFontSize) {
+ document.documentElement.style.fontSize = rootFontSize;
+ }
+}
+// EXTERNAL MODULE: ./src/core/view/bridge/subscribe/api/request-component-info.js
+var request_component_info = __webpack_require__("6bdf");
+
+// EXTERNAL MODULE: ./src/core/view/bridge/subscribe/api/request-component-observer.js
+var request_component_observer = __webpack_require__("5dc1");
+
+// EXTERNAL MODULE: ./src/core/view/bridge/subscribe/api/request-media-query-observer.js
+var request_media_query_observer = __webpack_require__("1c73");
+
+// CONCATENATED MODULE: ./src/core/view/bridge/subscribe/api/index.js
+
+
+
+
+/* harmony default export */ var api = ({
+ setPageMeta: setPageMeta,
+ requestComponentInfo: request_component_info["a" /* requestComponentInfo */],
+ requestComponentObserver: request_component_observer["b" /* requestComponentObserver */],
+ destroyComponentObserver: request_component_observer["a" /* destroyComponentObserver */],
+ requestMediaQueryObserver: request_media_query_observer["b" /* requestMediaQueryObserver */],
+ destroyMediaQueryObserver: request_media_query_observer["a" /* destroyMediaQueryObserver */]
+});
+// EXTERNAL MODULE: ./src/core/view/bridge/subscribe/scroll.js
+var subscribe_scroll = __webpack_require__("33ed");
+
+// EXTERNAL MODULE: ./src/core/view/bridge/subscribe/font.js
+var font = __webpack_require__("7107");
+
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/view/bridge/subscribe/index.js
+var bridge_subscribe = __webpack_require__("5ea2");
+
+// CONCATENATED MODULE: ./src/core/view/bridge/subscribe/index.js
+
+
+
+
+function initSubscribe(subscribe) {
+ Object.keys(api).forEach(function (name) {
+ subscribe(name, api[name]);
+ });
+ subscribe('pageScrollTo', subscribe_scroll["c" /* pageScrollTo */]);
+ subscribe('loadFontFace', font["a" /* loadFontFace */]);
+ Object(bridge_subscribe["a" /* default */])(subscribe);
+}
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/view/bridge.js
+var bridge = __webpack_require__("3972");
+
+// CONCATENATED MODULE: ./src/core/view/bridge/index.js
+
+
+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 view_bridge_subscribe(event, callback) {
+ return on('service.' + event, callback);
+}
+function unsubscribe(event, callback) {
+ return off('service.' + event, callback);
+}
+function subscribeHandler(event, args, pageId) {
+ if (false) {}
+
+ emit('service.' + event, args, pageId);
+}
+
+initSubscribe(view_bridge_subscribe);
+
+/***/ }),
+
+/***/ "5029":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5052":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return saveImage; });
+function saveImage(base64, dirname, callback) {
+ callback(null, base64);
+}
+
+/***/ }),
+
+/***/ "50db":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("26e0");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "5129":
+/***/ (function(module, exports) {
+
+module.exports = ['uni-app', 'uni-layout', 'uni-content', 'uni-main', 'uni-top-window', 'uni-left-window', 'uni-right-window', 'uni-tabbar', 'uni-page', 'uni-page-head', 'uni-page-wrapper', 'uni-page-body', 'uni-page-refresh', 'uni-actionsheet', 'uni-modal', 'uni-toast', 'uni-resize-sensor', 'uni-shadow-root', 'uni-ad', 'uni-audio', 'uni-button', 'uni-camera', 'uni-canvas', 'uni-checkbox', 'uni-checkbox-group', 'uni-cover-image', 'uni-cover-view', 'uni-editor', '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'];
+
+/***/ }),
+
+/***/ "5243":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compressVideo", function() { return compressVideo; });
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("8ef5");
+
+var compressVideo = {
+ src: {
+ type: String,
+ required: true,
+ validator: function validator(src, params) {
+ params.src = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(src);
+ }
+ },
+ quality: {
+ type: String
+ },
+ bitrate: {
+ type: Number
+ },
+ fps: {
+ type: Number
+ },
+ resolution: {
+ type: Number
+ }
+};
+
+/***/ }),
+
+/***/ "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
+ }];
+};
+
+/***/ }),
+
+/***/ "53bf":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_layout_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a1ff");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_layout_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_layout_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_layout_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a);
+
+/***/ }),
+
+/***/ "53c1":
+/***/ (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('Do not nest other components in the text component, as there may be display differences on different platforms.');
+ }
+
+ 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"]))
+
+/***/ }),
+
+/***/ "5408":
+/***/ (function(module, exports, __webpack_require__) {
+
+var map = {
+ "./audio/index.vue": "6150",
+ "./button/index.vue": "d3bd",
+ "./canvas/index.vue": "bacd",
+ "./checkbox-group/index.vue": "25ce",
+ "./checkbox/index.vue": "7bb3",
+ "./editor/index.vue": "27c2",
+ "./form/index.vue": "b34d",
+ "./icon/index.vue": "9a8b",
+ "./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",
+ "./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"
+};
+
+
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ if(!__webpack_require__.o(map, req)) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return map[req];
+}
+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";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js
+var touchtrack = __webpack_require__("ba15");
+
+// EXTERNAL MODULE: ./src/shared/index.js + 8 modules
+var shared = __webpack_require__("f2b3");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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&
+function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
+
+function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
+
+function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
+
+
+
+/* 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
+ },
+ disableTouch: {
+ type: [Boolean, String],
+ default: false
+ },
+ navigation: {
+ type: [Boolean, String],
+ default: false
+ },
+ navigationColor: {
+ type: String,
+ default: '#fff'
+ },
+ navigationActiveColor: {
+ type: String,
+ default: 'rgba(53, 53, 53, 0.6)'
+ }
+ },
+ data: function data() {
+ return {
+ currentSync: Math.round(this.current) || 0,
+ currentItemIdSync: this.currentItemId || '',
+ userTracking: false,
+ currentChangeSource: '',
+ items: [],
+ isNavigationAuto: false,
+ hideNavigation: false,
+ prevDisabled: false,
+ nextDisabled: false
+ };
+ },
+ 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
+ };
+ },
+ swiperEnabled: function swiperEnabled() {
+ return this.items.length > this.displayMultipleItemsNumber;
+ },
+ circularEnabled: function circularEnabled() {
+ return this.circular && this.swiperEnabled;
+ }
+ },
+ 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, oldVal) {
+ this._currentChanged(val, oldVal);
+
+ this.$emit('update:current', val);
+
+ this._setNavigationState();
+ },
+ currentItemId: function currentItemId(val) {
+ this._currentCheck();
+ },
+ currentItemIdSync: function currentItemIdSync(val) {
+ this.$emit('update:currentItemId', val);
+ },
+ displayMultipleItemsNumber: function displayMultipleItemsNumber() {
+ this._resetLayout();
+ },
+ navigation: {
+ immediate: true,
+ handler: function handler(val) {
+ this.isNavigationAuto = val === 'auto';
+ this.hideNavigation = val !== true || this.isNavigationAuto;
+
+ this._navigationSwiperAddMouseEvent();
+ }
+ },
+ items: function items() {
+ this._setNavigationState();
+ },
+ swiperEnabled: function swiperEnabled(val) {
+ if (!val) {
+ this.prevDisabled = true;
+ this.nextDisabled = true;
+ this.isNavigationAuto && (this.hideNavigation = true);
+ }
+ }
+ },
+ 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);
+
+ this._navigationSwiperAddMouseEvent();
+ },
+ beforeDestroy: function beforeDestroy() {
+ this._cancelSchedule();
+
+ cancelAnimationFrame(this._animationFrame);
+ },
+ 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, history) {
+ var _this2 = this;
+
+ var source = this.currentChangeSource;
+ this.currentChangeSource = '';
+
+ if (!source) {
+ var length = this.items.length;
+
+ this._animateViewport(current, '', this.circularEnabled && history + (length - current) % length > length / 2 ? 1 : 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;
+
+ if (!this._transitionStart) {
+ if (index % 1 === 0) {
+ return;
+ }
+
+ this._transitionStart = index;
+ }
+
+ index -= Math.floor(this._transitionStart);
+
+ if (index <= -(this.items.length - 1)) {
+ index += this.items.length;
+ } else if (index >= this.items.length) {
+ index -= this.items.length;
+ }
+
+ index = this._transitionStart % 1 > 0.5 || this._transitionStart < 0 ? index - 1 : index;
+ this.$trigger('transition', {}, {
+ dx: this.vertical ? 0 : index * slideFrame.offsetWidth,
+ dy: this.vertical ? index * slideFrame.offsetHeight : 0
+ });
+ },
+ _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;
+ this._transitionStart = null;
+ 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);
+
+ this._animationFrame = 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;
+ }
+
+ if (position + length - current < current - position) {
+ position += length;
+ }
+ } else {
+ for (; position + length < current;) {
+ position += length;
+ }
+
+ for (; position - length > current;) {
+ position -= length;
+ }
+
+ if (position + length - current < current - position) {
+ position += length;
+ }
+ }
+ } else if (source === 'click') {
+ current = current + this.displayMultipleItemsNumber - 1 < length ? current : 0;
+ }
+
+ this._animating = {
+ toPos: current,
+ acc: 2 * (position - current) / (duration * duration),
+ endTime: Date.now() + duration,
+ source: source
+ };
+
+ if (!this._requestedAnimation) {
+ this._requestedAnimation = true;
+ this._animationFrame = 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.disableTouch || !this.items.length) {
+ return;
+ }
+
+ 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;
+ }
+ }
+ },
+
+ /**
+ * navigation
+ */
+ _onSwiperDotClick: function _onSwiperDotClick(index) {
+ this._animateViewport(this.currentSync = index, this.currentChangeSource = 'click', this.circularEnabled ? 1 : 0);
+ },
+ _navigationClick: function _navigationClick($event, type, disabled) {
+ $event.stopPropagation();
+ if (disabled) return;
+ var swiperItemLength = this.items.length;
+ var _current = this.currentSync;
+
+ switch (type) {
+ case 'prev':
+ _current--;
+
+ if (_current < 0 && this.circularEnabled) {
+ _current = swiperItemLength - 1;
+ }
+
+ break;
+
+ case 'next':
+ _current++;
+
+ if (_current >= swiperItemLength && this.circularEnabled) {
+ _current = 0;
+ }
+
+ break;
+ }
+
+ this._onSwiperDotClick(_current);
+ },
+ _navigationMouseMove: function _navigationMouseMove(e) {
+ var _this4 = this;
+
+ clearTimeout(this.hideNavigationTimer);
+ var clientX = e.clientX,
+ clientY = e.clientY;
+
+ var _this$$refs$slidesWra = this.$refs.slidesWrapper.getBoundingClientRect(),
+ left = _this$$refs$slidesWra.left,
+ right = _this$$refs$slidesWra.right,
+ top = _this$$refs$slidesWra.top,
+ bottom = _this$$refs$slidesWra.bottom,
+ width = _this$$refs$slidesWra.width,
+ height = _this$$refs$slidesWra.height;
+
+ var hide = false;
+
+ if (this.vertical) {
+ hide = !(clientY - top < height / 3 || bottom - clientY < height / 3);
+ } else {
+ hide = !(clientX - left < width / 3 || right - clientX < width / 3);
+ }
+
+ if (hide) {
+ this.hideNavigationTimer = setTimeout(function () {
+ _this4.hideNavigation = hide;
+ }, 300);
+ return;
+ }
+
+ this.hideNavigation = hide;
+ },
+ _navigationMouseOut: function _navigationMouseOut() {
+ this.hideNavigation = true;
+ },
+ _navigationSwiperAddMouseEvent: function _navigationSwiperAddMouseEvent() {
+ if (true) {
+ var rootRef = this.$refs.slidesWrapper;
+
+ if (rootRef) {
+ rootRef.removeEventListener('mousemove', this._navigationMouseMove);
+ rootRef.removeEventListener('mouseleave', this._navigationMouseOut);
+
+ if (this.isNavigationAuto) {
+ rootRef.addEventListener('mousemove', this._navigationMouseMove);
+ rootRef.addEventListener('mouseleave', this._navigationMouseOut);
+ }
+ }
+ }
+ },
+ _navigationHover: function _navigationHover(event, type) {
+ var target = event.currentTarget;
+ if (!target) return;
+ target.style.backgroundColor = type === 'over' ? this.navigationActiveColor : '';
+ },
+ _setNavigationState: function _setNavigationState() {
+ var swiperItemLength = this.items.length;
+ var notCircular = !this.circularEnabled;
+ this.prevDisabled = this.currentSync === 0 && notCircular;
+ this.nextDisabled = this.currentSync === swiperItemLength - 1 && notCircular || notCircular && this.currentSync + this.displayMultipleItemsNumber >= swiperItemLength;
+ }
+ },
+ render: function render(createElement) {
+ var _this5 = this;
+
+ var slidesDots = [];
+ var swiperItems = [];
+
+ if (this.$slots.default) {
+ Object(shared["f" /* deepClone */])(this.$slots.default, createElement).forEach(function (vnode) {
+ if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-swiper-item') {
+ swiperItems.push(vnode);
+ }
+ });
+ }
+
+ var _loop = function _loop(index, length) {
+ var currentSync = _this5.currentSync;
+ slidesDots.push(createElement('div', {
+ on: {
+ click: function click() {
+ return _this5._onSwiperDotClick(index);
+ }
+ },
+ class: {
+ 'uni-swiper-dot': true,
+ 'uni-swiper-dot-active': index < currentSync + _this5.displayMultipleItemsNumber && index >= currentSync || index < currentSync + _this5.displayMultipleItemsNumber - length
+ },
+ style: {
+ background: index === currentSync ? _this5.indicatorActiveColor : _this5.indicatorColor
+ }
+ }));
+ };
+
+ for (var index = 0, length = swiperItems.length; index < length; index++) {
+ _loop(index, length);
+ }
+
+ 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));
+ }
+
+ if (true) {
+ if (this.navigation) {
+ var navigationClass = {
+ 'uni-swiper-navigation-hide': this.hideNavigation,
+ 'uni-swiper-navigation-vertical': this.vertical
+ };
+ var iconElement = createElement('i', {
+ domProps: {
+ innerHTML: ''
+ },
+ class: 'uni-btn-icon',
+ style: {
+ color: this.navigationColor,
+ fontSize: '26px'
+ }
+ });
+ var navigationEvent = {
+ mouseover: function mouseover(event) {
+ return _this5._navigationHover(event, 'over');
+ },
+ mouseout: function mouseout(event) {
+ return _this5._navigationHover(event, 'out');
+ }
+ };
+ slidesWrapperChild.push(createElement('div', {
+ on: _objectSpread({
+ click: function click(e) {
+ return _this5._navigationClick(e, 'prev', _this5.prevDisabled);
+ }
+ }, navigationEvent),
+ class: ['uni-swiper-navigation', 'uni-swiper-navigation-prev', _objectSpread({
+ 'uni-swiper-navigation-disabled': this.prevDisabled
+ }, navigationClass)]
+ }, [iconElement]), createElement('div', {
+ on: _objectSpread({
+ click: function click(e) {
+ return _this5._navigationClick(e, 'next', _this5.nextDisabled);
+ }
+ }, navigationEvent),
+ class: ['uni-swiper-navigation', 'uni-swiper-navigation-next', _objectSpread({
+ 'uni-swiper-navigation-disabled': this.nextDisabled
+ }, navigationClass)]
+ }, [iconElement]));
+ }
+ }
+
+ return createElement('uni-swiper', {
+ on: this.$listeners
+ }, [createElement('div', {
+ ref: 'slidesWrapper',
+ class: 'uni-swiper-wrapper'
+ }, 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 swiper_render, staticRenderFns
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_swipervue_type_script_lang_js_,
+ swiper_render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var swiper = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "55e3":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "55e5":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("b88f");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "5621":
+/***/ (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");
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8ef5");
+
+
+var indexValidator = {
+ type: Number,
+ required: true
+};
+var setTabBarItem = {
+ index: indexValidator,
+ text: {
+ type: String
+ },
+ iconPath: {
+ type: String
+ },
+ selectedIconPath: {
+ type: String
+ },
+ pagePath: {
+ type: String
+ }
+};
+var setTabBarStyle = {
+ color: {
+ type: String
+ },
+ selectedColor: {
+ type: String
+ },
+ backgroundColor: {
+ type: String
+ },
+ backgroundImage: {
+ type: String,
+ validator: function validator(backgroundImage, params) {
+ if (backgroundImage && !/^(linear|radial)-gradient\(.+?\);?$/.test(backgroundImage)) {
+ params.backgroundImage = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(backgroundImage);
+ }
+ }
+ },
+ backgroundRepeat: {
+ 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 */ "h"])(text) >= 4) {
+ params.text = '...';
+ }
+ }
+ }
+};
+
+/***/ }),
+
+/***/ "5675":
+/***/ (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; });
+/**
+ * 查看位置
+ * @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'
+ });
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "5676":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("303a");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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=3fdb03d2&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-textarea',_vm._g({},_vm.$listeners),[_c('div',{ref:"wrapper",staticClass:"uni-textarea-wrapper"},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(!(_vm.composing || _vm.valueSync.length)),expression:"!(composing || valueSync.length)"}],ref:"placeholder",staticClass:"uni-textarea-placeholder",class:_vm.placeholderClass,style:(_vm.placeholderStyle),domProps:{"textContent":_vm._s(_vm.placeholder)}}),_c('div',{ref:"line",staticClass:"uni-textarea-line",domProps:{"textContent":_vm._s(' ')}}),_c('div',{staticClass:"uni-textarea-compute"},[_vm._l((_vm.valueCompute),function(item,index){return _c('div',{key:index,domProps:{"textContent":_vm._s(item.trim() ? item : '.')}})}),_c('v-uni-resize-sensor',{ref:"sensor",on:{"resize":_vm._resize}})],2),(!_vm.disabled || !_vm.fixColor)?_c('textarea',{directives:[{name:"model",rawName:"v-model",value:(_vm.valueSync),expression:"valueSync"},{name:"keyboard",rawName:"v-keyboard"},{name:"field",rawName:"v-field"}],ref:"textarea",staticClass:"uni-textarea-textarea",class:{ 'uni-textarea-textarea-fix-margin': _vm.fixMargin },style:({ 'overflow-y': _vm.autoHeight ? 'hidden' : 'auto' }),attrs:{"disabled":_vm.disabled,"maxlength":_vm.maxlengthNumber,"enterkeyhint":_vm.confirmType,"inputmode":_vm.inputmode},domProps:{"value":(_vm.valueSync)},on:{"change":function($event){$event.stopPropagation();},"compositionstart":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionend":function($event){$event.stopPropagation();return _vm._onComposition($event)},"compositionupdate":function($event){$event.stopPropagation();return _vm._onComposition($event)},"input":[function($event){if($event.target.composing){ return; }_vm.valueSync=$event.target.value},function($event){$event.stopPropagation();return _vm._onInput($event)}],"focus":_vm._onFocus,"blur":_vm._onBlur,"&touchstart":function($event){return _vm._onTouchstart($event)},"keyup":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm._onKeyUpEnter($event)},"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm._onKeyDownEnter($event)}}}):_vm._e(),_vm._v(" "),(_vm.disabled && _vm.fixColor)?_c('textarea',{ref:"textarea",staticClass:"uni-textarea-textarea",class:{ 'uni-textarea-textarea-fix-margin': _vm.fixMargin },style:({ 'overflow-y': _vm.autoHeight ? 'hidden' : 'auto' }),attrs:{"tabindex":"-1","readonly":_vm.disabled,"maxlength":_vm.maxlengthNumber},domProps:{"value":_vm.valueSync},on:{"focus":function ($event) { return $event.target.blur(); }}}):_vm._e()])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue?vue&type=template&id=3fdb03d2&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+var DARK_TEST_STRING = '(prefers-color-scheme: dark)';
+var ConfirmTypes = ['done', 'go', 'next', 'search', 'send']; // 'return'
+
+var INPUT_MODES = ['none', 'text', 'decimal', 'numeric', 'tel', 'search', 'email', 'url'];
+/* harmony default export */ var textareavue_type_script_lang_js_ = ({
+ name: 'Textarea',
+ mixins: [mixins["b" /* field */]],
+ props: {
+ name: {
+ type: String,
+ default: ''
+ },
+ maxlength: {
+ type: [Number, String],
+ default: 140
+ },
+ placeholder: {
+ type: String,
+ default: ''
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ placeholderClass: {
+ type: String,
+ default: 'textarea-placeholder'
+ },
+ placeholderStyle: {
+ type: String,
+ default: ''
+ },
+ autoHeight: {
+ type: [Boolean, String],
+ default: false
+ },
+ confirmType: {
+ type: String,
+ default: 'return',
+ validator: function validator(val) {
+ return ConfirmTypes.concat('return').includes(val);
+ }
+ },
+ inputmode: {
+ type: String,
+ default: undefined,
+ validator: function validator(value) {
+ return !!~INPUT_MODES.indexOf(value);
+ }
+ }
+ },
+ data: function data() {
+ return {
+ valueComposition: '',
+ height: 0,
+ focusChangeSource: '',
+ // iOS 13 以下版本需要修正边距
+ fixMargin: String(navigator.platform).indexOf('iP') === 0 && String(navigator.vendor).indexOf('Apple') === 0 && window.matchMedia(DARK_TEST_STRING).media !== DARK_TEST_STRING
+ };
+ },
+ computed: {
+ maxlengthNumber: function maxlengthNumber() {
+ var maxlength = Number(this.maxlength);
+ return isNaN(maxlength) ? 140 : maxlength;
+ },
+ valueCompute: function valueCompute() {
+ return (this.composing ? this.valueComposition : this.valueSync).split('\n');
+ },
+ isDone: function isDone() {
+ return ConfirmTypes.includes(this.confirmType);
+ }
+ },
+ watch: {
+ focus: function focus(val) {
+ if (val) {
+ this.focusChangeSource = 'focus';
+ }
+ },
+ height: function height(_height) {
+ var lineHeight = parseFloat(getComputedStyle(this.$el).lineHeight);
+
+ if (isNaN(lineHeight)) {
+ lineHeight = this.$refs.line.offsetHeight;
+ }
+
+ 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 = 'auto';
+ this.$refs.wrapper.style.height = this.height + 'px';
+ }
+ }
+ },
+ created: function created() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ mounted: function mounted() {
+ this._resize({
+ height: this.$refs.sensor.$el.offsetHeight
+ });
+
+ var $vm = this;
+
+ while ($vm) {
+ var scopeId = $vm.$options._scopeId;
+
+ if (scopeId) {
+ this.$refs.placeholder.setAttribute(scopeId, '');
+ }
+
+ $vm = $vm.$parent;
+ }
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _onKeyDownEnter: function _onKeyDownEnter($event) {
+ if (this.isDone) {
+ $event.preventDefault();
+ }
+ },
+ _onKeyUpEnter: function _onKeyUpEnter($event) {
+ if (this.isDone) {
+ this._confirm($event);
+
+ !this.confirmHold && this.$refs.textarea.blur();
+ }
+ },
+ _onComposition: function _onComposition($event) {
+ switch ($event.type) {
+ case 'compositionstart':
+ this.composing = true;
+ break;
+
+ case 'compositionend':
+ if (this.composing) {
+ this.composing = false; // 部分输入法 compositionend 事件可能晚于 input
+
+ this._onInput($event);
+ }
+
+ break;
+ }
+
+ !this.ignoreCompositionEvent && this.$trigger($event.type, $event, {
+ data: $event.data
+ });
+ },
+ _confirm: function _confirm($event) {
+ this.$trigger('confirm', $event, {
+ value: this.valueSync
+ });
+ },
+ _linechange: function _linechange($event) {
+ this.$trigger('linechange', $event, {
+ value: this.valueSync
+ });
+ },
+ _onTouchstart: function _onTouchstart() {
+ this.focusChangeSource = 'touch';
+ },
+ _resize: function _resize(_ref) {
+ var height = _ref.height;
+ this.height = height;
+ },
+ _onInput: function _onInput($event, force) {
+ if (this.composing && this.ignoreCompositionEvent) {
+ this.valueComposition = $event.target.value;
+ return;
+ }
+
+ if (!this.ignoreCompositionEvent) this.valueSync = this.$refs.textarea.value;
+ this.$triggerInput($event, {
+ value: this.valueSync,
+ cursor: this.$refs.textarea.selectionEnd
+ }, force);
+ },
+ _getFormData: function _getFormData() {
+ return {
+ value: this.valueSync,
+ key: this.name
+ };
+ },
+ _resetFormData: function _resetFormData() {
+ this.valueSync = '';
+ }
+ }
+});
+// 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 _platform__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("db70");
+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 eventNames = ['canplay', 'play', 'pause', 'stop', 'ended', 'timeUpdate', 'error', 'waiting', 'seeking', 'seeked'];
+var props = [{
+ name: 'src',
+ cache: true
+}, {
+ name: 'startTime',
+ default: 0,
+ cache: true
+}, {
+ name: 'autoplay',
+ default: false,
+ cache: true
+}, {
+ name: 'loop',
+ default: false,
+ cache: true
+}, {
+ name: 'obeyMuteSwitch',
+ default: true,
+ readonly: true,
+ cache: true
+}, {
+ name: 'duration',
+ readonly: true
+}, {
+ name: 'currentTime',
+ readonly: true
+}, {
+ name: 'paused',
+ readonly: true
+}, {
+ name: 'buffered',
+ readonly: true
+}, {
+ name: 'volume'
+}, {
+ name: 'sessionCategory'
+}, {
+ name: 'playbackRate',
+ cache: true
+}];
+
+var InnerAudioContext = /*#__PURE__*/function () {
+ function InnerAudioContext(id) {
+ var _this = this;
+
+ _classCallCheck(this, InnerAudioContext);
+
+ this.id = id;
+ this._callbacks = {};
+ this._options = {};
+ eventNames.forEach(function (name) {
+ _this._callbacks[name.toLowerCase()] = [];
+ });
+ props.forEach(function (item) {
+ var name = item.name;
+ var data = {
+ get: function get() {
+ var result = item.cache ? this._options : Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('getAudioState', {
+ audioId: this.id
+ });
+ var value = name in result ? result[name] : item.default;
+ return typeof value === 'number' && name !== 'volume' ? value / 1e3 : value;
+ }
+ };
+
+ if (!item.readonly) {
+ data.set = function (value) {
+ this._options[name] = value;
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('setAudioState', Object.assign({}, this._options, {
+ audioId: this.id
+ }));
+ };
+ }
+
+ Object.defineProperty(_this, name, data);
+ });
+ }
+
+ _createClass(InnerAudioContext, [{
+ key: "play",
+ value: function play() {
+ this._operate('play');
+ }
+ }, {
+ key: "pause",
+ value: function pause() {
+ this._operate('pause');
+ }
+ }, {
+ key: "stop",
+ value: function stop() {
+ this._operate('stop');
+ }
+ }, {
+ key: "seek",
+ value: function seek(position) {
+ this._operate('seek', {
+ currentTime: position * 1e3
+ });
+ }
+ }, {
+ key: "destroy",
+ value: function destroy() {
+ clearInterval(this.__timing);
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('destroyAudioInstance', {
+ audioId: this.id
+ });
+ delete innerAudioContexts[this.id];
+ }
+ }, {
+ key: "_operate",
+ value: function _operate(type, options) {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('operateAudio', Object.assign({}, options, {
+ audioId: this.id,
+ operationType: type
+ }));
+ }
+ }]);
+
+ return InnerAudioContext;
+}();
+
+eventNames.forEach(function (item) {
+ var name = item[0].toUpperCase() + item.substr(1);
+ item = item.toLowerCase();
+
+ InnerAudioContext.prototype["on".concat(name)] = function (callback) {
+ this._callbacks[item].push(callback);
+ };
+
+ InnerAudioContext.prototype["off".concat(name)] = function (callback) {
+ var callbacks = this._callbacks[item];
+ var index = callbacks.indexOf(callback);
+
+ if (index >= 0) {
+ callbacks.splice(index, 1);
+ }
+ };
+});
+
+function emit(audio, state, errMsg, errCode) {
+ audio._callbacks[state].forEach(function (callback) {
+ if (typeof callback === 'function') {
+ callback(state === 'error' ? {
+ errMsg: errMsg,
+ errCode: errCode
+ } : {});
+ }
+ });
+}
+
+Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* onMethod */ "d"])('onAudioStateChange', function (_ref) {
+ var state = _ref.state,
+ audioId = _ref.audioId,
+ errMsg = _ref.errMsg,
+ errCode = _ref.errCode;
+ var audio = innerAudioContexts[audioId];
+
+ if (audio) {
+ emit(audio, state, errMsg, errCode);
+
+ if (state === 'play') {
+ var oldCurrentTime = audio.currentTime;
+ emit(audio, 'timeupdate');
+ audio.__timing = setInterval(function () {
+ var currentTime = audio.currentTime;
+
+ if (currentTime !== oldCurrentTime) {
+ emit(audio, 'timeupdate');
+ }
+ }, 200);
+ } else if (state === 'pause' || state === 'stop' || state === 'error') {
+ clearInterval(audio.__timing);
+ }
+ }
+});
+var innerAudioContexts = Object.create(null);
+function createInnerAudioContext() {
+ var _invokeMethod = Object(_platform__WEBPACK_IMPORTED_MODULE_0__[/* invokeMethod */ "c"])('createAudioInstance'),
+ audioId = _invokeMethod.audioId;
+
+ var innerAudioContext = new InnerAudioContext(audioId);
+ innerAudioContexts[audioId] = innerAudioContext;
+ return innerAudioContext;
+}
+
+/***/ }),
+
+/***/ "59b5":
+/***/ (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__, "startAccelerometer", function() { return startAccelerometer; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopAccelerometer", function() { return stopAccelerometer; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onAccelerometerChange", function() { return onAccelerometerChange; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offAccelerometerChange", function() { return offAccelerometerChange; });
+var listener;
+var callbackIds = [];
+function startAccelerometer(options, callbackId) {
+ var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+
+ if (!window.DeviceMotionEvent) {
+ return {
+ errMsg: 'startAccelerometer:fail'
+ };
+ }
+
+ function addEventListener() {
+ listener = function listener(event) {
+ var acceleration = event.acceleration || event.accelerationIncludingGravity;
+ callbackIds.forEach(function (callbackId) {
+ invoke(callbackId, {
+ x: acceleration.x || 0,
+ y: acceleration.y || 0,
+ z: acceleration.z || 0
+ });
+ });
+ };
+
+ window.addEventListener('devicemotion', listener, false);
+ }
+
+ if (!listener) {
+ if (DeviceMotionEvent.requestPermission) {
+ DeviceMotionEvent.requestPermission().then(function (res) {
+ if (res === 'granted') {
+ addEventListener();
+ invoke(callbackId, {
+ errMsg: 'startAccelerometer:ok'
+ });
+ } else {
+ invoke(callbackId, {
+ errMsg: "startAccelerometer:fail ".concat(res)
+ });
+ }
+ }).catch(function (error) {
+ invoke(callbackId, {
+ errMsg: "startAccelerometer:fail ".concat(error)
+ });
+ });
+ return;
+ }
+
+ addEventListener();
+ }
+
+ return {};
+}
+function stopAccelerometer() {
+ if (listener) {
+ window.removeEventListener('devicemotion', listener, false);
+ listener = null;
+ }
+
+ return {};
+}
+function onAccelerometerChange(callbackId) {
+ if (!callbackIds.length) {
+ startAccelerometer();
+ }
+
+ callbackIds.push(callbackId);
+}
+function offAccelerometerChange(callbackId) {
+ // 暂不支持移除所有监听
+ if (callbackId) {
+ var index = callbackIds.indexOf(callbackId);
+
+ if (index >= 0) {
+ callbackIds.splice(index, 1);
+ }
+ }
+
+ if (!callbackIds.length) {
+ stopAccelerometer();
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "59dc":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5a23":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("5cf8");
+
+
+var resetTimer;
+var isAndroid;
+var osVersion;
+var keyboardHeight;
+var keyboardChangeCallback;
+var webviewStyle;
+
+if (false) {}
+/**
+ * 保证iOS点击输入框外隐藏键盘
+ */
+
+
+function iosHideKeyboard() {}
+
+function setSoftinputTemporary(vm, reset) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* plusReady */ "p"])(function () {
+ var MODE_ADJUSTRESIZE = 'adjustResize';
+ var MODE_ADJUSTPAN = 'adjustPan';
+ var MODE_NOTHING = 'nothing';
+ var currentWebview = plus.webview.currentWebview(); // iOS 14.6 调用同步方法导致键盘弹卡顿
+
+ var style = webviewStyle || currentWebview.getStyle() || {};
+ var options = {
+ mode: reset || style.softinputMode === MODE_ADJUSTRESIZE ? MODE_ADJUSTRESIZE : vm.adjustPosition ? MODE_ADJUSTPAN : MODE_NOTHING,
+ position: {
+ top: 0,
+ height: 0
+ }
+ };
+
+ if (options.mode === MODE_ADJUSTPAN) {
+ var rect = vm.$el.getBoundingClientRect();
+ options.position.top = rect.top;
+ options.position.height = rect.height + (Number(vm.cursorSpacing) || 0);
+ }
+
+ currentWebview.setSoftinputTemporary(options);
+ });
+}
+
+function setSoftinputNavBar(vm) {
+ if (vm.showConfirmBar === 'auto') {
+ delete vm.__softinputNavBar;
+ return;
+ }
+
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* plusReady */ "p"])(function () {
+ var currentWebview = plus.webview.currentWebview();
+
+ var _ref = currentWebview.getStyle() || {},
+ softinputNavBar = _ref.softinputNavBar;
+
+ var showConfirmBar = softinputNavBar !== 'none';
+
+ if (showConfirmBar !== vm.showConfirmBar) {
+ vm.__softinputNavBar = softinputNavBar || 'auto';
+ currentWebview.setStyle({
+ softinputNavBar: vm.showConfirmBar ? 'auto' : 'none'
+ });
+ } else {
+ delete vm.__softinputNavBar;
+ }
+ });
+}
+
+function resetSoftinputNavBar(vm) {
+ var softinputNavBar = vm.__softinputNavBar;
+
+ if (softinputNavBar) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* plusReady */ "p"])(function () {
+ var currentWebview = plus.webview.currentWebview();
+ currentWebview.setStyle({
+ softinputNavBar: softinputNavBar
+ });
+ });
+ }
+}
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'Keyboard',
+ mixins: [_emitter__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]],
+ props: {
+ cursorSpacing: {
+ type: [Number, String],
+ default: 0
+ },
+ showConfirmBar: {
+ type: [Boolean, String],
+ default: 'auto'
+ },
+ adjustPosition: {
+ type: [Boolean, String],
+ default: true
+ },
+ autoBlur: {
+ type: [Boolean, String],
+ default: false
+ }
+ },
+ computed: {
+ isApple: function isApple() {
+ return String(navigator.vendor).indexOf('Apple') === 0;
+ }
+ },
+ directives: {
+ keyboard: {
+ inserted: function inserted(el, binding, vnode) {
+ vnode.context.initKeyboard(el);
+ }
+ }
+ },
+ methods: {
+ initKeyboard: function initKeyboard(el) {
+ var _this = this;
+
+ var focus;
+
+ var keyboardChange = function keyboardChange() {
+ _this.$trigger('keyboardheightchange', {}, {
+ height: keyboardHeight,
+ duration: 0.25
+ }); // 安卓切换不同键盘类型时会导致键盘收回,需重新设置
+
+
+ if (focus && keyboardHeight === 0) {
+ setSoftinputTemporary(_this);
+ } // 安卓/iOS13收起键盘时主动失去焦点
+
+
+ if (_this.autoBlur && focus && keyboardHeight === 0 && (isAndroid || parseInt(osVersion) >= 13)) {
+ document.activeElement.blur();
+ }
+ };
+
+ el.addEventListener('focus', function () {
+ focus = true;
+ clearTimeout(resetTimer);
+ document.addEventListener('click', iosHideKeyboard, false);
+
+ if (false) {}
+ });
+
+ if (false) {}
+
+ var onKeyboardHide = function onKeyboardHide() {
+ document.removeEventListener('click', iosHideKeyboard, false);
+
+ if (false) {} // 修复ios端显示与点击位置错位的Bug by:wyq
+
+
+ if (_this.isApple) {
+ document.documentElement.scrollTo(document.documentElement.scrollLeft, document.documentElement.scrollTop);
+ }
+ };
+
+ el.addEventListener('blur', function () {
+ // 在iOS设备上,手动调用uni.hideKeyboard(),键盘收起并且触发blur,但实际并没有blur。
+ // 此时如果再点击页面其他地方会重新聚焦,此处做处理
+ if (_this.isApple) {
+ el.blur();
+ }
+
+ focus = false;
+ onKeyboardHide();
+ });
+ }
+ }
+});
+
+/***/ }),
+
+/***/ "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";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("85b6");
+/* harmony import */ var uni_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a6b0");
+/* harmony import */ var uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("65a8");
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("f2b3");
+/* harmony import */ var uni_helpers_patch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("24d9");
+/* harmony import */ var _pageHead__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("7981");
+/* harmony import */ var _pageBody__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__("b773");
+/* harmony import */ var _pageRefresh__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__("0b74");
+/* harmony import */ var _pull_to_refresh__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__("63ee");
+/* harmony import */ var safe_area_insets__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__("d8c8");
+/* harmony import */ var safe_area_insets__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(safe_area_insets__WEBPACK_IMPORTED_MODULE_9__);
+/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__("7651");
+function _typeof(obj) { "@babel/helpers - typeof"; 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 normalizeNavigationBar() {
+ // 目前简单处理,存在topWindow时,始终不显示page head
+ var navigationBar = {};
+ var titleNViewTypeList = {
+ none: 'default',
+ auto: 'transparent',
+ always: 'float'
+ }; // 将 navigationStyle 和 transparentTitle 都合并到 titleNView
+
+ var titleNView = this.titleNView;
+
+ if ( // 无头
+ titleNView === false || titleNView === 'false' || this.navigationStyle === 'custom' && !Object(uni_shared__WEBPACK_IMPORTED_MODULE_3__[/* isPlainObject */ "l"])(titleNView) || this.transparentTitle === 'always' && !Object(uni_shared__WEBPACK_IMPORTED_MODULE_3__[/* isPlainObject */ "l"])(titleNView)) {
+ titleNView = {
+ type: 'none'
+ };
+ } else {
+ titleNView = Object.assign({}, {
+ type: this.navigationStyle === 'custom' ? 'none' : 'default'
+ }, this.transparentTitle in titleNViewTypeList ? {
+ type: titleNViewTypeList[this.transparentTitle]
+ } : null, _typeof(titleNView) === 'object' ? titleNView : typeof titleNView === 'boolean' ? {
+ type: titleNView ? 'default' : 'none'
+ } : null);
+ }
+
+ var yesNoParseList = {
+ YES: true,
+ NO: false
+ };
+ navigationBar = Object(uni_helpers_patch__WEBPACK_IMPORTED_MODULE_4__[/* mergeTitleNView */ "a"])({
+ loading: false,
+ backButton: !this.isQuit && !this.$route.meta.isQuit,
+ // redirectTo,reLaunch时可能动态修改 meta.isQuit
+ backgroundColor: this.navigationBarBackgroundColor,
+ textColor: Object(_theme__WEBPACK_IMPORTED_MODULE_10__[/* parseTheme */ "b"])({
+ testStyle: this.navigationBarTextStyle
+ }).testStyle === 'white' ? '#fff' : '#000',
+ titleText: this.navigationBarTitleText,
+ titleImage: this.titleImage,
+ duration: '0',
+ timingFunc: '',
+ titlePenetrate: yesNoParseList[this.titlePenetrate]
+ }, titleNView);
+ navigationBar.shadow = this.navigationBarShadow;
+ Object(uni_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__[/* initNavigationBarI18n */ "e"])(navigationBar);
+ return {
+ navigationBar: __uniConfig.darkmode ? Object(_theme__WEBPACK_IMPORTED_MODULE_10__[/* parseTheme */ "b"])(navigationBar) : navigationBar,
+ titleNView: titleNView
+ };
+}
+
+function getRefreshOptions(titleNView) {
+ var refreshOptions = Object.assign({
+ support: true,
+ color: '#2BD009',
+ style: 'circle',
+ height: 70,
+ range: 150,
+ offset: 0
+ }, this.pullToRefresh);
+ var offset = Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__[/* upx2px */ "e"])(refreshOptions.offset);
+
+ if (titleNView.type !== 'none' && titleNView.type !== 'transparent') {
+ offset += uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* NAVBAR_HEIGHT */ "a"] + safe_area_insets__WEBPACK_IMPORTED_MODULE_9___default.a.top;
+ }
+
+ refreshOptions.offset = offset;
+ refreshOptions.height = Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__[/* upx2px */ "e"])(refreshOptions.height);
+ refreshOptions.range = Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__[/* upx2px */ "e"])(refreshOptions.range);
+ return refreshOptions;
+}
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'Page',
+ mpType: 'page',
+ components: {
+ PageHead: _pageHead__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"],
+ PageBody: _pageBody__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"],
+ PageRefresh: _pageRefresh__WEBPACK_IMPORTED_MODULE_7__[/* default */ "a"]
+ },
+ mixins: [_pull_to_refresh__WEBPACK_IMPORTED_MODULE_8__[/* default */ "a"]],
+ props: {
+ isQuit: {
+ type: Boolean,
+ default: false
+ },
+ isEntry: {
+ type: Boolean,
+ default: false
+ },
+ isTabBar: {
+ type: Boolean,
+ default: false
+ },
+ tabBarIndex: {
+ type: Number,
+ default: -1
+ },
+ navigationBarBackgroundColor: {
+ type: String,
+ default: '#f8f8f8'
+ },
+ navigationBarTextStyle: {
+ default: 'black',
+ validator: function validator(value) {
+ return ['white', 'black'].indexOf(value) !== -1 || value.indexOf('@') === 0;
+ }
+ },
+ navigationBarTitleText: {
+ type: String,
+ default: ''
+ },
+ navigationStyle: {
+ default: 'default',
+ validator: function validator(value) {
+ return ['default', 'custom'].indexOf(value) !== -1;
+ }
+ },
+ backgroundColor: {
+ type: String,
+ default: '#ffffff'
+ },
+ backgroundTextStyle: {
+ default: 'dark',
+ validator: function validator(value) {
+ return ['dark', 'light'].indexOf(value) !== -1;
+ }
+ },
+ backgroundColorTop: {
+ type: String,
+ default: '#fff'
+ },
+ backgroundColorBottom: {
+ type: String,
+ default: '#fff'
+ },
+ enablePullDownRefresh: {
+ type: Boolean,
+ default: false
+ },
+ onReachBottomDistance: {
+ type: Number,
+ default: 50
+ },
+ disableScroll: {
+ type: Boolean,
+ default: false
+ },
+ titleNView: {
+ type: [Boolean, Object, String],
+ default: ''
+ },
+ pullToRefresh: {
+ type: Object,
+ default: function _default() {
+ return {};
+ }
+ },
+ titleImage: {
+ type: String,
+ default: ''
+ },
+ transparentTitle: {
+ type: String,
+ default: ''
+ },
+ titlePenetrate: {
+ type: String,
+ default: 'NO'
+ },
+ navigationBarShadow: {
+ type: Object,
+ default: function _default() {
+ return {};
+ }
+ },
+ topWindow: {
+ type: Boolean,
+ default: true
+ }
+ },
+ data: function data() {
+ var _normalizeNavigationB = normalizeNavigationBar.call(this),
+ navigationBar = _normalizeNavigationB.navigationBar,
+ titleNView = _normalizeNavigationB.titleNView;
+
+ return {
+ navigationBar: navigationBar,
+ refreshOptions: getRefreshOptions.call(this, titleNView)
+ };
+ },
+ created: function created() {
+ var _this = this;
+
+ var navigationBar = this.navigationBar;
+ document.title = navigationBar.titleText;
+ UniServiceJSBridge.emit('onNavigationBarChange', navigationBar);
+ Object(_theme__WEBPACK_IMPORTED_MODULE_10__[/* onThemeChange */ "a"])(function () {
+ _this.navigationBar = normalizeNavigationBar.call(_this).navigationBar;
+ });
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "5ab36":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("907b");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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} An array of margin objects with the keys
+ * value and unit.
+ */
+IntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {
+ var marginString = opt_rootMargin || '0px';
+ var margins = marginString.split(/\s+/).map(function(margin) {
+ var parts = /^(-?\d*\.?\d+)(px|%)$/.exec(margin);
+ if (!parts) {
+ throw new Error('rootMargin must be specified in pixels or percent');
+ }
+ return {value: parseFloat(parts[1]), unit: parts[2]};
+ });
+
+ // Handles shorthand.
+ margins[1] = margins[1] || margins[0];
+ margins[2] = margins[2] || margins[0];
+ margins[3] = margins[3] || margins[1];
+
+ return margins;
+};
+
+
+/**
+ * Starts polling for intersection changes if the polling is not already
+ * happening, and if the page's visibility state is visible.
+ * @private
+ */
+IntersectionObserver.prototype._monitorIntersections = function() {
+ if (!this._monitoringIntersections) {
+ this._monitoringIntersections = true;
+
+ // If a poll interval is set, use polling instead of listening to
+ // resize and scroll events or DOM mutations.
+ if (this.POLL_INTERVAL) {
+ this._monitoringInterval = setInterval(
+ this._checkForIntersections, this.POLL_INTERVAL);
+ }
+ else {
+ addEvent(window, 'resize', this._checkForIntersections, true);
+ addEvent(document, 'scroll', this._checkForIntersections, true);
+
+ if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {
+ this._domObserver = new MutationObserver(this._checkForIntersections);
+ this._domObserver.observe(document, {
+ attributes: true,
+ childList: true,
+ characterData: true,
+ subtree: true
+ });
+ }
+ }
+ }
+};
+
+
+/**
+ * Stops polling for intersection changes.
+ * @private
+ */
+IntersectionObserver.prototype._unmonitorIntersections = function() {
+ if (this._monitoringIntersections) {
+ this._monitoringIntersections = false;
+
+ clearInterval(this._monitoringInterval);
+ this._monitoringInterval = null;
+
+ removeEvent(window, 'resize', this._checkForIntersections, true);
+ removeEvent(document, 'scroll', this._checkForIntersections, true);
+
+ if (this._domObserver) {
+ this._domObserver.disconnect();
+ this._domObserver = null;
+ }
+ }
+};
+
+
+/**
+ * Scans each observation target for intersection changes and adds them
+ * to the internal entries queue. If new entries are found, it
+ * schedules the callback to be invoked.
+ * @private
+ */
+IntersectionObserver.prototype._checkForIntersections = function() {
+ var rootIsInDom = this._rootIsInDom();
+ var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();
+
+ this._observationTargets.forEach(function(item) {
+ var target = item.element;
+ var targetRect = getBoundingClientRect(target);
+ var rootContainsTarget = this._rootContainsTarget(target);
+ var oldEntry = item.entry;
+ var intersectionRect = rootIsInDom && rootContainsTarget &&
+ this._computeTargetAndRootIntersection(target, rootRect);
+
+ var newEntry = item.entry = new IntersectionObserverEntry({
+ time: now(),
+ target: target,
+ boundingClientRect: targetRect,
+ rootBounds: rootRect,
+ intersectionRect: intersectionRect
+ });
+
+ if (!oldEntry) {
+ this._queuedEntries.push(newEntry);
+ } else if (rootIsInDom && rootContainsTarget) {
+ // If the new entry intersection ratio has crossed any of the
+ // thresholds, add a new entry.
+ if (this._hasCrossedThreshold(oldEntry, newEntry)) {
+ this._queuedEntries.push(newEntry);
+ }
+ } else {
+ // If the root is not in the DOM or target is not contained within
+ // root but the previous entry for this target had an intersection,
+ // add a new record indicating removal.
+ if (oldEntry && oldEntry.isIntersecting) {
+ this._queuedEntries.push(newEntry);
+ }
+ }
+ }, this);
+
+ if (this._queuedEntries.length) {
+ this._callback(this.takeRecords(), this);
+ }
+};
+
+
+/**
+ * Accepts a target and root rect computes the intersection between then
+ * following the algorithm in the spec.
+ * TODO(philipwalton): at this time clip-path is not considered.
+ * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo
+ * @param {Element} target The target DOM element
+ * @param {Object} rootRect The bounding rect of the root after being
+ * expanded by the rootMargin value.
+ * @return {?Object} The final intersection rect object or undefined if no
+ * intersection is found.
+ * @private
+ */
+IntersectionObserver.prototype._computeTargetAndRootIntersection =
+ function(target, rootRect) {
+
+ // If the element isn't displayed, an intersection can't happen.
+ if (window.getComputedStyle(target).display == 'none') return;
+
+ var targetRect = getBoundingClientRect(target);
+ var intersectionRect = targetRect;
+ var parent = getParentNode(target);
+ var atRoot = false;
+
+ while (!atRoot) {
+ var parentRect = null;
+ var parentComputedStyle = parent.nodeType == 1 ?
+ window.getComputedStyle(parent) : {};
+
+ // If the parent isn't displayed, an intersection can't happen.
+ if (parentComputedStyle.display == 'none') return;
+
+ if (parent == this.root || parent == document) {
+ atRoot = true;
+ parentRect = rootRect;
+ } else {
+ // If the element has a non-visible overflow, and it's not the
+ // or element, update the intersection rect.
+ // Note: and cannot be clipped to a rect that's not also
+ // the document rect, so no need to compute a new intersection.
+ if (parent != document.body &&
+ parent != document.documentElement &&
+ parentComputedStyle.overflow != 'visible') {
+ parentRect = getBoundingClientRect(parent);
+ }
+ }
+
+ // If either of the above conditionals set a new parentRect,
+ // calculate new intersection data.
+ if (parentRect) {
+ intersectionRect = computeRectIntersection(parentRect, intersectionRect);
+
+ if (!intersectionRect) break;
+ }
+ parent = getParentNode(parent);
+ }
+ return intersectionRect;
+};
+
+
+/**
+ * Returns the root rect after being expanded by the rootMargin value.
+ * @return {Object} The expanded root rect.
+ * @private
+ */
+IntersectionObserver.prototype._getRootRect = function() {
+ var rootRect;
+ if (this.root) {
+ rootRect = getBoundingClientRect(this.root);
+ } else {
+ // Use / instead of window since scroll bars affect size.
+ var html = document.documentElement;
+ var body = document.body;
+ rootRect = {
+ top: 0,
+ left: 0,
+ right: html.clientWidth || body.clientWidth,
+ width: html.clientWidth || body.clientWidth,
+ bottom: html.clientHeight || body.clientHeight,
+ height: html.clientHeight || body.clientHeight
+ };
+ }
+ return this._expandRectByRootMargin(rootRect);
+};
+
+
+/**
+ * Accepts a rect and expands it by the rootMargin value.
+ * @param {Object} rect The rect object to expand.
+ * @return {Object} The expanded rect.
+ * @private
+ */
+IntersectionObserver.prototype._expandRectByRootMargin = function(rect) {
+ var margins = this._rootMarginValues.map(function(margin, i) {
+ return margin.unit == 'px' ? margin.value :
+ margin.value * (i % 2 ? rect.width : rect.height) / 100;
+ });
+ var newRect = {
+ top: rect.top - margins[0],
+ right: rect.right + margins[1],
+ bottom: rect.bottom + margins[2],
+ left: rect.left - margins[3]
+ };
+ newRect.width = newRect.right - newRect.left;
+ newRect.height = newRect.bottom - newRect.top;
+
+ return newRect;
+};
+
+
+/**
+ * Accepts an old and new entry and returns true if at least one of the
+ * threshold values has been crossed.
+ * @param {?IntersectionObserverEntry} oldEntry The previous entry for a
+ * particular target element or null if no previous entry exists.
+ * @param {IntersectionObserverEntry} newEntry The current entry for a
+ * particular target element.
+ * @return {boolean} Returns true if a any threshold has been crossed.
+ * @private
+ */
+IntersectionObserver.prototype._hasCrossedThreshold =
+ function(oldEntry, newEntry) {
+
+ // To make comparing easier, an entry that has a ratio of 0
+ // but does not actually intersect is given a value of -1
+ var oldRatio = oldEntry && oldEntry.isIntersecting ?
+ oldEntry.intersectionRatio || 0 : -1;
+ var newRatio = newEntry.isIntersecting ?
+ newEntry.intersectionRatio || 0 : -1;
+
+ // Ignore unchanged ratios
+ if (oldRatio === newRatio) return;
+
+ for (var i = 0; i < this.thresholds.length; i++) {
+ var threshold = this.thresholds[i];
+
+ // Return true if an entry matches a threshold or if the new ratio
+ // and the old ratio are on the opposite sides of a threshold.
+ if (threshold == oldRatio || threshold == newRatio ||
+ threshold < oldRatio !== threshold < newRatio) {
+ return true;
+ }
+ }
+};
+
+
+/**
+ * Returns whether or not the root element is an element and is in the DOM.
+ * @return {boolean} True if the root element is an element and is in the DOM.
+ * @private
+ */
+IntersectionObserver.prototype._rootIsInDom = function() {
+ return !this.root || containsDeep(document, this.root);
+};
+
+
+/**
+ * Returns whether or not the target element is a child of root.
+ * @param {Element} target The target element to check.
+ * @return {boolean} True if the target element is a child of root.
+ * @private
+ */
+IntersectionObserver.prototype._rootContainsTarget = function(target) {
+ return containsDeep(this.root || document, target);
+};
+
+
+/**
+ * Adds the instance to the global IntersectionObserver registry if it isn't
+ * already present.
+ * @private
+ */
+IntersectionObserver.prototype._registerInstance = function() {
+ if (registry.indexOf(this) < 0) {
+ registry.push(this);
+ }
+};
+
+
+/**
+ * Removes the instance from the global IntersectionObserver registry.
+ * @private
+ */
+IntersectionObserver.prototype._unregisterInstance = function() {
+ var index = registry.indexOf(this);
+ if (index != -1) registry.splice(index, 1);
+};
+
+
+/**
+ * Returns the result of the performance.now() method or null in browsers
+ * that don't support the API.
+ * @return {number} The elapsed time since the page was requested.
+ */
+function now() {
+ return window.performance && performance.now && performance.now();
+}
+
+
+/**
+ * Throttles a function and delays its execution, so it's only called at most
+ * once within a given time period.
+ * @param {Function} fn The function to throttle.
+ * @param {number} timeout The amount of time that must pass before the
+ * function can be called again.
+ * @return {Function} The throttled function.
+ */
+function throttle(fn, timeout) {
+ var timer = null;
+ return function () {
+ if (!timer) {
+ timer = setTimeout(function() {
+ fn();
+ timer = null;
+ }, timeout);
+ }
+ };
+}
+
+
+/**
+ * Adds an event handler to a DOM node ensuring cross-browser compatibility.
+ * @param {Node} node The DOM node to add the event handler to.
+ * @param {string} event The event name.
+ * @param {Function} fn The event handler to add.
+ * @param {boolean} opt_useCapture Optionally adds the even to the capture
+ * phase. Note: this only works in modern browsers.
+ */
+function addEvent(node, event, fn, opt_useCapture) {
+ if (typeof node.addEventListener == 'function') {
+ node.addEventListener(event, fn, opt_useCapture || false);
+ }
+ else if (typeof node.attachEvent == 'function') {
+ node.attachEvent('on' + event, fn);
+ }
+}
+
+
+/**
+ * Removes a previously added event handler from a DOM node.
+ * @param {Node} node The DOM node to remove the event handler from.
+ * @param {string} event The event name.
+ * @param {Function} fn The event handler to remove.
+ * @param {boolean} opt_useCapture If the event handler was added with this
+ * flag set to true, it should be set to true here in order to remove it.
+ */
+function removeEvent(node, event, fn, opt_useCapture) {
+ if (typeof node.removeEventListener == 'function') {
+ node.removeEventListener(event, fn, opt_useCapture || false);
+ }
+ else if (typeof node.detatchEvent == 'function') {
+ node.detatchEvent('on' + event, fn);
+ }
+}
+
+
+/**
+ * Returns the intersection between two rect objects.
+ * @param {Object} rect1 The first rect.
+ * @param {Object} rect2 The second rect.
+ * @return {?Object} The intersection rect or undefined if no intersection
+ * is found.
+ */
+function computeRectIntersection(rect1, rect2) {
+ var top = Math.max(rect1.top, rect2.top);
+ var bottom = Math.min(rect1.bottom, rect2.bottom);
+ var left = Math.max(rect1.left, rect2.left);
+ var right = Math.min(rect1.right, rect2.right);
+ var width = right - left;
+ var height = bottom - top;
+
+ return (width >= 0 && height >= 0) && {
+ top: top,
+ bottom: bottom,
+ left: left,
+ right: right,
+ width: width,
+ height: height
+ };
+}
+
+
+/**
+ * Shims the native getBoundingClientRect for compatibility with older IE.
+ * @param {Element} el The element whose bounding rect to get.
+ * @return {Object} The (possibly shimmed) rect of the element.
+ */
+function getBoundingClientRect(el) {
+ var rect;
+
+ try {
+ rect = el.getBoundingClientRect();
+ } catch (err) {
+ // Ignore Windows 7 IE11 "Unspecified error"
+ // https://github.com/w3c/IntersectionObserver/pull/205
+ }
+
+ if (!rect) return getEmptyRect();
+
+ // Older IE
+ if (!(rect.width && rect.height)) {
+ rect = {
+ top: rect.top,
+ right: rect.right,
+ bottom: rect.bottom,
+ left: rect.left,
+ width: rect.right - rect.left,
+ height: rect.bottom - rect.top
+ };
+ }
+ return rect;
+}
+
+
+/**
+ * Returns an empty rect object. An empty rect is returned when an element
+ * is not in the DOM.
+ * @return {Object} The empty rect.
+ */
+function getEmptyRect() {
+ return {
+ top: 0,
+ bottom: 0,
+ left: 0,
+ right: 0,
+ width: 0,
+ height: 0
+ };
+}
+
+/**
+ * Checks to see if a parent element contains a child element (including inside
+ * shadow DOM).
+ * @param {Node} parent The parent element.
+ * @param {Node} child The child element.
+ * @return {boolean} True if the parent node contains the child node.
+ */
+function containsDeep(parent, child) {
+ var node = child;
+ while (node) {
+ if (node == parent) return true;
+
+ node = getParentNode(node);
+ }
+ return false;
+}
+
+
+/**
+ * Gets the parent node of an element or its host element if the parent node
+ * is a shadow root.
+ * @param {Node} node The node whose parent to get.
+ * @return {Node|null} The parent node or null if no parent exists.
+ */
+function getParentNode(node) {
+ var parent = node.parentNode;
+
+ if (parent && parent.nodeType == 11 && parent.host) {
+ // If the parent is a shadow root, return the host element.
+ return parent.host;
+ }
+
+ if (parent && parent.assignedSlot) {
+ // If the parent is distributed in a , return the parent of a slot.
+ return parent.assignedSlot.parentNode;
+ }
+
+ return parent;
+}
+
+
+// Exposes the constructors globally.
+window.IntersectionObserver = IntersectionObserver;
+window.IntersectionObserverEntry = IntersectionObserverEntry;
+
+}());
+
+
+/***/ }),
+
+/***/ "5bb5":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5bf9":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5c50":
+/***/ (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__("8ef5");
+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', 'offSeeked'];
+/**
+ * 音频上下文对象
+ */
+
+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 = ['canplay', '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();
+}
+
+/***/ }),
+
+/***/ "5c85":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5cf8":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// 暂不提供通知所有
+// function broadcast (componentName, eventName, ...params) {
+// this.$children.forEach(child => {
+// const name = child.$options.name && child.$options.name.substr(1)
+// if (~componentName.indexOf(name)) {
+// child.$emit.apply(child, [eventName].concat(params))
+// } else {
+// broadcast.apply(child, [componentName, eventName].concat([params]))
+// }
+// })
+// }
+function broadcast(componentName, eventName) {
+ var children = this.$children;
+ var len = children.length;
+
+ for (var _len = arguments.length, params = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+ params[_key - 2] = arguments[_key];
+ }
+
+ for (var i = 0; i < len; i++) {
+ var child = children[i];
+ var name = child.$options.name && child.$options.name.substr(4);
+
+ if (~componentName.indexOf(name)) {
+ child.$emit.apply(child, [eventName].concat(params));
+ return false;
+ } else {
+ if (broadcast.apply(child, [componentName, eventName].concat([params])) === false) {
+ return false;
+ }
+ }
+ }
+}
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ methods: {
+ $dispatch: function $dispatch(componentName, eventName) {
+ if (typeof componentName === 'string') {
+ componentName = [componentName];
+ }
+
+ var parent = this.$parent || this.$root;
+ var name = parent.$options.name && parent.$options.name.substr(4);
+
+ while (parent && (!name || !~componentName.indexOf(name))) {
+ parent = parent.$parent;
+
+ if (parent) {
+ name = parent.$options.name && parent.$options.name.substr(4);
+ }
+ }
+
+ if (parent) {
+ for (var _len2 = arguments.length, params = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
+ params[_key2 - 2] = arguments[_key2];
+ }
+
+ parent.$emit.apply(parent, [eventName].concat(params));
+ }
+ },
+ $broadcast: function $broadcast(componentName, eventName) {
+ if (typeof componentName === 'string') {
+ componentName = [componentName];
+ }
+
+ for (var _len3 = arguments.length, params = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
+ params[_key3 - 2] = arguments[_key3];
+ }
+
+ broadcast.apply(this, [componentName, eventName].concat(params));
+ }
+ }
+});
+
+/***/ }),
+
+/***/ "5db8":
+/***/ (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__, "previewImage", function() { return previewImage; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closePreviewImage", function() { return closePreviewImage; });
+var _UniServiceJSBridge = UniServiceJSBridge,
+ emit = _UniServiceJSBridge.emit,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+function previewImage(args, callbackId) {
+ emit('onShowPreviewImage', args, function (res) {
+ invoke(callbackId, {
+ errMsg: 'previewImage:ok'
+ });
+ });
+}
+function closePreviewImage(_, callbackId) {
+ emit('onClosePreviewImage', function () {
+ invoke(callbackId, {
+ errMsg: 'closePreviewImage:ok'
+ });
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "5dc1":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge, console) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return requestComponentObserver; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return destroyComponentObserver; });
+/* harmony import */ var intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5abe");
+/* harmony import */ var intersection_observer__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(intersection_observer__WEBPACK_IMPORTED_MODULE_0__);
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85b6");
+/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("db8e");
+
+
+
+
+function getRect(rect) {
+ return {
+ bottom: rect.bottom,
+ height: rect.height,
+ left: rect.left,
+ right: rect.right,
+ top: rect.top,
+ width: rect.width
+ };
+} // 在相交比很小的情况下,Chrome会返回相交为0
+
+
+function rectifyIntersectionRatio(entrie) {
+ var intersectionRatio = entrie.intersectionRatio,
+ _entrie$boundingClien = entrie.boundingClientRect,
+ overAllHeight = _entrie$boundingClien.height,
+ overAllWidth = _entrie$boundingClien.width,
+ _entrie$intersectionR = entrie.intersectionRect,
+ intersectionHeight = _entrie$intersectionR.height,
+ intersectionWidth = _entrie$intersectionR.width;
+ if (intersectionRatio !== 0) return intersectionRatio;
+ return intersectionHeight === overAllHeight ? intersectionWidth / overAllWidth : intersectionHeight / overAllHeight;
+}
+
+var intersectionObservers = {};
+function requestComponentObserver(_ref, pageId) {
+ var reqId = _ref.reqId,
+ component = _ref.component,
+ options = _ref.options;
+ var pageVm;
+
+ if (pageId._isVue) {
+ pageVm = pageId;
+ } else {
+ var pages = getCurrentPages(); // 跨平台时,View 层也应该实现该方法,举例 App 上,View 层的 getCurrentPages 返回长度为1的当前页面数组
+
+ var page = pages.find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (!page) {
+ throw new Error("Not Found\uFF1APage[".concat(pageId, "]"));
+ }
+
+ pageVm = page.$vm;
+ }
+
+ var $el = Object(_util__WEBPACK_IMPORTED_MODULE_2__[/* findElm */ "b"])(component, pageVm);
+ 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: rectifyIntersectionRatio(entrie),
+ intersectionRect: getRect(entrie.intersectionRect),
+ boundingClientRect: getRect(entrie.boundingClientRect),
+ relativeRect: getRect(entrie.rootBounds),
+ time: Date.now(),
+ dataset: Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* getTargetDataset */ "b"])(entrie.target),
+ id: entrie.target.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) {
+ if (!el) {
+ console.warn("Node ".concat(options.selector, " is not found. Intersection observer will not trigger."));
+ return;
+ }
+
+ intersectionObserver.observe(el);
+ });
+ } else {
+ intersectionObserver.USE_MUTATION_OBSERVER = false;
+ var el = $el.querySelector(options.selector);
+
+ if (!el) {
+ console.warn("Node ".concat(options.selector, " is not found. Intersection observer will not trigger."));
+ return;
+ }
+
+ intersectionObserver.observe(el);
+ }
+}
+function destroyComponentObserver(_ref2) {
+ var reqId = _ref2.reqId;
+ var intersectionObserver = intersectionObservers[reqId];
+
+ if (intersectionObserver) {
+ intersectionObserver.disconnect();
+ delete intersectionObservers[reqId];
+ UniViewJSBridge.publishHandler('onRequestComponentObserver', {
+ reqId: reqId,
+ reqEnd: true
+ });
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "5ea2":
+/***/ (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_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("85b6");
+/* harmony import */ var uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("65a8");
+/* harmony import */ var uni_core_view_bridge_subscribe_scroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("33ed");
+
+
+
+
+var passiveOptions = uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* supportsPassive */ "s"] ? {
+ passive: false
+} : false;
+
+function updateCssVar(vm) {
+ if (uni.canIUse('css.var')) {
+ var uniConfigTabbarHeight = parseFloat(__uniConfig.tabBar.height);
+ var pageVm = vm.$parent.$parent;
+ var navigationBarType = pageVm.navigationBar.type;
+ var windowTopValue = navigationBarType === 'default' || navigationBarType === 'float' ? uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* NAVBAR_HEIGHT */ "a"] : 0;
+ var windowBottomValue = getApp().$children[0].showTabBar ? isNaN(uniConfigTabbarHeight) ? uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* TABBAR_HEIGHT */ "d"] : uniConfigTabbarHeight : 0;
+ var envMethod = uni.canIUse('css.env') ? 'env' : uni.canIUse('css.constant') ? 'constant' : '';
+ var windowTop = windowTopValue && envMethod ? "calc(".concat(windowTopValue, "px + ").concat(envMethod, "(safe-area-inset-top))") : "".concat(windowTopValue, "px");
+ var windowBottom = windowBottomValue && envMethod ? "calc(".concat(windowBottomValue, "px + ").concat(envMethod, "(safe-area-inset-bottom))") : "".concat(windowBottomValue, "px");
+ var style = document.documentElement.style;
+ style.setProperty('--window-top', "calc(var(--top-window-height) + ".concat(windowTop, ")"));
+ style.setProperty('--window-bottom', windowBottom);
+ console.debug("".concat(vm.$page.route, "[").concat(vm.$page.id, "]\uFF1A--window-top=").concat(windowTop));
+ console.debug("".concat(vm.$page.route, "[").concat(vm.$page.id, "]\uFF1A--window-bottom=").concat(windowBottom));
+ }
+}
+
+function initSubscribe(subscribe) {
+ var scrollListener = false;
+ var disableScrollListener = false;
+ subscribe('onPageLoad', function (vm) {
+ // 用户 onLoad 之前 update
+ updateCssVar(vm);
+ });
+ subscribe('onPageShow', function (vm) {
+ var pageVm = vm.$parent.$parent;
+
+ if (vm._isMounted) {
+ // 非首次 show 才 update(首次 show 的时候在 onPageLoad 中触发了)
+ updateCssVar(vm);
+ }
+
+ if (disableScrollListener) {
+ document.removeEventListener('touchmove', disableScrollListener, passiveOptions);
+ }
+
+ if (pageVm.disableScroll) {
+ disableScrollListener = uni_core_view_bridge_subscribe_scroll__WEBPACK_IMPORTED_MODULE_3__[/* disableScroll */ "b"];
+ document.addEventListener('touchmove', disableScrollListener, passiveOptions);
+ }
+
+ var enablePageScroll = Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* hasLifecycleHook */ "c"])(vm.$options, 'onPageScroll');
+ var enablePageReachBottom = Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__[/* hasLifecycleHook */ "c"])(vm.$options, 'onReachBottom');
+ var onReachBottomDistance = pageVm.onReachBottomDistance;
+ var enableTransparentTitleNView = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(pageVm.titleNView) && pageVm.titleNView.type === 'transparent' || Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(pageVm.navigationBar) && pageVm.navigationBar.type === 'transparent';
+
+ if (scrollListener) {
+ document.removeEventListener('scroll', scrollListener);
+ }
+
+ if (enableTransparentTitleNView || enablePageScroll || enablePageReachBottom) {
+ // 初始化 scroll 监听
+ scrollListener = Object(uni_core_view_bridge_subscribe_scroll__WEBPACK_IMPORTED_MODULE_3__[/* createScrollListener */ "a"])(vm.$page.id, {
+ enablePageScroll: enablePageScroll,
+ enablePageReachBottom: enablePageReachBottom,
+ onReachBottomDistance: onReachBottomDistance,
+ enableTransparentTitleNView: enableTransparentTitleNView
+ });
+ requestAnimationFrame(function () {
+ // 避免监听太早,直接触发了 scroll
+ document.addEventListener('scroll', scrollListener);
+ });
+ }
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "5f8d":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "5ff9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "loadFontFace", function() { return loadFontFace; });
+var loadFontFace = {
+ family: {
+ type: String,
+ required: true
+ },
+ source: {
+ type: String,
+ required: true
+ },
+ desc: {
+ type: Object,
+ required: false
+ },
+ success: {
+ type: Function,
+ required: false
+ },
+ fail: {
+ type: Function,
+ required: false
+ },
+ complete: {
+ type: Function,
+ required: false
+ }
+};
+
+/***/ }),
+
+/***/ "6062":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("3569");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "60db":
+/***/ (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__, "EditorContext", function() { return EditorContext; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+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 operateEditor(componentId, pageId, type, data) {
+ UniServiceJSBridge.publishHandler(pageId + '-editor-' + componentId, {
+ componentId: componentId,
+ type: type,
+ data: data
+ }, pageId);
+}
+
+UniServiceJSBridge.subscribe('onEditorMethodCallback', function (_ref) {
+ var callbackId = _ref.callbackId,
+ data = _ref.data;
+ uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* callback */ "a"].invoke(callbackId, data);
+});
+var methods = ['insertDivider', 'insertImage', 'insertText', 'setContents', 'getContents', 'clear', 'removeFormat', 'undo', 'redo', 'blur', 'getSelectionText', 'scrollIntoView'];
+var EditorContext = /*#__PURE__*/function () {
+ function EditorContext(id, pageId) {
+ _classCallCheck(this, EditorContext);
+
+ this.id = id;
+ this.pageId = pageId;
+ }
+
+ _createClass(EditorContext, [{
+ key: "format",
+ value: function format(name, value) {
+ operateEditor(this.id, this.pageId, 'format', {
+ options: {
+ name: name,
+ value: value
+ }
+ });
+ }
+ }]);
+
+ return EditorContext;
+}();
+methods.forEach(function (method) {
+ EditorContext.prototype[method] = uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* callback */ "a"].warp(function (options, callbackId) {
+ operateEditor(this.id, this.pageId, method, {
+ options: options,
+ callbackId: callbackId
+ });
+ });
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "6150":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/audio/index.vue?vue&type=template&id=377bd9b0&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-audio',_vm._g({attrs:{"id":_vm.id,"controls":!!_vm.controls}},_vm.$listeners),[_c('audio',{ref:"audio",staticStyle:{"display":"none"},attrs:{"loop":_vm.loop}}),_c('div',{staticClass:"uni-audio-default"},[_c('div',{staticClass:"uni-audio-left",style:('background-image: url('+_vm.$getRealPath(_vm.poster)+');')},[_c('div',{staticClass:"uni-audio-button",class:{play:!_vm.playing,pause:_vm.playing},on:{"click":_vm.trigger}})]),_c('div',{staticClass:"uni-audio-right"},[_c('div',{staticClass:"uni-audio-time"},[_vm._v(" "+_vm._s(_vm.currentTime)+" ")]),_c('div',{staticClass:"uni-audio-info"},[_c('div',{staticClass:"uni-audio-name"},[_vm._v(" "+_vm._s(_vm.name)+" ")]),_c('div',{staticClass:"uni-audio-author"},[_vm._v(" "+_vm._s(_vm.author)+" ")])])])])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/audio/index.vue?vue&type=template&id=377bd9b0&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/audio/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var audiovue_type_script_lang_js_ = ({
+ name: 'Audio',
+ mixins: [mixins["g" /* subscriber */]],
+ props: {
+ id: {
+ type: String,
+ default: ''
+ },
+ src: {
+ type: String,
+ default: ''
+ },
+ loop: {
+ type: [Boolean, String],
+ default: false
+ },
+ controls: {
+ type: [Boolean, String],
+ default: false
+ },
+ poster: {
+ type: String,
+ default: ''
+ },
+ name: {
+ type: String,
+ default: ''
+ },
+ author: {
+ type: String,
+ default: ''
+ }
+ },
+ data: function data() {
+ return {
+ playing: false,
+ currentTime: this.getTime(0)
+ };
+ },
+ watch: {
+ src: function src(val) {
+ if (this.$refs.audio) {
+ this.$refs.audio.src = this.$getRealPath(val);
+ }
+ }
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ var audio = this.$refs.audio;
+ audio.addEventListener('error', function ($event) {
+ _this.playing = false;
+
+ _this.$trigger('error', $event, {});
+ });
+ audio.addEventListener('play', function ($event) {
+ _this.playing = true;
+
+ _this.$trigger('play', $event, {});
+ });
+ audio.addEventListener('pause', function ($event) {
+ _this.playing = false;
+
+ _this.$trigger('pause', $event, {});
+ });
+ audio.addEventListener('ended', function ($event) {
+ _this.playing = false;
+
+ _this.$trigger('ended', $event, {});
+ });
+ audio.addEventListener('timeupdate', function ($event) {
+ var currentTime = audio.currentTime;
+ _this.currentTime = _this.getTime(currentTime);
+ var duration = audio.duration;
+
+ _this.$trigger('timeupdate', $event, {
+ currentTime: currentTime,
+ duration: duration
+ });
+ });
+ audio.src = this.$getRealPath(this.src);
+ },
+ methods: {
+ _handleSubscribe: function _handleSubscribe(_ref) {
+ var type = _ref.type,
+ _ref$data = _ref.data,
+ data = _ref$data === void 0 ? {} : _ref$data;
+ var audio = this.$refs.audio;
+
+ switch (type) {
+ case 'setSrc':
+ audio.src = this.$getRealPath(data.src);
+ this.$emit('update:src', data.src);
+ break;
+
+ case 'play':
+ audio.play();
+ break;
+
+ case 'pause':
+ audio.pause();
+ break;
+
+ case 'seek':
+ audio.currentTime = data.position;
+ break;
+ }
+ },
+ trigger: function trigger() {
+ if (this.playing) {
+ this.$refs.audio.pause();
+ } else {
+ this.$refs.audio.play();
+ }
+ },
+ 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;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/audio/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_audiovue_type_script_lang_js_ = (audiovue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/audio/index.vue?vue&type=style&index=0&lang=css&
+var audiovue_type_style_index_0_lang_css_ = __webpack_require__("02b5");
+
+// 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/audio/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_audiovue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var audio = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "61c2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// EXPORTS
+__webpack_require__.d(__webpack_exports__, "a", function() { return /* binding */ initBehaviors; });
+
+// EXTERNAL MODULE: ./src/shared/index.js + 8 modules
+var shared = __webpack_require__("f2b3");
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./src/core/view/plugins/behaviors/form-field.js
+/**
+ * uni://form-field
+ */
+
+
+
+function created() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+}
+
+function beforeDestroy() {
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+}
+
+/* harmony default export */ var form_field = ({
+ name: 'uni://form-field',
+ init: function init(options, vm) {
+ if (!vm.constructor.options.props || !vm.constructor.options.props.name || !vm.constructor.options.props.value) {
+ // 未初始化 props
+ if (!vm.constructor.options.props) {
+ vm.constructor.options.props = {};
+ }
+
+ if (!vm.constructor.options.props.name) {
+ vm.constructor.options.props.name = options.props.name = {
+ type: String
+ };
+ }
+
+ if (!vm.constructor.options.props.value) {
+ vm.constructor.options.props.value = options.props.value = {
+ type: null
+ };
+ }
+ }
+
+ if (!options.propsData) {
+ options.propsData = {};
+ }
+
+ var $vnode = vm.$vnode;
+
+ if ($vnode && $vnode.data && $vnode.data.attrs) {
+ if (Object(shared["i" /* hasOwn */])($vnode.data.attrs, 'name')) {
+ options.propsData.name = $vnode.data.attrs.name;
+ }
+
+ if (Object(shared["i" /* hasOwn */])($vnode.data.attrs, 'value')) {
+ options.propsData.value = $vnode.data.attrs.value;
+ }
+ }
+
+ if (!vm.constructor.options.methods || !vm.constructor.options.methods._getFormData) {
+ // 未初始化 methods
+ if (!vm.constructor.options.methods) {
+ vm.constructor.options.methods = {};
+ }
+
+ if (!options.methods) {
+ options.methods = {};
+ }
+
+ var formMethods = {
+ _getFormData: function _getFormData() {
+ return this.name ? {
+ key: this.name,
+ value: this.value
+ } : {};
+ },
+ _resetFormData: function _resetFormData() {
+ this.value = '';
+ }
+ };
+ Object.assign(vm.constructor.options.methods, formMethods);
+ Object.assign(options.methods, formMethods); // add $dispatch
+
+ Object.assign(vm.constructor.options.methods, mixins["a" /* emitter */].methods);
+ Object.assign(options.methods, mixins["a" /* emitter */].methods);
+ var createdHooks = options.created;
+ vm.constructor.options.created = options.created = createdHooks ? [].concat(created, createdHooks) : [created];
+ var beforeDestroyHooks = options.beforeDestroy;
+ vm.constructor.options.beforeDestroy = options.beforeDestroy = beforeDestroyHooks ? [].concat(beforeDestroy, beforeDestroyHooks) : [beforeDestroy];
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/plugins/behaviors/index.js
+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 behaviors = _defineProperty({}, form_field.name, form_field);
+
+function initBehaviors(options, vm) {
+ options.behaviors.forEach(function (name) {
+ var behavior = behaviors[name];
+ behavior && behavior.init(options, vm);
+ });
+}
+
+/***/ }),
+
+/***/ "620e":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "626d":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+/* harmony default export */ __webpack_exports__["default"] = ({
+ data: function data() {
+ return {
+ showActionSheet: {
+ visible: false
+ }
+ };
+ },
+ created: function created() {
+ var _this = this;
+
+ UniServiceJSBridge.on('onShowActionSheet', function (args, callback) {
+ _this.showActionSheet = args;
+ _this.onActionSheetCloseCallback = callback;
+ });
+ UniServiceJSBridge.on('onHidePopup', function (args) {
+ _this.showActionSheet.visible = false;
+ });
+ },
+ methods: {
+ // 处理 actionSheet close 回调
+ _onActionSheetClose: function _onActionSheetClose(type) {
+ this.showActionSheet.visible = false;
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(this.onActionSheetCloseCallback) && this.onActionSheetCloseCallback(type);
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "62b5":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createCallbacks; });
+var callbacks = {};
+function createCallbacks(namespace) {
+ var scopedCallbacks = callbacks[namespace];
+
+ if (!scopedCallbacks) {
+ scopedCallbacks = {
+ id: 1,
+ callbacks: Object.create(null)
+ };
+ callbacks[namespace] = scopedCallbacks;
+ }
+
+ return {
+ get: function get(id) {
+ return scopedCallbacks.callbacks[id];
+ },
+ pop: function pop(id) {
+ var callback = scopedCallbacks.callbacks[id];
+
+ if (callback) {
+ delete scopedCallbacks.callbacks[id];
+ }
+
+ return callback;
+ },
+ push: function push(callback) {
+ var id = scopedCallbacks.id++;
+ scopedCallbacks.callbacks[id] = callback;
+ return id;
+ }
+ };
+}
+
+/***/ }),
+
+/***/ "636c":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ICON_PATH_ORIGIN; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ICON_PATH_TARGET; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return MapType; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getMapInfo; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return IS_AMAP; });
+/* unused harmony export translateCoordinateSystem */
+/* harmony import */ var _get_jsonp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("ffdc");
+/* harmony import */ var _view_components_map_maps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("31c6");
+
+
+var ICON_PATH_ORIGIN = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAC01BMVEUAAAAAef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef96quGStdqStdpbnujMzMzCyM7Gyc7Ky83MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAef8GfP0yjfNWnOp0qOKKsdyYt9mju9aZt9mMstx1qeJYnekyjvIIfP0qivVmouaWttnMzMyat9lppOUujPQKffxhoOfNzc3Y2Njh4eHp6enu7u7y8vL19fXv7+/i4uLZ2dnOzs6auNgOf/sKff15quHR0dHx8fH9/f3////j4+N6quFdn+iywdPb29vw8PD+/v7c3NyywtLa2tr29vbS0tLd3d38/Pzf39/o6Ojc7f+q0v+HwP9rsf9dqv9Hnv9Vpv/q6urj8P+Vx/9Am/8Pgf8Iff/z8/OAvP95uf/n5+c5l//V6f+52v+y1//7+/vt7e0rkP/09PTQ0NDq9P8Whf+cy//W1tbe3t7A3v/m5ubs7OxOov/r6+vk5OQiaPjKAAAAknRSTlMACBZ9oB71/jiqywJBZATT6hBukRXv+zDCAVrkDIf4JbQsTb7eVeJLbwfa8Rh4G/OlPS/6/kxQ9/xdmZudoJxNVhng7B6wtWdzAtQOipcF1329wS44doK/BAkyP1pvgZOsrbnGXArAg34G2IsD1eMRe7bi7k5YnqFT9V0csyPedQyYD3p/Fje+hDpskq/MwpRBC6yKp2MAAAQdSURBVHja7Zn1exMxGIAPHbrhDsPdneHuNtzd3d3dIbjLh93o2o4i7TpgG1Jk0g0mMNwd/gTa5rq129reHnK5e/bk/TFNk/dJ7r5894XjGAwGg8GgTZasCpDIll1+hxw5vXLJLpEboTx5ZXbIhyzkl9fB28cqUaCgrBKFkI3CcjoUKYolihWXUSI7EihRUjaHXF52CVRKLoe8eZIdUOkyMknkRw6UlcehYAFHiXK+skgURk6Ul8OhQjFnCVRRBolKqRxQ5SzUHaqgNGSj7VCmalqJnDkoS5RF6ZCbroNvufQkUD6qEuXTdUA+3hQdqiEXVKfnUKOmK4latalJ1EEuoZZ6162HJ9x/4OChw0eOHj12/MTJU6dxG7XUu751tjNnz4ET5y9ctLZTSr0beKFLl89bpuUDrqgC1RqNWqsKuqqzNFw7e51S6u3tc+OmZUJ9kCHY6ECwOkRvab51iUrqXej2HYDQsHBjWgx3Ae7dppB6N2wEcF9jdMGDUIDGTaR2aNoM9FqjG7QmaN5CWgc/gIePjG559BigpZQOrYB/4jBfRGRUtDkmJjY6KjLCofkpD62lc2gDfMpWPIuLdwyV8XEpHgaddBZ+wBuSFcwJqSN2ovmZ/dfnOvCTxqGtwzq8SEjv4EhISn48eWgnhUP7DvDSvgzxrs6vV6+FLiro2EkCic4QKkzwJsH1KYreCp0eQhfyDl1B/w4P/xa5JVJ4U03QjbRD9x7wXlgH5IE3wmMBHXoSlugFAcI6f/AkkSi8q6HQm6xDn77wEQ8djTwSj3tqAMguRTe4ikeOQyJ4YV+KfkQl+oNW5GbY4gWOWgbwJ+kwAD6Fi90MK2ZsrIeBBCUGwRXbqJ+/iJMQliIEBhOU6AJhtlG/IpHE2bqrYQg5h6HA4yQiRqwEfkGCdTCMmMRw+IbPDCQaHCsCYAQxiZHw3TbmD/ESOHgHwShiEqPhp/gggYkSztIxxCRawy/bmEniJaJtfwiEscQkxkFgRqJESqQwwHhiEuMBp3Vm8RK/cZoHEzKXhCK2QxEPpiJe0YlKCFaKCNv/cYBNUsBRPlkJSc0U+dM7E9H0ThGJbgZT/iR7yj+VqMS06Qr4+OFm2JdCxIa8lugzkJs5K6MfxAaYPUcBpYG5khZJEkUUSb7DPCnKRfPBXj6M8FwuegoLpCgXcQszVjhbJFUJUee2hBhLoYTIcYtB57KY+opSMdVqwatSlZVj05aV//CwJLMX2DluaUcwhXm4ali2XOoLjxUrPV26zFtF4f5p0Gp310+z13BUWNvbehEXona6iAtX/zVZmtfN4WixfsNky4S6gCCVVq3RPLdfSfpv3MRRZfPoLc6Xs/5bt3EyMGzE9h07/Xft2t15z6i9+zgGg8FgMBgMBoPBYDAYDAYj8/APG67Rie8pUDsAAAAASUVORK5CYII=';
+var ICON_PATH_TARGET = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAACcCAMAAAC3Fl5oAAAB3VBMVEVMaXH/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/EhL/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/Dw//AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/GRn/NTX/Dw//Fhb/AAD/AAD/AAD/GRn/GRn/Y2P/AAD/AAD/ExP/Ghr/AAD/AAD/MzP/GRn/AAD/Hh7/AAD/RUX/AAD/AAD/AAD/AAD/AAD/AAD/Dg7/AAD/HR3/Dw//FRX/SUn/AAD/////kJD/DQ3/Zmb/+/v/wMD/mJj/6en/vb3/1NT//Pz/ODj/+fn/3Nz/nJz/j4//9/f/7e3/9vb/7Oz/2Nj/x8f/Ozv/+Pj/3d3/nZ3/2dn//f3/6Oj/2tr/v7//09P/vr7/mZn/l5cdSvP3AAAAe3RSTlMAAhLiZgTb/vztB/JMRhlp6lQW86g8mQ4KFPs3UCH5U8huwlesWtTYGI7RsdVeJGfTW5rxnutLsvXWF8vQNdo6qQbuz7D4hgVIx2xtw8GC1TtZaIw0i84P98tU0/fsj7PKaAgiZZxeVfo8Z52eg1P0nESrENnjXVPUgw/uuSmDAAADsUlEQVR42u3aZ3cTRxgF4GtbYleSLdnGcsENG2ODjbExEHrvhAQCIb1Bem+QdkeuuFMNBBJIfmuOckzZI8/srHYmH3Lm+QNXK632LTvQ03Tu/IWeU/tTGTKT2n+q58L5c00wpXJd47DHEt5w47pKxLbhdLdPKb/7dBYxVLxw1GcI/2h1BcpzKNFHLX2JQ4gumaiitqpEEhEdOMJI9h5AFC3feYzI+7IF2tpSLEOqDXpObPRYFm/jCWho/4Ble7MdoT7fzhhq9yHEz28wltU1UPrJZ0wd66HwicfYvEFIfePTAP8tSLTupBHvtGJFH9bSkNrNWEHzERrT34xSH9Ogr1CijkbVAUH1KRqVqkdQAw07iIAaGlcTqI+/0LjeJJ5J0IIEnkpXMdzs4sTtW9dnZq7fuj2xOMtwVWk88RHDjBYejYvnjD8qjOpfQsUqhvj7oSjxcJIhVj3pyKqpNjYvVjQ/RrXq5YABKi3MCYm5BSrtWO5v11DlmlC4RpU1WRS9SJU7QukOVbpQ9JLu549+Dd0AUOlTbkGEuk85vxLAK5QbuytC3R2j3HoAjZSbFxrmKTcCoJdSk0LLJKV6gSaPMqNTQsvUKGW8JrxKqUWhaZFSeWyh1LTQNE2pHF6mzOy40DQ+S5mLimJcENoKlOnBWsr8KbRNUGYt5LXgd6HtD3lNQIoyN4S2G5RJIUOZm0LbTcqsBqVmhLYZSlkPsP4VWf+Rrd+m1v9o9h8Vv5p42C1R5qL1x7WRglOgVN52yfwNOBu76P+lLPoYidu23KPciIHGa07ZeIW1jvcNtI7q5vexCPGYCmf+m/Y9a3sAwQ5bI9T7ukPgPcn9GToEao+xk1OixJT+GIsvNAbx6eAgPq0xiF+KtkpYKhRXCQ8eFFcJhSWGu3rZ8jJkCM8kz9K4TUnrC6mAgzTsB9tLwQ2W15qfosQ2GrQNpZr7aczbzVjBZsvLcaC1g0bsbIVEnU8DOr6H1KDH2LwtUBi0/JII6Dxm9zUXkH+XMWzfh1Dte1i2Pe3QkC77Zel7aehpO8wyHG6Dtt0NjKxhN6I4uSli/TqJiJJDUQ4NDCURXTrXRy1XcumyD24M+AzhD1RXIIZsl/LoyZmurJHDM7s8lvB2FQ/PmPJ6PseAXP5HGMYAAC7ABbgAF+ACXIALcAEuwAW4ABfgAlyAC3ABLsAFuID/d8Cx4NEt8/byOf0wLnis8zjMq9/Kp7bWw4JOj8u8TlhRl+G/Mp2wpOX48GffvvZ1CyL4B53LAS6zb08EAAAAAElFTkSuQmCC';
+var MapType = {
+ QQ: 'qq',
+ GOOGLE: 'google',
+ AMAP: 'AMap',
+ UNKNOWN: ''
+};
+function getMapInfo() {
+ if (__uniConfig.qqMapKey) {
+ return {
+ type: MapType.QQ,
+ key: __uniConfig.qqMapKey
+ };
+ }
+
+ if (__uniConfig.googleMapKey) {
+ return {
+ type: MapType.GOOGLE,
+ key: __uniConfig.googleMapKey
+ };
+ }
+
+ if (__uniConfig.aMapKey) {
+ return {
+ type: MapType.AMAP,
+ key: __uniConfig.aMapKey,
+ securityJsCode: __uniConfig.aMapSecurityJsCode,
+ serviceHost: __uniConfig.aMapServiceHost
+ };
+ }
+
+ return {
+ type: MapType.UNKNOWN,
+ key: ''
+ };
+}
+var IS_AMAP = getMapInfo().type === MapType.AMAP;
+function translateCoordinateSystem(type, coords, skip) {
+ var mapInfo = getMapInfo();
+ var wgs84Map = [MapType.GOOGLE];
+
+ if (type.toUpperCase() === 'WGS84' || wgs84Map.includes(mapInfo.type) || skip) {
+ return Promise.resolve(coords);
+ }
+
+ if (mapInfo.type === MapType.QQ) {
+ return new Promise(function (resolve, reject) {
+ Object(_get_jsonp__WEBPACK_IMPORTED_MODULE_0__[/* getJSONP */ "a"])("https://apis.map.qq.com/jsapi?qt=translate&type=1&points=".concat(coords.longitude, ",").concat(coords.latitude, "&key=").concat(mapInfo.key, "&output=jsonp&pf=jsapi&ref=jsapi"), {
+ callback: 'cb'
+ }, function (res) {
+ if ('detail' in res && 'points' in res.detail && res.detail.points.length) {
+ var location = res.detail.points[0];
+ resolve({
+ longitude: location.lng,
+ latitude: location.lat,
+ altitude: coords.altitude,
+ accuracy: coords.accuracy,
+ altitudeAccuracy: coords.altitudeAccuracy,
+ heading: coords.heading,
+ speed: coords.speed
+ });
+ } else {
+ reject(new Error('translate coordinate system fail'));
+ }
+ }, function () {
+ return reject(new Error('translate coordinate system fail'));
+ });
+ });
+ }
+
+ if (mapInfo.type === MapType.AMAP) {
+ return new Promise(function (resolve, reject) {
+ Object(_view_components_map_maps__WEBPACK_IMPORTED_MODULE_1__[/* loadMaps */ "a"])([], function () {
+ window.AMap.convertFrom([coords.longitude, coords.latitude], 'gps', function (_, res) {
+ if (res.info === 'ok' && res.locations.length) {
+ var _res$locations$ = res.locations[0],
+ lat = _res$locations$.lat,
+ lng = _res$locations$.lng;
+ resolve({
+ longitude: lng,
+ latitude: lat,
+ altitude: coords.altitude,
+ accuracy: coords.accuracy,
+ altitudeAccuracy: coords.altitudeAccuracy,
+ heading: coords.heading,
+ speed: coords.speed
+ });
+ } else {
+ reject(new Error('translate coordinate system fail'));
+ }
+ });
+ });
+ });
+ }
+}
+
+/***/ }),
+
+/***/ "6389":
+/***/ (function(module, exports) {
+
+module.exports = __WEBPACK_EXTERNAL_MODULE__6389__;
+
+/***/ }),
+
+/***/ "63ee":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {function processDeltaY(evt, identifier, startY) {
+ var touch = Array.prototype.slice.call(evt.changedTouches).filter(function (touch) {
+ return touch.identifier === identifier;
+ })[0];
+
+ if (!touch) {
+ return false;
+ }
+
+ evt.deltaY = touch.pageY - startY;
+ return true;
+} // const ratio = 2.2
+
+
+var PULLING = 'pulling';
+var REACHED = 'reached';
+var ABORTING = 'aborting';
+var REFRESHING = 'refreshing';
+var RESTORING = 'restoring';
+/* harmony default export */ __webpack_exports__["a"] = ({
+ mounted: function mounted() {
+ var _this = this;
+
+ if (this.enablePullDownRefresh) {
+ this.refreshContainerElem = this.$refs.refresh.$el;
+ this.refreshControllerElem = this.refreshContainerElem.querySelector('.uni-page-refresh');
+ this.refreshInnerElemStyle = this.refreshControllerElem.querySelector('.uni-page-refresh-inner').style;
+ UniServiceJSBridge.on(this.$route.params.__id__ + '.startPullDownRefresh', function () {
+ if (!_this.state) {
+ _this.state = REFRESHING;
+
+ _this._addClass();
+
+ setTimeout(function () {
+ _this._refreshing();
+ }, 50);
+ }
+ });
+ UniServiceJSBridge.on(this.$route.params.__id__ + '.stopPullDownRefresh', function () {
+ if (_this.state === REFRESHING) {
+ _this._removeClass();
+
+ _this.state = RESTORING;
+
+ _this._addClass();
+
+ _this._restoring(function () {
+ _this._removeClass();
+
+ _this.state = _this.distance = _this.offset = null;
+ });
+ }
+ });
+ }
+ },
+ methods: {
+ _touchstart: function _touchstart(evt) {
+ var touch = evt.changedTouches[0];
+ this.touchId = touch.identifier;
+ this.startY = touch.pageY;
+
+ if ([ABORTING, REFRESHING, RESTORING].indexOf(this.state) >= 0) {
+ this.canRefresh = false;
+ } else {
+ this.canRefresh = true;
+ }
+ },
+ _touchmove: function _touchmove(evt) {
+ if (!this.canRefresh) {
+ return;
+ }
+
+ if (!processDeltaY(evt, this.touchId, this.startY)) {
+ return;
+ }
+
+ var deltaY = evt.deltaY;
+
+ if ((document.documentElement.scrollTop || document.body.scrollTop) !== 0) {
+ this.touchId = null;
+ return;
+ }
+
+ if (deltaY < 0 && !this.state) {
+ return;
+ }
+
+ evt.preventDefault();
+
+ if (this.distance == null) {
+ this.offset = deltaY;
+ this.state = PULLING;
+
+ this._addClass();
+ }
+
+ deltaY = deltaY - this.offset;
+
+ if (deltaY < 0) {
+ deltaY = 0;
+ }
+
+ this.distance = deltaY;
+ var reached = deltaY >= this.refreshOptions.range && this.state !== REACHED;
+ var pulling = deltaY < this.refreshOptions.range && this.state !== PULLING;
+
+ if (reached || pulling) {
+ this._removeClass();
+
+ this.state = this.state === REACHED ? PULLING : REACHED;
+
+ this._addClass();
+ }
+
+ this._pulling(deltaY);
+ },
+ _touchend: function _touchend(evt) {
+ var _this2 = this;
+
+ if (!processDeltaY(evt, this.touchId, this.startY)) {
+ return;
+ }
+
+ if (this.state === null) {
+ return;
+ }
+
+ if (this.state === PULLING) {
+ this._removeClass();
+
+ this.state = ABORTING;
+
+ this._addClass();
+
+ this._aborting(function () {
+ _this2._removeClass();
+
+ _this2.state = _this2.distance = _this2.offset = null;
+ });
+ } else if (this.state === REACHED) {
+ this._removeClass();
+
+ this.state = REFRESHING;
+
+ this._addClass();
+
+ this._refreshing();
+ }
+ },
+ _toggleClass: function _toggleClass(type) {
+ if (!this.state) {
+ return;
+ }
+
+ var elem = this.refreshContainerElem;
+
+ if (elem) {
+ elem.classList[type]('uni-page-refresh--' + this.state);
+ }
+ },
+ _addClass: function _addClass() {
+ this._toggleClass('add');
+ },
+ _removeClass: function _removeClass() {
+ this._toggleClass('remove');
+ },
+ _pulling: function _pulling(deltaY) {
+ var elem = this.refreshControllerElem;
+
+ if (!elem) {
+ return;
+ }
+
+ var style = elem.style;
+ var rotate = deltaY / this.refreshOptions.range;
+
+ if (rotate > 1) {
+ rotate = 1;
+ } else {
+ rotate = rotate * rotate * rotate;
+ }
+
+ var y = Math.round(deltaY / (this.refreshOptions.range / this.refreshOptions.height));
+ var transform = y ? 'translate3d(-50%, ' + y + 'px, 0)' : 0;
+ style.webkitTransform = transform;
+ style.clip = 'rect(' + (45 - y) + 'px,45px,45px,-5px)';
+ this.refreshInnerElemStyle.webkitTransform = 'rotate(' + 360 * rotate + 'deg)';
+ },
+ _aborting: function _aborting(callback) {
+ var elem = this.refreshControllerElem;
+
+ if (!elem) {
+ return;
+ }
+
+ var style = elem.style;
+
+ if (style.webkitTransform) {
+ style.webkitTransition = '-webkit-transform 0.3s';
+ style.webkitTransform = 'translate3d(-50%, 0, 0)';
+
+ var abortTransitionEnd = function abortTransitionEnd() {
+ timeout && clearTimeout(timeout);
+ elem.removeEventListener('webkitTransitionEnd', abortTransitionEnd);
+ style.webkitTransition = '';
+ callback();
+ };
+
+ elem.addEventListener('webkitTransitionEnd', abortTransitionEnd);
+ var timeout = setTimeout(abortTransitionEnd, 350); // 部分手机,部分情况webkitTransitionEnd不触发
+ } else {
+ callback();
+ }
+ },
+ _refreshing: function _refreshing() {
+ var elem = this.refreshControllerElem;
+
+ if (!elem) {
+ return;
+ }
+
+ var style = elem.style;
+ style.webkitTransition = '-webkit-transform 0.2s';
+ style.webkitTransform = 'translate3d(-50%, ' + this.refreshOptions.height + 'px, 0)'; // Service 执行 refresh
+
+ UniServiceJSBridge.emit('onPullDownRefresh', {}, this.$route.params.__id__);
+ },
+ _restoring: function _restoring(callback) {
+ var elem = this.refreshControllerElem;
+
+ if (!elem) {
+ return;
+ }
+
+ var style = elem.style;
+ style.webkitTransition = '-webkit-transform 0.3s';
+ style.webkitTransform += ' scale(0.01)';
+
+ var restoreTransitionEnd = function restoreTransitionEnd() {
+ timeout && clearTimeout(timeout);
+ elem.removeEventListener('webkitTransitionEnd', restoreTransitionEnd);
+ style.webkitTransition = '';
+ style.webkitTransform = 'translate3d(-50%, 0, 0)';
+ callback();
+ };
+
+ elem.addEventListener('webkitTransitionEnd', restoreTransitionEnd);
+ var timeout = setTimeout(restoreTransitionEnd, 350); // 部分手机,部分情况webkitTransitionEnd不触发
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "6423":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "6428":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("687b");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "6481":
+/***/ (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; });
+var base64ToArrayBuffer = [{
+ name: 'base64',
+ type: String,
+ required: true
+}];
+var arrayBufferToBase64 = [{
+ name: 'arrayBuffer',
+ type: [ArrayBuffer, Uint8Array],
+ required: true
+}];
+
+/***/ }),
+
+/***/ "6491":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/radio/index.vue?vue&type=template&id=0d8aa3a5&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-radio',_vm._g({attrs:{"disabled":_vm.disabled},on:{"click":_vm._onClick}},_vm.$listeners),[_c('div',{staticClass:"uni-radio-wrapper"},[_c('div',{staticClass:"uni-radio-input",class:{
+ 'uni-radio-input-checked': _vm.radioChecked,
+ 'uni-radio-input-disabled': _vm.disabled,
+ },style:(_vm.radioChecked ? _vm.checkedStyle : '')}),_vm._t("default")],2)])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/radio/index.vue?vue&type=template&id=0d8aa3a5&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/radio/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var radiovue_type_script_lang_js_ = ({
+ name: 'Radio',
+ mixins: [mixins["a" /* emitter */], mixins["f" /* listeners */]],
+ props: {
+ checked: {
+ type: [Boolean, String],
+ default: false
+ },
+ id: {
+ type: String,
+ default: ''
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ color: {
+ type: String,
+ default: '#007AFF'
+ },
+ value: {
+ type: String,
+ default: ''
+ }
+ },
+ data: function data() {
+ return {
+ radioChecked: this.checked,
+ radioValue: this.value
+ };
+ },
+ computed: {
+ checkedStyle: function checkedStyle() {
+ if (this.disabled) return 'background-color: #E1E1E1;border-color: ##D1D1D1;';
+ return "background-color: ".concat(this.color, ";border-color: ").concat(this.color, ";");
+ }
+ },
+ watch: {
+ checked: function checked(val) {
+ this.radioChecked = val;
+ },
+ value: function value(val) {
+ this.radioValue = val;
+ }
+ },
+ listeners: {
+ 'label-click': '_onClick',
+ '@label-click': '_onClick'
+ },
+ created: function created() {
+ this.$dispatch('RadioGroup', 'uni-radio-group-update', {
+ type: 'add',
+ vm: this
+ });
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('RadioGroup', 'uni-radio-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _onClick: function _onClick($event) {
+ if (this.disabled || this.radioChecked) {
+ return;
+ }
+
+ this.radioChecked = true;
+ this.$dispatch('RadioGroup', 'uni-radio-change', $event, this);
+ },
+ _resetFormData: function _resetFormData() {
+ this.radioChecked = this.min;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/radio/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_radiovue_type_script_lang_js_ = (radiovue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/radio/index.vue?vue&type=style&index=0&lang=css&
+var radiovue_type_style_index_0_lang_css_ = __webpack_require__("c96e");
+
+// 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/radio/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_radiovue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_radio = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "64d0":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("1757");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "65a8":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NAVBAR_HEIGHT; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return TABBAR_HEIGHT; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return RESPONSIVE_MIN_WIDTH; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return UNI_STORAGE_LOCALE; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ON_THEME_CHANGE; });
+var NAVBAR_HEIGHT = 44;
+var TABBAR_HEIGHT = 50; // 576:landscape phones,768:tablets,992:desktops,1200:large desktops
+
+var RESPONSIVE_MIN_WIDTH = 768;
+var UNI_STORAGE_LOCALE = 'UNI_LOCALE';
+var ON_THEME_CHANGE = 'onThemeChange';
+
+/***/ }),
+
+/***/ "6710":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getApiCallbacks; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _catch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("2608");
+
+
+function getApiCallbacks(params) {
+ var apiCallbacks = {};
+
+ for (var name in params) {
+ var param = params[name];
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(param)) {
+ apiCallbacks[name] = Object(_catch__WEBPACK_IMPORTED_MODULE_1__[/* tryCatch */ "a"])(param);
+ delete params[name];
+ }
+ }
+
+ return apiCallbacks;
+}
+
+/***/ }),
+
+/***/ "6730":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("b18e");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "6780":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getLaunchOptionsSync", function() { return getLaunchOptionsSync; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEnterOptionsSync", function() { return getEnterOptionsSync; });
+/* harmony import */ var uni_core_service_plugins_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("abbf");
+
+function getLaunchOptionsSync() {
+ return Object(uni_core_service_plugins_app__WEBPACK_IMPORTED_MODULE_0__[/* getLaunchOptions */ "e"])();
+}
+function getEnterOptionsSync() {
+ return Object(uni_core_service_plugins_app__WEBPACK_IMPORTED_MODULE_0__[/* getEnterOptions */ "d"])();
+}
+
+/***/ }),
+
+/***/ "687b":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "68d5":
+/***/ (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__("c1e4");
+/* harmony import */ var uni_h5_app_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("f1ea");
+/* harmony import */ var _observable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("2abe");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+
+
+
+
+function onThemeChange() {
+ var mediaQueryList = null;
+
+ try {
+ mediaQueryList = window.matchMedia('(prefers-color-scheme: dark)');
+ } catch (error) {}
+
+ if (mediaQueryList) {
+ var callback = function callback(e) {
+ UniServiceJSBridge.emit(uni_helpers_constants__WEBPACK_IMPORTED_MODULE_1__[/* ON_THEME_CHANGE */ "b"], {
+ theme: e.matches ? 'dark' : 'light'
+ });
+ };
+
+ if (mediaQueryList.addEventListener) {
+ mediaQueryList.addEventListener('change', callback);
+ } else {
+ mediaQueryList.addListener(callback);
+ }
+ }
+}
+
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'App',
+ components: _components__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"],
+ mixins: uni_h5_app_mixins__WEBPACK_IMPORTED_MODULE_3__["default"],
+ props: {
+ keepAliveInclude: {
+ type: Array,
+ default: function _default() {
+ return [];
+ }
+ }
+ },
+ data: function data() {
+ return {
+ transitionName: 'fade',
+ hideTabBar: false,
+ sysComponents: this.$sysComponents,
+ showLayout: false,
+ showMaxWidth: false,
+ tabBarMediaQuery: false
+ };
+ },
+ computed: {
+ key: function key() {
+ return this.$route.meta.name + '-' + this.$route.params.__id__ + '-' + (__uniConfig.reLaunch || 1);
+ },
+ tabBarOptions: function tabBarOptions() {
+ return _observable__WEBPACK_IMPORTED_MODULE_4__[/* tabBar */ "a"];
+ },
+ hasTabBar: function hasTabBar() {
+ return _observable__WEBPACK_IMPORTED_MODULE_4__[/* tabBar */ "a"].list && _observable__WEBPACK_IMPORTED_MODULE_4__[/* tabBar */ "a"].list.length;
+ },
+ showTabBar: function showTabBar() {
+ return !this.hideTabBar && (this.$route.meta.isTabBar || this.tabBarMediaQuery);
+ }
+ },
+ watch: {
+ $route: function $route(newRoute, oldRoute) {
+ UniServiceJSBridge.emit('onHidePopup');
+ },
+ hideTabBar: function hideTabBar(newVal, oldVal) {
+ // TODO 不支持 css 变量时
+ if (uni.canIUse('css.var')) {
+ var windowBottomValue = !newVal ? uni_helpers_constants__WEBPACK_IMPORTED_MODULE_1__[/* TABBAR_HEIGHT */ "d"] : 0;
+ var envMethod = uni.canIUse('css.env') ? 'env' : uni.canIUse('css.constant') ? 'constant' : '';
+ var windowBottom = windowBottomValue && envMethod ? "calc(".concat(windowBottomValue, "px + ").concat(envMethod, "(safe-area-inset-bottom))") : "".concat(windowBottomValue, "px");
+ 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');
+ }
+
+ this.initMediaQuery();
+ },
+ mounted: function mounted() {
+ window.addEventListener('message', function (evt) {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(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');
+ }
+ });
+ onThemeChange();
+ },
+ methods: {
+ onLayout: function onLayout(showLayout) {
+ this.showLayout = showLayout;
+ },
+ onMaxWidth: function onMaxWidth(showMaxWidth) {
+ this.showMaxWidth = showMaxWidth;
+ },
+ initMediaQuery: function initMediaQuery() {
+ var _this = this;
+
+ if (window.matchMedia && _observable__WEBPACK_IMPORTED_MODULE_4__[/* tabBar */ "a"].matchMedia && Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* hasOwn */ "i"])(_observable__WEBPACK_IMPORTED_MODULE_4__[/* tabBar */ "a"].matchMedia, 'minWidth')) {
+ var mediaQueryList = window.matchMedia('(min-width: ' + _observable__WEBPACK_IMPORTED_MODULE_4__[/* tabBar */ "a"].matchMedia.minWidth + 'px)');
+ mediaQueryList.addListener(function (e) {
+ _this.tabBarMediaQuery = e.matches;
+ });
+ this.tabBarMediaQuery = mediaQueryList.matches;
+ }
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "68fb":
+/***/ (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__, "createMediaQueryObserver", function() { return createMediaQueryObserver; });
+/* harmony import */ var uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("62b5");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("db70");
+/* harmony import */ var uni_helpers_windows__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("1634");
+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 createMediaQueryObserverCallbacks = Object(uni_helpers_callbacks__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])('requestMediaQueryObserver');
+
+var ServiceMediaQueryObserver = /*#__PURE__*/function () {
+ function ServiceMediaQueryObserver(component, options) {
+ _classCallCheck(this, ServiceMediaQueryObserver);
+
+ this.pageId = component.$page && component.$page.id;
+ this.component = component._$id || component; // app-plus 平台传输_$id
+
+ this.options = options;
+ }
+
+ _createClass(ServiceMediaQueryObserver, [{
+ key: "observe",
+ value: function observe(options, callback) {
+ if (typeof callback !== 'function') {
+ return;
+ }
+
+ this.options = options;
+ this.reqId = createMediaQueryObserverCallbacks.push(callback);
+ UniServiceJSBridge.publishHandler('requestMediaQueryObserver', {
+ reqId: this.reqId,
+ component: this.component,
+ options: this.options
+ }, Object(uni_helpers_windows__WEBPACK_IMPORTED_MODULE_2__[/* checkInWindows */ "a"])(this.component) ? this.component : this.pageId);
+ }
+ }, {
+ key: "disconnect",
+ value: function disconnect() {
+ UniServiceJSBridge.publishHandler('destroyMediaQueryObserver', {
+ reqId: this.reqId
+ }, Object(uni_helpers_windows__WEBPACK_IMPORTED_MODULE_2__[/* checkInWindows */ "a"])(this.component) ? this.component : this.pageId);
+ }
+ }]);
+
+ return ServiceMediaQueryObserver;
+}();
+
+function createMediaQueryObserver(context, options) {
+ if (!context._isVue) {
+ options = context;
+ context = null;
+ }
+
+ if (context) {
+ return new ServiceMediaQueryObserver(context, options);
+ }
+
+ return new ServiceMediaQueryObserver(Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* getCurrentPageVm */ "b"])('createMediaQueryObserver'), options);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "6a91":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("d679");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "6adb":
+/***/ (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__, "chooseImage", function() { return chooseImage; });
+/* harmony import */ var uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("93af");
+/* harmony import */ var uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a6b0");
+/* harmony import */ var _create_input__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("d951");
+/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("8af1");
+
+
+
+
+var _UniServiceJSBridge = UniServiceJSBridge,
+ invoke = _UniServiceJSBridge.invokeCallbackHandler;
+var imageInput = null;
+function chooseImage(_ref, callbackId) {
+ var count = _ref.count,
+ sourceType = _ref.sourceType,
+ extension = _ref.extension;
+
+ // TODO handle sizeType 尝试通过 canvas 压缩
+ if (imageInput) {
+ document.body.removeChild(imageInput);
+ imageInput = null;
+ }
+
+ imageInput = Object(_create_input__WEBPACK_IMPORTED_MODULE_2__["default"])({
+ count: count,
+ sourceType: sourceType,
+ extension: extension,
+ type: 'image'
+ });
+ document.body.appendChild(imageInput);
+ imageInput.addEventListener('change', function (event) {
+ var tempFiles = [];
+ var fileCount = event.target.files.length;
+
+ var _loop = function _loop(i) {
+ var file = event.target.files[i];
+ var filePath = void 0;
+ Object.defineProperty(file, 'path', {
+ get: function get() {
+ filePath = filePath || Object(uni_platform_helpers_file__WEBPACK_IMPORTED_MODULE_0__[/* fileToUrl */ "b"])(file);
+ return filePath;
+ }
+ });
+ if (i < count) tempFiles.push(file);
+ };
+
+ for (var i = 0; i < fileCount; i++) {
+ _loop(i);
+ }
+
+ var res = {
+ errMsg: 'chooseImage:ok',
+
+ get tempFilePaths() {
+ return tempFiles.map(function (_ref2) {
+ var path = _ref2.path;
+ return path;
+ });
+ },
+
+ tempFiles: tempFiles
+ };
+ invoke(callbackId, res); // TODO 用户取消选择时,触发 fail,目前尚未找到合适的方法。
+ });
+ imageInput.click();
+
+ if (!uni_mixins__WEBPACK_IMPORTED_MODULE_3__[/* interact */ "d"].getStatus()) {
+ console.warn("".concat(Object(uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_1__[/* t */ "g"])('uni.chooseFile.notUserActivation')));
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "6bb9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarItem", function() { return setTabBarItem; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarStyle", function() { return setTabBarStyle; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBar", function() { return hideTabBar; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBar", function() { return showTabBar; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideTabBarRedDot", function() { return hideTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showTabBarRedDot", function() { return showTabBarRedDot; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeTabBarBadge", function() { return removeTabBarBadge; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setTabBarBadge", function() { return setTabBarBadge; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+var setTabBarItemProps = ['text', 'iconPath', 'iconfont', 'selectedIconPath', 'visible'];
+var setTabBarStyleProps = ['color', 'selectedColor', 'backgroundColor', 'borderStyle', 'midButton'];
+var setTabBarBadgeProps = ['badge', 'redDot'];
+var setTabBarIconfontStyles = ['text', 'selectedText', 'fontSize', 'color', 'selectedColor'];
+
+function setTabBar(type) {
+ var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var app = getApp();
+
+ if (app) {
+ var isTabBar = false;
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ if (pages[pages.length - 1].$page.meta.isTabBar) {
+ isTabBar = true;
+ }
+ } else if (app.$children[0].hasTabBar) {
+ isTabBar = true;
+ }
+
+ if (!isTabBar) {
+ return {
+ errMsg: "".concat(type, ":fail not TabBar page")
+ };
+ }
+
+ var index = args.index;
+ var tabBar = __uniConfig.tabBar;
+
+ if (index >= __uniConfig.tabBar.list.length) {
+ return {
+ errMsg: "".concat(type, ":fail tabbar item not found")
+ };
+ }
+
+ switch (type) {
+ case 'showTabBar':
+ app.$children[0].hideTabBar = false;
+ break;
+
+ case 'hideTabBar':
+ app.$children[0].hideTabBar = true;
+ break;
+
+ case 'setTabBarItem':
+ {
+ if (args.iconfont) {
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "q"])(tabBar.list[index].iconfont, setTabBarIconfontStyles, args.iconfont);
+ args.iconfont = tabBar.list[index].iconfont;
+ }
+
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "q"])(tabBar.list[index], setTabBarItemProps, args);
+ var pagePath = args.pagePath;
+
+ var route = pagePath && __uniRoutes.find(function (_ref) {
+ var path = _ref.path;
+ return path === pagePath;
+ });
+
+ if (route) {
+ var meta = route.meta;
+ meta.isTabBar = true;
+ meta.tabBarIndex = index;
+ meta.isQuit = true;
+ meta.isSet = true;
+ meta.id = index + 1;
+ var _tabBar = __uniConfig.tabBar;
+
+ if (_tabBar && _tabBar.list && _tabBar.list[index]) {
+ _tabBar.list[index].pagePath = pagePath.startsWith('/') ? pagePath.substring(1) : pagePath;
+ }
+ }
+
+ break;
+ }
+
+ case 'setTabBarStyle':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "q"])(tabBar, setTabBarStyleProps, args);
+ break;
+
+ case 'showTabBarRedDot':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "q"])(tabBar.list[index], setTabBarBadgeProps, {
+ badge: '',
+ redDot: true
+ });
+ break;
+
+ case 'setTabBarBadge':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "q"])(tabBar.list[index], setTabBarBadgeProps, {
+ badge: args.text,
+ redDot: true
+ });
+ break;
+
+ case 'hideTabBarRedDot':
+ case 'removeTabBarBadge':
+ Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* setProperties */ "q"])(tabBar.list[index], setTabBarBadgeProps, {
+ badge: '',
+ redDot: false
+ });
+ break;
+ }
+ }
+
+ return {};
+}
+
+function setTabBarItem(args) {
+ return setTabBar('setTabBarItem', args);
+}
+function setTabBarStyle(args) {
+ return setTabBar('setTabBarStyle', args);
+}
+function hideTabBar(args) {
+ return setTabBar('hideTabBar', args);
+}
+function showTabBar(args) {
+ return setTabBar('showTabBar', args);
+}
+function hideTabBarRedDot(args) {
+ return setTabBar('hideTabBarRedDot', args);
+}
+function showTabBarRedDot(args) {
+ return setTabBar('showTabBarRedDot', args);
+}
+function removeTabBarBadge(args) {
+ return setTabBar('removeTabBarBadge', args);
+}
+function setTabBarBadge(args) {
+ return setTabBar('setTabBarBadge', args);
+}
+
+/***/ }),
+
+/***/ "6bce":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("ab38");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "6bdf":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return requestComponentInfo; });
+/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("85b6");
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("f2b3");
+/* harmony import */ var uni_platform_helpers_get_window_offset__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("1800");
+/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("db8e");
+
+
+
+
+
+function getRootInfo(fields) {
+ var info = {};
+
+ if (fields.id) {
+ info.id = '';
+ }
+
+ if (fields.dataset) {
+ info.dataset = {};
+ }
+
+ if (fields.rect) {
+ info.left = 0;
+ info.right = 0;
+ info.top = 0;
+ info.bottom = 0;
+ }
+
+ if (fields.size) {
+ info.width = document.documentElement.clientWidth;
+ info.height = document.documentElement.clientHeight;
+ }
+
+ if (fields.scrollOffset) {
+ var documentElement = document.documentElement;
+ var body = document.body;
+ info.scrollLeft = documentElement.scrollLeft || body.scrollLeft || 0;
+ info.scrollTop = documentElement.scrollTop || body.scrollTop || 0;
+ info.scrollHeight = documentElement.scrollHeight || body.scrollHeight || 0;
+ info.scrollWidth = documentElement.scrollWidth || body.scrollWidth || 0;
+ }
+
+ return info;
+}
+
+function getNodeInfo(el, fields) {
+ var info = {};
+
+ var _getWindowOffset = Object(uni_platform_helpers_get_window_offset__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"])(),
+ top = _getWindowOffset.top;
+
+ if (fields.id) {
+ info.id = el.id;
+ }
+
+ if (fields.dataset) {
+ info.dataset = Object(uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__[/* getTargetDataset */ "b"])(el);
+ }
+
+ if (fields.rect || fields.size) {
+ var rect = el.getBoundingClientRect();
+
+ if (fields.rect) {
+ info.left = rect.left;
+ info.right = rect.right;
+ info.top = rect.top - top;
+ info.bottom = rect.bottom - top;
+ }
+
+ if (fields.size) {
+ info.width = rect.width;
+ info.height = rect.height;
+ }
+ }
+
+ if (Array.isArray(fields.properties)) {
+ var props = el.__vue__ && el.__vue__.$props;
+
+ if (props) {
+ fields.properties.forEach(function (prop) {
+ if (typeof prop === 'string') {
+ prop = Object(uni_shared__WEBPACK_IMPORTED_MODULE_1__[/* camelize */ "b"])(prop);
+
+ if (props[prop] != null) {
+ info[prop] = props[prop];
+ }
+ }
+ });
+ }
+ }
+
+ if (fields.scrollOffset) {
+ if (el.tagName === 'UNI-SCROLL-VIEW' && el.__vue__ && el.__vue__.getScrollPosition) {
+ Object.assign(info, el.__vue__.getScrollPosition());
+ } else {
+ info.scrollLeft = 0;
+ info.scrollTop = 0;
+ info.scrollHeight = 0;
+ info.scrollWidth = 0;
+ }
+ }
+
+ if (Array.isArray(fields.computedStyle)) {
+ var sytle = getComputedStyle(el);
+ fields.computedStyle.forEach(function (name) {
+ info[name] = sytle[name];
+ });
+ }
+
+ if (fields.context) {
+ if (el.__vue__ && el.__vue__._getContextInfo) {
+ info.context = el.__vue__._getContextInfo();
+ }
+ }
+
+ return info;
+}
+
+function getNodesInfo(pageVm, component, selector, single, fields) {
+ var $el = Object(_util__WEBPACK_IMPORTED_MODULE_3__[/* elementMatchesPolyfill */ "a"])(Object(_util__WEBPACK_IMPORTED_MODULE_3__[/* findElm */ "b"])(component, pageVm));
+
+ if (!$el || $el && $el.nodeType === 8) {
+ // Comment
+ return single ? null : [];
+ }
+
+ if (single) {
+ var node = $el.matches(selector) ? $el : $el.querySelector(selector);
+
+ if (node) {
+ return getNodeInfo(node, fields);
+ }
+
+ return null;
+ } else {
+ var infos = [];
+ var nodeList = $el.querySelectorAll(selector);
+
+ if (nodeList && nodeList.length) {
+ infos = [].map.call(nodeList, function (node) {
+ return getNodeInfo(node, fields);
+ });
+ }
+
+ if ($el.matches(selector)) {
+ infos.unshift(getNodeInfo($el, fields));
+ }
+
+ return infos;
+ }
+}
+
+function requestComponentInfo(_ref, pageId) {
+ var reqId = _ref.reqId,
+ reqs = _ref.reqs;
+ var pageVm;
+
+ if (pageId._isVue) {
+ pageVm = pageId;
+ } else {
+ var pages = getCurrentPages(); // 跨平台时,View 层也应该实现该方法,举例 App 上,View 层的 getCurrentPages 返回长度为1的当前页面数组
+
+ var page = pages.find(function (page) {
+ return page.$page.id === pageId;
+ });
+
+ if (!page) {
+ throw new Error("Not Found\uFF1APage[".concat(pageId, "]"));
+ }
+
+ pageVm = page.$vm;
+ }
+
+ var result = [];
+ reqs.forEach(function (_ref2) {
+ var component = _ref2.component,
+ selector = _ref2.selector,
+ single = _ref2.single,
+ fields = _ref2.fields;
+
+ if (component === 0) {
+ result.push(getRootInfo(fields));
+ } else {
+ result.push(getNodesInfo(pageVm, component, selector, single, fields));
+ }
+ });
+ UniViewJSBridge.publishHandler('onRequestComponentInfo', {
+ reqId: reqId,
+ res: result
+ });
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "6c11":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/view/components/web-view/index.vue?vue&type=template&id=f38cc1a8&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-web-view',_vm._g({ref:"webviewContainer",class:{'uni-webview--fullscreen':_vm.fullscreen}},_vm.$listeners),[_c('v-uni-resize-sensor',{ref:"sensor",on:{"resize":_vm._resize}})],1)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/web-view/index.vue?vue&type=template&id=f38cc1a8&
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/view/components/web-view/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+/* harmony default export */ var web_viewvue_type_script_lang_js_ = ({
+ name: 'WebView',
+ props: {
+ src: {
+ type: String,
+ default: ''
+ },
+ fullscreen: {
+ type: Boolean,
+ default: true
+ }
+ },
+ watch: {
+ src: function src(val, oldVal) {
+ this.iframe && (this.iframe.src = this.$getRealPath(this.src));
+ }
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ this.iframe = document.createElement('iframe');
+ Object.keys(this.$attrs).forEach(function (key) {
+ _this.iframe[key] = _this.$attrs[key];
+ });
+ this.iframe.src = this.$getRealPath(this.src);
+
+ if (this.fullscreen) {
+ document.body.appendChild(this.iframe);
+ } else {
+ this.$refs.webviewContainer.appendChild(this.iframe);
+ }
+
+ this._resize();
+ },
+ activated: function activated() {
+ this.fullscreen && (this.iframe.style.display = 'block');
+ },
+ deactivated: function deactivated() {
+ this.fullscreen && (this.iframe.style.display = 'none');
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.fullscreen && document.body.removeChild(this.iframe);
+ },
+ methods: {
+ _resize: function _resize() {
+ if (this.fullscreen) {
+ var _this$$el$getBounding = this.$el.getBoundingClientRect(),
+ top = _this$$el$getBounding.top,
+ left = _this$$el$getBounding.left,
+ width = _this$$el$getBounding.width,
+ height = _this$$el$getBounding.height;
+
+ this.iframe.style.position = 'absolute';
+ this.iframe.style.display = 'block';
+ this.iframe.style.border = 0;
+ this.iframe.style.top = top + 'px';
+ this.iframe.style.left = left + 'px';
+ this.iframe.style.width = width + 'px';
+ this.iframe.style.height = height + 'px';
+ } else {
+ this.iframe.style.width = this.$refs.webviewContainer.style.width || '300px';
+ this.iframe.style.height = this.$refs.webviewContainer.style.height || '150px';
+ }
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/web-view/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_web_viewvue_type_script_lang_js_ = (web_viewvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/view/components/web-view/index.vue?vue&type=style&index=0&lang=css&
+var web_viewvue_type_style_index_0_lang_css_ = __webpack_require__("50db");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/web-view/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_web_viewvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var web_view = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "6d36":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "6e03":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TEMP_PATH", function() { return TEMP_PATH; });
+var TEMP_PATH = '';
+
+/***/ }),
+
+/***/ "70bb":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "openLocation", function() { return openLocation; });
+var openLocation = {
+ latitude: {
+ type: Number,
+ required: true
+ },
+ longitude: {
+ type: Number,
+ required: true
+ },
+ scale: {
+ type: Number,
+ validator: function validator(value, params) {
+ value = Math.floor(value);
+ params.scale = value >= 5 && value <= 18 ? value : 18;
+ },
+ default: 18
+ },
+ name: {
+ type: String
+ },
+ address: {
+ type: String
+ }
+};
+
+/***/ }),
+
+/***/ "70f4":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/label/index.vue?vue&type=template&id=5e5e35f0&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-label',_vm._g({class:{'uni-label-pointer':_vm.pointer},on:{"click":_vm._onClick}},_vm.$listeners),[_vm._t("default")],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/label/index.vue?vue&type=template&id=5e5e35f0&
+
+// EXTERNAL MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/label/index.vue?vue&type=script&lang=js&
+var labelvue_type_script_lang_js_ = __webpack_require__("897e");
+
+// CONCATENATED MODULE: ./src/core/view/components/label/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_labelvue_type_script_lang_js_ = (labelvue_type_script_lang_js_["a" /* default */]);
+// EXTERNAL MODULE: ./src/core/view/components/label/index.vue?vue&type=style&index=0&lang=css&
+var labelvue_type_style_index_0_lang_css_ = __webpack_require__("6730");
+
+// 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/label/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_labelvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var label = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "7107":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return loadFontFace; });
+function loadFontFace(_ref) {
+ var options = _ref.options,
+ callbackId = _ref.callbackId;
+ var family = options.family,
+ source = options.source,
+ _options$desc = options.desc,
+ desc = _options$desc === void 0 ? {} : _options$desc;
+ var fonts = document.fonts;
+
+ if (fonts) {
+ var fontFace = new FontFace(family, source, desc);
+ fontFace.load().then(function () {
+ fonts.add(fontFace);
+ UniViewJSBridge.publishHandler('onLoadFontFaceCallback', {
+ callbackId: callbackId,
+ data: {
+ errMsg: 'loadFontFace:ok'
+ }
+ });
+ }).catch(function (error) {
+ UniViewJSBridge.publishHandler('onLoadFontFaceCallback', {
+ callbackId: callbackId,
+ data: {
+ errMsg: "loadFontFace:fail ".concat(error)
+ }
+ });
+ });
+ } else {
+ var style = document.createElement('style');
+ style.innerText = "@font-face{font-family:\"".concat(family, "\";src:").concat(source, ";font-style:").concat(desc.style, ";font-weight:").concat(desc.weight, ";font-stretch:").concat(desc.stretch, ";unicode-range:").concat(desc.unicodeRange, ";font-variant:").concat(desc.variant, ";font-feature-settings:").concat(desc.featureSettings, ";}");
+ document.head.appendChild(style);
+ UniViewJSBridge.publishHandler('onLoadFontFaceCallback', {
+ callbackId: callbackId,
+ data: {
+ errMsg: 'loadFontFace:ok'
+ }
+ });
+ }
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("501c")))
+
+/***/ }),
+
+/***/ "72b3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Spring; });
+function o(e, t, n) {
+ return e > t - n && e < t + n;
+}
+
+function a(e, t) {
+ return o(e, 0, t);
+}
+
+function Spring(e, t, n) {
+ this._m = e;
+ this._k = t;
+ this._c = n;
+ this._solution = null;
+ this._endPosition = 0;
+ this._startTime = 0;
+}
+
+Spring.prototype._solve = function (e, t) {
+ var n = this._c;
+ var i = this._m;
+ var r = this._k;
+ var o = n * n - 4 * i * r;
+
+ if (o === 0) {
+ var _a = -n / (2 * i);
+
+ var _s = e;
+
+ var _l = t / (_a * e);
+
+ return {
+ x: function x(e) {
+ return (_s + _l * e) * Math.pow(Math.E, _a * e);
+ },
+ dx: function dx(e) {
+ var t = Math.pow(Math.E, _a * e);
+ return _a * (_s + _l * e) * t + _l * t;
+ }
+ };
+ }
+
+ if (o > 0) {
+ var c = (-n - Math.sqrt(o)) / (2 * i);
+ var u = (-n + Math.sqrt(o)) / (2 * i);
+
+ var _l2 = (t - c * e) / (u - c);
+
+ var _s2 = e - _l2;
+
+ return {
+ x: function x(e) {
+ var t;
+ var n;
+
+ if (e === this._t) {
+ t = this._powER1T;
+ n = this._powER2T;
+ }
+
+ this._t = e;
+
+ if (!t) {
+ t = this._powER1T = Math.pow(Math.E, c * e);
+ }
+
+ if (!n) {
+ n = this._powER2T = Math.pow(Math.E, u * e);
+ }
+
+ return _s2 * t + _l2 * n;
+ },
+ dx: function dx(e) {
+ var t;
+ var n;
+
+ if (e === this._t) {
+ t = this._powER1T;
+ n = this._powER2T;
+ }
+
+ this._t = e;
+
+ if (!t) {
+ t = this._powER1T = Math.pow(Math.E, c * e);
+ }
+
+ if (!n) {
+ n = this._powER2T = Math.pow(Math.E, u * e);
+ }
+
+ return _s2 * c * t + _l2 * u * n;
+ }
+ };
+ }
+
+ var d = Math.sqrt(4 * i * r - n * n) / (2 * i);
+ var a = -n / 2 * i;
+ var s = e;
+ var l = (t - a * e) / d;
+ return {
+ x: function x(e) {
+ return Math.pow(Math.E, a * e) * (s * Math.cos(d * e) + l * Math.sin(d * e));
+ },
+ dx: function dx(e) {
+ var t = Math.pow(Math.E, a * e);
+ var n = Math.cos(d * e);
+ var i = Math.sin(d * e);
+ return t * (l * d * n - s * d * i) + a * t * (l * i + s * n);
+ }
+ };
+};
+
+Spring.prototype.x = function (e) {
+ if (e === undefined) {
+ e = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ return this._solution ? this._endPosition + this._solution.x(e) : 0;
+};
+
+Spring.prototype.dx = function (e) {
+ if (e === undefined) {
+ e = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ return this._solution ? this._solution.dx(e) : 0;
+};
+
+Spring.prototype.setEnd = function (e, t, n) {
+ if (!n) {
+ n = new Date().getTime();
+ }
+
+ if (e !== this._endPosition || !a(t, 0.4)) {
+ t = t || 0;
+ var i = this._endPosition;
+
+ if (this._solution) {
+ if (a(t, 0.4)) {
+ t = this._solution.dx((n - this._startTime) / 1e3);
+ }
+
+ i = this._solution.x((n - this._startTime) / 1e3);
+
+ if (a(t, 0.4)) {
+ t = 0;
+ }
+
+ if (a(i, 0.4)) {
+ i = 0;
+ }
+
+ i += this._endPosition;
+ }
+
+ if (!(this._solution && a(i - e, 0.4) && a(t, 0.4))) {
+ this._endPosition = e;
+ this._solution = this._solve(i - this._endPosition, t);
+ this._startTime = n;
+ }
+ }
+};
+
+Spring.prototype.snap = function (e) {
+ this._startTime = new Date().getTime();
+ this._endPosition = e;
+ this._solution = {
+ x: function x() {
+ return 0;
+ },
+ dx: function dx() {
+ return 0;
+ }
+ };
+};
+
+Spring.prototype.done = function (e) {
+ if (!e) {
+ e = new Date().getTime();
+ }
+
+ return o(this.x(), this._endPosition, 0.4) && a(this.dx(), 0.4);
+};
+
+Spring.prototype.reconfigure = function (e, t, n) {
+ this._m = e;
+ this._k = t;
+ this._c = n;
+
+ if (!this.done()) {
+ this._solution = this._solve(this.x() - this._endPosition, this.dx());
+ this._startTime = new Date().getTime();
+ }
+};
+
+Spring.prototype.springConstant = function () {
+ return this._k;
+};
+
+Spring.prototype.damping = function () {
+ return this._c;
+};
+
+Spring.prototype.configuration = function () {
+ function e(e, t) {
+ e.reconfigure(1, t, e.damping());
+ }
+
+ function t(e, t) {
+ e.reconfigure(1, e.springConstant(), t);
+ }
+
+ return [{
+ label: 'Spring Constant',
+ read: this.springConstant.bind(this),
+ write: e.bind(this, this),
+ min: 100,
+ max: 1e3
+ }, {
+ label: 'Damping',
+ read: this.damping.bind(this),
+ write: t.bind(this, this),
+ min: 1,
+ max: 500
+ }];
+};
+
+/***/ }),
+
+/***/ "7651":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return onThemeChange; });
+/* unused harmony export offThemeChange */
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return parseTheme; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var _service_api_base_get_browser_info__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("9c37");
+/* harmony import */ var uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("65a8");
+
+
+
+
+function onThemeChange() {
+ var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
+
+ if (__uniConfig.darkmode) {
+ UniServiceJSBridge.on('api.' + uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* ON_THEME_CHANGE */ "b"], callback);
+ }
+}
+function offThemeChange() {
+ var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};
+ UniServiceJSBridge.off('api.' + uni_helpers_constants__WEBPACK_IMPORTED_MODULE_2__[/* ON_THEME_CHANGE */ "b"], callback);
+}
+function parseTheme(pageStyle) {
+ var parsedStyle = {};
+
+ if (__uniConfig.darkmode) {
+ var theme = Object(_service_api_base_get_browser_info__WEBPACK_IMPORTED_MODULE_1__["getTheme"])();
+ parsedStyle = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* normallizeStyles */ "o"])(pageStyle, __uniConfig.themeConfig, theme);
+ }
+
+ return __uniConfig.darkmode ? parsedStyle : pageStyle;
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "7653":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "7691":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "77e0":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge, console) {/* harmony import */ var uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a6b0");
+
+/* harmony default export */ __webpack_exports__["default"] = ({
+ data: function data() {
+ return {
+ showToast: {
+ visible: false
+ }
+ };
+ },
+ created: function created() {
+ var _this = this;
+
+ var showType = '';
+
+ var createOnShow = function createOnShow(type) {
+ return function (args) {
+ showType = type;
+ setTimeout(function () {
+ // 延迟一下 show 可解决窗口打开前调用 showToast 在 onHidePopup 之后触发
+ _this.showToast = args;
+ }, 10);
+ };
+ };
+
+ UniServiceJSBridge.on('onShowToast', createOnShow('onShowToast'));
+ UniServiceJSBridge.on('onShowLoading', createOnShow('onShowLoading'));
+
+ var createOnHide = function createOnHide(type) {
+ return function () {
+ if (!showType) {
+ return;
+ }
+
+ var warnMsg = '';
+
+ if (type === 'onHideToast' && showType !== 'onShowToast') {
+ warnMsg = Object(uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__[/* t */ "g"])('uni.showToast.unpaired');
+ } else if (type === 'onHideLoading' && showType !== 'onShowLoading') {
+ warnMsg = Object(uni_core_helpers_i18n__WEBPACK_IMPORTED_MODULE_0__[/* t */ "g"])('uni.showLoading.unpaired');
+ }
+
+ if (warnMsg) {
+ return console.warn(warnMsg);
+ }
+
+ showType = '';
+ setTimeout(function () {
+ // 与 show 对应延迟10ms,避免快速调用 show,hide 导致无法关闭
+ _this.showToast.visible = false;
+ }, 10);
+ };
+ };
+
+ UniServiceJSBridge.on('onHidePopup', createOnHide('onHidePopup'));
+ UniServiceJSBridge.on('onHideToast', createOnHide('onHideToast'));
+ UniServiceJSBridge.on('onHideLoading', createOnHide('onHideLoading'));
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1"), __webpack_require__("3ad9")["default"]))
+
+/***/ }),
+
+/***/ "781d":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "7822":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "786d":
+/***/ (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__, "setNavigationBarColor", function() { return setNavigationBarColor; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showNavigationBarLoading", function() { return showNavigationBarLoading; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hideNavigationBarLoading", function() { return hideNavigationBarLoading; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setNavigationBarTitle", function() { return setNavigationBarTitle; });
+/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("35d0");
+
+
+function setNavigationBar(type) {
+ var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ var page = Object(_util_js__WEBPACK_IMPORTED_MODULE_0__["getPageHolder"])(args.__page__);
+
+ if (page) {
+ switch (type) {
+ case 'setNavigationBarColor':
+ {
+ var frontColor = args.frontColor,
+ backgroundColor = args.backgroundColor,
+ animation = args.animation;
+ var duration = animation.duration,
+ timingFunc = animation.timingFunc;
+
+ if (frontColor) {
+ page.navigationBar.textColor = frontColor === '#000000' ? 'black' : 'white';
+ }
+
+ if (backgroundColor) {
+ page.navigationBar.backgroundColor = backgroundColor;
+ }
+
+ UniServiceJSBridge.emit('onNavigationBarChange', {
+ textColor: frontColor === '#000000' ? '#000' : '#fff',
+ backgroundColor: page.navigationBar.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':
+ {
+ var title = args.title;
+ page.navigationBar.titleText = title;
+
+ if (Object(_util_js__WEBPACK_IMPORTED_MODULE_0__["isCurrentPage"])(page)) {
+ // 仅当前页面
+ document.title = title;
+ }
+
+ UniServiceJSBridge.emit('onNavigationBarChange', {
+ titleText: title
+ });
+ }
+ break;
+ }
+ }
+
+ return {};
+}
+
+function setNavigationBarColor(args) {
+ return setNavigationBar('setNavigationBarColor', args);
+}
+function showNavigationBarLoading(args) {
+ return setNavigationBar('showNavigationBarLoading', args);
+}
+function hideNavigationBarLoading(args) {
+ return setNavigationBar('hideNavigationBarLoading', args);
+}
+function setNavigationBarTitle(args) {
+ return setNavigationBar('setNavigationBarTitle', args);
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "7958":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/view/components/video/index.vue?vue&type=template&id=7b775166&
+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}},_vm.$listeners),[_c('div',{ref:"container",staticClass:"uni-video-container",on:{"touchstart":_vm.touchstart,"touchend":_vm.touchend,"touchmove":_vm.touchmove,"fullscreenchange":function($event){$event.stopPropagation();return _vm.onFullscreenChange($event)},"webkitfullscreenchange":function($event){$event.stopPropagation();return _vm.onFullscreenChange($event,true)}}},[_c('video',_vm._b({ref:"video",staticClass:"uni-video-video",style:({objectFit:_vm.objectFit}),attrs:{"loop":_vm.loop,"src":_vm.srcSync,"poster":_vm.poster,"autoplay":_vm.autoplay,"webkit-playsinline":"","playsinline":""},domProps:{"muted":_vm.muted},on:{"click":_vm.triggerControls,"durationchange":_vm.onDurationChange,"loadedmetadata":_vm.onLoadedMetadata,"progress":_vm.onProgress,"waiting":_vm.onWaiting,"error":_vm.onVideoError,"play":_vm.onPlay,"pause":_vm.onPause,"ended":_vm.onEnded,"timeupdate":_vm.onTimeUpdate,"webkitbeginfullscreen":function($event){return _vm.emitFullscreenChange(true)},"x5videoenterfullscreen":function($event){return _vm.emitFullscreenChange(true)},"webkitendfullscreen":function($event){return _vm.emitFullscreenChange(false)},"x5videoexitfullscreen":function($event){return _vm.emitFullscreenChange(false)}}},'video',_vm.$attrs,false)),_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',{directives:[{name:"show",rawName:"v-show",value:(_vm.showProgress),expression:"showProgress"}],staticClass:"uni-video-current-time"},[_vm._v(" "+_vm._s(_vm._f("time")(_vm.currentTime))+" ")]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showProgress),expression:"showProgress"}],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+'%'})}),_c('div',{ref:"ball",staticClass:"uni-video-ball",style:({left:_vm.progress+'%'})},[_c('div',{staticClass:"uni-video-inner"})])])]),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.showProgress),expression:"showProgress"}],staticClass:"uni-video-duration"},[_vm._v(" "+_vm._s(_vm._f("time")((_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._s(_vm.$$t("uni.video.danmu"))+" ")]):_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(!_vm.fullscreen)}}})]),_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.centerPlayBtnShow)?_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("time")((_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(" "+_vm._s(_vm.$$t("uni.video.volume"))+" ")]),_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("time")(_vm.currentTimeNew))+" / "+_vm._s(_vm._f("time")(_vm.durationTime))+" ")])]),_c('div',{staticClass:"uni-video-slots"},[_vm._t("default")],2)])])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/view/components/video/index.vue?vue&type=template&id=7b775166&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// EXTERNAL MODULE: ./src/shared/index.js + 8 modules
+var shared = __webpack_require__("f2b3");
+
+// EXTERNAL MODULE: ./src/core/helpers/i18n/index.js
+var i18n = __webpack_require__("a6b0");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/view/components/video/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+
+var passiveOptions = shared["s" /* 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: {
+ time: function time(val) {
+ val = val > 0 && val < Infinity ? val : 0;
+ var h = Math.floor(val / 3600);
+ var m = Math.floor(val % 3600 / 60);
+ var s = Math.floor(val % 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: [i18n["c" /* i18nMixin */], mixins["g" /* subscriber */], mixins["d" /* interact */]],
+ 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: ''
+ },
+ 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
+ },
+ showCenterPlayBtn: {
+ type: [Boolean, String],
+ default: true
+ }
+ },
+ data: function data() {
+ return {
+ start: false,
+ playing: false,
+ currentTime: 0,
+ durationTime: 0,
+ progress: 0,
+ touching: false,
+ enableDanmuSync: Boolean(this.enableDanmu),
+ controlsVisible: true,
+ fullscreen: false,
+ controlsTouching: false,
+ touchStartOrigin: {
+ x: 0,
+ y: 0
+ },
+ gestureType: GestureType.NONE,
+ currentTimeOld: 0,
+ currentTimeNew: 0,
+ volumeOld: null,
+ volumeNew: null,
+ buffered: 0,
+ isSafari: /^Apple/.test(navigator.vendor)
+ };
+ },
+ computed: {
+ centerPlayBtnShow: function centerPlayBtnShow() {
+ return this.showCenterPlayBtn && !this.start;
+ },
+ controlsShow: function controlsShow() {
+ return !this.centerPlayBtnShow && 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();
+ }
+ },
+ srcSync: function srcSync(val) {
+ this.playing = false;
+ this.currentTime = 0;
+ },
+ currentTime: function currentTime() {
+ this.updateProgress();
+ },
+ duration: function duration() {
+ this.updateProgress();
+ },
+ buffered: function buffered(_buffered) {
+ if (_buffered !== 0) {
+ this.$trigger('progress', {}, {
+ buffered: _buffered
+ });
+ }
+ }
+ },
+ 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) - (b.time || 0);
+ });
+ },
+ mounted: function mounted() {
+ var _this = this;
+
+ var self = this;
+ var originX;
+ var originY;
+ var moveOnce = true;
+ var originProgress;
+ var ball = this.$refs.ball;
+ ball.addEventListener('touchstart', function (event) {
+ _this.controlsTouching = true;
+ var toucher = event.targetTouches[0];
+ originX = toucher.pageX;
+ originY = toucher.pageY;
+ originProgress = _this.progress;
+ moveOnce = true;
+ _this.touching = true;
+ ball.addEventListener('touchmove', touchmove, passiveOptions);
+ });
+
+ function touchmove(event) {
+ var toucher = 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);
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.triggerFullscreen(false);
+ clearTimeout(this.otherData.hideTiming);
+ },
+ methods: {
+ _handleSubscribe: function _handleSubscribe(_ref) {
+ var type = _ref.type,
+ _ref$data = _ref.data,
+ data = _ref$data === void 0 ? {} : _ref$data;
+ var methods = ['play', 'pause', 'seek', 'sendDanmu', 'playbackRate', 'requestFullScreen', 'exitFullScreen'];
+ var options;
+
+ switch (type) {
+ case 'seek':
+ options = data.position;
+ break;
+
+ case 'sendDanmu':
+ options = data;
+ break;
+
+ case 'playbackRate':
+ options = data.rate;
+ break;
+ }
+
+ if (methods.indexOf(type) >= 0) {
+ this[type](options);
+ }
+ },
+ 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 $progress = this.$refs.progress;
+ var element = event.target;
+ var x = event.offsetX;
+
+ 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
+ });
+ },
+ playbackRate: function playbackRate(rate) {
+ this.$refs.video.playbackRate = rate;
+ },
+ triggerFullscreen: function triggerFullscreen(val) {
+ var container = this.$refs.container;
+ var video = this.$refs.video;
+ var mockFullScreen;
+
+ if (val) {
+ if ((document.fullscreenEnabled || document.webkitFullscreenEnabled) && (!this.isSafari || this.userInteract)) {
+ container[document.fullscreenEnabled ? 'requestFullscreen' : 'webkitRequestFullscreen']();
+ } else if (video.webkitEnterFullScreen) {
+ video.webkitEnterFullScreen();
+ } else {
+ mockFullScreen = true;
+ container.remove();
+ container.classList.add('uni-video-type-fullscreen');
+ document.body.appendChild(container);
+ }
+ } else {
+ if (document.fullscreenEnabled || document.webkitFullscreenEnabled) {
+ if (document.fullscreenElement) {
+ document.exitFullscreen();
+ } else if (document.webkitFullscreenElement) {
+ document.webkitExitFullscreen();
+ }
+ } else if (video.webkitExitFullScreen) {
+ video.webkitExitFullScreen();
+ } else {
+ mockFullScreen = true;
+ container.remove();
+ container.classList.remove('uni-video-type-fullscreen');
+ this.$el.appendChild(container);
+ }
+ }
+
+ if (mockFullScreen) {
+ this.emitFullscreenChange(val);
+ }
+ },
+ onFullscreenChange: function onFullscreenChange($event, webkit) {
+ if (webkit && document.fullscreenEnabled) {
+ return;
+ }
+
+ this.emitFullscreenChange(!!(document.fullscreenElement || document.webkitFullscreenElement));
+ },
+ emitFullscreenChange: function emitFullscreenChange(val) {
+ this.fullscreen = val;
+ this.$trigger('fullscreenchange', {}, {
+ fullScreen: val,
+ direction: 'vertical'
+ });
+ },
+ requestFullScreen: function requestFullScreen() {
+ this.triggerFullscreen(true);
+ },
+ exitFullScreen: function exitFullScreen() {
+ this.triggerFullscreen(false);
+ },
+ onDurationChange: function onDurationChange(_ref2) {
+ var target = _ref2.target;
+ this.durationTime = target.duration;
+ },
+ onLoadedMetadata: function onLoadedMetadata($event) {
+ var initialTime = Number(this.initialTime) || 0;
+ var video = $event.target;
+
+ if (initialTime > 0) {
+ video.currentTime = initialTime;
+ }
+
+ this.$trigger('loadedmetadata', $event, {
+ width: video.videoWidth,
+ height: video.videoHeight,
+ duration: video.duration
+ });
+ this.onProgress($event);
+ },
+ onProgress: function onProgress($event) {
+ var video = $event.target;
+ var buffered = video.buffered;
+
+ if (buffered.length) {
+ this.buffered = buffered.end(buffered.length - 1) / video.duration * 100;
+ }
+ },
+ onWaiting: function onWaiting($event) {
+ this.$trigger('waiting', $event, {});
+ },
+ onVideoError: function onVideoError($event) {
+ this.playing = false;
+ this.$trigger('error', $event, {});
+ },
+ onPlay: function onPlay($event) {
+ this.start = true;
+ this.playing = true;
+ this.$trigger('play', $event, {});
+ },
+ onPause: function onPause($event) {
+ this.playing = false;
+ this.$trigger('pause', $event, {});
+ },
+ onEnded: function onEnded($event) {
+ this.playing = false;
+ this.$trigger('ended', $event, {});
+ },
+ onTimeUpdate: function onTimeUpdate($event) {
+ var video = $event.target;
+ var otherData = this.otherData;
+ var currentTime = this.currentTime = video.currentTime;
+ 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 (this.playing && this.enableDanmuSync) {
+ this.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;
+ this.$trigger('timeupdate', $event, {
+ currentTime: currentTime,
+ duration: video.duration
+ });
+ },
+ triggerControls: function triggerControls() {
+ this.controlsVisible = !this.controlsVisible;
+ },
+ touchstart: function touchstart(event) {
+ var toucher = 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 = 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 _this2 = this;
+
+ this.otherData.hideTiming = setTimeout(function () {
+ _this2.controlsVisible = false;
+ }, 3000);
+ },
+ autoHideEnd: function autoHideEnd() {
+ var otherData = this.otherData;
+
+ if (otherData.hideTiming) {
+ clearTimeout(otherData.hideTiming);
+ otherData.hideTiming = null;
+ }
+ },
+ updateProgress: function updateProgress() {
+ if (!this.touching) {
+ this.progress = this.currentTime / this.durationTime * 100;
+ }
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/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/mp-weibo/view/components/video/index.vue?vue&type=style&index=0&lang=css&
+var videovue_type_style_index_0_lang_css_ = __webpack_require__("98a7");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/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);
+
+/***/ }),
+
+/***/ "7981":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/mp-weibo/components/page/pageHead.vue?vue&type=template&id=b8e40a04&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-page-head',{attrs:{"uni-page-head-type":_vm.type}})}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/components/page/pageHead.vue?vue&type=template&id=b8e40a04&
+
+// EXTERNAL MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/mp-weibo/components/page/pageHead.vue?vue&type=script&lang=js&
+var pageHeadvue_type_script_lang_js_ = __webpack_require__("7d99");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/components/page/pageHead.vue?vue&type=script&lang=js&
+ /* harmony default export */ var page_pageHeadvue_type_script_lang_js_ = (pageHeadvue_type_script_lang_js_["a" /* default */]);
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/components/page/pageHead.vue?vue&type=style&index=0&lang=css&
+var pageHeadvue_type_style_index_0_lang_css_ = __webpack_require__("0035");
+
+// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js
+var componentNormalizer = __webpack_require__("0c7c");
+
+// CONCATENATED MODULE: ./src/platforms/mp-weibo/components/page/pageHead.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ page_pageHeadvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var pageHead = __webpack_exports__["a"] = (component.exports);
+
+/***/ }),
+
+/***/ "7bb3":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/index.vue?vue&type=template&id=7122d874&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-checkbox',_vm._g({attrs:{"disabled":_vm.disabled},on:{"click":_vm._onClick}},_vm.$listeners),[_c('div',{staticClass:"uni-checkbox-wrapper"},[_c('div',{staticClass:"uni-checkbox-input",class:{ 'uni-checkbox-input-checked' : _vm.checkboxChecked, 'uni-checkbox-input-disabled' : _vm.disabled },style:({color:_vm.color})}),_vm._t("default")],2)])}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/checkbox/index.vue?vue&type=template&id=7122d874&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/index.js
+var mixins = __webpack_require__("8af1");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+/* harmony default export */ var checkboxvue_type_script_lang_js_ = ({
+ name: 'Checkbox',
+ mixins: [mixins["a" /* emitter */], mixins["f" /* listeners */]],
+ props: {
+ checked: {
+ type: [Boolean, String],
+ default: false
+ },
+ id: {
+ type: String,
+ default: ''
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ color: {
+ type: String,
+ default: '#007aff'
+ },
+ value: {
+ type: String,
+ default: ''
+ }
+ },
+ data: function data() {
+ return {
+ checkboxChecked: this.checked,
+ checkboxValue: this.value
+ };
+ },
+ watch: {
+ checked: function checked(val) {
+ this.checkboxChecked = val;
+ },
+ value: function value(val) {
+ this.checkboxValue = val;
+ }
+ },
+ listeners: {
+ 'label-click': '_onClick',
+ '@label-click': '_onClick'
+ },
+ created: function created() {
+ this.$dispatch('CheckboxGroup', 'uni-checkbox-group-update', {
+ type: 'add',
+ vm: this
+ });
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'add',
+ vm: this
+ });
+ },
+ beforeDestroy: function beforeDestroy() {
+ this.$dispatch('CheckboxGroup', 'uni-checkbox-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ this.$dispatch('Form', 'uni-form-group-update', {
+ type: 'remove',
+ vm: this
+ });
+ },
+ methods: {
+ _onClick: function _onClick($event) {
+ if (this.disabled) {
+ return;
+ }
+
+ this.checkboxChecked = !this.checkboxChecked;
+ this.$dispatch('CheckboxGroup', 'uni-checkbox-change', $event);
+ },
+ _resetFormData: function _resetFormData() {
+ this.checkboxChecked = false;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/checkbox/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_checkboxvue_type_script_lang_js_ = (checkboxvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/checkbox/index.vue?vue&type=style&index=0&lang=css&
+var checkboxvue_type_style_index_0_lang_css_ = __webpack_require__("f53a");
+
+// 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/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_checkboxvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var components_checkbox = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "7c2b":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("e804");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "7d99":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(UniServiceJSBridge) {/* harmony import */ var uni_platform_helpers_append_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("fcb6");
+/* harmony import */ var uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("8ef5");
+/* harmony import */ var _transparent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("44fb");
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+//
+
+
+
+var FONTS = {
+ forward: '',
+ back: '',
+ share: '',
+ favorite: '',
+ home: '',
+ menu: '',
+ close: ''
+};
+/* harmony default export */ __webpack_exports__["a"] = ({
+ name: 'PageHead',
+ mixins: [_transparent__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]],
+ props: {
+ backButton: {
+ type: Boolean,
+ default: true
+ },
+ backgroundColor: {
+ type: String,
+ default: function _default() {
+ return this.type === 'transparent' ? '#000' : '#F8F8F8';
+ }
+ },
+ textColor: {
+ type: String,
+ default: '#fff'
+ },
+ titleText: {
+ type: String,
+ default: ''
+ },
+ duration: {
+ type: String,
+ default: '0'
+ },
+ timingFunc: {
+ type: String,
+ default: ''
+ },
+ loading: {
+ type: Boolean,
+ default: false
+ },
+ titleSize: {
+ type: String,
+ default: '16px'
+ },
+ type: {
+ default: 'default',
+ validator: function validator(value) {
+ return ['default', 'transparent', 'float'].indexOf(value) !== -1;
+ }
+ },
+ coverage: {
+ type: String,
+ default: '132px'
+ },
+ buttons: {
+ type: Array,
+ default: function _default() {
+ return [];
+ }
+ },
+ searchInput: {
+ type: [Object, Boolean],
+ default: function _default() {
+ return false;
+ }
+ },
+ titleImage: {
+ type: String,
+ default: ''
+ },
+ titlePenetrate: {
+ type: Boolean,
+ default: false
+ },
+ shadow: {
+ type: Object,
+ default: function _default() {
+ return {};
+ }
+ }
+ },
+ data: function data() {
+ return {
+ focus: false,
+ text: '',
+ composing: false,
+ showPlaceholder: false
+ };
+ },
+ computed: {
+ btns: function btns() {
+ var _this = this;
+
+ var btns = [];
+ var fonts = {};
+
+ if (this.buttons.length) {
+ this.buttons.forEach(function (button) {
+ var btn = Object.assign({}, button);
+
+ if (btn.fontSrc && !btn.fontFamily) {
+ var fontSrc = btn.fontSrc = Object(uni_platform_helpers_get_real_path__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"])(btn.fontSrc);
+ var fontFamily;
+
+ if (fontSrc in fonts) {
+ fontFamily = fonts[fontSrc];
+ } else {
+ fontFamily = "font".concat(Date.now());
+ fonts[fontSrc] = fontFamily;
+ var cssText = "@font-face{font-family: \"".concat(fontFamily, "\";src: url(\"").concat(fontSrc, "\") format(\"truetype\")}");
+ Object(uni_platform_helpers_append_css__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"])(cssText, 'uni-btn-font-' + fontFamily);
+ }
+
+ btn.fontFamily = fontFamily;
+ }
+
+ btn.color = _this.type === 'transparent' ? '#fff' : btn.color || _this.textColor;
+ var fontSize = btn.fontSize || (_this.type === 'transparent' || /\\u/.test(btn.text) ? '22px' : '27px');
+
+ if (/\d$/.test(fontSize)) {
+ fontSize += 'px';
+ }
+
+ btn.fontSize = fontSize;
+ btn.fontWeight = btn.fontWeight || 'normal';
+ btns.push(btn);
+ });
+ }
+
+ return btns;
+ },
+ headClass: function headClass() {
+ var shadowColorType = this.shadow.colorType;
+ var data = {
+ 'uni-page-head-transparent': this.type === 'transparent',
+ 'uni-page-head-titlePenetrate': this.titlePenetrate,
+ 'uni-page-head-shadow': shadowColorType
+ };
+
+ if (shadowColorType) {
+ data["uni-page-head-shadow-".concat(shadowColorType)] = shadowColorType;
+ }
+
+ return data;
+ }
+ },
+ mounted: function mounted() {
+ var _this2 = this;
+
+ if (this.searchInput) {
+ var input = this.$refs.input;
+ input.$watch('composing', function (val) {
+ _this2.composing = val;
+ });
+ input.$watch('valueSync', function (val) {
+ _this2.showPlaceholder = !!val;
+ });
+
+ if (this.searchInput.disabled) {
+ input.$el.addEventListener('click', function () {
+ UniServiceJSBridge.emit('onNavigationBarSearchInputClicked', '');
+ });
+ } else {
+ input.$refs.input.addEventListener('keyup', function (event) {
+ if (event.key.toUpperCase() === 'ENTER') {
+ UniServiceJSBridge.emit('onNavigationBarSearchInputConfirmed', {
+ text: _this2.text
+ });
+ }
+ });
+ input.$refs.input.addEventListener('focus', function () {
+ UniServiceJSBridge.emit('onNavigationBarSearchInputFocusChanged', {
+ focus: true
+ });
+ });
+ input.$refs.input.addEventListener('blur', function () {
+ UniServiceJSBridge.emit('onNavigationBarSearchInputFocusChanged', {
+ focus: false
+ });
+ });
+ }
+ }
+ },
+ methods: {
+ _back: function _back() {
+ if (getCurrentPages().length === 1) {
+ uni.reLaunch({
+ url: '/'
+ });
+ } else {
+ uni.navigateBack({
+ from: 'backbutton'
+ });
+ }
+ },
+ _onBtnClick: function _onBtnClick(index) {
+ UniServiceJSBridge.emit('onNavigationBarButtonTap', Object.assign({}, this.btns[index], {
+ index: index
+ }));
+ },
+ _formatBtnFontText: function _formatBtnFontText(btn) {
+ if (btn.fontSrc && btn.fontFamily) {
+ return btn.text.replace("\\u", '');
+ } else if (FONTS[btn.type]) {
+ return FONTS[btn.type];
+ }
+
+ return btn.text || '';
+ },
+ _formatBtnStyle: function _formatBtnStyle(btn) {
+ var style = {
+ color: btn.color,
+ fontSize: btn.fontSize,
+ fontWeight: btn.fontWeight
+ };
+
+ if (btn.fontFamily) {
+ style.fontFamily = btn.fontFamily;
+ }
+
+ return style;
+ },
+ _focus: function _focus() {
+ this.focus = true;
+ },
+ _blur: function _blur() {
+ this.focus = false;
+ },
+ _input: function _input(text) {
+ UniServiceJSBridge.emit('onNavigationBarSearchInputChanged', {
+ text: text
+ });
+ },
+ _clearInput: function _clearInput() {
+ this.text = '';
+
+ this._input(this.text);
+ }
+ }
+});
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "7de1":
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+
+/***/ }),
+
+/***/ "7e6a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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__("5bf9");
+/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_dist_cjs_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_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);
+
+/***/ }),
+
+/***/ "80e5":
+/***/ (function(module) {
+
+module.exports = JSON.parse("{\"uni.app.quit\":\"Pulse otra vez para salir\",\"uni.async.error\":\"Se agotó el tiempo de conexión, haga clic en la pantalla para volver a intentarlo.\",\"uni.showActionSheet.cancel\":\"Cancelar\",\"uni.showToast.unpaired\":\"Tenga en cuenta que showToast debe estar emparejado con hideToast\",\"uni.showLoading.unpaired\":\"Tenga en cuenta que showLoading debe estar emparejado con hideLoading\",\"uni.showModal.cancel\":\"Cancelar\",\"uni.showModal.confirm\":\"OK\",\"uni.chooseImage.cancel\":\"Cancelar\",\"uni.chooseImage.sourceType.album\":\"Álbum\",\"uni.chooseImage.sourceType.camera\":\"Cámara\",\"uni.chooseVideo.cancel\":\"Cancelar\",\"uni.chooseVideo.sourceType.album\":\"Álbum\",\"uni.chooseVideo.sourceType.camera\":\"Cámara\",\"uni.chooseFile.notUserActivation\":\"El cuadro de diálogo del selector de archivos solo se puede mostrar con la activación del usuario\",\"uni.previewImage.cancel\":\"Cancelar\",\"uni.previewImage.button.save\":\"Guardar imagen\",\"uni.previewImage.save.success\":\"Guardado exitosamente\",\"uni.previewImage.save.fail\":\"Error al guardar\",\"uni.setClipboardData.success\":\"Contenido copiado\",\"uni.scanCode.title\":\"Código de escaneo\",\"uni.scanCode.album\":\"Álbum\",\"uni.scanCode.fail\":\"Échec de la reconnaissance\",\"uni.scanCode.flash.on\":\"Toque para encender la luz\",\"uni.scanCode.flash.off\":\"Toque para apagar la luz\",\"uni.startSoterAuthentication.authContent\":\"Reconocimiento de huellas dactilares\",\"uni.startSoterAuthentication.waitingContent\":\"Irreconocible\",\"uni.picker.done\":\"OK\",\"uni.picker.cancel\":\"Cancelar\",\"uni.video.danmu\":\"Danmu\",\"uni.video.volume\":\"Volumen\",\"uni.button.feedback.title\":\"realimentación\",\"uni.button.feedback.send\":\"enviar\",\"uni.chooseLocation.search\":\"Encontrar\",\"uni.chooseLocation.cancel\":\"Cancelar\"}");
+
+/***/ }),
+
+/***/ "811a":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "connectSocket", function() { return connectSocket; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sendSocketMessage", function() { return sendSocketMessage; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closeSocket", function() { return closeSocket; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSocketOpen", function() { return onSocketOpen; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSocketError", function() { return onSocketError; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSocketMessage", function() { return onSocketMessage; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onSocketClose", function() { return onSocketClose; });
+/* harmony import */ var uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a118");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("db70");
+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 SocketTask = /*#__PURE__*/function () {
+ function SocketTask(socketTaskId) {
+ _classCallCheck(this, SocketTask);
+
+ this.id = socketTaskId;
+ this._callbacks = {
+ open: [],
+ close: [],
+ error: [],
+ message: []
+ };
+ this.CLOSED = 3;
+ this.CLOSING = 2;
+ this.CONNECTING = 0;
+ this.OPEN = 1;
+ this.readyState = this.CLOSED;
+ }
+
+ _createClass(SocketTask, [{
+ key: "send",
+ value: function send(args) {
+ if (this.readyState !== this.OPEN) {
+ this._callback(args, 'sendSocketMessage:fail WebSocket is not connected');
+ }
+
+ var _invokeMethod = Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('operateSocketTask', Object.assign({}, args, {
+ operationType: 'send',
+ socketTaskId: this.id
+ })),
+ errMsg = _invokeMethod.errMsg;
+
+ this._callback(args, errMsg.replace('operateSocketTask', 'sendSocketMessage'));
+ }
+ }, {
+ key: "close",
+ value: function close(args) {
+ this.readyState = this.CLOSING;
+
+ var _invokeMethod2 = Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('operateSocketTask', Object.assign({}, args, {
+ operationType: 'close',
+ socketTaskId: this.id
+ })),
+ errMsg = _invokeMethod2.errMsg;
+
+ this._callback(args, errMsg.replace('operateSocketTask', 'closeSocket'));
+ }
+ }, {
+ key: "onOpen",
+ value: function onOpen(callback) {
+ this._callbacks.open.push(callback);
+ }
+ }, {
+ key: "onClose",
+ value: function onClose(callback) {
+ this._callbacks.close.push(callback);
+ }
+ }, {
+ key: "onError",
+ value: function onError(callback) {
+ this._callbacks.error.push(callback);
+ }
+ }, {
+ key: "onMessage",
+ value: function onMessage(callback) {
+ this._callbacks.message.push(callback);
+ }
+ }, {
+ key: "_callback",
+ value: function _callback() {
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
+ success = _ref.success,
+ fail = _ref.fail,
+ complete = _ref.complete;
+
+ var errMsg = arguments.length > 1 ? arguments[1] : undefined;
+ var data = {
+ errMsg: errMsg
+ };
+
+ if (/:ok$/.test(errMsg)) {
+ if (typeof success === 'function') {
+ success(data);
+ }
+ } else {
+ if (typeof fail === 'function') {
+ fail(data);
+ }
+ }
+
+ if (typeof complete === 'function') {
+ complete(data);
+ }
+ }
+ }]);
+
+ return SocketTask;
+}();
+
+var socketTasks = Object.create(null);
+var socketTasksArray = [];
+var callbacks = Object.create(null);
+Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* onMethod */ "d"])('onSocketTaskStateChange', function (_ref2) {
+ var socketTaskId = _ref2.socketTaskId,
+ state = _ref2.state,
+ data = _ref2.data,
+ code = _ref2.code,
+ reason = _ref2.reason,
+ errMsg = _ref2.errMsg;
+ var socketTask = socketTasks[socketTaskId];
+
+ if (!socketTask) {
+ return;
+ }
+
+ var callbackRes = state === 'message' ? {
+ data: data
+ } : state === 'close' ? {
+ code: code,
+ reason: reason
+ } : {};
+
+ if (state === 'open') {
+ socketTask.readyState = socketTask.OPEN;
+ }
+
+ if (socketTask === socketTasksArray[0] && callbacks[state]) {
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbacks[state], callbackRes);
+ }
+
+ if (state === 'error' || state === 'close') {
+ socketTask.readyState = socketTask.CLOSED;
+ delete socketTasks[socketTaskId];
+ var index = socketTasksArray.indexOf(socketTask);
+
+ if (index >= 0) {
+ socketTasksArray.splice(index, 1);
+ }
+ }
+
+ socketTask._callbacks[state].forEach(function (callback) {
+ if (typeof callback === 'function') {
+ callback(callbackRes);
+ }
+ });
+});
+function connectSocket(args, callbackId) {
+ var _invokeMethod3 = Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('createSocketTask', args),
+ socketTaskId = _invokeMethod3.socketTaskId;
+
+ var task = new SocketTask(socketTaskId);
+ socketTasks[socketTaskId] = task;
+ socketTasksArray.push(task);
+ setTimeout(function () {
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'connectSocket:ok'
+ });
+ }, 0);
+ return task;
+}
+function sendSocketMessage(args, callbackId) {
+ var socketTask = socketTasksArray[0];
+
+ if (!socketTask || socketTask.readyState !== socketTask.OPEN) {
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'sendSocketMessage:fail WebSocket is not connected'
+ });
+ return;
+ }
+
+ return Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('operateSocketTask', Object.assign({}, args, {
+ operationType: 'send',
+ socketTaskId: socketTask.id
+ }));
+}
+function closeSocket(args, callbackId) {
+ var socketTask = socketTasksArray[0];
+
+ if (!socketTask) {
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_0__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'closeSocket:fail WebSocket is not connected'
+ });
+ return;
+ }
+
+ socketTask.readyState = socketTask.CLOSING;
+ return Object(_platform__WEBPACK_IMPORTED_MODULE_1__[/* invokeMethod */ "c"])('operateSocketTask', Object.assign({}, args, {
+ operationType: 'close',
+ socketTaskId: socketTask.id
+ }));
+}
+function onSocketOpen(callbackId) {
+ callbacks.open = callbackId;
+}
+function onSocketError(callbackId) {
+ callbacks.error = callbackId;
+}
+function onSocketMessage(callbackId) {
+ callbacks.message = callbackId;
+}
+function onSocketClose(callbackId) {
+ callbacks.close = callbackId;
+}
+
+/***/ }),
+
+/***/ "82b9":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* 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__, "drawCanvas", function() { return drawCanvas; });
+function getInt(method) {
+ return function (value, params) {
+ if (value) {
+ params[method] = Math.round(value);
+ }
+ };
+}
+
+var canvasGetImageData = {
+ canvasId: {
+ type: String,
+ required: true
+ },
+ x: {
+ type: Number,
+ required: true,
+ validator: getInt('x')
+ },
+ y: {
+ type: Number,
+ required: true,
+ validator: getInt('y')
+ },
+ width: {
+ type: Number,
+ required: true,
+ validator: getInt('width')
+ },
+ height: {
+ type: Number,
+ required: true,
+ validator: getInt('height')
+ }
+};
+var canvasPutImageData = {
+ canvasId: {
+ type: String,
+ required: true
+ },
+ data: {
+ type: Uint8ClampedArray,
+ required: true
+ },
+ x: {
+ type: Number,
+ required: true,
+ validator: getInt('x')
+ },
+ y: {
+ type: Number,
+ required: true,
+ validator: getInt('y')
+ },
+ width: {
+ type: Number,
+ required: true,
+ validator: getInt('width')
+ },
+ height: {
+ type: Number,
+ validator: getInt('height')
+ }
+};
+var fileTypes = {
+ PNG: 'png',
+ JPG: 'jpg',
+ JPEG: 'jpg'
+};
+var canvasToTempFilePath = {
+ x: {
+ type: Number,
+ default: 0,
+ validator: getInt('x')
+ },
+ y: {
+ type: Number,
+ default: 0,
+ validator: getInt('y')
+ },
+ width: {
+ type: Number,
+ validator: getInt('width')
+ },
+ height: {
+ type: Number,
+ validator: getInt('height')
+ },
+ destWidth: {
+ type: Number,
+ validator: getInt('destWidth')
+ },
+ destHeight: {
+ type: Number,
+ validator: getInt('destHeight')
+ },
+ canvasId: {
+ type: String,
+ required: true
+ },
+ fileType: {
+ type: String,
+ validator: function validator(value, params) {
+ value = (value || '').toUpperCase();
+ params.fileType = value in fileTypes ? fileTypes[value] : fileTypes.PNG;
+ }
+ },
+ quality: {
+ type: Number,
+ validator: function validator(value, params) {
+ params.quality = value > 0 && value < 1 ? value : 1;
+ }
+ }
+};
+var drawCanvas = {
+ canvasId: {
+ type: String,
+ required: true
+ },
+ actions: {
+ type: Array,
+ required: true
+ },
+ reserve: {
+ type: Boolean,
+ default: false
+ }
+};
+
+/***/ }),
+
+/***/ "82c2":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return request; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+/* harmony import */ var uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("a118");
+/* harmony import */ var _platform__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("db70");
+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 requestTasks = Object.create(null);
+
+function formatResponse(res, args) {
+ if (typeof res.data === 'string' && res.data.charCodeAt(0) === 65279) {
+ res.data = res.data.substr(1);
+ }
+
+ res.statusCode = parseInt(res.statusCode, 10);
+
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(res.header)) {
+ res.header = Object.keys(res.header).reduce(function (ret, key) {
+ var value = res.header[key];
+
+ if (Array.isArray(value)) {
+ ret[key] = value.join(',');
+ } else if (typeof value === 'string') {
+ ret[key] = value;
+ }
+
+ return ret;
+ }, {});
+ }
+
+ if (args.dataType && args.dataType.toLowerCase() === 'json') {
+ try {
+ res.data = JSON.parse(res.data);
+ } catch (e) {}
+ }
+
+ return res;
+}
+
+Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* onMethod */ "d"])('onRequestTaskStateChange', function (_ref) {
+ var requestTaskId = _ref.requestTaskId,
+ state = _ref.state,
+ data = _ref.data,
+ statusCode = _ref.statusCode,
+ header = _ref.header,
+ errMsg = _ref.errMsg,
+ cookies = _ref.cookies;
+
+ var _ref2 = requestTasks[requestTaskId] || {},
+ args = _ref2.args,
+ callbackId = _ref2.callbackId;
+
+ if (!callbackId) {
+ return;
+ }
+
+ delete requestTasks[requestTaskId];
+
+ switch (state) {
+ case 'success':
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_1__[/* invoke */ "a"])(callbackId, formatResponse({
+ data: data,
+ statusCode: statusCode,
+ header: header,
+ errMsg: 'request:ok',
+ cookies: cookies
+ }, args));
+ break;
+
+ case 'fail':
+ Object(uni_core_service_bridge__WEBPACK_IMPORTED_MODULE_1__[/* invoke */ "a"])(callbackId, {
+ errMsg: 'request:fail ' + errMsg
+ });
+ break;
+ }
+});
+
+var RequestTask = /*#__PURE__*/function () {
+ function RequestTask(id) {
+ _classCallCheck(this, RequestTask);
+
+ this.id = id;
+ }
+
+ _createClass(RequestTask, [{
+ key: "abort",
+ value: function abort() {
+ Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* invokeMethod */ "c"])('operateRequestTask', {
+ requestTaskId: this.id,
+ operationType: 'abort'
+ });
+ }
+ }, {
+ key: "offHeadersReceived",
+ value: function offHeadersReceived() {}
+ }, {
+ key: "onHeadersReceived",
+ value: function onHeadersReceived() {}
+ }]);
+
+ return RequestTask;
+}();
+
+function request(args, callbackId) {
+ var contentType;
+
+ for (var name in args.header) {
+ if (name.toLowerCase() === 'content-type') {
+ contentType = args.header[name];
+ break;
+ }
+ }
+
+ if (args.method !== 'GET' && contentType.indexOf('application/json') === 0 && Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(args.data)) {
+ args.data = JSON.stringify(args.data);
+ }
+
+ var _invokeMethod = Object(_platform__WEBPACK_IMPORTED_MODULE_2__[/* invokeMethod */ "c"])('createRequestTask', args),
+ requestTaskId = _invokeMethod.requestTaskId;
+
+ requestTasks[requestTaskId] = {
+ args: args,
+ callbackId: callbackId
+ };
+ return new RequestTask(requestTaskId);
+}
+
+/***/ }),
+
+/***/ "8390":
+/***/ (function(module, exports) {
+
+/*
+ * base64-arraybuffer
+ * https://github.com/niklasvh/base64-arraybuffer
+ *
+ * Copyright (c) 2012 Niklas von Hertzen
+ * Licensed under the MIT license.
+ */
+(function(){
+ "use strict";
+
+ var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+ // Use a lookup table to find the index.
+ var lookup = new Uint8Array(256);
+ for (var i = 0; i < chars.length; i++) {
+ lookup[chars.charCodeAt(i)] = i;
+ }
+
+ exports.encode = function(arraybuffer) {
+ var bytes = new Uint8Array(arraybuffer),
+ i, len = bytes.length, base64 = "";
+
+ for (i = 0; i < len; i+=3) {
+ base64 += chars[bytes[i] >> 2];
+ base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
+ base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
+ base64 += chars[bytes[i + 2] & 63];
+ }
+
+ if ((len % 3) === 2) {
+ base64 = base64.substring(0, base64.length - 1) + "=";
+ } else if (len % 3 === 1) {
+ base64 = base64.substring(0, base64.length - 2) + "==";
+ }
+
+ return base64;
+ };
+
+ exports.decode = function(base64) {
+ var bufferLength = base64.length * 0.75,
+ len = base64.length, i, p = 0,
+ encoded1, encoded2, encoded3, encoded4;
+
+ if (base64[base64.length - 1] === "=") {
+ bufferLength--;
+ if (base64[base64.length - 2] === "=") {
+ bufferLength--;
+ }
+ }
+
+ var arraybuffer = new ArrayBuffer(bufferLength),
+ bytes = new Uint8Array(arraybuffer);
+
+ for (i = 0; i < len; i+=4) {
+ encoded1 = lookup[base64.charCodeAt(i)];
+ encoded2 = lookup[base64.charCodeAt(i+1)];
+ encoded3 = lookup[base64.charCodeAt(i+2)];
+ encoded4 = lookup[base64.charCodeAt(i+3)];
+
+ bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
+ bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
+ bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
+ }
+
+ return arraybuffer;
+ };
+})();
+
+
+/***/ }),
+
+/***/ "83a6":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony default export */ __webpack_exports__["a"] = ({
+ data: function data() {
+ return {
+ hovering: false
+ };
+ },
+ props: {
+ hoverClass: {
+ type: String,
+ default: 'none'
+ },
+ hoverStopPropagation: {
+ type: Boolean,
+ default: false
+ },
+ hoverStartTime: {
+ type: [Number, String],
+ default: 50
+ },
+ hoverStayTime: {
+ type: [Number, String],
+ default: 400
+ }
+ },
+ methods: {
+ _hoverTouchStart: function _hoverTouchStart(evt) {
+ if (evt.touches.length > 1) {
+ return;
+ }
+
+ this._handleHoverStart(evt);
+ },
+ _hoverMousedown: function _hoverMousedown(evt) {
+ if (this._hoverTouch) {
+ return;
+ }
+
+ this._handleHoverStart(evt);
+
+ window.addEventListener('mouseup', this._hoverMouseup);
+ },
+ _handleHoverStart: function _handleHoverStart(evt) {
+ var _this = this;
+
+ // TODO detect scrolling
+ if (evt._hoverPropagationStopped) {
+ return;
+ }
+
+ if (!this.hoverClass || this.hoverClass === 'none' || this.disabled) {
+ return;
+ }
+
+ if (this.hoverStopPropagation) {
+ evt._hoverPropagationStopped = true;
+ }
+
+ this._hoverTouch = true;
+ this._hoverStartTimer = setTimeout(function () {
+ _this.hovering = true;
+
+ if (!_this._hoverTouch) {
+ // 防止在hoverStartTime时间内触发了 touchend 或 touchcancel
+ _this._hoverReset();
+ }
+ }, this.hoverStartTime);
+ },
+ _hoverMouseup: function _hoverMouseup() {
+ if (!this._hoverTouch) {
+ return;
+ }
+
+ this._handleHoverEnd();
+
+ window.removeEventListener('mouseup', this._hoverMouseup);
+ },
+ _hoverTouchEnd: function _hoverTouchEnd() {
+ this._handleHoverEnd();
+ },
+ _handleHoverEnd: function _handleHoverEnd() {
+ this._hoverTouch = false;
+
+ if (this.hovering) {
+ this._hoverReset();
+ }
+ },
+ _hoverReset: function _hoverReset() {
+ var _this2 = this;
+
+ requestAnimationFrame(function () {
+ clearTimeout(_this2._hoverStayTimer);
+ _this2._hoverStayTimer = setTimeout(function () {
+ _this2.hovering = false;
+ }, _this2.hoverStayTime);
+ });
+ },
+ _hoverTouchCancel: function _hoverTouchCancel() {
+ this._hoverTouch = false;
+ this.hovering = false;
+ clearTimeout(this._hoverStartTimer);
+ }
+ }
+});
+
+/***/ }),
+
+/***/ "84aa":
+/***/ (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'
+ };
+ }
+}
+
+/***/ }),
+
+/***/ "84e0":
+/***/ (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__, "pageScrollTo", function() { return pageScrollTo; });
+function pageScrollTo(args) {
+ var pages = getCurrentPages();
+
+ if (pages.length) {
+ UniServiceJSBridge.publishHandler('pageScrollTo', args, pages[pages.length - 1].$page.id);
+ }
+
+ return {};
+}
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("0dd1")))
+
+/***/ }),
+
+/***/ "8542":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addInterceptor; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return removeInterceptor; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return wrapperReturnValue; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return invokeApi; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return promiseInterceptor; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; 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); }
+
+
+var HOOKS = ['invoke', 'success', 'fail', 'complete', 'returnValue'];
+var globalInterceptors = {};
+var scopedInterceptors = {};
+
+function mergeHook(parentVal, childVal) {
+ var res = childVal ? parentVal ? parentVal.concat(childVal) : Array.isArray(childVal) ? childVal : [childVal] : parentVal;
+ return res ? dedupeHooks(res) : res;
+}
+
+function dedupeHooks(hooks) {
+ var res = [];
+
+ for (var i = 0; i < hooks.length; i++) {
+ if (res.indexOf(hooks[i]) === -1) {
+ res.push(hooks[i]);
+ }
+ }
+
+ return res;
+}
+
+function removeHook(hooks, hook) {
+ var index = hooks.indexOf(hook);
+
+ if (index !== -1) {
+ hooks.splice(index, 1);
+ }
+}
+
+function mergeInterceptorHook(interceptor, option) {
+ Object.keys(option).forEach(function (hook) {
+ if (HOOKS.indexOf(hook) !== -1 && Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(option[hook])) {
+ interceptor[hook] = mergeHook(interceptor[hook], option[hook]);
+ }
+ });
+}
+
+function removeInterceptorHook(interceptor, option) {
+ if (!interceptor || !option) {
+ return;
+ }
+
+ Object.keys(option).forEach(function (hook) {
+ if (HOOKS.indexOf(hook) !== -1 && Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(option[hook])) {
+ removeHook(interceptor[hook], option[hook]);
+ }
+ });
+}
+
+function addInterceptor(method, option) {
+ if (typeof method === 'string' && Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(option)) {
+ mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);
+ } else if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(method)) {
+ mergeInterceptorHook(globalInterceptors, method);
+ }
+}
+function removeInterceptor(method, option) {
+ if (typeof method === 'string') {
+ if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(option)) {
+ removeInterceptorHook(scopedInterceptors[method], option);
+ } else {
+ delete scopedInterceptors[method];
+ }
+ } else if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isPlainObject */ "l"])(method)) {
+ removeInterceptorHook(globalInterceptors, method);
+ }
+}
+
+function wrapperHook(hook, params) {
+ return function (data) {
+ return hook(data, params) || data;
+ };
+}
+
+function isPromise(obj) {
+ return !!obj && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
+}
+
+function queue(hooks, data, params) {
+ var promise = false;
+
+ for (var i = 0; i < hooks.length; i++) {
+ var hook = hooks[i];
+
+ if (promise) {
+ promise = Promise.resolve(wrapperHook(hook, params));
+ } else {
+ var res = hook(data, params);
+
+ if (isPromise(res)) {
+ promise = Promise.resolve(res);
+ }
+
+ if (res === false) {
+ return {
+ then: function then() {}
+ };
+ }
+ }
+ }
+
+ return promise || {
+ then: function then(callback) {
+ return callback(data);
+ }
+ };
+}
+
+function wrapperOptions(interceptor) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ ['success', 'fail', 'complete'].forEach(function (name) {
+ if (Array.isArray(interceptor[name])) {
+ var oldCallback = options[name];
+
+ options[name] = function callbackInterceptor(res) {
+ queue(interceptor[name], res, options).then(function (res) {
+ /* eslint-disable no-mixed-operators */
+ return Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* isFn */ "k"])(oldCallback) && oldCallback(res) || res;
+ });
+ };
+ }
+ });
+ return options;
+}
+
+function wrapperReturnValue(method, returnValue) {
+ var returnValueHooks = [];
+
+ if (Array.isArray(globalInterceptors.returnValue)) {
+ returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(globalInterceptors.returnValue));
+ }
+
+ var interceptor = scopedInterceptors[method];
+
+ if (interceptor && Array.isArray(interceptor.returnValue)) {
+ returnValueHooks.push.apply(returnValueHooks, _toConsumableArray(interceptor.returnValue));
+ }
+
+ returnValueHooks.forEach(function (hook) {
+ returnValue = hook(returnValue) || returnValue;
+ });
+ return returnValue;
+}
+
+function getApiInterceptorHooks(method) {
+ var interceptor = Object.create(null);
+ Object.keys(globalInterceptors).forEach(function (hook) {
+ if (hook !== 'returnValue') {
+ interceptor[hook] = globalInterceptors[hook].slice();
+ }
+ });
+ var scopedInterceptor = scopedInterceptors[method];
+
+ if (scopedInterceptor) {
+ Object.keys(scopedInterceptor).forEach(function (hook) {
+ if (hook !== 'returnValue') {
+ interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);
+ }
+ });
+ }
+
+ return interceptor;
+}
+
+function invokeApi(method, api, options) {
+ for (var _len = arguments.length, params = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
+ params[_key - 3] = arguments[_key];
+ }
+
+ var interceptor = getApiInterceptorHooks(method);
+
+ if (interceptor && Object.keys(interceptor).length) {
+ if (Array.isArray(interceptor.invoke)) {
+ var res = queue(interceptor.invoke, options);
+ return res.then(function (options) {
+ // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor
+ return api.apply(void 0, [wrapperOptions(getApiInterceptorHooks(method), options)].concat(params));
+ });
+ } else {
+ return api.apply(void 0, [wrapperOptions(interceptor, options)].concat(params));
+ }
+ }
+
+ return api.apply(void 0, [options].concat(params));
+}
+var promiseInterceptor = {
+ returnValue: function returnValue(res) {
+ if (!isPromise(res)) {
+ return res;
+ }
+
+ return new Promise(function (resolve, reject) {
+ res.then(function (res) {
+ if (res[0]) {
+ reject(res[0]);
+ } else {
+ resolve(res[1]);
+ }
+ });
+ });
+ }
+};
+
+/***/ }),
+
+/***/ "85b6":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isPage; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return hasLifecycleHook; });
+/* unused harmony export normalizeDataset */
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getTargetDataset; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return upx2px; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return findExistsPageIndex; });
+/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f2b3");
+
+var components = ['SystemAsyncLoading', 'SystemAsyncError'];
+function isPage(vm) {
+ if (vm.$parent && vm.$parent.$options.name === 'PageBody') {
+ if (components.indexOf(vm.$options.name) !== -1) {
+ return false;
+ }
+
+ return true;
+ }
+
+ return false;
+}
+function hasLifecycleHook() {
+ var vueOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ var hook = arguments.length > 1 ? arguments[1] : undefined;
+ return Array.isArray(vueOptions[hook]) && vueOptions[hook].length;
+}
+function normalizeDataset() {
+ var dataset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+ // ios8.x,9.x Object.assign({},dataset) 始终返回 {}
+ // http://ask.dcloud.net.cn/question/70246
+ var result = JSON.parse(JSON.stringify(dataset));
+
+ if (true) {
+ var keys = Object.keys(result);
+ var len = keys.length;
+
+ if (len) {
+ // remove data-v-
+ for (var i = 0; i < len; i++) {
+ var key = keys[i];
+ var _len = key.length;
+
+ if (key.substr(0, 1) === 'v' && (_len === 9 || _len === 10)) {
+ delete result[key];
+ }
+ }
+ }
+ }
+
+ return result;
+}
+function getTargetDataset(target) {
+ var dataset = {};
+ var vm = target.__vue__;
+
+ function updateDataset(vm, force) {
+ var $attrs = vm.$attrs;
+
+ for (var key in $attrs) {
+ if (key.startsWith('data-')) {
+ var newKey = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* camelize */ "b"])(key.substr(5).toLowerCase());
+ var value = $attrs[key];
+ dataset[newKey] = force ? value : dataset[newKey] || value;
+ }
+ }
+ }
+
+ if (vm) {
+ var $child = vm;
+
+ while ($child && $child.$el === target) {
+ updateDataset($child);
+ $child = $child.$children[0];
+ }
+
+ var $parent = vm.$parent;
+
+ while ($parent && $parent.$el === target) {
+ updateDataset($parent, true);
+ $parent = $parent.$parent;
+ }
+ } else {
+ dataset = Object.assign({}, target.dataset, target.__uniDataset);
+ }
+
+ return normalizeDataset(dataset);
+}
+function upx2px(str) {
+ str = str + '';
+
+ if (str.indexOf('upx') !== -1) {
+ // upx转换
+ return uni.upx2px(parseInt(str) || 0);
+ }
+
+ return parseInt(str) || 0;
+}
+function findExistsPageIndex(url) {
+ var pages = getCurrentPages();
+ var len = pages.length;
+
+ while (len--) {
+ var page = pages[len];
+
+ if (page.$page && page.$page.fullPath === url) {
+ return len;
+ }
+ }
+
+ return -1;
+}
+
+/***/ }),
+
+/***/ "8793":
+/***/ (function(module, exports, __webpack_require__) {
+
+var map = {
+ "./action-sheet.js": "626d",
+ "./index.js": "f1ea",
+ "./modal.js": "ee4f",
+ "./popup.js": "4ccd",
+ "./preview-image.js": "1b3d",
+ "./toast.js": "77e0",
+ "./transition.js": "5a56"
+};
+
+
+function webpackContext(req) {
+ var id = webpackContextResolve(req);
+ return __webpack_require__(id);
+}
+function webpackContextResolve(req) {
+ if(!__webpack_require__.o(map, req)) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+ }
+ return map[req];
+}
+webpackContext.keys = function webpackContextKeys() {
+ return Object.keys(map);
+};
+webpackContext.resolve = webpackContextResolve;
+module.exports = webpackContext;
+webpackContext.id = "8793";
+
+/***/ }),
+
+/***/ "8842":
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+// ESM COMPAT FLAG
+__webpack_require__.r(__webpack_exports__);
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"7b08b69e-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./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/movable-view/index.vue?vue&type=template&id=4349eedc&
+var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('uni-movable-view',_vm._g({},_vm.$listeners),[_c('v-uni-resize-sensor',{on:{"resize":_vm.setParent}}),_vm._t("default")],2)}
+var staticRenderFns = []
+
+
+// CONCATENATED MODULE: ./src/core/view/components/movable-view/index.vue?vue&type=template&id=4349eedc&
+
+// EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js
+var touchtrack = __webpack_require__("ba15");
+
+// CONCATENATED MODULE: ./src/core/view/components/movable-view/utils.js
+function e(e, t, n) {
+ return e > t - n && e < t + n;
+}
+
+function t(t, n) {
+ return e(t, 0, n);
+}
+
+function Decline() {}
+
+Decline.prototype.x = function (e) {
+ return Math.sqrt(e);
+};
+
+function Friction(e, t) {
+ this._m = e;
+ this._f = 1e3 * t;
+ this._startTime = 0;
+ this._v = 0;
+}
+
+Friction.prototype.setV = function (x, y) {
+ var n = Math.pow(Math.pow(x, 2) + Math.pow(y, 2), 0.5);
+ this._x_v = x;
+ this._y_v = y;
+ this._x_a = -this._f * this._x_v / n;
+ this._y_a = -this._f * this._y_v / n;
+ this._t = Math.abs(x / this._x_a) || Math.abs(y / this._y_a);
+ this._lastDt = null;
+ this._startTime = new Date().getTime();
+};
+
+Friction.prototype.setS = function (x, y) {
+ this._x_s = x;
+ this._y_s = y;
+};
+
+Friction.prototype.s = function (t) {
+ if (undefined === t) {
+ t = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ if (t > this._t) {
+ t = this._t;
+ this._lastDt = t;
+ }
+
+ var x = this._x_v * t + 0.5 * this._x_a * Math.pow(t, 2) + this._x_s;
+
+ var y = this._y_v * t + 0.5 * this._y_a * Math.pow(t, 2) + this._y_s;
+
+ if (this._x_a > 0 && x < this._endPositionX || this._x_a < 0 && x > this._endPositionX) {
+ x = this._endPositionX;
+ }
+
+ if (this._y_a > 0 && y < this._endPositionY || this._y_a < 0 && y > this._endPositionY) {
+ y = this._endPositionY;
+ }
+
+ return {
+ x: x,
+ y: y
+ };
+};
+
+Friction.prototype.ds = function (t) {
+ if (undefined === t) {
+ t = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ if (t > this._t) {
+ t = this._t;
+ }
+
+ return {
+ dx: this._x_v + this._x_a * t,
+ dy: this._y_v + this._y_a * t
+ };
+};
+
+Friction.prototype.delta = function () {
+ return {
+ x: -1.5 * Math.pow(this._x_v, 2) / this._x_a || 0,
+ y: -1.5 * Math.pow(this._y_v, 2) / this._y_a || 0
+ };
+};
+
+Friction.prototype.dt = function () {
+ return -this._x_v / this._x_a;
+};
+
+Friction.prototype.done = function () {
+ var t = e(this.s().x, this._endPositionX) || e(this.s().y, this._endPositionY) || this._lastDt === this._t;
+
+ this._lastDt = null;
+ return t;
+};
+
+Friction.prototype.setEnd = function (x, y) {
+ this._endPositionX = x;
+ this._endPositionY = y;
+};
+
+Friction.prototype.reconfigure = function (m, f) {
+ this._m = m;
+ this._f = 1e3 * f;
+};
+
+function Spring(m, k, c) {
+ this._m = m;
+ this._k = k;
+ this._c = c;
+ this._solution = null;
+ this._endPosition = 0;
+ this._startTime = 0;
+}
+
+Spring.prototype._solve = function (e, t) {
+ var n = this._c;
+ var i = this._m;
+ var r = this._k;
+ var o = n * n - 4 * i * r;
+
+ if (o === 0) {
+ var a = -n / (2 * i);
+ var s = e;
+ var l = t / (a * e);
+ return {
+ x: function x(e) {
+ return (s + l * e) * Math.pow(Math.E, a * e);
+ },
+ dx: function dx(e) {
+ var t = Math.pow(Math.E, a * e);
+ return a * (s + l * e) * t + l * t;
+ }
+ };
+ }
+
+ if (o > 0) {
+ var c = (-n - Math.sqrt(o)) / (2 * i);
+ var u = (-n + Math.sqrt(o)) / (2 * i);
+ var d = (t - c * e) / (u - c);
+ var h = e - d;
+ return {
+ x: function x(e) {
+ var t;
+ var n;
+
+ if (e === this._t) {
+ t = this._powER1T;
+ n = this._powER2T;
+ }
+
+ this._t = e;
+
+ if (!t) {
+ t = this._powER1T = Math.pow(Math.E, c * e);
+ }
+
+ if (!n) {
+ n = this._powER2T = Math.pow(Math.E, u * e);
+ }
+
+ return h * t + d * n;
+ },
+ dx: function dx(e) {
+ var t;
+ var n;
+
+ if (e === this._t) {
+ t = this._powER1T;
+ n = this._powER2T;
+ }
+
+ this._t = e;
+
+ if (!t) {
+ t = this._powER1T = Math.pow(Math.E, c * e);
+ }
+
+ if (!n) {
+ n = this._powER2T = Math.pow(Math.E, u * e);
+ }
+
+ return h * c * t + d * u * n;
+ }
+ };
+ }
+
+ var p = Math.sqrt(4 * i * r - n * n) / (2 * i);
+ var f = -n / 2 * i;
+ var v = e;
+ var g = (t - f * e) / p;
+ return {
+ x: function x(e) {
+ return Math.pow(Math.E, f * e) * (v * Math.cos(p * e) + g * Math.sin(p * e));
+ },
+ dx: function dx(e) {
+ var t = Math.pow(Math.E, f * e);
+ var n = Math.cos(p * e);
+ var i = Math.sin(p * e);
+ return t * (g * p * n - v * p * i) + f * t * (g * i + v * n);
+ }
+ };
+};
+
+Spring.prototype.x = function (e) {
+ if (undefined === e) {
+ e = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ return this._solution ? this._endPosition + this._solution.x(e) : 0;
+};
+
+Spring.prototype.dx = function (e) {
+ if (undefined === e) {
+ e = (new Date().getTime() - this._startTime) / 1e3;
+ }
+
+ return this._solution ? this._solution.dx(e) : 0;
+};
+
+Spring.prototype.setEnd = function (e, n, i) {
+ if (!i) {
+ i = new Date().getTime();
+ }
+
+ if (e !== this._endPosition || !t(n, 0.1)) {
+ n = n || 0;
+ var r = this._endPosition;
+
+ if (this._solution) {
+ if (t(n, 0.1)) {
+ n = this._solution.dx((i - this._startTime) / 1e3);
+ }
+
+ r = this._solution.x((i - this._startTime) / 1e3);
+
+ if (t(n, 0.1)) {
+ n = 0;
+ }
+
+ if (t(r, 0.1)) {
+ r = 0;
+ }
+
+ r += this._endPosition;
+ }
+
+ if (!(this._solution && t(r - e, 0.1) && t(n, 0.1))) {
+ this._endPosition = e;
+ this._solution = this._solve(r - this._endPosition, n);
+ this._startTime = i;
+ }
+ }
+};
+
+Spring.prototype.snap = function (e) {
+ this._startTime = new Date().getTime();
+ this._endPosition = e;
+ this._solution = {
+ x: function x() {
+ return 0;
+ },
+ dx: function dx() {
+ return 0;
+ }
+ };
+};
+
+Spring.prototype.done = function (n) {
+ if (!n) {
+ n = new Date().getTime();
+ }
+
+ return e(this.x(), this._endPosition, 0.1) && t(this.dx(), 0.1);
+};
+
+Spring.prototype.reconfigure = function (m, t, c) {
+ this._m = m;
+ this._k = t;
+ this._c = c;
+
+ if (!this.done()) {
+ this._solution = this._solve(this.x() - this._endPosition, this.dx());
+ this._startTime = new Date().getTime();
+ }
+};
+
+Spring.prototype.springConstant = function () {
+ return this._k;
+};
+
+Spring.prototype.damping = function () {
+ return this._c;
+};
+
+Spring.prototype.configuration = function () {
+ function e(e, t) {
+ e.reconfigure(1, t, e.damping());
+ }
+
+ function t(e, t) {
+ e.reconfigure(1, e.springConstant(), t);
+ }
+
+ return [{
+ label: 'Spring Constant',
+ read: this.springConstant.bind(this),
+ write: e.bind(this, this),
+ min: 100,
+ max: 1e3
+ }, {
+ label: 'Damping',
+ read: this.damping.bind(this),
+ write: t.bind(this, this),
+ min: 1,
+ max: 500
+ }];
+};
+
+function STD(e, t, n) {
+ this._springX = new Spring(e, t, n);
+ this._springY = new Spring(e, t, n);
+ this._springScale = new Spring(e, t, n);
+ this._startTime = 0;
+}
+
+STD.prototype.setEnd = function (e, t, n, i) {
+ var r = new Date().getTime();
+
+ this._springX.setEnd(e, i, r);
+
+ this._springY.setEnd(t, i, r);
+
+ this._springScale.setEnd(n, i, r);
+
+ this._startTime = r;
+};
+
+STD.prototype.x = function () {
+ var e = (new Date().getTime() - this._startTime) / 1e3;
+ return {
+ x: this._springX.x(e),
+ y: this._springY.x(e),
+ scale: this._springScale.x(e)
+ };
+};
+
+STD.prototype.done = function () {
+ var e = new Date().getTime();
+ return this._springX.done(e) && this._springY.done(e) && this._springScale.done(e);
+};
+
+STD.prototype.reconfigure = function (e, t, n) {
+ this._springX.reconfigure(e, t, n);
+
+ this._springY.reconfigure(e, t, n);
+
+ this._springScale.reconfigure(e, t, n);
+};
+// EXTERNAL MODULE: ./src/platforms/mp-weibo/helpers/scroll.js
+var helpers_scroll = __webpack_require__("18bf");
+
+// CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./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/movable-view/index.vue?vue&type=script&lang=js&
+//
+//
+//
+//
+//
+//
+
+
+
+var requesting = false;
+
+function _requestAnimationFrame(e) {
+ if (!requesting) {
+ requesting = true;
+ requestAnimationFrame(function () {
+ e();
+ requesting = false;
+ });
+ }
+}
+
+function p(t, n) {
+ if (t === n) {
+ return 0;
+ }
+
+ var i = t.offsetLeft;
+ return t.offsetParent ? i += p(t.offsetParent, n) : 0;
+}
+
+function f(t, n) {
+ if (t === n) {
+ return 0;
+ }
+
+ var i = t.offsetTop;
+ return t.offsetParent ? i += f(t.offsetParent, n) : 0;
+}
+
+function v(a, b) {
+ return +((1000 * a - 1000 * b) / 1000).toFixed(1);
+}
+
+function g(e, t, n) {
+ var i = function i(e) {
+ if (e && e.id) {
+ cancelAnimationFrame(e.id);
+ }
+
+ if (e) {
+ e.cancelled = true;
+ }
+ };
+
+ var r = {
+ id: 0,
+ cancelled: false
+ };
+
+ function fn(n, i, r, o) {
+ if (!n || !n.cancelled) {
+ r(i);
+ var a = e.done();
+
+ if (!a) {
+ if (!n.cancelled) {
+ n.id = requestAnimationFrame(fn.bind(null, n, i, r, o));
+ }
+ }
+
+ if (a && o) {
+ o(i);
+ }
+ }
+ }
+
+ fn(r, e, t, n);
+ return {
+ cancel: i.bind(null, r),
+ model: e
+ };
+}
+
+/* harmony default export */ var movable_viewvue_type_script_lang_js_ = ({
+ name: 'MovableView',
+ mixins: [touchtrack["a" /* default */]],
+ props: {
+ direction: {
+ type: String,
+ default: 'none'
+ },
+ inertia: {
+ type: [Boolean, String],
+ default: false
+ },
+ outOfBounds: {
+ type: [Boolean, String],
+ default: false
+ },
+ x: {
+ type: [Number, String],
+ default: 0
+ },
+ y: {
+ type: [Number, String],
+ default: 0
+ },
+ damping: {
+ type: [Number, String],
+ default: 20
+ },
+ friction: {
+ type: [Number, String],
+ default: 2
+ },
+ disabled: {
+ type: [Boolean, String],
+ default: false
+ },
+ scale: {
+ type: [Boolean, String],
+ default: false
+ },
+ scaleMin: {
+ type: [Number, String],
+ default: 0.5
+ },
+ scaleMax: {
+ type: [Number, String],
+ default: 10
+ },
+ scaleValue: {
+ type: [Number, String],
+ default: 1
+ },
+ animation: {
+ type: [Boolean, String],
+ default: true
+ }
+ },
+ data: function data() {
+ return {
+ xSync: this._getPx(this.x),
+ ySync: this._getPx(this.y),
+ scaleValueSync: Number(this.scaleValue) || 1,
+ width: 0,
+ height: 0,
+ minX: 0,
+ minY: 0,
+ maxX: 0,
+ maxY: 0
+ };
+ },
+ computed: {
+ dampingNumber: function dampingNumber() {
+ var val = Number(this.damping);
+ return isNaN(val) ? 20 : val;
+ },
+ frictionNumber: function frictionNumber() {
+ var val = Number(this.friction);
+ return isNaN(val) || val <= 0 ? 2 : val;
+ },
+ scaleMinNumber: function scaleMinNumber() {
+ var val = Number(this.scaleMin);
+ return isNaN(val) ? 0.5 : val;
+ },
+ scaleMaxNumber: function scaleMaxNumber() {
+ var val = Number(this.scaleMax);
+ return isNaN(val) ? 10 : val;
+ },
+ xMove: function xMove() {
+ return this.direction === 'all' || this.direction === 'horizontal';
+ },
+ yMove: function yMove() {
+ return this.direction === 'all' || this.direction === 'vertical';
+ }
+ },
+ watch: {
+ x: function x(val) {
+ this.xSync = this._getPx(val);
+ },
+ xSync: function xSync(val) {
+ this._setX(val);
+ },
+ y: function y(val) {
+ this.ySync = this._getPx(val);
+ },
+ ySync: function ySync(val) {
+ this._setY(val);
+ },
+ disabled: function disabled() {
+ this.__handleTouchStart();
+ },
+ scaleValue: function scaleValue(val) {
+ this.scaleValueSync = Number(val) || 0;
+ },
+ scaleValueSync: function scaleValueSync(val) {
+ this._setScaleValue(val);
+ },
+ scaleMinNumber: function scaleMinNumber() {
+ this._setScaleMinOrMax();
+ },
+ scaleMaxNumber: function scaleMaxNumber() {
+ this._setScaleMinOrMax();
+ }
+ },
+ created: function created() {
+ this._offset = {
+ x: 0,
+ y: 0
+ };
+ this._scaleOffset = {
+ x: 0,
+ y: 0
+ };
+ this._translateX = 0;
+ this._translateY = 0;
+ this._scale = 1;
+ this._oldScale = 1;
+ this._STD = new STD(1, 9 * Math.pow(this.dampingNumber, 2) / 40, this.dampingNumber);
+ this._friction = new Friction(1, this.frictionNumber);
+ this._declineX = new Decline();
+ this._declineY = new Decline();
+ this.__touchInfo = {
+ historyX: [0, 0],
+ historyY: [0, 0],
+ historyT: [0, 0]
+ };
+ },
+ mounted: function mounted() {
+ this.touchtrack(this.$el, '_onTrack');
+ this.setParent();
+
+ this._friction.reconfigure(1, this.frictionNumber);
+
+ this._STD.reconfigure(1, 9 * Math.pow(this.dampingNumber, 2) / 40, this.dampingNumber);
+
+ this.$el.style.transformOrigin = 'center';
+ Object(helpers_scroll["b" /* initScrollBounce */])();
+ },
+ methods: {
+ _getPx: function _getPx(val) {
+ if (/\d+[ur]px$/i.test(val)) {
+ return uni.upx2px(parseFloat(val));
+ }
+
+ return Number(val) || 0;
+ },
+ _setX: function _setX(val) {
+ if (this.xMove) {
+ if (val + this._scaleOffset.x === this._translateX) {
+ return this._translateX;
+ } else {
+ if (this._SFA) {
+ this._SFA.cancel();
+ }
+
+ this._animationTo(val + this._scaleOffset.x, this.ySync + this._scaleOffset.y, this._scale);
+ }
+ }
+
+ return val;
+ },
+ _setY: function _setY(val) {
+ if (this.yMove) {
+ if (val + this._scaleOffset.y === this._translateY) {
+ return this._translateY;
+ } else {
+ if (this._SFA) {
+ this._SFA.cancel();
+ }
+
+ this._animationTo(this.xSync + this._scaleOffset.x, val + this._scaleOffset.y, this._scale);
+ }
+ }
+
+ return val;
+ },
+ _setScaleMinOrMax: function _setScaleMinOrMax() {
+ if (!this.scale) {
+ return false;
+ }
+
+ this._updateScale(this._scale, true);
+
+ this._updateOldScale(this._scale);
+ },
+ _setScaleValue: function _setScaleValue(scale) {
+ if (!this.scale) {
+ return false;
+ }
+
+ scale = this._adjustScale(scale);
+
+ this._updateScale(scale, true);
+
+ this._updateOldScale(scale);
+
+ return scale;
+ },
+ __handleTouchStart: function __handleTouchStart() {
+ if (!this._isScaling) {
+ if (!this.disabled) {
+ Object(helpers_scroll["a" /* disableScrollBounce */])({
+ disable: true
+ });
+
+ if (this._FA) {
+ this._FA.cancel();
+ }
+
+ if (this._SFA) {
+ this._SFA.cancel();
+ }
+
+ this.__touchInfo.historyX = [0, 0];
+ this.__touchInfo.historyY = [0, 0];
+ this.__touchInfo.historyT = [0, 0];
+
+ if (this.xMove) {
+ this.__baseX = this._translateX;
+ }
+
+ if (this.yMove) {
+ this.__baseY = this._translateY;
+ }
+
+ this.$el.style.willChange = 'transform';
+ this._checkCanMove = null;
+ this._firstMoveDirection = null;
+ this._isTouching = true;
+ }
+ }
+ },
+ __handleTouchMove: function __handleTouchMove(event) {
+ var self = this;
+
+ if (!this._isScaling && !this.disabled && this._isTouching) {
+ var x = this._translateX;
+ var y = this._translateY;
+
+ if (this._firstMoveDirection === null) {
+ this._firstMoveDirection = Math.abs(event.detail.dx / event.detail.dy) > 1 ? 'htouchmove' : 'vtouchmove';
+ }
+
+ if (this.xMove) {
+ x = event.detail.dx + this.__baseX;
+
+ this.__touchInfo.historyX.shift();
+
+ this.__touchInfo.historyX.push(x);
+
+ if (!this.yMove && this._checkCanMove === null) {
+ this._checkCanMove = Math.abs(event.detail.dx / event.detail.dy) < 1;
+ }
+ }
+
+ if (this.yMove) {
+ y = event.detail.dy + this.__baseY;
+
+ this.__touchInfo.historyY.shift();
+
+ this.__touchInfo.historyY.push(y);
+
+ if (!this.xMove && this._checkCanMove === null) {
+ this._checkCanMove = Math.abs(event.detail.dy / event.detail.dx) < 1;
+ }
+ }
+
+ this.__touchInfo.historyT.shift();
+
+ this.__touchInfo.historyT.push(event.detail.timeStamp);
+
+ if (!this._checkCanMove) {
+ event.preventDefault();
+ var source = 'touch';
+
+ if (x < this.minX) {
+ if (this.outOfBounds) {
+ source = 'touch-out-of-bounds';
+ x = this.minX - this._declineX.x(this.minX - x);
+ } else {
+ x = this.minX;
+ }
+ } else if (x > this.maxX) {
+ if (this.outOfBounds) {
+ source = 'touch-out-of-bounds';
+ x = this.maxX + this._declineX.x(x - this.maxX);
+ } else {
+ x = this.maxX;
+ }
+ }
+
+ if (y < this.minY) {
+ if (this.outOfBounds) {
+ source = 'touch-out-of-bounds';
+ y = this.minY - this._declineY.x(this.minY - y);
+ } else {
+ y = this.minY;
+ }
+ } else {
+ if (y > this.maxY) {
+ if (this.outOfBounds) {
+ source = 'touch-out-of-bounds';
+ y = this.maxY + this._declineY.x(y - this.maxY);
+ } else {
+ y = this.maxY;
+ }
+ }
+ }
+
+ _requestAnimationFrame(function () {
+ self._setTransform(x, y, self._scale, source);
+ });
+ }
+ }
+ },
+ __handleTouchEnd: function __handleTouchEnd() {
+ var self = this;
+
+ if (!this._isScaling && !this.disabled && this._isTouching) {
+ Object(helpers_scroll["a" /* disableScrollBounce */])({
+ disable: false
+ });
+ this.$el.style.willChange = 'auto';
+ this._isTouching = false;
+
+ if (!this._checkCanMove && !this._revise('out-of-bounds') && this.inertia) {
+ var xv = 1000 * (this.__touchInfo.historyX[1] - this.__touchInfo.historyX[0]) / (this.__touchInfo.historyT[1] - this.__touchInfo.historyT[0]);
+ var yv = 1000 * (this.__touchInfo.historyY[1] - this.__touchInfo.historyY[0]) / (this.__touchInfo.historyT[1] - this.__touchInfo.historyT[0]);
+
+ this._friction.setV(xv, yv);
+
+ this._friction.setS(this._translateX, this._translateY);
+
+ var x0 = this._friction.delta().x;
+
+ var y0 = this._friction.delta().y;
+
+ var x = x0 + this._translateX;
+ var y = y0 + this._translateY;
+
+ if (x < this.minX) {
+ x = this.minX;
+ y = this._translateY + (this.minX - this._translateX) * y0 / x0;
+ } else {
+ if (x > this.maxX) {
+ x = this.maxX;
+ y = this._translateY + (this.maxX - this._translateX) * y0 / x0;
+ }
+ }
+
+ if (y < this.minY) {
+ y = this.minY;
+ x = this._translateX + (this.minY - this._translateY) * x0 / y0;
+ } else {
+ if (y > this.maxY) {
+ y = this.maxY;
+ x = this._translateX + (this.maxY - this._translateY) * x0 / y0;
+ }
+ }
+
+ this._friction.setEnd(x, y);
+
+ this._FA = g(this._friction, function () {
+ var t = self._friction.s();
+
+ var x = t.x;
+ var y = t.y;
+
+ self._setTransform(x, y, self._scale, 'friction');
+ }, function () {
+ self._FA.cancel();
+ });
+ }
+ }
+ },
+ _onTrack: function _onTrack(event) {
+ switch (event.detail.state) {
+ case 'start':
+ this.__handleTouchStart();
+
+ break;
+
+ case 'move':
+ this.__handleTouchMove(event);
+
+ break;
+
+ case 'end':
+ this.__handleTouchEnd();
+
+ }
+ },
+ _getLimitXY: function _getLimitXY(x, y) {
+ var outOfBounds = false;
+
+ if (x > this.maxX) {
+ x = this.maxX;
+ outOfBounds = true;
+ } else {
+ if (x < this.minX) {
+ x = this.minX;
+ outOfBounds = true;
+ }
+ }
+
+ if (y > this.maxY) {
+ y = this.maxY;
+ outOfBounds = true;
+ } else {
+ if (y < this.minY) {
+ y = this.minY;
+ outOfBounds = true;
+ }
+ }
+
+ return {
+ x: x,
+ y: y,
+ outOfBounds: outOfBounds
+ };
+ },
+ setParent: function setParent() {
+ if (!this.$parent._isMounted) {
+ return;
+ }
+
+ if (this._FA) {
+ this._FA.cancel();
+ }
+
+ if (this._SFA) {
+ this._SFA.cancel();
+ }
+
+ var scale = this.scale ? this.scaleValueSync : 1;
+
+ this._updateOffset();
+
+ this._updateWH(scale);
+
+ this._updateBoundary();
+
+ this._translateX = this.xSync + this._scaleOffset.x;
+ this._translateY = this.ySync + this._scaleOffset.y;
+
+ var limitXY = this._getLimitXY(this._translateX, this._translateY);
+
+ var x = limitXY.x;
+ var y = limitXY.y;
+
+ this._setTransform(x, y, scale, '', true);
+
+ this._updateOldScale(scale);
+ },
+ _updateOffset: function _updateOffset() {
+ this._offset.x = p(this.$el, this.$parent.$el);
+ this._offset.y = f(this.$el, this.$parent.$el);
+ },
+ _updateWH: function _updateWH(scale) {
+ scale = scale || this._scale;
+ scale = this._adjustScale(scale);
+ var rect = this.$el.getBoundingClientRect();
+ this.height = rect.height / this._scale;
+ this.width = rect.width / this._scale;
+ var height = this.height * scale;
+ var width = this.width * scale;
+ this._scaleOffset.x = (width - this.width) / 2;
+ this._scaleOffset.y = (height - this.height) / 2;
+ },
+ _updateBoundary: function _updateBoundary() {
+ var x = 0 - this._offset.x + this._scaleOffset.x;
+ var width = this.$parent.width - this.width - this._offset.x - this._scaleOffset.x;
+ this.minX = Math.min(x, width);
+ this.maxX = Math.max(x, width);
+ var y = 0 - this._offset.y + this._scaleOffset.y;
+ var height = this.$parent.height - this.height - this._offset.y - this._scaleOffset.y;
+ this.minY = Math.min(y, height);
+ this.maxY = Math.max(y, height);
+ },
+ _beginScale: function _beginScale() {
+ this._isScaling = true;
+ },
+ _endScale: function _endScale() {
+ this._isScaling = false;
+
+ this._updateOldScale(this._scale);
+ },
+ _setScale: function _setScale(scale) {
+ if (this.scale) {
+ scale = this._oldScale * scale;
+
+ this._beginScale();
+
+ this._updateScale(scale);
+ }
+ },
+ _updateScale: function _updateScale(scale, animat) {
+ var self = this;
+
+ if (this.scale) {
+ scale = this._adjustScale(scale);
+
+ this._updateWH(scale);
+
+ this._updateBoundary();
+
+ var limitXY = this._getLimitXY(this._translateX, this._translateY);
+
+ var x = limitXY.x;
+ var y = limitXY.y;
+
+ if (animat) {
+ this._animationTo(x, y, scale, '', true, true);
+ } else {
+ _requestAnimationFrame(function () {
+ self._setTransform(x, y, scale, '', true, true);
+ });
+ }
+ }
+ },
+ _updateOldScale: function _updateOldScale(scale) {
+ this._oldScale = scale;
+ },
+ _adjustScale: function _adjustScale(scale) {
+ scale = Math.max(0.5, this.scaleMinNumber, scale);
+ scale = Math.min(10, this.scaleMaxNumber, scale);
+ return scale;
+ },
+ _animationTo: function _animationTo(x, y, scale, source, r, o) {
+ var self = this;
+
+ if (this._FA) {
+ this._FA.cancel();
+ }
+
+ if (this._SFA) {
+ this._SFA.cancel();
+ }
+
+ if (!this.xMove) {
+ x = this._translateX;
+ }
+
+ if (!this.yMove) {
+ y = this._translateY;
+ }
+
+ if (!this.scale) {
+ scale = this._scale;
+ }
+
+ var limitXY = this._getLimitXY(x, y);
+
+ x = limitXY.x;
+ y = limitXY.y;
+
+ if (!this.animation) {
+ this._setTransform(x, y, scale, source, r, o);
+
+ return;
+ }
+
+ this._STD._springX._solution = null;
+ this._STD._springY._solution = null;
+ this._STD._springScale._solution = null;
+ this._STD._springX._endPosition = this._translateX;
+ this._STD._springY._endPosition = this._translateY;
+ this._STD._springScale._endPosition = this._scale;
+
+ this._STD.setEnd(x, y, scale, 1);
+
+ this._SFA = g(this._STD, function () {
+ var data = self._STD.x();
+
+ var x = data.x;
+ var y = data.y;
+ var scale = data.scale;
+
+ self._setTransform(x, y, scale, source, r, o);
+ }, function () {
+ self._SFA.cancel();
+ });
+ },
+ _revise: function _revise(source) {
+ var limitXY = this._getLimitXY(this._translateX, this._translateY);
+
+ var x = limitXY.x;
+ var y = limitXY.y;
+ var outOfBounds = limitXY.outOfBounds;
+
+ if (outOfBounds) {
+ this._animationTo(x, y, this._scale, source);
+ }
+
+ return outOfBounds;
+ },
+ _setTransform: function _setTransform(x, y, scale) {
+ var source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';
+ var r = arguments.length > 4 ? arguments[4] : undefined;
+ var o = arguments.length > 5 ? arguments[5] : undefined;
+
+ if (!(x !== null && x.toString() !== 'NaN' && typeof x === 'number')) {
+ x = this._translateX || 0;
+ }
+
+ if (!(y !== null && y.toString() !== 'NaN' && typeof y === 'number')) {
+ y = this._translateY || 0;
+ }
+
+ x = Number(x.toFixed(1));
+ y = Number(y.toFixed(1));
+ scale = Number(scale.toFixed(1));
+
+ if (!(this._translateX === x && this._translateY === y)) {
+ if (!r) {
+ this.$trigger('change', {}, {
+ x: v(x, this._scaleOffset.x),
+ y: v(y, this._scaleOffset.y),
+ source: source
+ });
+ }
+ }
+
+ if (!this.scale) {
+ scale = this._scale;
+ }
+
+ scale = this._adjustScale(scale);
+ scale = +scale.toFixed(3);
+
+ if (o && scale !== this._scale) {
+ this.$trigger('scale', {}, {
+ x: x,
+ y: y,
+ scale: scale
+ });
+ }
+
+ var transform = 'translateX(' + x + 'px) translateY(' + y + 'px) translateZ(0px) scale(' + scale + ')';
+ this.$el.style.transform = transform;
+ this.$el.style.webkitTransform = transform;
+ this._translateX = x;
+ this._translateY = y;
+ this._scale = scale;
+ }
+ }
+});
+// CONCATENATED MODULE: ./src/core/view/components/movable-view/index.vue?vue&type=script&lang=js&
+ /* harmony default export */ var components_movable_viewvue_type_script_lang_js_ = (movable_viewvue_type_script_lang_js_);
+// EXTERNAL MODULE: ./src/core/view/components/movable-view/index.vue?vue&type=style&index=0&lang=css&
+var movable_viewvue_type_style_index_0_lang_css_ = __webpack_require__("7c2b");
+
+// 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/movable-view/index.vue
+
+
+
+
+
+
+/* normalize component */
+
+var component = Object(componentNormalizer["a" /* default */])(
+ components_movable_viewvue_type_script_lang_js_,
+ render,
+ staticRenderFns,
+ false,
+ null,
+ null,
+ null
+
+)
+
+/* harmony default export */ var movable_view = __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ "8875":
+/***/ (function(module, exports, __webpack_require__) {
+
+var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller
+// MIT license
+// source: https://github.com/amiller-gh/currentScript-polyfill
+
+// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505
+
+(function (root, factory) {
+ if (true) {
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
+ __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
+ (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {}
+}(typeof self !== 'undefined' ? self : this, function () {
+ function getCurrentScript () {
+ if (document.currentScript) {
+ return document.currentScript
+ }
+
+ // IE 8-10 support script readyState
+ // IE 11+ & Firefox support stack trace
+ try {
+ throw new Error();
+ }
+ catch (err) {
+ // Find the second match for the "at" string to get file src url from stack.
+ var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig,
+ ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig,
+ stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack),
+ scriptLocation = (stackDetails && stackDetails[1]) || false,
+ line = (stackDetails && stackDetails[2]) || false,
+ currentLocation = document.location.href.replace(document.location.hash, ''),
+ pageSource,
+ inlineScriptSourceRegExp,
+ inlineScriptSource,
+ scripts = document.getElementsByTagName('script'); // Live NodeList collection
+
+ if (scriptLocation === currentLocation) {
+ pageSource = document.documentElement.outerHTML;
+ inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*
diff --git a/packages/uni-mp-weibo/template/src/res/iframe.js b/packages/uni-mp-weibo/template/src/res/iframe.js
new file mode 100644
index 00000000000..dd93c33af78
--- /dev/null
+++ b/packages/uni-mp-weibo/template/src/res/iframe.js
@@ -0,0 +1,611 @@
+
+ /**
+ * Callbacks
+ */
+ class Callbacks {
+ constructor () {
+ this.uid = 1
+ this.callbacks = {}
+ }
+ /**
+ * 添加回调
+ * @param fn - 回调函数
+ * @param ctx - this绑定
+ */
+ add (callback) {
+ const id = String(this.uid++)
+ this.callbacks[id] = callback
+ return id
+ }
+ get (id) {
+ return this.callbacks[id]
+ }
+ /**
+ * 移除回调函数通过id
+ * @param id - add返回的回调id
+ */
+ remove (id) {
+ const callback = this.callbacks[id]
+ if (callback) {
+ delete this.callbacks[id]
+ }
+ }
+ /**
+ * 移除所有的回调
+ * */
+ destroy () {
+ this.callbacks = {}
+ }
+ /**
+ * 调用回调函数通过id和参数
+ * */
+ call (id, data, type) {
+ const callback = this.callbacks[id]
+ if (callback) {
+ if (callback[type] && typeof callback[type] === 'function') {
+ try {
+ return callback[type](data)
+ } catch (e) {
+ console.error(e, 'call callback error')
+ }
+ }
+ } else {
+ console.error(`callback Id(${id}) not found, args is ${JSON.stringify(data)}`)
+ }
+ }
+
+ /**
+ * 判断当前callback类型 true : 回调函数类型 false : Promise / async await类型
+ * */
+ isCallback (id) {
+ const callback = this.callbacks[id]
+ return callback.success || callback.fail || callback.complete
+ }
+}
+ const callback = new Callbacks()
+ const STORAGE_KEYS = 'uni-storage-keys'
+ let service_storageInfo = ""
+ const callErrorrCallBackFunc = (e) => {
+ if(errorCallBackFunc && typeof errorCallBackFunc === 'function') {
+ errorCallBackFunc(e.error)
+ }
+ }
+ /**
+ * 处理异步调用方法
+ * a. 回调函数模式
+ * b. Promise / async await 模式 (区分Vue2 Vue3)
+ */
+ const postMessage = (eventName, data) => {
+ let id;
+ if (data && typeof data === 'object') {
+ if(data.fail && typeof data.fail === 'function') {
+ const originalFail = data.fail
+ data.fail = (err) => {
+ originalFail(err)
+ callErrorrCallBackFunc(err)
+ }
+ } else {
+ data.fail = callErrorrCallBackFunc
+ }
+ if (data.success || data.fail || data.complete) {
+ const {success, fail, complete} = { ...data }
+ delete data.success
+ delete data.fail
+ delete data.complete
+ const callbacks = {success, fail, complete}
+ id = callback.add(callbacks)
+ window.parent.postMessage({ eventName, id, data }, '*');
+ } else {
+ // if Vue3
+ return new Promise((resolve, reject) => {
+ const callbacks = {"success": resolve, "fail": reject}
+ id = callback.add(callbacks)
+ window.parent.postMessage({ eventName, id, data }, '*');
+ })
+
+ // if Vue2
+ // return new Promise((resolve) => {
+ // const callbacks = { "resolve": resolve }
+ // id = callback.add(callbacks)
+ // window.parent.postMessage({ eventName, id, data }, '*');
+ // })
+ }
+ } else if (data && typeof data === 'function') {
+ id = callback.add({ 'success': data })
+ window.parent.postMessage({ eventName, id }, '*');
+ } else {
+ window.parent.postMessage({ eventName, id, data }, '*');
+ }
+ }
+
+ // 执行不同异步类型callback
+ const callCallbackFun = (item) => {
+ const {id, data, type} = item
+ let isCallback = callback.isCallback(id)
+ if (isCallback) {
+ callback.call(id, data, type)
+ } else {
+ // if Vue3
+ callback.call(id, data, type)
+
+ // if Vue2
+ // if (type !== 'complete') {
+ // let res = [null, null]
+ // if (type === 'success') {
+ // res[1] = data
+ // } else {
+ // res[0] = data
+ // }
+ // callback.call(id, res, 'resolve')
+ // }
+ }
+}
+// 处理ios弹性问题
+document.documentElement.style.overflow = "auto"
+
+/**
+* Hook uniapp api
+* */
+//基础
+window.uni.canIUse = function (data) {
+ console.log('1 拦截 uni api', data)
+ if(window.uni[data]) {
+ return true
+ } else {
+ return false
+ }
+}
+//
+window.uni.getDeviceInfo = function (data) {
+ return deviceInfo
+}
+
+// 网络
+window.uni.request = function (data) {
+console.log('1 拦截 uni api', data)
+return postMessage('request', data)
+}
+window.uni.uploadFile = function (data) {
+console.log('1 拦截 uni api', data)
+return postMessage('uploadFile', data)
+}
+window.uni.downloadFile = function (data) {
+if (!data.filePath) {
+ data.filePath = `image${parseInt(Math.random()*6000)}.jpg`
+}
+data.filePath = `res/h5/${data.filePath}`
+console.log('1 拦截 uni api', data)
+return postMessage('downloadFile', data)
+}
+window.uni.connectSocket = function (data) {
+console.log('1 拦截 uni api', data)
+return postMessage('connectSocket', data)
+}
+
+// 路由
+window.uni.navigateTo = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('navigateTo', data)
+}
+window.uni.redirectTo = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('redirectTo', data)
+}
+// setTimeout(() => {
+// window.uni = {}
+// window.uni.redirectTo = function (data) {
+// console.log('1 拦截 uni api', data)
+// return postMessage('redirectTo', data)
+// }
+// }, 50)
+ window.uni.reLaunch = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('reLaunch', data)
+ }
+ window.weibo = {}
+ window.weibo.switchTab = function (data) {
+ if(data && data.detail && data.detail.text) {
+ return postMessage('setNavigationBarTitle', {
+ title: data.detail.text
+ })
+ }
+ }
+ window.uni.navigateBack = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('navigateBack', data)
+ }
+
+ //数据缓存
+window.uni.setStorage = function (data) {
+ console.log('1 拦截 uni api', data)
+ localStorage.setItem(data.key, data.data)
+ getStorageInfo()
+ return postMessage('setStorage', data)
+}
+window.uni.setStorageSync = function (data) {
+ console.log('1 拦截 uni api', data)
+ let [key, val] = data
+ localStorage.setItem(key, val)
+ getStorageInfo()
+ postMessage('setStorage', {key, data: val})
+}
+
+window.uni.getStorage = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('getStorage', data)
+}
+window.uni.getStorageSync = function (key) {
+ console.log('1 拦截 uni api', key)
+ return localStorage.setItem(key)
+}
+
+window.uni.getStorageInfo = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('getStorageInfo', data)
+}
+
+window.uni.getStorageInfoSync = function () {
+ console.log('1 拦截 uni api')
+ return service_storageInfo
+}
+
+window.uni.removeStorage = function (data) {
+ console.log('1 拦截 uni api removeStorage', data)
+ localStorage.remove(data.key)
+ getStorageInfo()
+ return postMessage('removeStorage', data)
+}
+window.uni.removeStorageSync = function (data) {
+ console.log('1 拦截 uni api removeStorageSync', key)
+ let [key] = data
+ localStorage.remove(key)
+ getStorageInfo()
+ postMessage('removeStorage', { key })
+}
+
+window.uni.clearStorage = function () {
+ console.log('1 拦截 uni api')
+ localStorage.clear()
+ getStorageInfo()
+ return postMessage('clearStorage')
+}
+window.uni.clearStorageSync = function () {
+ console.log('1 拦截 uni api')
+ localStorage.clear()
+ getStorageInfo()
+ postMessage('clearStorage')
+}
+
+ // 位置
+ window.uni.getLocation = function (data) {
+ console.log('1 拦截 uni api', data)
+ return postMessage('getLocation', data)
+ }
+
+ // 媒体
+window.uni = {
+...window.uni,
+'chooseImage': function (data) {
+ console.log('1 拦截 uni api', 'chooseImage', data)
+ return postMessage('chooseImage', data)
+}
+}
+window.uni.previewImage = function (data) {
+console.log('1 拦截 uni api', 'previewImage', data)
+return postMessage('previewImage', data)
+}
+window.uni.getImageInfo = function (data) {
+console.log('1 拦截 uni api', 'getImageInfo', data)
+return postMessage('getImageInfo', data)
+}
+window.uni.saveImageToPhotosAlbum = function (data) {
+console.log('1 拦截 uni api', 'saveImageToPhotosAlbum', data)
+return postMessage('saveImageToPhotosAlbum', data)
+}
+
+//设备 - 系统
+window.uni.getSystemInfo = function (data) {
+ console.log('1 拦截 uni api', 'getSystemInfo', data)
+ return postMessage('getSystemInfo', data)
+}
+window.uni.getSystemInfoSync = function() {
+ return systemInfo
+}
+window.uni.openAppAuthorizeSetting = function (data) {
+ console.log('1 拦截 uni api', 'openAppAuthorizeSetting', data)
+ return postMessage('openAppAuthorizeSetting', data)
+}
+
+// 网络状态
+window.uni.onNetworkStatusChange = function (data) {
+ console.log('1 拦截 uni api', 'onNetworkStatusChange', data)
+ return postMessage('onNetworkStatusChange', data)
+}
+
+// 加速度计
+window.uni.startAccelerometer = function (data) {
+console.log('1 拦截 uni api', 'startAccelerometer', data)
+return postMessage('startAccelerometer', data)
+}
+window.uni.stopAccelerometer = function (data) {
+console.log('1 拦截 uni api', 'stopAccelerometer', data)
+return postMessage('stopAccelerometer', data)
+}
+
+// 键盘
+const wbxKeyboardHeightChangeListeners = {}
+window.uni.onKeyboardHeightChange = function (listener) {
+ console.log('1 拦截 uni api', 'onKeyboardHeightChange', listener)
+ const wbxListener = e => listener(e.detail)
+ wbxKeyboardHeightChangeListeners[listener] = wbxListener
+ window.parent.document.body.addEventListener('keyboardheightchange', wbxListener)
+}
+window.uni.offKeyboardHeightChange = function (listener) {
+ console.log('1 拦截 uni api', 'offKeyboardHeightChange', listener)
+ const wbxListener = wbxKeyboardHeightChangeListeners[listener]
+ window.parent.document.body.removeEventListener('keyboardheightchange', wbxListener)
+}
+
+// 拨打电话
+window.uni.makePhoneCall = function (data) {
+console.log('1 拦截 uni api', 'makePhoneCall', data)
+return postMessage('makePhoneCall', data)
+}
+
+
+// 扫码
+window.uni.scanCode = function (data) {
+console.log('1 拦截 uni api', 'scanCode', data)
+return postMessage('scanCode', data)
+}
+// 剪贴板
+window.uni.setClipboardData = function (data) {
+console.log('1 拦截 uni api', 'setClipboardData', data)
+return postMessage('setClipboardData', data)
+}
+window.uni.getClipboardData = function (data) {
+console.log('1 拦截 uni api', 'getClipboardData', data)
+return postMessage('getClipboardData', data)
+}
+
+// 震动
+window.uni.vibrateShort = function (data) {
+console.log('1 拦截 uni api', 'vibrateShort', data)
+return postMessage('vibrateShort', data)
+}
+window.uni.vibrateLong = function (data) {
+console.log('1 拦截 uni api', 'vibrateLong', data)
+return postMessage('vibrateLong', data)
+}
+
+// 界面-交互反馈
+window.uni.showToast = function (data) {
+ console.log('1 拦截 uni api', 'showToast', data)
+ return postMessage('showToast', data)
+}
+window.uni.hideToast = function (data) {
+ console.log('1 拦截 uni api', 'hideToast', data)
+ return postMessage('hideToast', data)
+}
+window.uni.showLoading = function (data) {
+ console.log('1 拦截 uni api', 'showLoading', data)
+ return postMessage('showLoading', data)
+}
+window.uni.hideLoading = function (data) {
+ console.log('1 拦截 uni api', 'hideLoading', data)
+ return postMessage('hideLoading', data)
+}
+window.uni.showModal = function (data) {
+ console.log('1 拦截 uni api', 'showModal', data)
+ return postMessage('showModal', data)
+}
+window.uni.showActionSheet = function (data) {
+ console.log('1 拦截 uni api', 'showActionSheet', data)
+ return postMessage('showActionSheet', data)
+}
+
+// 设置导航条
+window.uni.setNavigationBarTitle = function (data) {
+ console.log('1 拦截 uni api', 'setNavigationBarTitle', data)
+ return postMessage('setNavigationBarTitle', data)
+}
+window.uni.setNavigationBarColor = function (data) {
+console.log('1 拦截 uni api', 'setNavigationBarColor', data)
+return postMessage('setNavigationBarColor', data)
+}
+
+// 背景
+window.uni.setBackgroundColor = function (data) {
+console.log('1 拦截 uni api', 'setBackgroundColor', data)
+return postMessage('setBackgroundColor', data)
+}
+
+// 滚动
+// window.uni.pageScrollTo = function (data) {
+// console.log('1 拦截 uni api', 'pageScrollTo', data)
+// return postMessage('pageScrollTo', data)
+// }
+
+// 文件
+window.uni.saveFile = function (data) {
+console.log('1 拦截 uni api', 'saveFile', data)
+return postMessage('saveFile', data)
+}
+window.uni.getSavedFileList = function (data) {
+console.log('1 拦截 uni api', 'getSavedFileList', data)
+return postMessage('getSavedFileList', data)
+}
+window.uni.getSavedFileInfo = function (data) {
+console.log('1 拦截 uni api', 'getSavedFileInfo', data)
+return postMessage('getSavedFileInfo', data)
+}
+window.uni.removeSavedFile = function (data) {
+console.log('1 拦截 uni api', 'removeSavedFile', data)
+return postMessage('removeSavedFile', data)
+}
+window.uni.getFileInfo = function (data) {
+console.log('1 拦截 uni api', 'getFileInfo', data)
+return postMessage('getFileInfo', data)
+}
+// 登录
+window.uni.login = function (data) {
+console.log('1 拦截 uni api', 'login', data)
+return postMessage('login', data)
+}
+window.uni.checkSession = function (data) {
+console.log('1 拦截 uni api', 'checkSession', data)
+return postMessage('checkSession', data)
+}
+window.uni.getUserInfo = function (data) {
+console.log('1 拦截 uni api', 'getUserInfo', data)
+return postMessage('getUserInfo', data)
+}
+
+// 分享
+window.uni.share = function (data) {
+console.log('1 拦截 uni api', 'share', data)
+return postMessage('share', data)
+}
+window.uni.sendShareMessage = function (data){
+console.log('1 拦截 uni api', 'sendShareMessage', data)
+return postMessage('sendShareMessage', data)
+}
+// 应用级事件
+window.uni.onAppShow = function(data) {
+ return postMessage('onAppShow', data)
+}
+window.uni.onAppHide = function(data) {
+ return postMessage('onAppHide', data)
+}
+window.uni.offAppShow = function(data) {
+ return postMessage('offAppShow', data)
+}
+window.uni.offAppHide = function(data) {
+ return postMessage('offAppHide', data)
+}
+
+// 监听错误
+let errorCallBackFunc
+window.uni.onError = function(data) {
+ errorCallBackFunc = data
+}
+window.uni.offError = function(data) {
+ errorCallBackFunc = null
+ data()
+}
+
+
+const listener = (e) => {
+ console.log('3 执行uni api 回调', e)
+ let data = e.data
+ switch (data.eventName) {
+ // 基础
+ case 'caniuse':
+ // 网络
+ case 'request':
+ case 'uploadFile':
+ case 'downloadFile':
+ case 'connectSocket':
+ // 路由
+ case 'navigateTo':
+ case 'redirectTo':
+ case 'reLaunch':
+ case 'switchTab':
+ case 'navigateBack':
+ // 数据缓存
+ case 'setStorage':
+ case 'getStorage':
+ case 'getStorageInfo':
+ case 'removeStorage':
+ case 'clearStorage':
+ // 位置
+ case 'getLocation':
+ // 媒体
+ case 'chooseImage':
+ case 'previewImage':
+ case 'getImageInfo':
+ case 'saveImageToPhotosAlbum':
+ // 系统
+ case 'getSystemInfo':
+ case 'openAppAuthorizeSetting':
+ // 网络状态
+ case 'onNetworkStatusChange':
+ // 加速度计
+ case 'startAccelerometer':
+ case 'stopAccelerometer':
+ // 拨打电话
+ case 'makePhoneCall':
+ // 键盘
+ case 'onKeyboardHeightChange':
+ case 'offKeyboardHeightChange':
+ // 扫码
+ case 'scanCode':
+ // 剪贴板
+ case 'setClipboardData':
+ case 'getClipboardData':
+ // 震动
+ case 'vibrateShort':
+ case 'vibrateLong':
+ // 界面-交互反馈
+ case 'showToast':
+ case 'hideToast':
+ case 'showLoading':
+ case 'hideLoading':
+ case 'showModal':
+ case 'showActionSheet':
+ // 设置导航条
+ case 'setNavigationBarTitle':
+ case 'setNavigationBarColor':
+ // 背景
+ case 'setBackgroundColor':
+ // 滚动
+ case 'pageScrollTo':
+ // 文件
+ case 'saveFile':
+ case 'getSavedFileList':
+ case 'getSavedFileInfo':
+ case 'removeSavedFile':
+ case 'getFileInfo':
+ // 登录
+ case 'login':
+ case 'checkSession':
+ // 获取用户信息
+ case 'getUserInfo':
+ case 'getDeviceInfo':
+ case 'getSystemInfoSync':
+
+ case 'onAppShow':
+ case 'onAppHide':
+ case 'offAppShow':
+ case 'offAppHide':
+ callCallbackFun(data)
+ break;
+ }
+}
+
+let deviceInfo = {}
+let systemInfo = {}
+postMessage('getSystemInfoSync', {
+ success: (res)=> {
+ systemInfo = res
+ }
+});
+// 当StorageInfo改变后获取 StorageInfo
+const getStorageInfo = () => {
+ postMessage('getStorageInfoSync', {
+ success: (res)=> {
+ service_storageInfo = res
+ }
+ })
+}
+getStorageInfo()
+postMessage('getDeviceInfo', {
+ success: (res)=> {
+ deviceInfo = res
+ }
+})
+/**
+* 接收小程序发送的data消息
+* */
+window.addEventListener('message', listener)
+window.addEventListener('error', callErrorrCallBackFunc)
diff --git a/packages/uni-mp-weibo/template/tsconfig.json b/packages/uni-mp-weibo/template/tsconfig.json
new file mode 100644
index 00000000000..867de880c0a
--- /dev/null
+++ b/packages/uni-mp-weibo/template/tsconfig.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": false,
+ "strict": true,
+ "noImplicitAny": true,
+ "target": "ES2015",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "sourceMap": true,
+ // "noLib": true,
+ "lib": ["ES2015"],
+ "typeRoots": ["./node_modules/@wbox-types", "./node_modules/@types"],
+ "baseUrl": "./src",
+ "paths": {
+ "@/*":[
+ "./*"
+ ]
+ },
+ "outDir": "dist/wboxapp"
+ },
+ "typeAcquisition": {
+ "enable": true
+ },
+ "include": [
+ "src/**/*"
+ ]
+}
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/template/wbox.config.json b/packages/uni-mp-weibo/template/wbox.config.json
new file mode 100644
index 00000000000..b1cf6fb4ee8
--- /dev/null
+++ b/packages/uni-mp-weibo/template/wbox.config.json
@@ -0,0 +1,16 @@
+{
+ "appId": "2567784587",
+ "name": "weibomini",
+ "version": "1.0.0",
+ "description": "weibomini",
+ "projectVersion": 17,
+ "settings": {
+ "renderType": "Web",
+ "compileType": "miniProgram",
+ "language": "JavaScript",
+ "framework": "Vue2"
+ },
+ "pluginPaths": [
+ "renderPlugin/web-view"
+ ]
+}
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/template/weibomini.wbox-workspace b/packages/uni-mp-weibo/template/weibomini.wbox-workspace
new file mode 100644
index 00000000000..6c5765bd94a
--- /dev/null
+++ b/packages/uni-mp-weibo/template/weibomini.wbox-workspace
@@ -0,0 +1,11 @@
+{
+ "folders": [{
+ "path": "."
+ }],
+ "settings": {
+ "editor.tabSize": 2,
+ "files.exclude": {
+ "node_modules/**": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/uni-mp-weibo/yarn-error.log b/packages/uni-mp-weibo/yarn-error.log
new file mode 100644
index 00000000000..95d5def16c8
--- /dev/null
+++ b/packages/uni-mp-weibo/yarn-error.log
@@ -0,0 +1,12395 @@
+Arguments:
+ /Users/zhangmeng8/.nvm/versions/node/v16.7.0/bin/node /usr/local/bin/yarn add comment-json
+
+PATH:
+ /Users/zhangmeng8/.nvm/versions/node/v16.7.0/bin:/opt/homebrew/opt/node@14/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Users/zhangmeng8/.nvm/versions/node/v16.7.0/bin:/opt/homebrew/opt/node@14/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/Users/your-user/.nvm:/Users/your-user/.nvm
+
+Yarn version:
+ 1.22.19
+
+Node version:
+ 16.7.0
+
+Platform:
+ darwin arm64
+
+Trace:
+ Error: https://registry.npmjs.org/comment-json: ETIMEDOUT
+ at Timeout._onTimeout (/usr/local/lib/node_modules/yarn/lib/cli.js:141550:19)
+ at listOnTimeout (node:internal/timers:557:17)
+ at processTimers (node:internal/timers:500:7)
+
+npm manifest:
+ {
+ "name": "@dcloudio/uni-mp-weibo",
+ "version": "2.0.0-32920211029001",
+ "description": "uni-app mp-weibo",
+ "main": "dist/index.umd.min.js",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/dcloudio/uni-app.git",
+ "directory": "packages/uni-mp-weibo"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "author": "fxy060608",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "base64-arraybuffer": "^0.2.0",
+ "intersection-observer": "^0.7.0",
+ "pako": "^1.0.11",
+ "safe-area-insets": "^1.4.1"
+ },
+ "uni-app": {
+ "name": "mp-weibo",
+ "title": "weibo",
+ "main": "lib/mp-weibo/uni.config.js"
+ },
+ "gitHead": "9e2d0f8e244724fcd64880316c57d837d1778cf8"
+ }
+
+yarn manifest:
+ No manifest
+
+Lockfile:
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+ # yarn lockfile v1
+
+
+ "@ampproject/remapping@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
+ integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e"
+ dependencies:
+ "@babel/highlight" "^7.8.3"
+
+ "@babel/code-frame@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
+ integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
+ dependencies:
+ "@babel/highlight" "^7.18.6"
+
+ "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298"
+ integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==
+
+ "@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c"
+ dependencies:
+ browserslist "^4.9.1"
+ invariant "^2.2.4"
+ semver "^5.5.0"
+
+ "@babel/core@^7.1.0", "@babel/core@^7.7.5", "@babel/core@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e"
+ dependencies:
+ "@babel/code-frame" "^7.8.3"
+ "@babel/generator" "^7.9.0"
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helpers" "^7.9.0"
+ "@babel/parser" "^7.9.0"
+ "@babel/template" "^7.8.6"
+ "@babel/traverse" "^7.9.0"
+ "@babel/types" "^7.9.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.1"
+ json5 "^2.1.2"
+ lodash "^4.17.13"
+ resolve "^1.3.2"
+ semver "^5.4.1"
+ source-map "^0.5.0"
+
+ "@babel/core@^7.3.3", "@babel/core@^7.3.4", "@babel/core@^7.5.5":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13"
+ integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.21.0"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-module-transforms" "^7.21.0"
+ "@babel/helpers" "^7.21.0"
+ "@babel/parser" "^7.21.0"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.2"
+ semver "^6.3.0"
+
+ "@babel/generator@^7.21.0", "@babel/generator@^7.21.1":
+ version "7.21.1"
+ resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd"
+ integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==
+ dependencies:
+ "@babel/types" "^7.21.0"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
+ "@babel/generator@^7.9.0", "@babel/generator@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9"
+ dependencies:
+ "@babel/types" "^7.9.5"
+ jsesc "^2.5.1"
+ lodash "^4.17.13"
+ source-map "^0.5.0"
+
+ "@babel/helper-annotate-as-pure@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
+ integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+ "@babel/helper-annotate-as-pure@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
+ integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.18.6"
+ "@babel/types" "^7.18.9"
+
+ "@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503"
+ dependencies:
+ "@babel/helper-explode-assignable-expression" "^7.8.3"
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
+ integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
+ dependencies:
+ "@babel/compat-data" "^7.20.5"
+ "@babel/helper-validator-option" "^7.18.6"
+ browserslist "^4.21.3"
+ lru-cache "^5.1.1"
+ semver "^6.3.0"
+
+ "@babel/helper-compilation-targets@^7.8.7":
+ version "7.8.7"
+ resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde"
+ dependencies:
+ "@babel/compat-data" "^7.8.6"
+ browserslist "^4.9.1"
+ invariant "^2.2.4"
+ levenary "^1.1.1"
+ semver "^5.5.0"
+
+ "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
+ integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.21.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.20.7"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+
+ "@babel/helper-create-class-features-plugin@^7.8.3":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz#79753d44017806b481017f24b02fd4113c7106ea"
+ dependencies:
+ "@babel/helper-function-name" "^7.9.5"
+ "@babel/helper-member-expression-to-functions" "^7.8.3"
+ "@babel/helper-optimise-call-expression" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.6"
+ "@babel/helper-split-export-declaration" "^7.8.3"
+
+ "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.21.0.tgz#53ff78472e5ce10a52664272a239787107603ebb"
+ integrity sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ regexpu-core "^5.3.1"
+
+ "@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8":
+ version "7.8.8"
+ resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-regex" "^7.8.3"
+ regexpu-core "^4.7.0"
+
+ "@babel/helper-define-map@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15"
+ dependencies:
+ "@babel/helper-function-name" "^7.8.3"
+ "@babel/types" "^7.8.3"
+ lodash "^4.17.13"
+
+ "@babel/helper-define-polyfill-provider@^0.3.3":
+ version "0.3.3"
+ resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
+ integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
+ semver "^6.1.2"
+
+ "@babel/helper-environment-visitor@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
+ integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+
+ "@babel/helper-explode-assignable-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
+ integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+ "@babel/helper-explode-assignable-expression@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982"
+ dependencies:
+ "@babel/traverse" "^7.8.3"
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
+ integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
+
+ "@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.8.3"
+ "@babel/template" "^7.8.3"
+ "@babel/types" "^7.9.5"
+
+ "@babel/helper-get-function-arity@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-hoist-variables@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
+ integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+ "@babel/helper-hoist-variables@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
+ integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
+ dependencies:
+ "@babel/types" "^7.21.0"
+
+ "@babel/helper-member-expression-to-functions@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-module-imports@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
+ integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+ "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.0", "@babel/helper-module-transforms@^7.21.2":
+ version "7.21.2"
+ resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2"
+ integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.20.2"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.2"
+ "@babel/types" "^7.21.2"
+
+ "@babel/helper-module-transforms@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
+ dependencies:
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.6"
+ "@babel/helper-simple-access" "^7.8.3"
+ "@babel/helper-split-export-declaration" "^7.8.3"
+ "@babel/template" "^7.8.6"
+ "@babel/types" "^7.9.0"
+ lodash "^4.17.13"
+
+ "@babel/helper-optimise-call-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
+ integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+ "@babel/helper-optimise-call-expression@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670"
+
+ "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2":
+ version "7.20.2"
+ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
+ integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
+
+ "@babel/helper-regex@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965"
+ dependencies:
+ lodash "^4.17.13"
+
+ "@babel/helper-remap-async-to-generator@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
+ integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-wrap-function" "^7.18.9"
+ "@babel/types" "^7.18.9"
+
+ "@babel/helper-remap-async-to-generator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-wrap-function" "^7.8.3"
+ "@babel/template" "^7.8.3"
+ "@babel/traverse" "^7.8.3"
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331"
+ integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.20.7"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.20.7"
+ "@babel/types" "^7.20.7"
+
+ "@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6":
+ version "7.8.6"
+ resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8"
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.8.3"
+ "@babel/helper-optimise-call-expression" "^7.8.3"
+ "@babel/traverse" "^7.8.6"
+ "@babel/types" "^7.8.6"
+
+ "@babel/helper-simple-access@^7.20.2":
+ version "7.20.2"
+ resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
+ integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
+ dependencies:
+ "@babel/types" "^7.20.2"
+
+ "@babel/helper-simple-access@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
+ dependencies:
+ "@babel/template" "^7.8.3"
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
+ version "7.20.0"
+ resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
+ integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
+ dependencies:
+ "@babel/types" "^7.20.0"
+
+ "@babel/helper-split-export-declaration@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
+ integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+ "@babel/helper-split-export-declaration@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9"
+ dependencies:
+ "@babel/types" "^7.8.3"
+
+ "@babel/helper-string-parser@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
+ integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
+
+ "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
+ integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
+
+ "@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
+
+ "@babel/helper-validator-option@^7.18.6":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180"
+ integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==
+
+ "@babel/helper-wrap-function@^7.18.9":
+ version "7.20.5"
+ resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3"
+ integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==
+ dependencies:
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.20.5"
+ "@babel/types" "^7.20.5"
+
+ "@babel/helper-wrap-function@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610"
+ dependencies:
+ "@babel/helper-function-name" "^7.8.3"
+ "@babel/template" "^7.8.3"
+ "@babel/traverse" "^7.8.3"
+ "@babel/types" "^7.8.3"
+
+ "@babel/helpers@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
+ integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
+
+ "@babel/helpers@^7.9.0":
+ version "7.9.2"
+ resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f"
+ dependencies:
+ "@babel/template" "^7.8.3"
+ "@babel/traverse" "^7.9.0"
+ "@babel/types" "^7.9.0"
+
+ "@babel/highlight@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
+ integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.18.6"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+ "@babel/highlight@^7.8.3":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.9.0"
+ chalk "^2.0.0"
+ js-tokens "^4.0.0"
+
+ "@babel/parser@^7.1.0", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0":
+ version "7.9.4"
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8"
+
+ "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2", "@babel/parser@^7.3.3":
+ version "7.21.2"
+ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3"
+ integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==
+
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
+ integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1"
+ integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/plugin-proposal-optional-chaining" "^7.20.7"
+
+ "@babel/plugin-proposal-async-generator-functions@^7.20.1":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326"
+ integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+ "@babel/plugin-proposal-async-generator-functions@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-remap-async-to-generator" "^7.8.3"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+
+ "@babel/plugin-proposal-class-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
+ integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-proposal-class-properties@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-proposal-class-static-block@^7.18.6":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.21.0.tgz#77bdd66fb7b605f3a61302d224bdfacf5547977d"
+ integrity sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+ "@babel/plugin-proposal-decorators@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz#2156860ab65c5abf068c3f67042184041066543e"
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-decorators" "^7.8.3"
+
+ "@babel/plugin-proposal-dynamic-import@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
+ integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+ "@babel/plugin-proposal-dynamic-import@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+
+ "@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
+ integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+ "@babel/plugin-proposal-json-strings@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
+ integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+ "@babel/plugin-proposal-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+
+ "@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83"
+ integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+ "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
+ integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+ "@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+
+ "@babel/plugin-proposal-numeric-separator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
+ integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+ "@babel/plugin-proposal-numeric-separator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+
+ "@babel/plugin-proposal-object-rest-spread@^7.20.2":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a"
+ integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==
+ dependencies:
+ "@babel/compat-data" "^7.20.5"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.20.7"
+
+ "@babel/plugin-proposal-object-rest-spread@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.9.5"
+
+ "@babel/plugin-proposal-optional-catch-binding@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
+ integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+ "@babel/plugin-proposal-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+
+ "@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea"
+ integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+ "@babel/plugin-proposal-optional-chaining@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+
+ "@babel/plugin-proposal-private-methods@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
+ integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-proposal-private-property-in-object@^7.18.6":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0.tgz#19496bd9883dd83c23c7d7fc45dcd9ad02dfa1dc"
+ integrity sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+ "@babel/plugin-proposal-unicode-property-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
+ integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3":
+ version "7.8.8"
+ resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.8.8"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+ "@babel/plugin-syntax-class-properties@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+ "@babel/plugin-syntax-decorators@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-import-assertions@^7.20.0":
+ version "7.20.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4"
+ integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+ "@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-jsx@^7.2.0", "@babel/plugin-syntax-jsx@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+ "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+ "@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+ "@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+ "@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+ "@babel/plugin-syntax-top-level-await@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-arrow-functions@^7.18.6":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551"
+ integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-arrow-functions@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-async-to-generator@^7.18.6":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354"
+ integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==
+ dependencies:
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
+
+ "@babel/plugin-transform-async-to-generator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086"
+ dependencies:
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-remap-async-to-generator" "^7.8.3"
+
+ "@babel/plugin-transform-block-scoped-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
+ integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-block-scoped-functions@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-block-scoping@^7.20.2":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.21.0.tgz#e737b91037e5186ee16b76e7ae093358a5634f02"
+ integrity sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-block-scoping@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ lodash "^4.17.13"
+
+ "@babel/plugin-transform-classes@^7.20.2":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.21.0.tgz#f469d0b07a4c5a7dbb21afad9e27e57b47031665"
+ integrity sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-compilation-targets" "^7.20.7"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-replace-supers" "^7.20.7"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ globals "^11.1.0"
+
+ "@babel/plugin-transform-classes@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-define-map" "^7.8.3"
+ "@babel/helper-function-name" "^7.9.5"
+ "@babel/helper-optimise-call-expression" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.6"
+ "@babel/helper-split-export-declaration" "^7.8.3"
+ globals "^11.1.0"
+
+ "@babel/plugin-transform-computed-properties@^7.18.9":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa"
+ integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/template" "^7.20.7"
+
+ "@babel/plugin-transform-computed-properties@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-destructuring@^7.20.2":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454"
+ integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-destructuring@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-dotall-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
+ integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-duplicate-keys@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
+ integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+ "@babel/plugin-transform-duplicate-keys@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-exponentiation-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
+ integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-exponentiation-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7"
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-for-of@^7.18.8":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.21.0.tgz#964108c9988de1a60b4be2354a7d7e245f36e86e"
+ integrity sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-for-of@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
+ integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+ "@babel/plugin-transform-function-name@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b"
+ dependencies:
+ "@babel/helper-function-name" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
+ integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+ "@babel/plugin-transform-literals@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-member-expression-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
+ integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-member-expression-literals@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-modules-amd@^7.19.6":
+ version "7.20.11"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a"
+ integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-modules-amd@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ babel-plugin-dynamic-import-node "^2.3.0"
+
+ "@babel/plugin-transform-modules-commonjs@^7.19.6":
+ version "7.21.2"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7"
+ integrity sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.21.2"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-simple-access" "^7.20.2"
+
+ "@babel/plugin-transform-modules-commonjs@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-simple-access" "^7.8.3"
+ babel-plugin-dynamic-import-node "^2.3.0"
+
+ "@babel/plugin-transform-modules-systemjs@^7.19.6":
+ version "7.20.11"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e"
+ integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-module-transforms" "^7.20.11"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-identifier" "^7.19.1"
+
+ "@babel/plugin-transform-modules-systemjs@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90"
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.8.3"
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ babel-plugin-dynamic-import-node "^2.3.0"
+
+ "@babel/plugin-transform-modules-umd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
+ integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-modules-umd@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697"
+ dependencies:
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1":
+ version "7.20.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8"
+ integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.20.5"
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.8.3"
+
+ "@babel/plugin-transform-new-target@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
+ integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-new-target@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-object-super@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
+ integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.6"
+
+ "@babel/plugin-transform-object-super@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.3"
+
+ "@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f"
+ integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+
+ "@babel/plugin-transform-parameters@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795"
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-property-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
+ integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-property-literals@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-regenerator@^7.18.6":
+ version "7.20.5"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d"
+ integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ regenerator-transform "^0.15.1"
+
+ "@babel/plugin-transform-regenerator@^7.8.7":
+ version "7.8.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8"
+ dependencies:
+ regenerator-transform "^0.14.2"
+
+ "@babel/plugin-transform-reserved-words@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a"
+ integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-reserved-words@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-runtime@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b"
+ dependencies:
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ resolve "^1.8.1"
+ semver "^5.5.1"
+
+ "@babel/plugin-transform-shorthand-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
+ integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-shorthand-properties@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-spread@^7.19.0":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e"
+ integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
+
+ "@babel/plugin-transform-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-sticky-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
+ integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-sticky-regex@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/helper-regex" "^7.8.3"
+
+ "@babel/plugin-transform-template-literals@^7.18.9", "@babel/plugin-transform-template-literals@^7.2.0":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
+ integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+ "@babel/plugin-transform-template-literals@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80"
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-typeof-symbol@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
+ integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+ "@babel/plugin-transform-typeof-symbol@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/plugin-transform-unicode-escapes@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
+ integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+ "@babel/plugin-transform-unicode-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
+ integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+ "@babel/plugin-transform-unicode-regex@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad"
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+ "@babel/preset-env@^7.3.1", "@babel/preset-env@^7.5.5":
+ version "7.20.2"
+ resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506"
+ integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==
+ dependencies:
+ "@babel/compat-data" "^7.20.1"
+ "@babel/helper-compilation-targets" "^7.20.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-async-generator-functions" "^7.20.1"
+ "@babel/plugin-proposal-class-properties" "^7.18.6"
+ "@babel/plugin-proposal-class-static-block" "^7.18.6"
+ "@babel/plugin-proposal-dynamic-import" "^7.18.6"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
+ "@babel/plugin-proposal-json-strings" "^7.18.6"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
+ "@babel/plugin-proposal-numeric-separator" "^7.18.6"
+ "@babel/plugin-proposal-object-rest-spread" "^7.20.2"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-private-methods" "^7.18.6"
+ "@babel/plugin-proposal-private-property-in-object" "^7.18.6"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-import-assertions" "^7.20.0"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-transform-arrow-functions" "^7.18.6"
+ "@babel/plugin-transform-async-to-generator" "^7.18.6"
+ "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
+ "@babel/plugin-transform-block-scoping" "^7.20.2"
+ "@babel/plugin-transform-classes" "^7.20.2"
+ "@babel/plugin-transform-computed-properties" "^7.18.9"
+ "@babel/plugin-transform-destructuring" "^7.20.2"
+ "@babel/plugin-transform-dotall-regex" "^7.18.6"
+ "@babel/plugin-transform-duplicate-keys" "^7.18.9"
+ "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
+ "@babel/plugin-transform-for-of" "^7.18.8"
+ "@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-literals" "^7.18.9"
+ "@babel/plugin-transform-member-expression-literals" "^7.18.6"
+ "@babel/plugin-transform-modules-amd" "^7.19.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.19.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.19.6"
+ "@babel/plugin-transform-modules-umd" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
+ "@babel/plugin-transform-new-target" "^7.18.6"
+ "@babel/plugin-transform-object-super" "^7.18.6"
+ "@babel/plugin-transform-parameters" "^7.20.1"
+ "@babel/plugin-transform-property-literals" "^7.18.6"
+ "@babel/plugin-transform-regenerator" "^7.18.6"
+ "@babel/plugin-transform-reserved-words" "^7.18.6"
+ "@babel/plugin-transform-shorthand-properties" "^7.18.6"
+ "@babel/plugin-transform-spread" "^7.19.0"
+ "@babel/plugin-transform-sticky-regex" "^7.18.6"
+ "@babel/plugin-transform-template-literals" "^7.18.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.18.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.18.10"
+ "@babel/plugin-transform-unicode-regex" "^7.18.6"
+ "@babel/preset-modules" "^0.1.5"
+ "@babel/types" "^7.20.2"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
+ core-js-compat "^3.25.1"
+ semver "^6.3.0"
+
+ "@babel/preset-env@^7.9.0":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f"
+ dependencies:
+ "@babel/compat-data" "^7.9.0"
+ "@babel/helper-compilation-targets" "^7.8.7"
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-proposal-async-generator-functions" "^7.8.3"
+ "@babel/plugin-proposal-dynamic-import" "^7.8.3"
+ "@babel/plugin-proposal-json-strings" "^7.8.3"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-proposal-numeric-separator" "^7.8.3"
+ "@babel/plugin-proposal-object-rest-spread" "^7.9.5"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-proposal-optional-chaining" "^7.9.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.8.3"
+ "@babel/plugin-syntax-async-generators" "^7.8.0"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.0"
+ "@babel/plugin-syntax-json-strings" "^7.8.0"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.0"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.0"
+ "@babel/plugin-syntax-top-level-await" "^7.8.3"
+ "@babel/plugin-transform-arrow-functions" "^7.8.3"
+ "@babel/plugin-transform-async-to-generator" "^7.8.3"
+ "@babel/plugin-transform-block-scoped-functions" "^7.8.3"
+ "@babel/plugin-transform-block-scoping" "^7.8.3"
+ "@babel/plugin-transform-classes" "^7.9.5"
+ "@babel/plugin-transform-computed-properties" "^7.8.3"
+ "@babel/plugin-transform-destructuring" "^7.9.5"
+ "@babel/plugin-transform-dotall-regex" "^7.8.3"
+ "@babel/plugin-transform-duplicate-keys" "^7.8.3"
+ "@babel/plugin-transform-exponentiation-operator" "^7.8.3"
+ "@babel/plugin-transform-for-of" "^7.9.0"
+ "@babel/plugin-transform-function-name" "^7.8.3"
+ "@babel/plugin-transform-literals" "^7.8.3"
+ "@babel/plugin-transform-member-expression-literals" "^7.8.3"
+ "@babel/plugin-transform-modules-amd" "^7.9.0"
+ "@babel/plugin-transform-modules-commonjs" "^7.9.0"
+ "@babel/plugin-transform-modules-systemjs" "^7.9.0"
+ "@babel/plugin-transform-modules-umd" "^7.9.0"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3"
+ "@babel/plugin-transform-new-target" "^7.8.3"
+ "@babel/plugin-transform-object-super" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.9.5"
+ "@babel/plugin-transform-property-literals" "^7.8.3"
+ "@babel/plugin-transform-regenerator" "^7.8.7"
+ "@babel/plugin-transform-reserved-words" "^7.8.3"
+ "@babel/plugin-transform-shorthand-properties" "^7.8.3"
+ "@babel/plugin-transform-spread" "^7.8.3"
+ "@babel/plugin-transform-sticky-regex" "^7.8.3"
+ "@babel/plugin-transform-template-literals" "^7.8.3"
+ "@babel/plugin-transform-typeof-symbol" "^7.8.4"
+ "@babel/plugin-transform-unicode-regex" "^7.8.3"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.9.5"
+ browserslist "^4.9.1"
+ core-js-compat "^3.6.2"
+ invariant "^2.2.2"
+ levenary "^1.1.1"
+ semver "^5.5.0"
+
+ "@babel/preset-modules@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+ "@babel/preset-modules@^0.1.5":
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
+ integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+ "@babel/register@^7.0.0":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/register/-/register-7.21.0.tgz#c97bf56c2472e063774f31d344c592ebdcefa132"
+ integrity sha512-9nKsPmYDi5DidAqJaQooxIhsLJiNMkGr8ypQ8Uic7cIox7UCDsM7HuUGxdGT7mSDTYbqzIdsOWzfBton/YJrMw==
+ dependencies:
+ clone-deep "^4.0.1"
+ find-cache-dir "^2.0.0"
+ make-dir "^2.1.0"
+ pirates "^4.0.5"
+ source-map-support "^0.5.16"
+
+ "@babel/regjsgen@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
+ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
+
+ "@babel/runtime-corejs2@^7.0.0":
+ version "7.9.2"
+ resolved "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.9.2.tgz#f11d074ff99b9b4319b5ecf0501f12202bf2bf4d"
+ dependencies:
+ core-js "^2.6.5"
+ regenerator-runtime "^0.13.4"
+
+ "@babel/runtime@^7.3.1":
+ version "7.21.0"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
+ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
+ dependencies:
+ regenerator-runtime "^0.13.11"
+
+ "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+ version "7.9.2"
+ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06"
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+ "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3":
+ version "7.20.7"
+ resolved "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
+ integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+
+ "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
+ version "7.8.6"
+ resolved "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
+ dependencies:
+ "@babel/code-frame" "^7.8.3"
+ "@babel/parser" "^7.8.6"
+ "@babel/types" "^7.8.6"
+
+ "@babel/traverse@^7.1.0", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2"
+ dependencies:
+ "@babel/code-frame" "^7.8.3"
+ "@babel/generator" "^7.9.5"
+ "@babel/helper-function-name" "^7.9.5"
+ "@babel/helper-split-export-declaration" "^7.8.3"
+ "@babel/parser" "^7.9.0"
+ "@babel/types" "^7.9.5"
+ debug "^4.1.0"
+ globals "^11.1.0"
+ lodash "^4.17.13"
+
+ "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.3.3":
+ version "7.21.2"
+ resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75"
+ integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.21.1"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.21.2"
+ "@babel/types" "^7.21.2"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+ "@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444"
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.9.5"
+ lodash "^4.17.13"
+ to-fast-properties "^2.0.0"
+
+ "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.3":
+ version "7.21.2"
+ resolved "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1"
+ integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==
+ dependencies:
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ to-fast-properties "^2.0.0"
+
+ "@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+
+ "@cnakazawa/watch@^1.0.3":
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
+ dependencies:
+ exec-sh "^0.3.2"
+ minimist "^1.2.0"
+
+ "@dcloudio/types@^2.6.12":
+ version "2.6.12"
+ resolved "https://registry.npmjs.org/@dcloudio/types/-/types-2.6.12.tgz#6c9559b9e65483f355dd61cb88fe8c14c8e61189"
+ integrity sha512-mrCMwcINy1IFjU9VUqLeWBkj404yWs5paLDttBcA+eqUjanuUQbBcTVPqlrGgkyzLXDcV2oDDZRSNxNpXi4kMQ==
+
+ "@dcloudio/types@^3.0.15":
+ version "3.2.11"
+ resolved "https://registry.npmjs.org/@dcloudio/types/-/types-3.2.11.tgz#2615b7424fb608340108ae8f34d81d305ca305f9"
+ integrity sha512-Ws+pUiQMvCcSjg0soF+vTTwwsdNlK/1cxIfo5LBBDFPoXfUAAh6k9HnCt5cudERNhY0M3wE7ATMx/1Cb9bmUig==
+
+ "@hap-toolkit/aaptjs@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@hap-toolkit/aaptjs/-/aaptjs-1.0.0.tgz#460d45a846c0b786a421c82ce25fcd9fff0928e6"
+ integrity sha512-yxWtptWse3ZIt0/uAHbGaJ3O2zZEk1yLjdfF8Kbci/it4cm/PTIv0hB3TabGdvOffmi8Wqnm9vt40eglZdvpvg==
+ dependencies:
+ shelljs "^0.8.1"
+
+ "@hap-toolkit/compiler@0.6.15", "@hap-toolkit/compiler@^0.6.13":
+ version "0.6.15"
+ resolved "https://registry.npmjs.org/@hap-toolkit/compiler/-/compiler-0.6.15.tgz#d8e2a16f2eca8f91b2ecaffecb7812ac6d1bac84"
+ integrity sha512-ivGKaBhC5NoNrb9qXhzrqPyWVG1YDEUxkTeveL2oqve4WLlK7h7fJfGjMx/jSvGvLGyhquofF5mxkQzLdCCieg==
+ dependencies:
+ "@babel/core" "^7.3.4"
+ "@babel/plugin-transform-template-literals" "^7.2.0"
+ "@hap-toolkit/shared-utils" "0.6.15"
+ css "^2.2.4"
+ css-what "^2.1.3"
+ escodegen "^1.11.1"
+ esprima "^4.0.1"
+ hash-sum "^1.0.2"
+ loader-utils "^1.2.3"
+ parse5 "^3.0.3"
+ source-map "^0.7.3"
+ webpack "^4.29.5"
+
+ "@hap-toolkit/debugger@^0.6.13":
+ version "0.6.15"
+ resolved "https://registry.npmjs.org/@hap-toolkit/debugger/-/debugger-0.6.15.tgz#51e1a2078d0a2bc031412ace28c9ac5505d400e3"
+ integrity sha512-AO2ZHJiqS9gP3Xi/6S63Sl2Tgf81NEhNVjY81RHIhraoEPuTsPPUsUQoYEvU6tO9Y69OXCVT4C1O+kY/LrwY+g==
+ dependencies:
+ "@hap-toolkit/shared-utils" "0.6.15"
+ adb-commander "^0.1.8"
+ adb-devices-emitter "^0.1.8"
+ chrome-simple-launcher "0.1.3"
+ koa "^2.7.0"
+ koa-body "^4.0.8"
+ koa-router "^7.4.0"
+ koa-static "^5.0.0"
+ qr-image "^3.2.0"
+ socket.io "^2.2.0"
+
+ "@hap-toolkit/dsl-vue@0.6.13":
+ version "0.6.13"
+ resolved "https://registry.npmjs.org/@hap-toolkit/dsl-vue/-/dsl-vue-0.6.13.tgz#989dad5c37383d9e0f0ab9fba293257bbb77f059"
+ integrity sha512-mIupVZ6gseenCAY+BFLNGttFPcmuy3pGgB5dUUPBxnCvXcZhgAWQenAI/Y3/tz0ubObVjWLfbZKXDGfpLPTd9g==
+ dependencies:
+ "@hap-toolkit/compiler" "^0.6.13"
+ "@hap-toolkit/packager" "^0.6.13"
+ "@hap-toolkit/shared-utils" "^0.6.13"
+ css-loader "^2.1.1"
+ md5 "^2.2.1"
+ mini-css-extract-plugin "^0.5.0"
+ url-loader "^2.1.0"
+ vue-loader "^15.6.4"
+ vue-template-compiler "^2.6.7"
+ webpack-sources "^1.3.0"
+
+ "@hap-toolkit/packager@0.6.13":
+ version "0.6.13"
+ resolved "https://registry.npmjs.org/@hap-toolkit/packager/-/packager-0.6.13.tgz#d493027fdf63f5a30a2f0fa62d7d43816da56c4a"
+ integrity sha512-x0PoC+6rxAcRjryuNbW5o7LBjRxTFUkgbWl2ovOTjrKaChw51JjSqcLR28klk4SiiPLUPpAJxMjz/ooc35yZ3Q==
+ dependencies:
+ "@babel/core" "^7.3.3"
+ "@babel/preset-env" "^7.3.1"
+ "@babel/register" "^7.0.0"
+ "@babel/runtime" "^7.3.1"
+ "@hap-toolkit/compiler" "^0.6.13"
+ "@hap-toolkit/shared-utils" "^0.6.13"
+ aaptjs "^1.3.1"
+ babel-loader "^8.0.5"
+ fs-extra "^7.0.1"
+ hash-sum "^1.0.2"
+ jsrsasign "^7.2.2"
+ jszip "^3.1.5"
+ koa-bodyparser "^4.2.1"
+ koa-router "^7.4.0"
+ loader-utils "^1.2.3"
+ moment "^2.24.0"
+ qr-image "^3.2.0"
+ webpack "^4.29.5"
+
+ "@hap-toolkit/packager@^0.6.13":
+ version "0.6.15"
+ resolved "https://registry.npmjs.org/@hap-toolkit/packager/-/packager-0.6.15.tgz#fa43e9504b26da6612fdc52c638629ff3b229b7c"
+ integrity sha512-KIExBB+KrjSQkGWOcVZJhdQxHjoxgjakrpKfPwKFs46Q1cPvFJtWMdqGhQkBwXfyV8WZ3WkIUrwz08gsnD/VwA==
+ dependencies:
+ "@babel/core" "^7.3.3"
+ "@babel/preset-env" "^7.3.1"
+ "@babel/register" "^7.0.0"
+ "@babel/runtime" "^7.3.1"
+ "@hap-toolkit/aaptjs" "^1.0.0"
+ "@hap-toolkit/compiler" "0.6.15"
+ "@hap-toolkit/shared-utils" "0.6.15"
+ babel-loader "^8.0.5"
+ fs-extra "^7.0.1"
+ hash-sum "^1.0.2"
+ jsrsasign "^7.2.2"
+ jszip "^3.1.5"
+ koa-bodyparser "^4.2.1"
+ koa-router "^7.4.0"
+ loader-utils "^1.2.3"
+ moment "^2.24.0"
+ qr-image "^3.2.0"
+ webpack "^4.29.5"
+
+ "@hap-toolkit/server@0.6.13":
+ version "0.6.13"
+ resolved "https://registry.npmjs.org/@hap-toolkit/server/-/server-0.6.13.tgz#cc83a4b44df4456bdbd41a4b925f062a2d4e5434"
+ integrity sha512-d29Ivum+MvPL0AEnjHW+jNa8FUqnmCPvwHii8la8OGg9HzTj7Oq7pr9n+VjksbfNI0aWdlf+uzyZEuh9rUxJ7g==
+ dependencies:
+ "@babel/runtime" "^7.3.1"
+ "@hap-toolkit/debugger" "^0.6.13"
+ "@hap-toolkit/packager" "^0.6.13"
+ "@hap-toolkit/shared-utils" "^0.6.13"
+ jszip "^3.2.0"
+ koa "^2.7.0"
+ koa-body "^4.0.8"
+ koa-mount "^4.0.0"
+ koa-router "^7.4.0"
+ koa-send "^5.0.0"
+ koa-static "^5.0.0"
+ opn "^5.4.0"
+ portfinder "^1.0.20"
+ qr-image "^3.2.0"
+
+ "@hap-toolkit/shared-utils@0.6.15", "@hap-toolkit/shared-utils@^0.6.13":
+ version "0.6.15"
+ resolved "https://registry.npmjs.org/@hap-toolkit/shared-utils/-/shared-utils-0.6.15.tgz#408570267a73047c46cad6b2f71620361adfb5e0"
+ integrity sha512-LxjISCLd4opthpkPIQNkMnVY+P5iWG8X6PwexET8tzWYvIUVNa66NR5lOCeOYMoLaMzxQkLZf1HTw14S7zRezQ==
+ dependencies:
+ chalk "^2.4.2"
+ qrcode-terminal "^0.12.0"
+
+ "@hapi/address@2.x.x":
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
+
+ "@hapi/bourne@1.x.x":
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a"
+
+ "@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0":
+ version "8.5.1"
+ resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
+
+ "@hapi/joi@^15.0.1":
+ version "15.1.1"
+ resolved "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7"
+ dependencies:
+ "@hapi/address" "2.x.x"
+ "@hapi/bourne" "1.x.x"
+ "@hapi/hoek" "8.x.x"
+ "@hapi/topo" "3.x.x"
+
+ "@hapi/topo@3.x.x":
+ version "3.1.6"
+ resolved "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
+ dependencies:
+ "@hapi/hoek" "^8.3.0"
+
+ "@intervolga/optimize-cssnano-plugin@^1.0.5":
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz#be7c7846128b88f6a9b1d1261a0ad06eb5c0fdf8"
+ dependencies:
+ cssnano "^4.0.0"
+ cssnano-preset-default "^4.0.0"
+ postcss "^7.0.0"
+
+ "@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b"
+ dependencies:
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
+
+ "@istanbuljs/schema@^0.1.2":
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
+
+ "@jest/console@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/console/-/console-25.4.0.tgz#e2760b532701137801ba824dcff6bc822c961bac"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ jest-message-util "^25.4.0"
+ jest-util "^25.4.0"
+ slash "^3.0.0"
+
+ "@jest/core@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/core/-/core-25.4.0.tgz#cc1fe078df69b8f0fbb023bb0bcee23ef3b89411"
+ dependencies:
+ "@jest/console" "^25.4.0"
+ "@jest/reporters" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.3"
+ jest-changed-files "^25.4.0"
+ jest-config "^25.4.0"
+ jest-haste-map "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.4.0"
+ jest-resolve-dependencies "^25.4.0"
+ jest-runner "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-snapshot "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
+ jest-watcher "^25.4.0"
+ micromatch "^4.0.2"
+ p-each-series "^2.1.0"
+ realpath-native "^2.0.0"
+ rimraf "^3.0.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
+ "@jest/environment@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/environment/-/environment-25.4.0.tgz#45071f525f0d8c5a51ed2b04fd42b55a8f0c7cb3"
+ dependencies:
+ "@jest/fake-timers" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ jest-mock "^25.4.0"
+
+ "@jest/fake-timers@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-25.4.0.tgz#3a9a4289ba836abd084953dca406389a57e00fbd"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-mock "^25.4.0"
+ jest-util "^25.4.0"
+ lolex "^5.0.0"
+
+ "@jest/reporters@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-25.4.0.tgz#836093433b32ce4e866298af2d6fcf6ed351b0b0"
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.2"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ jest-haste-map "^25.4.0"
+ jest-resolve "^25.4.0"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
+ slash "^3.0.0"
+ source-map "^0.6.0"
+ string-length "^3.1.0"
+ terminal-link "^2.0.0"
+ v8-to-istanbul "^4.1.3"
+ optionalDependencies:
+ node-notifier "^6.0.0"
+
+ "@jest/source-map@^25.2.6":
+ version "25.2.6"
+ resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-25.2.6.tgz#0ef2209514c6d445ebccea1438c55647f22abb4c"
+ dependencies:
+ callsites "^3.0.0"
+ graceful-fs "^4.2.3"
+ source-map "^0.6.0"
+
+ "@jest/test-result@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-25.4.0.tgz#6f2ec2c8da9981ef013ad8651c1c6f0cb20c6324"
+ dependencies:
+ "@jest/console" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
+ "@jest/test-sequencer@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-25.4.0.tgz#2b96f9d37f18dc3336b28e3c8070f97f9f55f43b"
+ dependencies:
+ "@jest/test-result" "^25.4.0"
+ jest-haste-map "^25.4.0"
+ jest-runner "^25.4.0"
+ jest-runtime "^25.4.0"
+
+ "@jest/transform@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/transform/-/transform-25.4.0.tgz#eef36f0367d639e2fd93dccd758550377fbb9962"
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/types" "^25.4.0"
+ babel-plugin-istanbul "^6.0.0"
+ chalk "^3.0.0"
+ convert-source-map "^1.4.0"
+ fast-json-stable-stringify "^2.0.0"
+ graceful-fs "^4.2.3"
+ jest-haste-map "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-util "^25.4.0"
+ micromatch "^4.0.2"
+ pirates "^4.0.1"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
+ source-map "^0.6.1"
+ write-file-atomic "^3.0.0"
+
+ "@jest/types@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/@jest/types/-/types-25.4.0.tgz#5afeb8f7e1cba153a28e5ac3c9fe3eede7206d59"
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^1.1.1"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+
+ "@jridgewell/gen-mapping@^0.1.0":
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+ integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+ "@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
+ integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+ "@jridgewell/resolve-uri@3.1.0":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
+ "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+ "@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.14"
+ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+ "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.17"
+ resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
+ integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
+ "@mrmlnc/readdir-enhanced@^2.2.1":
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
+ dependencies:
+ call-me-maybe "^1.0.1"
+ glob-to-regexp "^0.3.0"
+
+ "@nodelib/fs.scandir@2.1.3":
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b"
+ dependencies:
+ "@nodelib/fs.stat" "2.0.3"
+ run-parallel "^1.1.9"
+
+ "@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3"
+
+ "@nodelib/fs.stat@^1.1.2":
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
+
+ "@nodelib/fs.walk@^1.2.3":
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976"
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.3"
+ fastq "^1.6.0"
+
+ "@rollup/plugin-alias@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/@rollup/plugin-alias/-/plugin-alias-3.1.0.tgz#4f7bc9d15e030d75da9224aaa5105129c54a3ffd"
+ dependencies:
+ slash "^3.0.0"
+
+ "@rollup/plugin-commonjs@^11.1.0":
+ version "11.1.0"
+ resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz#60636c7a722f54b41e419e1709df05c7234557ef"
+ dependencies:
+ "@rollup/pluginutils" "^3.0.8"
+ commondir "^1.0.1"
+ estree-walker "^1.0.1"
+ glob "^7.1.2"
+ is-reference "^1.1.2"
+ magic-string "^0.25.2"
+ resolve "^1.11.0"
+
+ "@rollup/plugin-json@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3"
+ dependencies:
+ "@rollup/pluginutils" "^3.0.8"
+
+ "@rollup/plugin-node-resolve@^7.1.3":
+ version "7.1.3"
+ resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca"
+ dependencies:
+ "@rollup/pluginutils" "^3.0.8"
+ "@types/resolve" "0.0.8"
+ builtin-modules "^3.1.0"
+ is-module "^1.0.0"
+ resolve "^1.14.2"
+
+ "@rollup/plugin-replace@^2.3.1":
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.2.tgz#da4e0939047f793c2eb5eedfd6c271232d0a033f"
+ dependencies:
+ "@rollup/pluginutils" "^3.0.8"
+ magic-string "^0.25.5"
+
+ "@rollup/pluginutils@^3.0.8":
+ version "3.0.9"
+ resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.0.9.tgz#aa6adca2c45e5a1b950103a999e3cddfe49fd775"
+ dependencies:
+ "@types/estree" "0.0.39"
+ estree-walker "^1.0.1"
+ micromatch "^4.0.2"
+
+ "@sinonjs/commons@^1.7.0":
+ version "1.7.2"
+ resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2"
+ dependencies:
+ type-detect "4.0.8"
+
+ "@soda/friendly-errors-webpack-plugin@^1.7.1":
+ version "1.7.1"
+ resolved "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.1.tgz#706f64bcb4a8b9642b48ae3ace444c70334d615d"
+ dependencies:
+ chalk "^1.1.3"
+ error-stack-parser "^2.0.0"
+ string-width "^2.0.0"
+
+ "@soda/get-current-script@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.0.tgz#623aa40623550e3b94767cffeb096a6fb597ed09"
+
+ "@types/babel__core@^7.1.7":
+ version "7.1.7"
+ resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89"
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+ "@types/babel__generator@*":
+ version "7.6.1"
+ resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04"
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+ "@types/babel__template@*":
+ version "7.0.2"
+ resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307"
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+ "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
+ version "7.0.10"
+ resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.10.tgz#d9a99f017317d9b3d1abc2ced45d3bca68df0daf"
+ dependencies:
+ "@babel/types" "^7.3.0"
+
+ "@types/color-name@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
+
+ "@types/estree@*":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
+ integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
+
+ "@types/estree@0.0.39":
+ version "0.0.39"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
+
+ "@types/events@*":
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
+
+ "@types/formidable@^1.0.31":
+ version "1.2.5"
+ resolved "https://registry.npmjs.org/@types/formidable/-/formidable-1.2.5.tgz#561d026e5f09179e5c8ef7b31e8f4652e11abe4c"
+ integrity sha512-zu3mQJa4hDNubEMViSj937602XdDGzK7Q5pJ5QmLUbNxclbo9tZGt5jtwM352ssZ+pqo5V4H14TBvT/ALqQQcA==
+ dependencies:
+ "@types/node" "*"
+
+ "@types/fs-extra@^8.0.1":
+ version "8.1.2"
+ resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.2.tgz#7125cc2e4bdd9bd2fc83005ffdb1d0ba00cca61f"
+ integrity sha512-SvSrYXfWSc7R4eqnOzbQF4TZmfpNSM9FrSWLU3EUnWBuyZqNBOrv1B1JA3byUDPUl9z4Ab3jeZG2eDdySlgNMg==
+ dependencies:
+ "@types/node" "*"
+
+ "@types/glob@^7.1.1":
+ version "7.1.1"
+ resolved "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
+ dependencies:
+ "@types/events" "*"
+ "@types/minimatch" "*"
+ "@types/node" "*"
+
+ "@types/html5plus@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@types/html5plus/-/html5plus-1.0.0.tgz#a88600fc9de85b785959754aea403c0a8d0714ba"
+
+ "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
+
+ "@types/istanbul-lib-report@*":
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+
+ "@types/istanbul-reports@^1.1.1":
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a"
+ dependencies:
+ "@types/istanbul-lib-coverage" "*"
+ "@types/istanbul-lib-report" "*"
+
+ "@types/minimatch@*":
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
+
+ "@types/node@*":
+ version "13.13.2"
+ resolved "https://registry.npmjs.org/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54"
+
+ "@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+
+ "@types/prettier@^1.19.0":
+ version "1.19.1"
+ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
+
+ "@types/q@^1.5.1":
+ version "1.5.2"
+ resolved "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
+
+ "@types/resolve@0.0.8":
+ version "0.0.8"
+ resolved "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
+ dependencies:
+ "@types/node" "*"
+
+ "@types/stack-utils@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
+
+ "@types/yargs-parser@*":
+ version "15.0.0"
+ resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
+
+ "@types/yargs@^15.0.0":
+ version "15.0.4"
+ resolved "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299"
+ dependencies:
+ "@types/yargs-parser" "*"
+
+ "@vue/babel-helper-vue-jsx-merge-props@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040"
+
+ "@vue/babel-plugin-transform-vue-jsx@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.1.2.tgz#c0a3e6efc022e75e4247b448a8fc6b86f03e91c0"
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0"
+ html-tags "^2.0.0"
+ lodash.kebabcase "^4.1.1"
+ svg-tags "^1.0.0"
+
+ "@vue/babel-preset-app@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.3.1.tgz#bb67aae562983067c5b242c27fb7de17f40cf109"
+ dependencies:
+ "@babel/core" "^7.9.0"
+ "@babel/helper-compilation-targets" "^7.8.7"
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/plugin-proposal-class-properties" "^7.8.3"
+ "@babel/plugin-proposal-decorators" "^7.8.3"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-jsx" "^7.8.3"
+ "@babel/plugin-transform-runtime" "^7.9.0"
+ "@babel/preset-env" "^7.9.0"
+ "@babel/runtime" "^7.9.2"
+ "@vue/babel-preset-jsx" "^1.1.2"
+ babel-plugin-dynamic-import-node "^2.3.0"
+ core-js "^3.6.4"
+ core-js-compat "^3.6.4"
+
+ "@vue/babel-preset-jsx@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.2.tgz#2e169eb4c204ea37ca66c2ea85a880bfc99d4f20"
+ dependencies:
+ "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0"
+ "@vue/babel-plugin-transform-vue-jsx" "^1.1.2"
+ "@vue/babel-sugar-functional-vue" "^1.1.2"
+ "@vue/babel-sugar-inject-h" "^1.1.2"
+ "@vue/babel-sugar-v-model" "^1.1.2"
+ "@vue/babel-sugar-v-on" "^1.1.2"
+
+ "@vue/babel-sugar-functional-vue@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.1.2.tgz#f7e24fba09e6f1ee70104560a8808057555f1a9a"
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+ "@vue/babel-sugar-inject-h@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.1.2.tgz#8a5276b6d8e2ed16ffc8078aad94236274e6edf0"
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+
+ "@vue/babel-sugar-v-model@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.1.2.tgz#1ff6fd1b800223fc9cb1e84dceb5e52d737a8192"
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0"
+ "@vue/babel-plugin-transform-vue-jsx" "^1.1.2"
+ camelcase "^5.0.0"
+ html-tags "^2.0.0"
+ svg-tags "^1.0.0"
+
+ "@vue/babel-sugar-v-on@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.2.tgz#b2ef99b8f2fab09fbead25aad70ef42e1cf5b13b"
+ dependencies:
+ "@babel/plugin-syntax-jsx" "^7.2.0"
+ "@vue/babel-plugin-transform-vue-jsx" "^1.1.2"
+ camelcase "^5.0.0"
+
+ "@vue/cli-overlay@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.3.1.tgz#434529c188b628a54773670201667a0b4a361e07"
+
+ "@vue/cli-plugin-babel@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-4.3.1.tgz#6e3a6aa18595b98ad5c52898a2850d452404712b"
+ dependencies:
+ "@babel/core" "^7.9.0"
+ "@vue/babel-preset-app" "^4.3.1"
+ "@vue/cli-shared-utils" "^4.3.1"
+ babel-loader "^8.1.0"
+ cache-loader "^4.1.0"
+ thread-loader "^2.1.3"
+ webpack "^4.0.0"
+
+ "@vue/cli-plugin-eslint@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.3.1.tgz#2f5e09bd7d1d8c494134b6c71af2b779938d289a"
+ dependencies:
+ "@vue/cli-shared-utils" "^4.3.1"
+ eslint-loader "^2.2.1"
+ globby "^9.2.0"
+ inquirer "^7.1.0"
+ webpack "^4.0.0"
+ yorkie "^2.0.0"
+
+ "@vue/cli-plugin-router@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.3.1.tgz#0ba589f4e9a1f3e64a8ff6ccd92f7ce2845586bf"
+ dependencies:
+ "@vue/cli-shared-utils" "^4.3.1"
+
+ "@vue/cli-plugin-unit-mocha@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-plugin-unit-mocha/-/cli-plugin-unit-mocha-4.3.1.tgz#174039706a4677402291402daa9610b14d1438ea"
+ dependencies:
+ "@vue/cli-shared-utils" "^4.3.1"
+ jsdom "^15.2.1"
+ jsdom-global "^3.0.2"
+ mocha "^6.2.2"
+ mochapack "^1.1.13"
+
+ "@vue/cli-plugin-vuex@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.3.1.tgz#2b73aff56f9e1be31018873d5ed2d59f155e7476"
+
+ "@vue/cli-service@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.3.1.tgz#94b2121d08e343a55f7ecef260af5257a9ffe7e5"
+ dependencies:
+ "@intervolga/optimize-cssnano-plugin" "^1.0.5"
+ "@soda/friendly-errors-webpack-plugin" "^1.7.1"
+ "@soda/get-current-script" "^1.0.0"
+ "@vue/cli-overlay" "^4.3.1"
+ "@vue/cli-plugin-router" "^4.3.1"
+ "@vue/cli-plugin-vuex" "^4.3.1"
+ "@vue/cli-shared-utils" "^4.3.1"
+ "@vue/component-compiler-utils" "^3.0.2"
+ "@vue/preload-webpack-plugin" "^1.1.0"
+ "@vue/web-component-wrapper" "^1.2.0"
+ acorn "^7.1.0"
+ acorn-walk "^7.1.1"
+ address "^1.1.2"
+ autoprefixer "^9.7.5"
+ browserslist "^4.11.1"
+ cache-loader "^4.1.0"
+ case-sensitive-paths-webpack-plugin "^2.3.0"
+ cli-highlight "^2.1.4"
+ clipboardy "^2.3.0"
+ cliui "^6.0.0"
+ copy-webpack-plugin "^5.1.1"
+ css-loader "^3.4.2"
+ cssnano "^4.1.10"
+ debug "^4.1.1"
+ default-gateway "^5.0.5"
+ dotenv "^8.2.0"
+ dotenv-expand "^5.1.0"
+ file-loader "^4.2.0"
+ fs-extra "^7.0.1"
+ globby "^9.2.0"
+ hash-sum "^2.0.0"
+ html-webpack-plugin "^3.2.0"
+ launch-editor-middleware "^2.2.1"
+ lodash.defaultsdeep "^4.6.1"
+ lodash.mapvalues "^4.6.0"
+ lodash.transform "^4.6.0"
+ mini-css-extract-plugin "^0.9.0"
+ minimist "^1.2.5"
+ pnp-webpack-plugin "^1.6.4"
+ portfinder "^1.0.25"
+ postcss-loader "^3.0.0"
+ ssri "^7.1.0"
+ terser-webpack-plugin "^2.3.5"
+ thread-loader "^2.1.3"
+ url-loader "^2.2.0"
+ vue-loader "^15.9.1"
+ vue-style-loader "^4.1.2"
+ webpack "^4.0.0"
+ webpack-bundle-analyzer "^3.6.1"
+ webpack-chain "^6.4.0"
+ webpack-dev-server "^3.10.3"
+ webpack-merge "^4.2.2"
+
+ "@vue/cli-shared-utils@^4.3.1":
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.3.1.tgz#a74bf4d53825d4a4b05a84b03e023974871bc38a"
+ dependencies:
+ "@hapi/joi" "^15.0.1"
+ chalk "^2.4.2"
+ execa "^1.0.0"
+ launch-editor "^2.2.1"
+ lru-cache "^5.1.1"
+ node-ipc "^9.1.1"
+ open "^6.3.0"
+ ora "^3.4.0"
+ read-pkg "^5.1.1"
+ request "^2.88.2"
+ request-promise-native "^1.0.8"
+ semver "^6.1.0"
+ strip-ansi "^6.0.0"
+
+ "@vue/component-compiler-utils@^3.0.2", "@vue/component-compiler-utils@^3.1.0":
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.1.2.tgz#8213a5ff3202f9f2137fe55370f9e8b9656081c3"
+ dependencies:
+ consolidate "^0.15.1"
+ hash-sum "^1.0.2"
+ lru-cache "^4.1.2"
+ merge-source-map "^1.1.0"
+ postcss "^7.0.14"
+ postcss-selector-parser "^6.0.2"
+ source-map "~0.6.1"
+ vue-template-es2015-compiler "^1.9.0"
+ optionalDependencies:
+ prettier "^1.18.2"
+
+ "@vue/preload-webpack-plugin@^1.1.0":
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.1.tgz#18723530d304f443021da2292d6ec9502826104a"
+
+ "@vue/test-utils@^1.0.0-beta.33":
+ version "1.0.0-beta.33"
+ resolved "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.0.0-beta.33.tgz#627511afbd4307e7557634f860a1b985bd25d9cd"
+ dependencies:
+ dom-event-types "^1.0.0"
+ lodash "^4.17.15"
+ pretty "^2.0.0"
+
+ "@vue/web-component-wrapper@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.2.0.tgz#bb0e46f1585a7e289b4ee6067dcc5a6ae62f1dd1"
+
+ "@webassemblyjs/ast@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
+ dependencies:
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
+
+ "@webassemblyjs/floating-point-hex-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
+
+ "@webassemblyjs/helper-api-error@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
+
+ "@webassemblyjs/helper-buffer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
+
+ "@webassemblyjs/helper-code-frame@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
+ dependencies:
+ "@webassemblyjs/wast-printer" "1.9.0"
+
+ "@webassemblyjs/helper-fsm@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
+
+ "@webassemblyjs/helper-module-context@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+
+ "@webassemblyjs/helper-wasm-bytecode@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
+
+ "@webassemblyjs/helper-wasm-section@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+
+ "@webassemblyjs/ieee754@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
+ dependencies:
+ "@xtuc/ieee754" "^1.2.0"
+
+ "@webassemblyjs/leb128@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
+ dependencies:
+ "@xtuc/long" "4.2.2"
+
+ "@webassemblyjs/utf8@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
+
+ "@webassemblyjs/wasm-edit@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/helper-wasm-section" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-opt" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ "@webassemblyjs/wast-printer" "1.9.0"
+
+ "@webassemblyjs/wasm-gen@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
+
+ "@webassemblyjs/wasm-opt@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+
+ "@webassemblyjs/wasm-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
+
+ "@webassemblyjs/wast-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/floating-point-hex-parser" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-code-frame" "1.9.0"
+ "@webassemblyjs/helper-fsm" "1.9.0"
+ "@xtuc/long" "4.2.2"
+
+ "@webassemblyjs/wast-printer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
+ "@xtuc/long" "4.2.2"
+
+ "@xtuc/ieee754@^1.2.0":
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
+
+ "@xtuc/long@4.2.2":
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
+
+ aaptjs@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/aaptjs/-/aaptjs-1.3.2.tgz#89c1bd7e5fc333081db9944b1b18f95b74f84864"
+ integrity sha512-zB1Kyxw7uwUhDYaxWfX41pu6eGzyYzPhfC6Zr3wjEUjaWt0rRQdn3KBmifaB6H60IMcvrvweXZdBEQYWLww4XA==
+ dependencies:
+ shelljs "^0.8.1"
+
+ abab@^2.0.0, abab@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
+
+ abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+
+ accepts@^1.3.5:
+ version "1.3.8"
+ resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
+ integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
+ dependencies:
+ mime-types "~2.1.34"
+ negotiator "0.6.3"
+
+ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
+ version "1.3.7"
+ resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
+ dependencies:
+ mime-types "~2.1.24"
+ negotiator "0.6.2"
+
+ acorn-globals@^4.3.2:
+ version "4.3.4"
+ resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ dependencies:
+ acorn "^6.0.1"
+ acorn-walk "^6.0.1"
+
+ acorn-globals@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
+ dependencies:
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
+
+ acorn-jsx@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe"
+
+ acorn-walk@^6.0.1:
+ version "6.2.0"
+ resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
+
+ acorn-walk@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e"
+
+ acorn@^5.2.1:
+ version "5.7.4"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e"
+ integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==
+
+ acorn@^6.0.1, acorn@^6.4.1:
+ version "6.4.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+
+ acorn@^7.1.0, acorn@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf"
+
+ adb-commander@^0.1.8, adb-commander@^0.1.9:
+ version "0.1.9"
+ resolved "https://registry.npmjs.org/adb-commander/-/adb-commander-0.1.9.tgz#103778f6db4963a5f8f89c91faf89d3649f59202"
+ integrity sha512-uFZ+gRLQF4wqkuAQ/bBB22oLHQ8W6HQ31BTCssRtoinMm3oBauAH9e1kUm+cqyc3soGqwUGcsKuKuW37IlMIwA==
+ dependencies:
+ adb-driver "^0.1.8"
+
+ adb-devices-emitter@^0.1.8:
+ version "0.1.9"
+ resolved "https://registry.npmjs.org/adb-devices-emitter/-/adb-devices-emitter-0.1.9.tgz#0f842537634770b584cdbcbc0333f4efb4a0b860"
+ integrity sha512-vR38T3ZqZmCXPQS6p0dEjbHZYAybNk6MLW2evtbVGCQvvrvoTzXSFjIdfrRbxryn9HJ7WAXfH42GYgvZIZDiTA==
+ dependencies:
+ adb-commander "^0.1.9"
+
+ adb-driver@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.npmjs.org/adb-driver/-/adb-driver-0.1.8.tgz#f4a656cba06bc85704e61ee4a15e78965eefaaf4"
+ integrity sha512-sERbuWCkIBtoHlEkE3tg67AWUaX/yJskYSLI6DKZsvgr5rL7iVNjMSIB2s7d1zt3luP/BMgLfP5z4Jto+CLafA==
+ dependencies:
+ which "^1.3.1"
+
+ address@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6"
+
+ after@0.8.2:
+ version "0.8.2"
+ resolved "https://registry.npmjs.org/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f"
+ integrity sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==
+
+ aggregate-error@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0"
+ dependencies:
+ clean-stack "^2.0.0"
+ indent-string "^4.0.0"
+
+ ajv-errors@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
+
+ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
+ version "3.4.1"
+ resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da"
+
+ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5:
+ version "6.12.2"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ alphanum-sort@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
+
+ ansi-colors@3.2.3:
+ version "3.2.3"
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz#57d35b8686e851e2cc04c403f1c00203976a1813"
+
+ ansi-colors@^3.0.0:
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
+
+ ansi-escapes@^4.2.1:
+ version "4.3.1"
+ resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
+ dependencies:
+ type-fest "^0.11.0"
+
+ ansi-green@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/ansi-green/-/ansi-green-0.1.1.tgz#8a5d9a979e458d57c40e33580b37390b8e10d0f7"
+ dependencies:
+ ansi-wrap "0.1.0"
+
+ ansi-html@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
+
+ ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+ ansi-regex@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
+
+ ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+
+ ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ dependencies:
+ color-convert "^1.9.0"
+
+ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+ dependencies:
+ "@types/color-name" "^1.1.1"
+ color-convert "^2.0.1"
+
+ ansi-wrap@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
+
+ any-promise@^1.0.0, any-promise@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+
+ anymatch@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
+ dependencies:
+ micromatch "^3.1.4"
+ normalize-path "^2.1.1"
+
+ anymatch@^3.0.3:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+ anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
+ aproba@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+
+ arch@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e"
+
+ argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+ arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+
+ arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+
+ arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+
+ array-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
+
+ array-flatten@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
+
+ array-flatten@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
+
+ array-includes@^3.0.3:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0"
+ is-string "^1.0.5"
+
+ array-union@^1.0.1, array-union@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ dependencies:
+ array-uniq "^1.0.1"
+
+ array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+
+ array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+
+ array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+
+ array.prototype.flat@^1.2.1:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+
+ arraybuffer.slice@~0.0.7:
+ version "0.0.7"
+ resolved "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675"
+ integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==
+
+ asn1.js@^4.0.0:
+ version "4.10.1"
+ resolved "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
+ dependencies:
+ bn.js "^4.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+ asn1@~0.2.3:
+ version "0.2.4"
+ resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ dependencies:
+ safer-buffer "~2.1.0"
+
+ assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+ assert@^1.1.1:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
+ dependencies:
+ object-assign "^4.1.1"
+ util "0.10.3"
+
+ assert@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32"
+ integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==
+ dependencies:
+ es6-object-assign "^1.1.0"
+ is-nan "^1.2.1"
+ object-is "^1.0.1"
+ util "^0.12.0"
+
+ assertion-error@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
+
+ assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+
+ ast-types@0.14.2:
+ version "0.14.2"
+ resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
+ dependencies:
+ tslib "^2.0.1"
+
+ ast-types@0.15.2:
+ version "0.15.2"
+ resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d"
+ integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==
+ dependencies:
+ tslib "^2.0.1"
+
+ astral-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+
+ async-array-reduce@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/async-array-reduce/-/async-array-reduce-0.2.1.tgz#c8be010a2b5cd00dea96c81116034693dfdd82d1"
+
+ async-each@^1.0.0, async-each@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
+
+ async-limiter@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
+
+ async@^2.6.2:
+ version "2.6.3"
+ resolved "https://registry.npmjs.org/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
+ dependencies:
+ lodash "^4.17.14"
+
+ async@^2.6.4:
+ version "2.6.4"
+ resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
+ integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
+ dependencies:
+ lodash "^4.17.14"
+
+ asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+ atob@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+
+ autoprefixer@^9.7.5:
+ version "9.7.6"
+ resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.6.tgz#63ac5bbc0ce7934e6997207d5bb00d68fa8293a4"
+ dependencies:
+ browserslist "^4.11.1"
+ caniuse-lite "^1.0.30001039"
+ chalk "^2.4.2"
+ normalize-range "^0.1.2"
+ num2fraction "^1.2.2"
+ postcss "^7.0.27"
+ postcss-value-parser "^4.0.3"
+
+ available-typed-arrays@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
+ integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
+
+ aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+ aws4@^1.8.0:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
+
+ babel-eslint@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@babel/parser" "^7.7.0"
+ "@babel/traverse" "^7.7.0"
+ "@babel/types" "^7.7.0"
+ eslint-visitor-keys "^1.0.0"
+ resolve "^1.12.0"
+
+ babel-jest@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-25.4.0.tgz#409eb3e2ddc2ad9a92afdbb00991f1633f8018d0"
+ dependencies:
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ "@types/babel__core" "^7.1.7"
+ babel-plugin-istanbul "^6.0.0"
+ babel-preset-jest "^25.4.0"
+ chalk "^3.0.0"
+ slash "^3.0.0"
+
+ babel-loader@^8.0.5:
+ version "8.3.0"
+ resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8"
+ integrity sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==
+ dependencies:
+ find-cache-dir "^3.3.1"
+ loader-utils "^2.0.0"
+ make-dir "^3.1.0"
+ schema-utils "^2.6.5"
+
+ babel-loader@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
+ dependencies:
+ find-cache-dir "^2.1.0"
+ loader-utils "^1.4.0"
+ mkdirp "^0.5.3"
+ pify "^4.0.1"
+ schema-utils "^2.6.5"
+
+ babel-plugin-dynamic-import-node@^2.3.0:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ dependencies:
+ object.assign "^4.1.0"
+
+ babel-plugin-istanbul@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^4.0.0"
+ test-exclude "^6.0.0"
+
+ babel-plugin-jest-hoist@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.4.0.tgz#0c122c1b93fb76f52d2465be2e8069e798e9d442"
+ dependencies:
+ "@types/babel__traverse" "^7.0.6"
+
+ babel-plugin-polyfill-corejs2@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
+ integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
+ dependencies:
+ "@babel/compat-data" "^7.17.7"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ semver "^6.1.1"
+
+ babel-plugin-polyfill-corejs3@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
+ integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ core-js-compat "^3.25.1"
+
+ babel-plugin-polyfill-regenerator@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
+ integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+
+ babel-preset-current-node-syntax@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6"
+ dependencies:
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+ babel-preset-jest@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-25.4.0.tgz#10037cc32b751b994b260964629e49dc479abf4c"
+ dependencies:
+ babel-plugin-jest-hoist "^25.4.0"
+ babel-preset-current-node-syntax "^0.1.2"
+
+ babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
+ backo2@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947"
+ integrity sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==
+
+ balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+ base64-arraybuffer@0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812"
+ integrity sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==
+
+ base64-arraybuffer@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz#4b944fac0191aa5907afe2d8c999ccc57ce80f45"
+
+ base64-js@^1.0.2:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
+
+ base64id@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6"
+ integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==
+
+ base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+ batch@0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
+
+ bcrypt-pbkdf@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+ bfj@^6.1.1:
+ version "6.1.2"
+ resolved "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz#325c861a822bcb358a41c78a33b8e6e2086dde7f"
+ dependencies:
+ bluebird "^3.5.5"
+ check-types "^8.0.3"
+ hoopy "^0.1.4"
+ tryer "^1.0.1"
+
+ big.js@^3.1.3:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
+
+ big.js@^5.2.2:
+ version "5.2.2"
+ resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
+
+ binary-extensions@^1.0.0:
+ version "1.13.1"
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
+
+ binary-extensions@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
+ integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
+
+ bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ dependencies:
+ file-uri-to-path "1.0.0"
+
+ blob@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683"
+ integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==
+
+ bluebird@^3.1.1, bluebird@^3.4.1, bluebird@^3.5.5:
+ version "3.7.2"
+ resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+
+ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
+ version "4.11.9"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
+
+ body-parser@1.19.0:
+ version "1.19.0"
+ resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
+ dependencies:
+ bytes "3.1.0"
+ content-type "~1.0.4"
+ debug "2.6.9"
+ depd "~1.1.2"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ on-finished "~2.3.0"
+ qs "6.7.0"
+ raw-body "2.4.0"
+ type-is "~1.6.17"
+
+ bonjour@^3.5.0:
+ version "3.5.0"
+ resolved "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
+ dependencies:
+ array-flatten "^2.1.0"
+ deep-equal "^1.0.1"
+ dns-equal "^1.0.0"
+ dns-txt "^2.0.2"
+ multicast-dns "^6.0.1"
+ multicast-dns-service-types "^1.1.0"
+
+ boolbase@^1.0.0, boolbase@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+
+ brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+ braces@^2.3.1, braces@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+ braces@^3.0.1, braces@^3.0.2, braces@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ dependencies:
+ fill-range "^7.0.1"
+
+ brorand@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
+
+ browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+
+ browser-resolve@^1.11.3:
+ version "1.11.3"
+ resolved "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
+ dependencies:
+ resolve "1.1.7"
+
+ browser-stdout@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+
+ browserify-aes@^1.0.0, browserify-aes@^1.0.4:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
+ dependencies:
+ buffer-xor "^1.0.3"
+ cipher-base "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.3"
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+ browserify-cipher@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
+ dependencies:
+ browserify-aes "^1.0.4"
+ browserify-des "^1.0.0"
+ evp_bytestokey "^1.0.0"
+
+ browserify-des@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
+ dependencies:
+ cipher-base "^1.0.1"
+ des.js "^1.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+ browserify-rsa@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
+ dependencies:
+ bn.js "^4.1.0"
+ randombytes "^2.0.1"
+
+ browserify-sign@^4.0.0:
+ version "4.0.4"
+ resolved "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
+ dependencies:
+ bn.js "^4.1.1"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.2"
+ elliptic "^6.0.0"
+ inherits "^2.0.1"
+ parse-asn1 "^5.0.0"
+
+ browserify-zlib@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
+ dependencies:
+ pako "~1.0.5"
+
+ browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.8.5, browserslist@^4.9.1:
+ version "4.12.0"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d"
+ dependencies:
+ caniuse-lite "^1.0.30001043"
+ electron-to-chromium "^1.3.413"
+ node-releases "^1.1.53"
+ pkg-up "^2.0.0"
+
+ browserslist@^4.21.3, browserslist@^4.21.5:
+ version "4.21.5"
+ resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
+ integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
+ dependencies:
+ caniuse-lite "^1.0.30001449"
+ electron-to-chromium "^1.4.284"
+ node-releases "^2.0.8"
+ update-browserslist-db "^1.0.10"
+
+ bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ dependencies:
+ node-int64 "^0.4.0"
+
+ buffer-from@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
+
+ buffer-indexof@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
+
+ buffer-json@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23"
+
+ buffer-xor@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
+
+ buffer@^4.3.0:
+ version "4.9.2"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8"
+ dependencies:
+ base64-js "^1.0.2"
+ ieee754 "^1.1.4"
+ isarray "^1.0.0"
+
+ builtin-modules@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484"
+
+ builtin-status-codes@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
+
+ bytes@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
+
+ bytes@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+
+ bytes@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
+ integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
+
+ cacache@^12.0.2, cacache@^12.0.3:
+ version "12.0.4"
+ resolved "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+ dependencies:
+ bluebird "^3.5.5"
+ chownr "^1.1.1"
+ figgy-pudding "^3.5.1"
+ glob "^7.1.4"
+ graceful-fs "^4.1.15"
+ infer-owner "^1.0.3"
+ lru-cache "^5.1.1"
+ mississippi "^3.0.0"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ promise-inflight "^1.0.1"
+ rimraf "^2.6.3"
+ ssri "^6.0.1"
+ unique-filename "^1.1.1"
+ y18n "^4.0.0"
+
+ cacache@^13.0.1:
+ version "13.0.1"
+ resolved "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c"
+ dependencies:
+ chownr "^1.1.2"
+ figgy-pudding "^3.5.1"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ graceful-fs "^4.2.2"
+ infer-owner "^1.0.4"
+ lru-cache "^5.1.1"
+ minipass "^3.0.0"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^0.5.1"
+ move-concurrently "^1.0.1"
+ p-map "^3.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^2.7.1"
+ ssri "^7.0.0"
+ unique-filename "^1.1.1"
+
+ cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+ cache-content-type@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/cache-content-type/-/cache-content-type-1.0.1.tgz#035cde2b08ee2129f4a8315ea8f00a00dba1453c"
+ integrity sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==
+ dependencies:
+ mime-types "^2.1.18"
+ ylru "^1.2.0"
+
+ cache-loader@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz#9948cae353aec0a1fcb1eafda2300816ec85387e"
+ dependencies:
+ buffer-json "^2.0.0"
+ find-cache-dir "^3.0.0"
+ loader-utils "^1.2.3"
+ mkdirp "^0.5.1"
+ neo-async "^2.6.1"
+ schema-utils "^2.0.0"
+
+ call-bind@^1.0.0, call-bind@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
+ integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
+ dependencies:
+ function-bind "^1.1.1"
+ get-intrinsic "^1.0.2"
+
+ call-me-maybe@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
+
+ caller-callsite@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
+ dependencies:
+ callsites "^2.0.0"
+
+ caller-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
+ dependencies:
+ caller-callsite "^2.0.0"
+
+ callsites@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
+
+ callsites@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+
+ camel-case@3.0.x:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.1.1"
+
+ camelcase@^5.0.0, camelcase@^5.2.0, camelcase@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+
+ caniuse-api@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-lite "^1.0.0"
+ lodash.memoize "^4.1.2"
+ lodash.uniq "^4.5.0"
+
+ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001039, caniuse-lite@^1.0.30001040, caniuse-lite@^1.0.30001043:
+ version "1.0.30001045"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001045.tgz#a770df9de36ad6ca0c34f90eaa797a2dbbb1b619"
+
+ caniuse-lite@^1.0.30001449:
+ version "1.0.30001458"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz#871e35866b4654a7d25eccca86864f411825540c"
+ integrity sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==
+
+ capture-exit@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
+ dependencies:
+ rsvp "^4.8.4"
+
+ case-sensitive-paths-webpack-plugin@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7"
+
+ caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+ chai@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz#760aa72cf20e3795e84b12877ce0e83737aa29e5"
+ dependencies:
+ assertion-error "^1.1.0"
+ check-error "^1.0.2"
+ deep-eql "^3.0.1"
+ get-func-name "^2.0.0"
+ pathval "^1.1.0"
+ type-detect "^4.0.5"
+
+ chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+ chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+ chardet@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+
+ charenc@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
+ integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==
+
+ check-error@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
+ check-types@^8.0.3:
+ version "8.0.3"
+ resolved "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
+
+ chokidar@^2.0.0, chokidar@^2.1.8:
+ version "2.1.8"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
+ dependencies:
+ anymatch "^2.0.0"
+ async-each "^1.0.1"
+ braces "^2.3.2"
+ glob-parent "^3.1.0"
+ inherits "^2.0.3"
+ is-binary-path "^1.0.0"
+ is-glob "^4.0.0"
+ normalize-path "^3.0.0"
+ path-is-absolute "^1.0.0"
+ readdirp "^2.2.1"
+ upath "^1.1.1"
+ optionalDependencies:
+ fsevents "^1.2.7"
+
+ chokidar@^3.4.1:
+ version "3.5.3"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
+ integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
+ dependencies:
+ anymatch "~3.1.2"
+ braces "~3.0.2"
+ glob-parent "~5.1.2"
+ is-binary-path "~2.1.0"
+ is-glob "~4.0.1"
+ normalize-path "~3.0.0"
+ readdirp "~3.6.0"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+ chownr@^1.1.1, chownr@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+
+ chrome-simple-launcher@0.1.3:
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/chrome-simple-launcher/-/chrome-simple-launcher-0.1.3.tgz#a4b2ba3c165db564c64087e89a9bb64a63bcf370"
+ integrity sha512-8xUtp6cS4tn1o1Pzev6pxbgF7vCRdfxFLW4xOSUIF/83+ya8GWRqMpkqd8h7VDliHLhyRIi5zKbi85wpZ4m2oA==
+
+ chrome-trace-event@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
+ dependencies:
+ tslib "^1.9.0"
+
+ ci-info@^1.5.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
+
+ ci-info@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
+
+ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+ class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+ clean-css@4.2.x:
+ version "4.2.3"
+ resolved "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
+ dependencies:
+ source-map "~0.6.0"
+
+ clean-stack@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
+
+ cli-cursor@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+ dependencies:
+ restore-cursor "^2.0.0"
+
+ cli-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
+ dependencies:
+ restore-cursor "^3.1.0"
+
+ cli-highlight@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.4.tgz#098cb642cf17f42adc1c1145e07f960ec4d7522b"
+ dependencies:
+ chalk "^3.0.0"
+ highlight.js "^9.6.0"
+ mz "^2.4.0"
+ parse5 "^5.1.1"
+ parse5-htmlparser2-tree-adapter "^5.1.1"
+ yargs "^15.0.0"
+
+ cli-spinners@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz#0632239a4b5aa4c958610142c34bb7a651fc8df5"
+
+ cli-width@^2.0.0:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
+
+ clipboardy@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290"
+ dependencies:
+ arch "^2.1.1"
+ execa "^1.0.0"
+ is-wsl "^2.1.1"
+
+ cliui@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+ cliui@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5"
+ dependencies:
+ string-width "^3.1.0"
+ strip-ansi "^5.2.0"
+ wrap-ansi "^5.1.0"
+
+ cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
+ clone-deep@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
+ integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
+ dependencies:
+ is-plain-object "^2.0.4"
+ kind-of "^6.0.2"
+ shallow-clone "^3.0.0"
+
+ clone-stats@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
+
+ clone@^1.0.0, clone@^1.0.2:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+
+ co-body@^5.1.1:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz#5a0a658c46029131e0e3a306f67647302f71c124"
+ integrity sha512-sX/LQ7LqUhgyaxzbe7IqwPeTr2yfpfUIQ/dgpKo6ZI4y4lpQA0YxAomWIY+7I7rHWcG02PG+OuPREzMW/5tszQ==
+ dependencies:
+ inflation "^2.0.0"
+ qs "^6.4.0"
+ raw-body "^2.2.0"
+ type-is "^1.6.14"
+
+ co-body@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547"
+ integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==
+ dependencies:
+ inflation "^2.0.0"
+ qs "^6.5.2"
+ raw-body "^2.3.3"
+ type-is "^1.6.16"
+
+ co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+ coa@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
+ dependencies:
+ "@types/q" "^1.5.1"
+ chalk "^2.4.1"
+ q "^1.1.2"
+
+ code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+ collect-v8-coverage@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
+
+ collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+ color-convert@^1.9.0, color-convert@^1.9.1:
+ version "1.9.3"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ dependencies:
+ color-name "1.1.3"
+
+ color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ dependencies:
+ color-name "~1.1.4"
+
+ color-name@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
+ color-name@^1.0.0, color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+
+ color-string@^1.5.2:
+ version "1.5.3"
+ resolved "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+ color@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
+ dependencies:
+ color-convert "^1.9.1"
+ color-string "^1.5.2"
+
+ colorette@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
+ integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
+
+ combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+ commander@2.17.x:
+ version "2.17.1"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
+
+ commander@^2.18.0, commander@^2.19.0, commander@^2.20.0:
+ version "2.20.3"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+
+ commander@^4.0.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+ integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+
+ commander@~2.19.0:
+ version "2.19.0"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
+
+ commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
+ component-bind@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1"
+ integrity sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==
+
+ component-emitter@1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+ integrity sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==
+
+ component-emitter@^1.2.1, component-emitter@~1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
+
+ component-inherit@0.0.3:
+ version "0.0.3"
+ resolved "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143"
+ integrity sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==
+
+ compressible@~2.0.16:
+ version "2.0.18"
+ resolved "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
+ dependencies:
+ mime-db ">= 1.43.0 < 2"
+
+ compression@^1.7.4:
+ version "1.7.4"
+ resolved "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
+ dependencies:
+ accepts "~1.3.5"
+ bytes "3.0.0"
+ compressible "~2.0.16"
+ debug "2.6.9"
+ on-headers "~1.0.2"
+ safe-buffer "5.1.2"
+ vary "~1.1.2"
+
+ concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+ concat-stream@^1.5.0:
+ version "1.6.2"
+ resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+ condense-newlines@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-whitespace "^0.3.0"
+ kind-of "^3.0.2"
+
+ config-chain@^1.1.12:
+ version "1.1.12"
+ resolved "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
+ dependencies:
+ ini "^1.3.4"
+ proto-list "~1.2.1"
+
+ connect-history-api-fallback@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
+
+ console-browserify@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+
+ consolidate@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
+ dependencies:
+ bluebird "^3.1.1"
+
+ constants-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
+
+ contains-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+
+ content-disposition@0.5.3:
+ version "0.5.3"
+ resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
+ dependencies:
+ safe-buffer "5.1.2"
+
+ content-disposition@~0.5.2:
+ version "0.5.4"
+ resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
+ integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==
+ dependencies:
+ safe-buffer "5.2.1"
+
+ content-type@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
+ integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
+
+ content-type@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+
+ convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ dependencies:
+ safe-buffer "~5.1.1"
+
+ cookie-signature@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
+
+ cookie@0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
+
+ cookie@~0.4.1:
+ version "0.4.2"
+ resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
+ integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
+
+ cookies@~0.8.0:
+ version "0.8.0"
+ resolved "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz#1293ce4b391740a8406e3c9870e828c4b54f3f90"
+ integrity sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==
+ dependencies:
+ depd "~2.0.0"
+ keygrip "~1.1.0"
+
+ copy-concurrently@^1.0.0:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
+ dependencies:
+ aproba "^1.1.1"
+ fs-write-stream-atomic "^1.0.8"
+ iferr "^0.1.5"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.0"
+
+ copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+
+ copy-to@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/copy-to/-/copy-to-2.0.1.tgz#2680fbb8068a48d08656b6098092bdafc906f4a5"
+ integrity sha512-3DdaFaU/Zf1AnpLiFDeNCD4TOWe3Zl2RZaTzUvWiIk5ERzcCodOE20Vqq4fzCbNoHURFHT4/us/Lfq+S2zyY4w==
+
+ copy-webpack-plugin@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz#5481a03dea1123d88a988c6ff8b78247214f0b88"
+ dependencies:
+ cacache "^12.0.3"
+ find-cache-dir "^2.1.0"
+ glob-parent "^3.1.0"
+ globby "^7.1.1"
+ is-glob "^4.0.1"
+ loader-utils "^1.2.3"
+ minimatch "^3.0.4"
+ normalize-path "^3.0.0"
+ p-limit "^2.2.1"
+ schema-utils "^1.0.0"
+ serialize-javascript "^2.1.2"
+ webpack-log "^2.0.0"
+
+ copy@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/copy/-/copy-0.3.2.tgz#870b871d02a599b3c6ef27bc5b3d4c4102261909"
+ dependencies:
+ async-each "^1.0.0"
+ bluebird "^3.4.1"
+ extend-shallow "^2.0.1"
+ file-contents "^0.3.1"
+ glob-parent "^2.0.0"
+ graceful-fs "^4.1.4"
+ has-glob "^0.1.1"
+ is-absolute "^0.2.5"
+ lazy-cache "^2.0.1"
+ log-ok "^0.1.1"
+ matched "^0.4.1"
+ mkdirp "^0.5.1"
+ resolve-dir "^0.1.0"
+ to-file "^0.2.0"
+
+ core-js-compat@^3.25.1:
+ version "3.29.0"
+ resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.29.0.tgz#1b8d9eb4191ab112022e7f6364b99b65ea52f528"
+ integrity sha512-ScMn3uZNAFhK2DGoEfErguoiAHhV2Ju+oJo/jK08p7B3f3UhocUrCCkTvnZaiS+edl5nlIoiBXKcwMc6elv4KQ==
+ dependencies:
+ browserslist "^4.21.5"
+
+ core-js-compat@^3.6.2, core-js-compat@^3.6.4:
+ version "3.6.5"
+ resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"
+ dependencies:
+ browserslist "^4.8.5"
+ semver "7.0.0"
+
+ core-js@^2.6.5:
+ version "2.6.11"
+ resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c"
+
+ core-js@^3.6.4:
+ version "3.6.5"
+ resolved "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
+
+ core-util-is@1.0.2, core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+ cosmiconfig@^5.0.0:
+ version "5.2.1"
+ resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
+ dependencies:
+ import-fresh "^2.0.0"
+ is-directory "^0.3.1"
+ js-yaml "^3.13.1"
+ parse-json "^4.0.0"
+
+ create-ecdh@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
+ dependencies:
+ bn.js "^4.1.0"
+ elliptic "^6.0.0"
+
+ create-hash@^1.1.0, create-hash@^1.1.2:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
+ dependencies:
+ cipher-base "^1.0.1"
+ inherits "^2.0.1"
+ md5.js "^1.3.4"
+ ripemd160 "^2.0.1"
+ sha.js "^2.4.0"
+
+ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
+ dependencies:
+ cipher-base "^1.0.3"
+ create-hash "^1.1.0"
+ inherits "^2.0.1"
+ ripemd160 "^2.0.0"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+ cross-env@^5.2.0:
+ version "5.2.1"
+ resolved "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d"
+ integrity sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==
+ dependencies:
+ cross-spawn "^6.0.5"
+
+ cross-env@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9"
+ dependencies:
+ cross-spawn "^7.0.1"
+
+ cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+ cross-spawn@^6.0.0, cross-spawn@^6.0.5:
+ version "6.0.5"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
+ dependencies:
+ nice-try "^1.0.4"
+ path-key "^2.0.1"
+ semver "^5.5.0"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+ cross-spawn@^7.0.0, cross-spawn@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6"
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+ cross-spawn@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+ crypt@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
+ integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==
+
+ crypto-browserify@^3.11.0:
+ version "3.12.0"
+ resolved "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
+ dependencies:
+ browserify-cipher "^1.0.0"
+ browserify-sign "^4.0.0"
+ create-ecdh "^4.0.0"
+ create-hash "^1.1.0"
+ create-hmac "^1.1.0"
+ diffie-hellman "^5.0.0"
+ inherits "^2.0.1"
+ pbkdf2 "^3.0.3"
+ public-encrypt "^4.0.0"
+ randombytes "^2.0.0"
+ randomfill "^1.0.3"
+
+ css-color-names@0.0.4, css-color-names@^0.0.4:
+ version "0.0.4"
+ resolved "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
+
+ css-declaration-sorter@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
+ dependencies:
+ postcss "^7.0.1"
+ timsort "^0.3.0"
+
+ css-loader@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea"
+ integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==
+ dependencies:
+ camelcase "^5.2.0"
+ icss-utils "^4.1.0"
+ loader-utils "^1.2.3"
+ normalize-path "^3.0.0"
+ postcss "^7.0.14"
+ postcss-modules-extract-imports "^2.0.0"
+ postcss-modules-local-by-default "^2.0.6"
+ postcss-modules-scope "^2.1.0"
+ postcss-modules-values "^2.0.0"
+ postcss-value-parser "^3.3.0"
+ schema-utils "^1.0.0"
+
+ css-loader@^3.4.2:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/css-loader/-/css-loader-3.5.2.tgz#6483ae56f48a7f901fbe07dde2fc96b01eafab3c"
+ dependencies:
+ camelcase "^5.3.1"
+ cssesc "^3.0.0"
+ icss-utils "^4.1.1"
+ loader-utils "^1.2.3"
+ normalize-path "^3.0.0"
+ postcss "^7.0.27"
+ postcss-modules-extract-imports "^2.0.0"
+ postcss-modules-local-by-default "^3.0.2"
+ postcss-modules-scope "^2.2.0"
+ postcss-modules-values "^3.0.0"
+ postcss-value-parser "^4.0.3"
+ schema-utils "^2.6.5"
+ semver "^6.3.0"
+
+ css-select-base-adapter@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
+
+ css-select@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
+ dependencies:
+ boolbase "~1.0.0"
+ css-what "2.1"
+ domutils "1.5.1"
+ nth-check "~1.0.1"
+
+ css-select@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^3.2.1"
+ domutils "^1.7.0"
+ nth-check "^1.0.2"
+
+ css-tree@1.0.0-alpha.37:
+ version "1.0.0-alpha.37"
+ resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+ dependencies:
+ mdn-data "2.0.4"
+ source-map "^0.6.1"
+
+ css-tree@1.0.0-alpha.39:
+ version "1.0.0-alpha.39"
+ resolved "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
+ dependencies:
+ mdn-data "2.0.6"
+ source-map "^0.6.1"
+
+ css-what@2.1, css-what@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
+
+ css-what@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1"
+
+ css@^2.2.4, css@~2.2.1:
+ version "2.2.4"
+ resolved "https://registry.npmjs.org/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
+ integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
+ dependencies:
+ inherits "^2.0.3"
+ source-map "^0.6.1"
+ source-map-resolve "^0.5.2"
+ urix "^0.1.0"
+
+ cssesc@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
+ integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
+
+ cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+
+ cssnano-preset-default@^4.0.0, cssnano-preset-default@^4.0.7:
+ version "4.0.7"
+ resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
+ dependencies:
+ css-declaration-sorter "^4.0.1"
+ cssnano-util-raw-cache "^4.0.1"
+ postcss "^7.0.0"
+ postcss-calc "^7.0.1"
+ postcss-colormin "^4.0.3"
+ postcss-convert-values "^4.0.1"
+ postcss-discard-comments "^4.0.2"
+ postcss-discard-duplicates "^4.0.2"
+ postcss-discard-empty "^4.0.1"
+ postcss-discard-overridden "^4.0.1"
+ postcss-merge-longhand "^4.0.11"
+ postcss-merge-rules "^4.0.3"
+ postcss-minify-font-values "^4.0.2"
+ postcss-minify-gradients "^4.0.2"
+ postcss-minify-params "^4.0.2"
+ postcss-minify-selectors "^4.0.2"
+ postcss-normalize-charset "^4.0.1"
+ postcss-normalize-display-values "^4.0.2"
+ postcss-normalize-positions "^4.0.2"
+ postcss-normalize-repeat-style "^4.0.2"
+ postcss-normalize-string "^4.0.2"
+ postcss-normalize-timing-functions "^4.0.2"
+ postcss-normalize-unicode "^4.0.1"
+ postcss-normalize-url "^4.0.1"
+ postcss-normalize-whitespace "^4.0.2"
+ postcss-ordered-values "^4.1.2"
+ postcss-reduce-initial "^4.0.3"
+ postcss-reduce-transforms "^4.0.2"
+ postcss-svgo "^4.0.2"
+ postcss-unique-selectors "^4.0.1"
+
+ cssnano-util-get-arguments@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
+
+ cssnano-util-get-match@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
+
+ cssnano-util-raw-cache@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
+ dependencies:
+ postcss "^7.0.0"
+
+ cssnano-util-same-parent@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
+
+ cssnano@^4.0.0, cssnano@^4.1.10:
+ version "4.1.10"
+ resolved "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
+ dependencies:
+ cosmiconfig "^5.0.0"
+ cssnano-preset-default "^4.0.7"
+ is-resolvable "^1.0.0"
+ postcss "^7.0.0"
+
+ csso@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"
+ dependencies:
+ css-tree "1.0.0-alpha.39"
+
+ cssom@^0.4.1, cssom@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
+
+ cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+
+ cssstyle@^2.0.0, cssstyle@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.2.0.tgz#e4c44debccd6b7911ed617a4395e5754bba59992"
+ dependencies:
+ cssom "~0.3.6"
+
+ cyclist@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9"
+
+ dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+ data-urls@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
+ dependencies:
+ abab "^2.0.0"
+ whatwg-mimetype "^2.2.0"
+ whatwg-url "^7.0.0"
+
+ data-urls@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b"
+ dependencies:
+ abab "^2.0.3"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.0.0"
+
+ de-indent@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
+
+ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
+ version "2.6.9"
+ resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+ debug@3.2.6, debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
+ version "3.2.6"
+ resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
+ dependencies:
+ ms "^2.1.1"
+
+ debug@^3.1.0, debug@^3.2.7:
+ version "3.2.7"
+ resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
+ integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
+ dependencies:
+ ms "^2.1.1"
+
+ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
+ dependencies:
+ ms "^2.1.1"
+
+ debug@^4.3.2:
+ version "4.3.4"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+ debug@~3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+ dependencies:
+ ms "2.0.0"
+
+ decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+ decimal.js@^10.2.0:
+ version "10.2.0"
+ resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231"
+
+ decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+
+ deep-eql@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ dependencies:
+ type-detect "^4.0.0"
+
+ deep-equal@^1.0.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+ dependencies:
+ is-arguments "^1.0.4"
+ is-date-object "^1.0.1"
+ is-regex "^1.0.4"
+ object-is "^1.0.1"
+ object-keys "^1.1.1"
+ regexp.prototype.flags "^1.2.0"
+
+ deep-equal@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+ integrity sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==
+
+ deep-extend@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
+ integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
+
+ deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+
+ deepmerge@^1.5.2:
+ version "1.5.2"
+ resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
+
+ deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+
+ default-gateway@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
+ dependencies:
+ execa "^1.0.0"
+ ip-regex "^2.1.0"
+
+ default-gateway@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz#4fd6bd5d2855d39b34cc5a59505486e9aafc9b10"
+ dependencies:
+ execa "^3.3.0"
+
+ default-gateway@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz#819494c888053bdb743edbf343d6cdf7f2943a71"
+ integrity sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==
+ dependencies:
+ execa "^5.0.0"
+
+ defaults@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d"
+ dependencies:
+ clone "^1.0.2"
+
+ define-properties@^1.1.2, define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ dependencies:
+ object-keys "^1.0.12"
+
+ define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ dependencies:
+ is-descriptor "^0.1.0"
+
+ define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ dependencies:
+ is-descriptor "^1.0.0"
+
+ define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+ del@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
+ dependencies:
+ "@types/glob" "^7.1.1"
+ globby "^6.1.0"
+ is-path-cwd "^2.0.0"
+ is-path-in-cwd "^2.0.0"
+ p-map "^2.0.0"
+ pify "^4.0.1"
+ rimraf "^2.6.3"
+
+ del@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7"
+ dependencies:
+ globby "^10.0.1"
+ graceful-fs "^4.2.2"
+ is-glob "^4.0.1"
+ is-path-cwd "^2.2.0"
+ is-path-inside "^3.0.1"
+ p-map "^3.0.0"
+ rimraf "^3.0.0"
+ slash "^3.0.0"
+
+ delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+ delegates@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+ integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
+
+ depd@2.0.0, depd@^2.0.0, depd@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
+ integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
+
+ depd@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+
+ des.js@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843"
+ dependencies:
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+
+ destroy@^1.0.4:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
+ integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
+
+ destroy@~1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+
+ detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+
+ detect-node@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
+
+ diff-sequences@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
+
+ diff@3.5.0:
+ version "3.5.0"
+ resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+
+ diffie-hellman@^5.0.0:
+ version "5.0.3"
+ resolved "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
+ dependencies:
+ bn.js "^4.1.0"
+ miller-rabin "^4.0.0"
+ randombytes "^2.0.0"
+
+ dir-glob@^2.0.0, dir-glob@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
+ dependencies:
+ path-type "^3.0.0"
+
+ dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ dependencies:
+ path-type "^4.0.0"
+
+ dns-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
+
+ dns-packet@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
+ dependencies:
+ ip "^1.1.0"
+ safe-buffer "^5.0.1"
+
+ dns-txt@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
+ dependencies:
+ buffer-indexof "^1.0.0"
+
+ doctrine@1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
+ doctrine@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
+ dependencies:
+ esutils "^2.0.2"
+
+ dom-converter@^0.2:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
+ dependencies:
+ utila "~0.4"
+
+ dom-event-types@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/dom-event-types/-/dom-event-types-1.0.0.tgz#5830a0a29e1bf837fe50a70cd80a597232813cae"
+
+ dom-serializer@0:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+ dependencies:
+ domelementtype "^2.0.1"
+ entities "^2.0.0"
+
+ domain-browser@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
+
+ domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
+
+ domelementtype@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
+
+ domexception@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
+ dependencies:
+ webidl-conversions "^4.0.2"
+
+ domexception@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304"
+ dependencies:
+ webidl-conversions "^5.0.0"
+
+ domhandler@^2.3.0:
+ version "2.4.2"
+ resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
+ dependencies:
+ domelementtype "1"
+
+ domutils@1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+ domutils@^1.5.1, domutils@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
+ dependencies:
+ dom-serializer "0"
+ domelementtype "1"
+
+ dot-prop@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
+ dependencies:
+ is-obj "^2.0.0"
+
+ dotenv-expand@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0"
+
+ dotenv@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
+
+ duplexer@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
+
+ duplexify@^3.4.2, duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
+ easy-stack@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.0.tgz#12c91b3085a37f0baa336e9486eac4bf94e3e788"
+
+ ecc-jsbn@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ dependencies:
+ jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+ editorconfig@^0.15.3:
+ version "0.15.3"
+ resolved "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"
+ dependencies:
+ commander "^2.19.0"
+ lru-cache "^4.1.5"
+ semver "^5.6.0"
+ sigmund "^1.0.1"
+
+ ee-first@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+
+ ejs@^2.6.1:
+ version "2.7.4"
+ resolved "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
+
+ electron-to-chromium@^1.3.413:
+ version "1.3.414"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.414.tgz#9d0a92defefda7cc1cf8895058b892795ddd6b41"
+
+ electron-to-chromium@^1.4.284:
+ version "1.4.311"
+ resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz#953bc9a4767f5ce8ec125f9a1ad8e00e8f67e479"
+ integrity sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw==
+
+ elliptic@^6.0.0:
+ version "6.5.3"
+ resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
+ dependencies:
+ bn.js "^4.4.0"
+ brorand "^1.0.1"
+ hash.js "^1.0.0"
+ hmac-drbg "^1.0.0"
+ inherits "^2.0.1"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.0"
+
+ emoji-regex@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+
+ emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+
+ emojis-list@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
+
+ emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+
+ encodeurl@^1.0.2, encodeurl@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
+
+ end-of-stream@^1.0.0, end-of-stream@^1.1.0:
+ version "1.4.4"
+ resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ dependencies:
+ once "^1.4.0"
+
+ engine.io-client@~3.5.0:
+ version "3.5.3"
+ resolved "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.5.3.tgz#3254f61fdbd53503dc9a6f9d46a52528871ca0d7"
+ integrity sha512-qsgyc/CEhJ6cgMUwxRRtOndGVhIu5hpL5tR4umSpmX/MvkFoIxUTM7oFMDQumHNzlNLwSVy6qhstFPoWTf7dOw==
+ dependencies:
+ component-emitter "~1.3.0"
+ component-inherit "0.0.3"
+ debug "~3.1.0"
+ engine.io-parser "~2.2.0"
+ has-cors "1.1.0"
+ indexof "0.0.1"
+ parseqs "0.0.6"
+ parseuri "0.0.6"
+ ws "~7.4.2"
+ xmlhttprequest-ssl "~1.6.2"
+ yeast "0.1.2"
+
+ engine.io-parser@~2.2.0:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7"
+ integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==
+ dependencies:
+ after "0.8.2"
+ arraybuffer.slice "~0.0.7"
+ base64-arraybuffer "0.1.4"
+ blob "0.0.5"
+ has-binary2 "~1.0.2"
+
+ engine.io@~3.6.0:
+ version "3.6.1"
+ resolved "https://registry.npmjs.org/engine.io/-/engine.io-3.6.1.tgz#7ca4c7779c20865e30d208751bde08ca1e800256"
+ integrity sha512-dfs8EVg/i7QjFsXxn7cCRQ+Wai1G1TlEvHhdYEi80fxn5R1vZ2K661O6v/rezj1FP234SZ14r9CmJke99iYDGg==
+ dependencies:
+ accepts "~1.3.4"
+ base64id "2.0.0"
+ cookie "~0.4.1"
+ debug "~4.1.0"
+ engine.io-parser "~2.2.0"
+ ws "~7.4.2"
+
+ enhanced-resolve@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66"
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.5.0"
+ tapable "^1.0.0"
+
+ enhanced-resolve@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec"
+ integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==
+ dependencies:
+ graceful-fs "^4.1.2"
+ memory-fs "^0.5.0"
+ tapable "^1.0.0"
+
+ entities@^1.1.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
+
+ entities@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
+
+ envinfo@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/envinfo/-/envinfo-6.0.1.tgz#dec51f2dd38fb4a1fb5bf568488c06ad1e7e08a7"
+ integrity sha512-IbMWvMQulMm1hiky1Zt5YTcSDEdZs0r9bt77mcLa4RUAKRYTGZvrb3MtAt47FuldPxwL+u2LtQex1FajIW1/Cw==
+
+ errno@^0.1.3, errno@~0.1.7:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
+ dependencies:
+ prr "~1.0.1"
+
+ error-ex@^1.2.0, error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+ error-stack-parser@^2.0.0:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
+ dependencies:
+ stackframe "^1.1.1"
+
+ es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5:
+ version "1.17.5"
+ resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
+ dependencies:
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.1.5"
+ is-regex "^1.0.5"
+ object-inspect "^1.7.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.0"
+ string.prototype.trimleft "^2.1.1"
+ string.prototype.trimright "^2.1.1"
+
+ es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
+ es6-object-assign@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
+ integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==
+
+ escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+ escape-html@^1.0.3, escape-html@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+
+ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+ escape-string-regexp@4, escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
+
+ escodegen@^1.11.1, escodegen@^1.14.1:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+ escodegen@^1.8.1:
+ version "1.14.3"
+ resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
+ integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+ eslint-config-standard@^14.1.0:
+ version "14.1.1"
+ resolved "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea"
+
+ eslint-import-resolver-node@^0.3.2:
+ version "0.3.3"
+ resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404"
+ dependencies:
+ debug "^2.6.9"
+ resolve "^1.13.1"
+
+ eslint-loader@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337"
+ dependencies:
+ loader-fs-cache "^1.0.0"
+ loader-utils "^1.0.2"
+ object-assign "^4.0.1"
+ object-hash "^1.1.4"
+ rimraf "^2.6.1"
+
+ eslint-loader@^3.0.3:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.4.tgz#4329482877e381c91460a055bcd08d3855b9922d"
+ dependencies:
+ fs-extra "^8.1.0"
+ loader-fs-cache "^1.0.3"
+ loader-utils "^1.2.3"
+ object-hash "^2.0.3"
+ schema-utils "^2.6.5"
+
+ eslint-module-utils@^2.4.1:
+ version "2.6.0"
+ resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6"
+ dependencies:
+ debug "^2.6.9"
+ pkg-dir "^2.0.0"
+
+ eslint-plugin-es@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.0.tgz#98cb1bc8ab0aa807977855e11ad9d1c9422d014b"
+ dependencies:
+ eslint-utils "^2.0.0"
+ regexpp "^3.0.0"
+
+ eslint-plugin-import@^2.20.1:
+ version "2.20.2"
+ resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d"
+ dependencies:
+ array-includes "^3.0.3"
+ array.prototype.flat "^1.2.1"
+ contains-path "^0.1.0"
+ debug "^2.6.9"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.3.2"
+ eslint-module-utils "^2.4.1"
+ has "^1.0.3"
+ minimatch "^3.0.4"
+ object.values "^1.1.0"
+ read-pkg-up "^2.0.0"
+ resolve "^1.12.0"
+
+ eslint-plugin-node@^11.0.0:
+ version "11.1.0"
+ resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d"
+ dependencies:
+ eslint-plugin-es "^3.0.0"
+ eslint-utils "^2.0.0"
+ ignore "^5.1.1"
+ minimatch "^3.0.4"
+ resolve "^1.10.1"
+ semver "^6.1.0"
+
+ eslint-plugin-promise@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
+
+ eslint-plugin-standard@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.0.1.tgz#ff0519f7ffaff114f76d1bd7c3996eef0f6e20b4"
+
+ eslint-plugin-vue@^6.2.2:
+ version "6.2.2"
+ resolved "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz#27fecd9a3a24789b0f111ecdd540a9e56198e0fe"
+ dependencies:
+ natural-compare "^1.4.0"
+ semver "^5.6.0"
+ vue-eslint-parser "^7.0.0"
+
+ eslint-scope@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+ eslint-scope@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
+ dependencies:
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+ eslint-utils@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+ eslint-utils@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd"
+ dependencies:
+ eslint-visitor-keys "^1.1.0"
+
+ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2"
+
+ eslint@^6.0.0, eslint@^6.1.0, eslint@^6.8.0:
+ version "6.8.0"
+ resolved "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ ajv "^6.10.0"
+ chalk "^2.1.0"
+ cross-spawn "^6.0.5"
+ debug "^4.0.1"
+ doctrine "^3.0.0"
+ eslint-scope "^5.0.0"
+ eslint-utils "^1.4.3"
+ eslint-visitor-keys "^1.1.0"
+ espree "^6.1.2"
+ esquery "^1.0.1"
+ esutils "^2.0.2"
+ file-entry-cache "^5.0.1"
+ functional-red-black-tree "^1.0.1"
+ glob-parent "^5.0.0"
+ globals "^12.1.0"
+ ignore "^4.0.6"
+ import-fresh "^3.0.0"
+ imurmurhash "^0.1.4"
+ inquirer "^7.0.0"
+ is-glob "^4.0.0"
+ js-yaml "^3.13.1"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ levn "^0.3.0"
+ lodash "^4.17.14"
+ minimatch "^3.0.4"
+ mkdirp "^0.5.1"
+ natural-compare "^1.4.0"
+ optionator "^0.8.3"
+ progress "^2.0.0"
+ regexpp "^2.0.1"
+ semver "^6.1.2"
+ strip-ansi "^5.2.0"
+ strip-json-comments "^3.0.1"
+ table "^5.2.3"
+ text-table "^0.2.0"
+ v8-compile-cache "^2.0.3"
+
+ espree@^6.1.2:
+ version "6.2.1"
+ resolved "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
+ dependencies:
+ acorn "^7.1.1"
+ acorn-jsx "^5.2.0"
+ eslint-visitor-keys "^1.1.0"
+
+ esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+
+ esquery@^1.0.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57"
+ dependencies:
+ estraverse "^5.1.0"
+
+ esrecurse@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
+ dependencies:
+ estraverse "^4.1.0"
+
+ estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
+
+ estraverse@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642"
+
+ estree-walker@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362"
+
+ estree-walker@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
+
+ esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+
+ etag@~1.8.1:
+ version "1.8.1"
+ resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
+
+ event-pubsub@4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz#f68d816bc29f1ec02c539dc58c8dd40ce72cb36e"
+
+ eventemitter3@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb"
+
+ events@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59"
+
+ eventsource@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
+ dependencies:
+ original "^1.0.0"
+
+ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
+ dependencies:
+ md5.js "^1.3.4"
+ safe-buffer "^5.1.1"
+
+ exec-sh@^0.3.2:
+ version "0.3.4"
+ resolved "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
+
+ execa@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da"
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+ execa@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
+ dependencies:
+ cross-spawn "^6.0.0"
+ get-stream "^4.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+ execa@^3.2.0, execa@^3.3.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ p-finally "^2.0.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
+ execa@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+ dependencies:
+ cross-spawn "^7.0.3"
+ get-stream "^6.0.0"
+ human-signals "^2.1.0"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.1"
+ onetime "^5.1.2"
+ signal-exit "^3.0.3"
+ strip-final-newline "^2.0.0"
+
+ exit@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
+
+ expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+ expand-tilde@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449"
+ dependencies:
+ os-homedir "^1.0.1"
+
+ expect@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/expect/-/expect-25.4.0.tgz#0b16c17401906d1679d173e59f0d4580b22f8dc8"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ ansi-styles "^4.0.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-regex-util "^25.2.6"
+
+ express@^4.16.3, express@^4.17.1:
+ version "4.17.1"
+ resolved "https://registry.npmjs.org/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
+ dependencies:
+ accepts "~1.3.7"
+ array-flatten "1.1.1"
+ body-parser "1.19.0"
+ content-disposition "0.5.3"
+ content-type "~1.0.4"
+ cookie "0.4.0"
+ cookie-signature "1.0.6"
+ debug "2.6.9"
+ depd "~1.1.2"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ finalhandler "~1.1.2"
+ fresh "0.5.2"
+ merge-descriptors "1.0.1"
+ methods "~1.1.2"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ path-to-regexp "0.1.7"
+ proxy-addr "~2.0.5"
+ qs "6.7.0"
+ range-parser "~1.2.1"
+ safe-buffer "5.1.2"
+ send "0.17.1"
+ serve-static "1.14.1"
+ setprototypeof "1.1.1"
+ statuses "~1.5.0"
+ type-is "~1.6.18"
+ utils-merge "1.0.1"
+ vary "~1.1.2"
+
+ extend-shallow@^2.0.0, extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ dependencies:
+ is-extendable "^0.1.0"
+
+ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+ extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+
+ external-editor@^3.0.3:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+ dependencies:
+ chardet "^0.7.0"
+ iconv-lite "^0.4.24"
+ tmp "^0.0.33"
+
+ extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+ extsprintf@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+ extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+
+ fast-deep-equal@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
+
+ fast-glob@^2.2.6:
+ version "2.2.7"
+ resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
+ dependencies:
+ "@mrmlnc/readdir-enhanced" "^2.2.1"
+ "@nodelib/fs.stat" "^1.1.2"
+ glob-parent "^3.1.0"
+ is-glob "^4.0.0"
+ merge2 "^1.2.3"
+ micromatch "^3.1.10"
+
+ fast-glob@^3.0.3:
+ version "3.2.2"
+ resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d"
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.0"
+ merge2 "^1.3.0"
+ micromatch "^4.0.2"
+ picomatch "^2.2.1"
+
+ fast-glob@^3.2.11:
+ version "3.2.12"
+ resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
+ integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+ fast-json-stable-stringify@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+
+ fast-levenshtein@~2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
+ fastq@^1.6.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz#fcd79a08c5bd7ec5b55cd3f5c4720db551929801"
+ dependencies:
+ reusify "^1.0.4"
+
+ faye-websocket@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
+ dependencies:
+ websocket-driver ">=0.5.1"
+
+ faye-websocket@~0.11.1:
+ version "0.11.3"
+ resolved "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
+ dependencies:
+ websocket-driver ">=0.5.1"
+
+ fb-watchman@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+ dependencies:
+ bser "2.1.1"
+
+ figgy-pudding@^3.5.1:
+ version "3.5.2"
+ resolved "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+
+ figures@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+
+ file-contents@^0.2.4:
+ version "0.2.4"
+ resolved "https://registry.npmjs.org/file-contents/-/file-contents-0.2.4.tgz#0506f7b8eff62afa45ae45da4df9e9d47df453cb"
+ dependencies:
+ extend-shallow "^2.0.0"
+ file-stat "^0.1.0"
+ graceful-fs "^4.1.2"
+ is-buffer "^1.1.0"
+ is-utf8 "^0.2.0"
+ lazy-cache "^0.2.3"
+ through2 "^2.0.0"
+
+ file-contents@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/file-contents/-/file-contents-0.3.2.tgz#a0939fed1b8cda1580266fc6b753a232fb46de53"
+ dependencies:
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ file-stat "^0.2.3"
+ fs-exists-sync "^0.1.0"
+ graceful-fs "^4.1.4"
+ is-buffer "^1.1.3"
+ isobject "^2.1.0"
+ lazy-cache "^2.0.1"
+ strip-bom-buffer "^0.1.1"
+ strip-bom-string "^0.1.2"
+ through2 "^2.0.1"
+ vinyl "^1.1.1"
+
+ file-entry-cache@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
+ dependencies:
+ flat-cache "^2.0.1"
+
+ file-loader@^4.2.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af"
+ dependencies:
+ loader-utils "^1.2.3"
+ schema-utils "^2.5.0"
+
+ file-stat@^0.1.0:
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/file-stat/-/file-stat-0.1.3.tgz#d0f1961d7d10732928120a6e6955471c2a5b5411"
+ dependencies:
+ graceful-fs "^4.1.2"
+ lazy-cache "^0.2.3"
+ through2 "^2.0.0"
+
+ file-stat@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.npmjs.org/file-stat/-/file-stat-0.2.3.tgz#469a7e927d6930079624cdb38109405456cb06a9"
+ dependencies:
+ fs-exists-sync "^0.1.0"
+ graceful-fs "^4.1.4"
+ lazy-cache "^2.0.1"
+ through2 "^2.0.1"
+
+ file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+
+ filesize@^3.6.1:
+ version "3.6.1"
+ resolved "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
+
+ fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+ fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ dependencies:
+ to-regex-range "^5.0.1"
+
+ finalhandler@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
+ dependencies:
+ debug "2.6.9"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ on-finished "~2.3.0"
+ parseurl "~1.3.3"
+ statuses "~1.5.0"
+ unpipe "~1.0.0"
+
+ find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^2.0.0"
+ pkg-dir "^3.0.0"
+
+ find-cache-dir@^3.0.0, find-cache-dir@^3.2.0:
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
+ find-cache-dir@^3.3.1:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
+ integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
+ find-up@3.0.0, find-up@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
+ dependencies:
+ locate-path "^3.0.0"
+
+ find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+ find-up@^2.0.0, find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+ find-up@^4.0.0, find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+ flat-cache@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
+ dependencies:
+ flatted "^2.0.0"
+ rimraf "2.6.3"
+ write "1.0.3"
+
+ flat@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2"
+ dependencies:
+ is-buffer "~2.0.3"
+
+ flatted@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+
+ flush-write-stream@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
+ follow-redirects@^1.0.0:
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb"
+ dependencies:
+ debug "^3.0.0"
+
+ for-each@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
+ integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
+ dependencies:
+ is-callable "^1.1.3"
+
+ for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+
+ forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+ form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
+ formidable@^1.1.1:
+ version "1.2.6"
+ resolved "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168"
+ integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==
+
+ forwarded@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
+
+ fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ dependencies:
+ map-cache "^0.2.2"
+
+ fresh@0.5.2, fresh@~0.5.2:
+ version "0.5.2"
+ resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+
+ from2@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
+ dependencies:
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+
+ fs-exists-sync@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add"
+
+ fs-extra@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
+ dependencies:
+ graceful-fs "^4.1.2"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+ fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.0"
+
+ fs-minipass@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+ dependencies:
+ minipass "^3.0.0"
+
+ fs-write-stream-atomic@^1.0.8:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
+ dependencies:
+ graceful-fs "^4.1.2"
+ iferr "^0.1.5"
+ imurmurhash "^0.1.4"
+ readable-stream "1 || 2"
+
+ fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+ fsevents@^1.2.7:
+ version "1.2.12"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c"
+ dependencies:
+ bindings "^1.5.0"
+ nan "^2.12.1"
+
+ fsevents@^2.1.2, fsevents@~2.1.2:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
+
+ fsevents@~2.3.2:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
+ integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+
+ function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+
+ functional-red-black-tree@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
+
+ gensync@^1.0.0-beta.1:
+ version "1.0.0-beta.1"
+ resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
+
+ gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+ get-caller-file@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
+
+ get-caller-file@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+
+ get-func-name@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+
+ get-intrinsic@^1.0.2, get-intrinsic@^1.1.3:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f"
+ integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==
+ dependencies:
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.3"
+
+ get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+
+ get-stream@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
+ dependencies:
+ pump "^3.0.0"
+
+ get-stream@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
+ dependencies:
+ pump "^3.0.0"
+
+ get-stream@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
+
+ get-them-args@1.3.2:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/get-them-args/-/get-them-args-1.3.2.tgz#74a20ba8a4abece5ae199ad03f2bcc68fdfc9ba5"
+ integrity sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==
+
+ get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+
+ getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ dependencies:
+ assert-plus "^1.0.0"
+
+ glob-escape@^0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/glob-escape/-/glob-escape-0.0.2.tgz#9c27f7821ed1c1377582f3efd9558e3f675628ed"
+ integrity sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==
+
+ glob-parent@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz#5f4c1d1e748d30cd73ad2944b3577a81b081e8c2"
+ dependencies:
+ is-glob "^4.0.1"
+
+ glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ dependencies:
+ is-glob "^2.0.0"
+
+ glob-parent@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ dependencies:
+ is-glob "^3.1.0"
+ path-dirname "^1.0.0"
+
+ glob-parent@^5.0.0, glob-parent@^5.1.0:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229"
+ dependencies:
+ is-glob "^4.0.1"
+
+ glob-parent@^5.1.2, glob-parent@~5.1.2:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
+ glob-to-regexp@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
+
+ glob@7.1.3:
+ version "7.1.3"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+ glob@^7.0.0:
+ version "7.2.3"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+ version "7.1.6"
+ resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+ global-modules@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d"
+ dependencies:
+ global-prefix "^0.1.4"
+ is-windows "^0.2.0"
+
+ global-prefix@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f"
+ dependencies:
+ homedir-polyfill "^1.0.0"
+ ini "^1.3.4"
+ is-windows "^0.2.0"
+ which "^1.2.12"
+
+ globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+
+ globals@^12.1.0:
+ version "12.4.0"
+ resolved "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
+ dependencies:
+ type-fest "^0.8.1"
+
+ globby@10.0.1:
+ version "10.0.1"
+ resolved "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz#4782c34cb75dd683351335c5829cc3420e606b22"
+ integrity sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==
+ dependencies:
+ "@types/glob" "^7.1.1"
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.0.3"
+ glob "^7.1.3"
+ ignore "^5.1.1"
+ merge2 "^1.2.3"
+ slash "^3.0.0"
+
+ globby@^10.0.1:
+ version "10.0.2"
+ resolved "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543"
+ dependencies:
+ "@types/glob" "^7.1.1"
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.0.3"
+ glob "^7.1.3"
+ ignore "^5.1.1"
+ merge2 "^1.2.3"
+ slash "^3.0.0"
+
+ globby@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ dependencies:
+ array-union "^1.0.1"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+ globby@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
+ dependencies:
+ array-union "^1.0.1"
+ dir-glob "^2.0.0"
+ glob "^7.1.2"
+ ignore "^3.3.5"
+ pify "^3.0.0"
+ slash "^1.0.0"
+
+ globby@^9.2.0:
+ version "9.2.0"
+ resolved "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
+ dependencies:
+ "@types/glob" "^7.1.1"
+ array-union "^1.0.2"
+ dir-glob "^2.2.2"
+ fast-glob "^2.2.6"
+ glob "^7.1.3"
+ ignore "^4.0.3"
+ pify "^4.0.1"
+ slash "^2.0.0"
+
+ gopd@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
+ integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
+ dependencies:
+ get-intrinsic "^1.1.3"
+
+ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
+
+ growl@1.10.5:
+ version "1.10.5"
+ resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e"
+
+ growly@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
+
+ gzip-size@^5.0.0:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274"
+ dependencies:
+ duplexer "^0.1.1"
+ pify "^4.0.1"
+
+ handle-thing@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
+
+ har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+ har-validator@~5.1.3:
+ version "5.1.3"
+ resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
+ dependencies:
+ ajv "^6.5.5"
+ har-schema "^2.0.0"
+
+ has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+ has-binary2@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d"
+ integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==
+ dependencies:
+ isarray "2.0.1"
+
+ has-cors@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39"
+ integrity sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==
+
+ has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
+ has-flag@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
+
+ has-glob@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/has-glob/-/has-glob-0.1.1.tgz#a261c4c2a6c667e0c77b700a7f297c39ef3aa589"
+ dependencies:
+ is-glob "^2.0.1"
+
+ has-symbols@^1.0.0, has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+
+ has-symbols@^1.0.2, has-symbols@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
+ integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
+
+ has-tostringtag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
+ integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
+ dependencies:
+ has-symbols "^1.0.2"
+
+ has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+ has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+ has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+
+ has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+ has@^1.0.0, has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ dependencies:
+ function-bind "^1.1.1"
+
+ hash-base@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+ hash-sum@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
+
+ hash-sum@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
+
+ hash.js@^1.0.0, hash.js@^1.0.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
+ dependencies:
+ inherits "^2.0.3"
+ minimalistic-assert "^1.0.1"
+
+ he@1.2.0, he@1.2.x, he@^1.1.0, he@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
+
+ hex-color-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
+
+ highlight.js@^9.6.0:
+ version "9.18.1"
+ resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz#ed21aa001fe6252bb10a3d76d47573c6539fe13c"
+
+ hmac-drbg@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
+ dependencies:
+ hash.js "^1.0.3"
+ minimalistic-assert "^1.0.0"
+ minimalistic-crypto-utils "^1.0.1"
+
+ homedir-polyfill@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8"
+ dependencies:
+ parse-passwd "^1.0.0"
+
+ hoopy@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz#609207d661100033a9a9402ad3dea677381c1b1d"
+
+ hosted-git-info@^2.1.4:
+ version "2.8.8"
+ resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+
+ hpack.js@^2.1.6:
+ version "2.1.6"
+ resolved "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
+ dependencies:
+ inherits "^2.0.1"
+ obuf "^1.0.0"
+ readable-stream "^2.0.1"
+ wbuf "^1.1.0"
+
+ hsl-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
+
+ hsla-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
+
+ html-comment-regex@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
+
+ html-encoding-sniffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8"
+ dependencies:
+ whatwg-encoding "^1.0.1"
+
+ html-encoding-sniffer@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
+ dependencies:
+ whatwg-encoding "^1.0.5"
+
+ html-entities@^1.2.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
+
+ html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+
+ html-minifier@^3.2.3:
+ version "3.5.21"
+ resolved "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
+ dependencies:
+ camel-case "3.0.x"
+ clean-css "4.2.x"
+ commander "2.17.x"
+ he "1.2.x"
+ param-case "2.1.x"
+ relateurl "0.2.x"
+ uglify-js "3.4.x"
+
+ html-tags@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
+
+ html-webpack-plugin@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz#b01abbd723acaaa7b37b6af4492ebda03d9dd37b"
+ dependencies:
+ html-minifier "^3.2.3"
+ loader-utils "^0.2.16"
+ lodash "^4.17.3"
+ pretty-error "^2.0.2"
+ tapable "^1.0.0"
+ toposort "^1.0.0"
+ util.promisify "1.0.0"
+
+ htmlparser2@^3.3.0:
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
+ dependencies:
+ domelementtype "^1.3.1"
+ domhandler "^2.3.0"
+ domutils "^1.5.1"
+ entities "^1.1.1"
+ inherits "^2.0.1"
+ readable-stream "^3.1.1"
+
+ http-assert@^1.3.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz#c389ccd87ac16ed2dfa6246fd73b926aa00e6b8f"
+ integrity sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==
+ dependencies:
+ deep-equal "~1.0.1"
+ http-errors "~1.8.0"
+
+ http-deceiver@^1.2.7:
+ version "1.2.7"
+ resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
+
+ http-errors@1.7.2:
+ version "1.7.2"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+ http-errors@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
+ integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
+ dependencies:
+ depd "2.0.0"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses "2.0.1"
+ toidentifier "1.0.1"
+
+ http-errors@^1.3.1, http-errors@^1.6.3, http-errors@^1.7.3, http-errors@~1.8.0:
+ version "1.8.1"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c"
+ integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.2.0"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.1"
+
+ http-errors@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.3"
+ setprototypeof "1.1.0"
+ statuses ">= 1.4.0 < 2"
+
+ http-errors@~1.7.2:
+ version "1.7.3"
+ resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
+ dependencies:
+ depd "~1.1.2"
+ inherits "2.0.4"
+ setprototypeof "1.1.1"
+ statuses ">= 1.5.0 < 2"
+ toidentifier "1.0.0"
+
+ "http-parser-js@>=0.4.0 <0.4.11":
+ version "0.4.10"
+ resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
+
+ http-proxy-middleware@0.19.1:
+ version "0.19.1"
+ resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
+ dependencies:
+ http-proxy "^1.17.0"
+ is-glob "^4.0.0"
+ lodash "^4.17.11"
+ micromatch "^3.1.10"
+
+ http-proxy@^1.17.0:
+ version "1.18.0"
+ resolved "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a"
+ dependencies:
+ eventemitter3 "^4.0.0"
+ follow-redirects "^1.0.0"
+ requires-port "^1.0.0"
+
+ http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+ https-browserify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
+
+ human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+
+ human-signals@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+
+ i18n@^0.13.3:
+ version "0.13.3"
+ resolved "https://registry.yarnpkg.com/i18n/-/i18n-0.13.3.tgz#5820f48d87a77cf14e064719bee9bc682ed550eb"
+ dependencies:
+ debug "^4.1.1"
+ make-plural "^6.2.2"
+ math-interval-parser "^2.0.1"
+ messageformat "^2.3.0"
+ mustache "^4.0.1"
+ sprintf-js "^1.1.2"
+
+ iconv-lite@0.4.24, iconv-lite@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3"
+
+ icss-replace-symbols@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
+ integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==
+
+ icss-utils@^4.0.0, icss-utils@^4.1.0, icss-utils@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
+ dependencies:
+ postcss "^7.0.14"
+
+ ieee754@^1.1.4:
+ version "1.1.13"
+ resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
+
+ iferr@^0.1.5:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
+
+ ignore@^3.3.5:
+ version "3.3.10"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
+
+ ignore@^4.0.3, ignore@^4.0.6:
+ version "4.0.6"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
+
+ ignore@^5.1.1:
+ version "5.1.4"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf"
+
+ immediate@~3.0.5:
+ version "3.0.6"
+ resolved "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b"
+ integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==
+
+ import-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
+ dependencies:
+ import-from "^2.1.0"
+
+ import-fresh@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
+ dependencies:
+ caller-path "^2.0.0"
+ resolve-from "^3.0.0"
+
+ import-fresh@^3.0.0:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66"
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+ import-from@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
+ dependencies:
+ resolve-from "^3.0.0"
+
+ import-local@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
+ dependencies:
+ pkg-dir "^3.0.0"
+ resolve-cwd "^2.0.0"
+
+ import-local@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
+ imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+ indent-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
+
+ indexes-of@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
+
+ indexof@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
+ integrity sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==
+
+ infer-owner@^1.0.3, infer-owner@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
+
+ inflation@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz#8b417e47c28f925a45133d914ca1fd389107f30f"
+ integrity sha512-m3xv4hJYR2oXw4o4Y5l6P5P16WYmazYof+el6Al3f+YlggGj6qT9kImBAnzDelRALnP5d3h4jGBPKzYCizjZZw==
+
+ inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+
+ inherits@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
+
+ inherits@2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+ ini@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+
+ ini@~1.3.0:
+ version "1.3.8"
+ resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
+ integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
+
+ inquirer@^7.0.0, inquirer@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29"
+ dependencies:
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ cli-cursor "^3.1.0"
+ cli-width "^2.0.0"
+ external-editor "^3.0.3"
+ figures "^3.0.0"
+ lodash "^4.17.15"
+ mute-stream "0.0.8"
+ run-async "^2.4.0"
+ rxjs "^6.5.3"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+ through "^2.3.6"
+
+ internal-ip@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
+ dependencies:
+ default-gateway "^4.2.0"
+ ipaddr.js "^1.9.0"
+
+ interpret@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
+ integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
+
+ interpret@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
+
+ intersection-observer@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.7.0.tgz#ee16bee978db53516ead2f0a8154b09b400bbdc9"
+
+ invariant@^2.2.2, invariant@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ dependencies:
+ loose-envify "^1.0.0"
+
+ invert-kv@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
+
+ invert-kv@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523"
+ integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==
+
+ ip-regex@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
+
+ ip@^1.1.0, ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
+ ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
+
+ is-absolute-url@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
+
+ is-absolute-url@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
+
+ is-absolute@^0.2.5:
+ version "0.2.6"
+ resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb"
+ dependencies:
+ is-relative "^0.2.1"
+ is-windows "^0.2.0"
+
+ is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ dependencies:
+ kind-of "^6.0.0"
+
+ is-arguments@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
+
+ is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+ is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+
+ is-binary-path@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
+ dependencies:
+ binary-extensions "^1.0.0"
+
+ is-binary-path@~2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
+ dependencies:
+ binary-extensions "^2.0.0"
+
+ is-buffer@^1.1.0, is-buffer@^1.1.3, is-buffer@^1.1.5, is-buffer@~1.1.6:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+ is-buffer@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
+
+ is-callable@^1.1.3:
+ version "1.2.7"
+ resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
+ integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
+
+ is-callable@^1.1.4, is-callable@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab"
+
+ is-ci@^1.0.10:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c"
+ dependencies:
+ ci-info "^1.5.0"
+
+ is-ci@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
+ dependencies:
+ ci-info "^2.0.0"
+
+ is-color-stop@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
+ dependencies:
+ css-color-names "^0.0.4"
+ hex-color-regex "^1.1.0"
+ hsl-regex "^1.0.0"
+ hsla-regex "^1.0.0"
+ rgb-regex "^1.0.1"
+ rgba-regex "^1.0.0"
+
+ is-core-module@^2.9.0:
+ version "2.11.0"
+ resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
+ integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
+ dependencies:
+ has "^1.0.3"
+
+ is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ dependencies:
+ kind-of "^6.0.0"
+
+ is-date-object@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+
+ is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+ is-directory@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
+
+ is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+
+ is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ dependencies:
+ is-plain-object "^2.0.4"
+
+ is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+
+ is-extglob@^2.1.0, is-extglob@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+
+ is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+ is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+ is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+
+ is-generator-fn@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+
+ is-generator-function@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
+ integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
+ dependencies:
+ has-tostringtag "^1.0.0"
+
+ is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ dependencies:
+ is-extglob "^1.0.0"
+
+ is-glob@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ dependencies:
+ is-extglob "^2.1.0"
+
+ is-glob@^4.0.0, is-glob@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
+ dependencies:
+ is-extglob "^2.1.1"
+
+ is-glob@~4.0.1:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
+ dependencies:
+ is-extglob "^2.1.1"
+
+ is-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
+
+ is-nan@^1.2.1:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
+ integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==
+ dependencies:
+ call-bind "^1.0.0"
+ define-properties "^1.1.3"
+
+ is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+
+ is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+
+ is-path-cwd@^2.0.0, is-path-cwd@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
+
+ is-path-in-cwd@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
+ dependencies:
+ is-path-inside "^2.1.0"
+
+ is-path-inside@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
+ dependencies:
+ path-is-inside "^1.0.2"
+
+ is-path-inside@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
+
+ is-plain-obj@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
+
+ is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ dependencies:
+ isobject "^3.0.1"
+
+ is-plain-object@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz#662d92d24c0aa4302407b0d45d21f2251c85f85b"
+ integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==
+
+ is-potential-custom-element-name@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397"
+
+ is-promise@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
+
+ is-reference@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427"
+ dependencies:
+ "@types/estree" "0.0.39"
+
+ is-regex@^1.0.4, is-regex@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae"
+ dependencies:
+ has "^1.0.3"
+
+ is-relative@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5"
+ dependencies:
+ is-unc-path "^0.1.1"
+
+ is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+
+ is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+ is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+
+ is-string@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
+
+ is-svg@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
+ dependencies:
+ html-comment-regex "^1.1.0"
+
+ is-symbol@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ dependencies:
+ has-symbols "^1.0.1"
+
+ is-typed-array@^1.1.10, is-typed-array@^1.1.3:
+ version "1.1.10"
+ resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
+ integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+
+ is-typedarray@^1.0.0, is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+ is-unc-path@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9"
+ dependencies:
+ unc-path-regex "^0.1.0"
+
+ is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+ is-valid-glob@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe"
+
+ is-whitespace@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f"
+
+ is-windows@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c"
+
+ is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+
+ is-wsl@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
+
+ is-wsl@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d"
+
+ isarray@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+ integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==
+
+ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+ isarray@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e"
+ integrity sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==
+
+ isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+ isobject@^2.0.0, isobject@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ dependencies:
+ isarray "1.0.0"
+
+ isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+
+ isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+ istanbul-lib-coverage@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
+
+ istanbul-lib-instrument@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6"
+ dependencies:
+ "@babel/core" "^7.7.5"
+ "@babel/parser" "^7.7.5"
+ "@babel/template" "^7.7.4"
+ "@babel/traverse" "^7.7.4"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.0.0"
+ semver "^6.3.0"
+
+ istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
+
+ istanbul-lib-source-maps@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"
+ dependencies:
+ debug "^4.1.1"
+ istanbul-lib-coverage "^3.0.0"
+ source-map "^0.6.1"
+
+ istanbul-reports@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
+ javascript-stringify@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.0.1.tgz#6ef358035310e35d667c675ed63d3eb7c1aa19e5"
+
+ jest-changed-files@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-25.4.0.tgz#e573db32c2fd47d2b90357ea2eda0622c5c5cbd6"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ execa "^3.2.0"
+ throat "^5.0.0"
+
+ jest-cli@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-25.4.0.tgz#5dac8be0fece6ce39f0d671395a61d1357322bab"
+ dependencies:
+ "@jest/core" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ is-ci "^2.0.0"
+ jest-config "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
+ prompts "^2.0.1"
+ realpath-native "^2.0.0"
+ yargs "^15.3.1"
+
+ jest-config@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-config/-/jest-config-25.4.0.tgz#56e5df3679a96ff132114b44fb147389c8c0a774"
+ dependencies:
+ "@babel/core" "^7.1.0"
+ "@jest/test-sequencer" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ babel-jest "^25.4.0"
+ chalk "^3.0.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.1"
+ jest-environment-jsdom "^25.4.0"
+ jest-environment-node "^25.4.0"
+ jest-get-type "^25.2.6"
+ jest-jasmine2 "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
+ micromatch "^4.0.2"
+ pretty-format "^25.4.0"
+ realpath-native "^2.0.0"
+
+ jest-diff@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-25.4.0.tgz#260b70f19a46c283adcad7f081cae71eb784a634"
+ dependencies:
+ chalk "^3.0.0"
+ diff-sequences "^25.2.6"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.4.0"
+
+ jest-docblock@^25.3.0:
+ version "25.3.0"
+ resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef"
+ dependencies:
+ detect-newline "^3.0.0"
+
+ jest-each@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-each/-/jest-each-25.4.0.tgz#ad4e46164764e8e77058f169a0076a7f86f6b7d4"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
+ jest-util "^25.4.0"
+ pretty-format "^25.4.0"
+
+ jest-environment-jsdom@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-25.4.0.tgz#bbfc7f85bb6ade99089062a830c79cb454565cf0"
+ dependencies:
+ "@jest/environment" "^25.4.0"
+ "@jest/fake-timers" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ jest-mock "^25.4.0"
+ jest-util "^25.4.0"
+ jsdom "^15.2.1"
+
+ jest-environment-node@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-25.4.0.tgz#188aef01ae6418e001c03fdd1c299961e1439082"
+ dependencies:
+ "@jest/environment" "^25.4.0"
+ "@jest/fake-timers" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ jest-mock "^25.4.0"
+ jest-util "^25.4.0"
+ semver "^6.3.0"
+
+ jest-get-type@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
+
+ jest-haste-map@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-25.4.0.tgz#da7c309dd7071e0a80c953ba10a0ec397efb1ae2"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.3"
+ jest-serializer "^25.2.6"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
+ micromatch "^4.0.2"
+ sane "^4.0.3"
+ walker "^1.0.7"
+ which "^2.0.2"
+ optionalDependencies:
+ fsevents "^2.1.2"
+
+ jest-jasmine2@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-25.4.0.tgz#3d3d19514022e2326e836c2b66d68b4cb63c5861"
+ dependencies:
+ "@babel/traverse" "^7.1.0"
+ "@jest/environment" "^25.4.0"
+ "@jest/source-map" "^25.2.6"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ co "^4.6.0"
+ expect "^25.4.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^25.4.0"
+ jest-matcher-utils "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-snapshot "^25.4.0"
+ jest-util "^25.4.0"
+ pretty-format "^25.4.0"
+ throat "^5.0.0"
+
+ jest-leak-detector@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-25.4.0.tgz#cf94a160c78e53d810e7b2f40b5fd7ee263375b3"
+ dependencies:
+ jest-get-type "^25.2.6"
+ pretty-format "^25.4.0"
+
+ jest-matcher-utils@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-25.4.0.tgz#dc3e7aec402a1e567ed80b572b9ad285878895e6"
+ dependencies:
+ chalk "^3.0.0"
+ jest-diff "^25.4.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.4.0"
+
+ jest-message-util@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-25.4.0.tgz#2899e8bc43f5317acf8dfdfe89ea237d354fcdab"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ "@jest/types" "^25.4.0"
+ "@types/stack-utils" "^1.0.1"
+ chalk "^3.0.0"
+ micromatch "^4.0.2"
+ slash "^3.0.0"
+ stack-utils "^1.0.1"
+
+ jest-mock@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-25.4.0.tgz#ded7d64b5328d81d78d2138c825d3a45e30ec8ca"
+ dependencies:
+ "@jest/types" "^25.4.0"
+
+ jest-pnp-resolver@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
+
+ jest-regex-util@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964"
+
+ jest-resolve-dependencies@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-25.4.0.tgz#783937544cfc40afcc7c569aa54748c4b3f83f5a"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-snapshot "^25.4.0"
+
+ jest-resolve@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-25.4.0.tgz#6f4540ce0d419c4c720e791e871da32ba4da7a60"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ browser-resolve "^1.11.3"
+ chalk "^3.0.0"
+ jest-pnp-resolver "^1.2.1"
+ read-pkg-up "^7.0.1"
+ realpath-native "^2.0.0"
+ resolve "^1.15.1"
+ slash "^3.0.0"
+
+ jest-runner@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-25.4.0.tgz#6ca4a3d52e692bbc081228fa68f750012f1f29e5"
+ dependencies:
+ "@jest/console" "^25.4.0"
+ "@jest/environment" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.3"
+ jest-config "^25.4.0"
+ jest-docblock "^25.3.0"
+ jest-haste-map "^25.4.0"
+ jest-jasmine2 "^25.4.0"
+ jest-leak-detector "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-resolve "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
+ source-map-support "^0.5.6"
+ throat "^5.0.0"
+
+ jest-runtime@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-25.4.0.tgz#1e5227a9e2159d26ae27dcd426ca6bc041983439"
+ dependencies:
+ "@jest/console" "^25.4.0"
+ "@jest/environment" "^25.4.0"
+ "@jest/source-map" "^25.2.6"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.3"
+ jest-config "^25.4.0"
+ jest-haste-map "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-mock "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.4.0"
+ jest-snapshot "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+ yargs "^15.3.1"
+
+ jest-serializer@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-25.2.6.tgz#3bb4cc14fe0d8358489dbbefbb8a4e708ce039b7"
+
+ jest-snapshot@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-25.4.0.tgz#e0b26375e2101413fd2ccb4278a5711b1922545c"
+ dependencies:
+ "@babel/types" "^7.0.0"
+ "@jest/types" "^25.4.0"
+ "@types/prettier" "^1.19.0"
+ chalk "^3.0.0"
+ expect "^25.4.0"
+ jest-diff "^25.4.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-resolve "^25.4.0"
+ make-dir "^3.0.0"
+ natural-compare "^1.4.0"
+ pretty-format "^25.4.0"
+ semver "^6.3.0"
+
+ jest-util@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-util/-/jest-util-25.4.0.tgz#6a093d09d86d2b41ef583e5fe7dd3976346e1acd"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ is-ci "^2.0.0"
+ make-dir "^3.0.0"
+
+ jest-validate@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-25.4.0.tgz#2e177a93b716a137110eaf2768f3d9095abd3f38"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ camelcase "^5.3.1"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
+ leven "^3.1.0"
+ pretty-format "^25.4.0"
+
+ jest-watcher@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-25.4.0.tgz#63ec0cd5c83bb9c9d1ac95be7558dd61c995ff05"
+ dependencies:
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ jest-util "^25.4.0"
+ string-length "^3.1.0"
+
+ jest-worker@^24.0.0, jest-worker@^24.9.0:
+ version "24.9.0"
+ resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
+ dependencies:
+ merge-stream "^2.0.0"
+ supports-color "^6.1.0"
+
+ jest-worker@^25.1.0, jest-worker@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-25.4.0.tgz#ee0e2ceee5a36ecddf5172d6d7e0ab00df157384"
+ dependencies:
+ merge-stream "^2.0.0"
+ supports-color "^7.0.0"
+
+ jest@^25.1.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/jest/-/jest-25.4.0.tgz#fb96892c5c4e4a6b9bcb12068849cddf4c5f8cc7"
+ dependencies:
+ "@jest/core" "^25.4.0"
+ import-local "^3.0.2"
+ jest-cli "^25.4.0"
+
+ js-beautify@^1.6.12:
+ version "1.11.0"
+ resolved "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz#afb873dc47d58986360093dcb69951e8bcd5ded2"
+ dependencies:
+ config-chain "^1.1.12"
+ editorconfig "^0.15.3"
+ glob "^7.1.3"
+ mkdirp "~1.0.3"
+ nopt "^4.0.3"
+
+ js-message@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz#2300d24b1af08e89dd095bc1a4c9c9cfcb892d15"
+
+ js-queue@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/js-queue/-/js-queue-2.0.0.tgz#362213cf860f468f0125fc6c96abc1742531f948"
+ dependencies:
+ easy-stack "^1.0.0"
+
+ "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+
+ js-yaml@3.13.1, js-yaml@^3.13.1:
+ version "3.13.1"
+ resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+ jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+ jsdom-global@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9"
+
+ jsdom@^15.2.1:
+ version "15.2.1"
+ resolved "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
+ dependencies:
+ abab "^2.0.0"
+ acorn "^7.1.0"
+ acorn-globals "^4.3.2"
+ array-equal "^1.0.0"
+ cssom "^0.4.1"
+ cssstyle "^2.0.0"
+ data-urls "^1.1.0"
+ domexception "^1.0.1"
+ escodegen "^1.11.1"
+ html-encoding-sniffer "^1.0.2"
+ nwsapi "^2.2.0"
+ parse5 "5.1.0"
+ pn "^1.1.0"
+ request "^2.88.0"
+ request-promise-native "^1.0.7"
+ saxes "^3.1.9"
+ symbol-tree "^3.2.2"
+ tough-cookie "^3.0.1"
+ w3c-hr-time "^1.0.1"
+ w3c-xmlserializer "^1.1.2"
+ webidl-conversions "^4.0.2"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^7.0.0"
+ ws "^7.0.0"
+ xml-name-validator "^3.0.0"
+
+ jsdom@^16.2.1:
+ version "16.2.2"
+ resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.2.2.tgz#76f2f7541646beb46a938f5dc476b88705bedf2b"
+ dependencies:
+ abab "^2.0.3"
+ acorn "^7.1.1"
+ acorn-globals "^6.0.0"
+ cssom "^0.4.4"
+ cssstyle "^2.2.0"
+ data-urls "^2.0.0"
+ decimal.js "^10.2.0"
+ domexception "^2.0.1"
+ escodegen "^1.14.1"
+ html-encoding-sniffer "^2.0.1"
+ is-potential-custom-element-name "^1.0.0"
+ nwsapi "^2.2.0"
+ parse5 "5.1.1"
+ request "^2.88.2"
+ request-promise-native "^1.0.8"
+ saxes "^5.0.0"
+ symbol-tree "^3.2.4"
+ tough-cookie "^3.0.1"
+ w3c-hr-time "^1.0.2"
+ w3c-xmlserializer "^2.0.0"
+ webidl-conversions "^6.0.0"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^8.0.0"
+ ws "^7.2.3"
+ xml-name-validator "^3.0.0"
+
+ jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+
+ jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+
+ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
+
+ json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+
+ json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+ json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+
+ json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+ json3@^3.3.2:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
+
+ json5@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
+
+ json5@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
+ dependencies:
+ minimist "^1.2.0"
+
+ json5@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
+ dependencies:
+ minimist "^1.2.5"
+
+ json5@^2.2.2:
+ version "2.2.3"
+ resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+ jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+ jsonfile@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179"
+ dependencies:
+ universalify "^1.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+ jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+ jsrsasign@^7.2.2:
+ version "7.2.2"
+ resolved "https://registry.npmjs.org/jsrsasign/-/jsrsasign-7.2.2.tgz#ae5230cb5574451bb979a9cc697428c60f598d20"
+ integrity sha512-hNN6476wY3ZP9X5HXdCmf/ovcbK+K56Fhg3cAIhgxy1WYXtGSNYDmlplecMqz1RbmqdBolkr4iyl5FAl6s4Xtg==
+
+ jszip@^3.1.5, jszip@^3.2.0:
+ version "3.10.1"
+ resolved "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2"
+ integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==
+ dependencies:
+ lie "~3.3.0"
+ pako "~1.0.2"
+ readable-stream "~2.3.6"
+ setimmediate "^1.0.5"
+
+ keygrip@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/keygrip/-/keygrip-1.1.0.tgz#871b1681d5e159c62a445b0c74b615e0917e7226"
+ integrity sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==
+ dependencies:
+ tsscmp "1.0.6"
+
+ kill-port@^1.6.0:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/kill-port/-/kill-port-1.6.1.tgz#560fe79484583bdf3a5e908557dae614447618aa"
+ integrity sha512-un0Y55cOM7JKGaLnGja28T38tDDop0AQ8N0KlAdyh+B1nmMoX8AnNmqPNZbS3mUMgiST51DCVqmbFT1gNJpVNw==
+ dependencies:
+ get-them-args "1.3.2"
+ shell-exec "1.0.2"
+
+ killable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
+
+ kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+ kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ dependencies:
+ is-buffer "^1.1.5"
+
+ kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+
+ kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+
+ kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+
+ koa-body@^4.0.8:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/koa-body/-/koa-body-4.2.0.tgz#37229208b820761aca5822d14c5fc55cee31b26f"
+ integrity sha512-wdGu7b9amk4Fnk/ytH8GuWwfs4fsB5iNkY8kZPpgQVb04QZSv85T0M8reb+cJmvLE8cjPYvBzRikD3s6qz8OoA==
+ dependencies:
+ "@types/formidable" "^1.0.31"
+ co-body "^5.1.1"
+ formidable "^1.1.1"
+
+ koa-bodyparser@^4.2.1:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/koa-bodyparser/-/koa-bodyparser-4.3.0.tgz#274c778555ff48fa221ee7f36a9fbdbace22759a"
+ integrity sha512-uyV8G29KAGwZc4q/0WUAjH+Tsmuv9ImfBUF2oZVyZtaeo0husInagyn/JH85xMSxM0hEk/mbCII5ubLDuqW/Rw==
+ dependencies:
+ co-body "^6.0.0"
+ copy-to "^2.0.1"
+
+ koa-compose@^3.0.0:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
+ integrity sha512-8gen2cvKHIZ35eDEik5WOo8zbVp9t4cP8p4hW4uE55waxolLRexKKrqfCpwhGVppnB40jWeF8bZeTVg99eZgPw==
+ dependencies:
+ any-promise "^1.1.0"
+
+ koa-compose@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877"
+ integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==
+
+ koa-convert@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5"
+ integrity sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==
+ dependencies:
+ co "^4.6.0"
+ koa-compose "^4.1.0"
+
+ koa-mount@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/koa-mount/-/koa-mount-4.0.0.tgz#e0265e58198e1a14ef889514c607254ff386329c"
+ integrity sha512-rm71jaA/P+6HeCpoRhmCv8KVBIi0tfGuO/dMKicbQnQW/YJntJ6MnnspkodoA4QstMVEZArsCphmd0bJEtoMjQ==
+ dependencies:
+ debug "^4.0.1"
+ koa-compose "^4.1.0"
+
+ koa-router@^7.4.0:
+ version "7.4.0"
+ resolved "https://registry.npmjs.org/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0"
+ integrity sha512-IWhaDXeAnfDBEpWS6hkGdZ1ablgr6Q6pGdXCyK38RbzuH4LkUOpPqPw+3f8l8aTDrQmBQ7xJc0bs2yV4dzcO+g==
+ dependencies:
+ debug "^3.1.0"
+ http-errors "^1.3.1"
+ koa-compose "^3.0.0"
+ methods "^1.0.1"
+ path-to-regexp "^1.1.1"
+ urijs "^1.19.0"
+
+ koa-send@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/koa-send/-/koa-send-5.0.1.tgz#39dceebfafb395d0d60beaffba3a70b4f543fe79"
+ integrity sha512-tmcyQ/wXXuxpDxyNXv5yNNkdAMdFRqwtegBXUaowiQzUKqJehttS0x2j0eOZDQAyloAth5w6wwBImnFzkUz3pQ==
+ dependencies:
+ debug "^4.1.1"
+ http-errors "^1.7.3"
+ resolve-path "^1.4.0"
+
+ koa-static@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/koa-static/-/koa-static-5.0.0.tgz#5e92fc96b537ad5219f425319c95b64772776943"
+ integrity sha512-UqyYyH5YEXaJrf9S8E23GoJFQZXkBVJ9zYYMPGz919MSX1KuvAcycIuS0ci150HCoPf4XQVhQ84Qf8xRPWxFaQ==
+ dependencies:
+ debug "^3.1.0"
+ koa-send "^5.0.0"
+
+ koa@^2.7.0:
+ version "2.14.1"
+ resolved "https://registry.npmjs.org/koa/-/koa-2.14.1.tgz#defb9589297d8eb1859936e777f3feecfc26925c"
+ integrity sha512-USJFyZgi2l0wDgqkfD27gL4YGno7TfUkcmOe6UOLFOVuN+J7FwnNu4Dydl4CUQzraM1lBAiGed0M9OVJoT0Kqw==
+ dependencies:
+ accepts "^1.3.5"
+ cache-content-type "^1.0.0"
+ content-disposition "~0.5.2"
+ content-type "^1.0.4"
+ cookies "~0.8.0"
+ debug "^4.3.2"
+ delegates "^1.0.0"
+ depd "^2.0.0"
+ destroy "^1.0.4"
+ encodeurl "^1.0.2"
+ escape-html "^1.0.3"
+ fresh "~0.5.2"
+ http-assert "^1.3.0"
+ http-errors "^1.6.3"
+ is-generator-function "^1.0.7"
+ koa-compose "^4.1.0"
+ koa-convert "^2.0.0"
+ on-finished "^2.3.0"
+ only "~0.0.2"
+ parseurl "^1.3.2"
+ statuses "^1.5.0"
+ type-is "^1.6.16"
+ vary "^1.1.2"
+
+ launch-editor-middleware@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.2.1.tgz#e14b07e6c7154b0a4b86a0fd345784e45804c157"
+ dependencies:
+ launch-editor "^2.2.1"
+
+ launch-editor@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/launch-editor/-/launch-editor-2.2.1.tgz#871b5a3ee39d6680fcc26d37930b6eeda89db0ca"
+ dependencies:
+ chalk "^2.3.0"
+ shell-quote "^1.6.1"
+
+ lazy-cache@^0.2.3:
+ version "0.2.7"
+ resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65"
+
+ lazy-cache@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264"
+ dependencies:
+ set-getter "^0.1.0"
+
+ lcid@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
+ dependencies:
+ invert-kv "^2.0.0"
+
+ lcid@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0"
+ integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg==
+ dependencies:
+ invert-kv "^3.0.0"
+
+ leven@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
+
+ levenary@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77"
+ dependencies:
+ leven "^3.1.0"
+
+ levn@^0.3.0, levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+ licia@^1.21.0:
+ version "1.38.0"
+ resolved "https://registry.npmjs.org/licia/-/licia-1.38.0.tgz#a4f723aa7f0010a83acd5585b87b2362a4abddee"
+ integrity sha512-yEKEv7ltw6+QhEodF/BeJCWPkHktEbduyL8PWO8oKVmmIGUaymeTHrZzaFsls8xeLDn5GRGmm9rhXkb5XKuEqA==
+
+ lie@~3.3.0:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a"
+ integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==
+ dependencies:
+ immediate "~3.0.5"
+
+ lines-and-columns@^1.1.6:
+ version "1.1.6"
+ resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
+
+ load-json-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ strip-bom "^3.0.0"
+
+ loader-fs-cache@^1.0.0, loader-fs-cache@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9"
+ dependencies:
+ find-cache-dir "^0.1.1"
+ mkdirp "^0.5.1"
+
+ loader-runner@^2.3.1, loader-runner@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
+
+ loader-utils@^0.2.16:
+ version "0.2.17"
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+ object-assign "^4.0.1"
+
+ loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
+ loader-utils@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
+ integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^2.1.2"
+
+ locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+ locate-path@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
+ dependencies:
+ p-locate "^3.0.0"
+ path-exists "^3.0.0"
+
+ locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ dependencies:
+ p-locate "^4.1.0"
+
+ lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+
+ lodash.defaultsdeep@^4.6.1:
+ version "4.6.1"
+ resolved "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6"
+
+ lodash.kebabcase@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
+
+ lodash.mapvalues@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c"
+
+ lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+
+ lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+
+ lodash.transform@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0"
+
+ lodash.uniq@^4.5.0:
+ version "4.5.0"
+ resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
+
+ lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.3:
+ version "4.17.19"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
+
+ log-ok@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/log-ok/-/log-ok-0.1.1.tgz#bea3dd36acd0b8a7240d78736b5b97c65444a334"
+ dependencies:
+ ansi-green "^0.1.1"
+ success-symbol "^0.1.0"
+
+ log-symbols@2.2.0, log-symbols@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
+ dependencies:
+ chalk "^2.0.1"
+
+ loglevel@^1.6.6:
+ version "1.6.8"
+ resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
+
+ lolex@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
+
+ loose-envify@^1.0.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+ lower-case@^1.1.1:
+ version "1.1.4"
+ resolved "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+
+ lru-cache@^4.0.1, lru-cache@^4.1.2, lru-cache@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+ lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ dependencies:
+ yallist "^3.0.2"
+
+ magic-string@^0.25.2, magic-string@^0.25.5:
+ version "0.25.7"
+ resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051"
+ dependencies:
+ sourcemap-codec "^1.4.4"
+
+ make-dir@^2.0.0, make-dir@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
+ dependencies:
+ pify "^4.0.1"
+ semver "^5.6.0"
+
+ make-dir@^3.0.0, make-dir@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392"
+ dependencies:
+ semver "^6.0.0"
+
+ make-dir@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+ make-plural@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-4.3.0.tgz#f23de08efdb0cac2e0c9ba9f315b0dff6b4c2735"
+ optionalDependencies:
+ minimist "^1.2.0"
+
+ make-plural@^6.2.2:
+ version "6.2.2"
+ resolved "https://registry.yarnpkg.com/make-plural/-/make-plural-6.2.2.tgz#beb5fd751355e72660eeb2218bb98eec92853c6c"
+
+ makeerror@1.0.x:
+ version "1.0.11"
+ resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
+ dependencies:
+ tmpl "1.0.x"
+
+ map-age-cleaner@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
+ dependencies:
+ p-defer "^1.0.0"
+
+ map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+
+ map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ dependencies:
+ object-visit "^1.0.0"
+
+ matched@^0.4.1:
+ version "0.4.4"
+ resolved "https://registry.npmjs.org/matched/-/matched-0.4.4.tgz#56d7b7eb18033f0cf9bc52eb2090fac7dc1e89fa"
+ dependencies:
+ arr-union "^3.1.0"
+ async-array-reduce "^0.2.0"
+ extend-shallow "^2.0.1"
+ fs-exists-sync "^0.1.0"
+ glob "^7.0.5"
+ has-glob "^0.1.1"
+ is-valid-glob "^0.3.0"
+ lazy-cache "^2.0.1"
+ resolve-dir "^0.1.0"
+
+ math-interval-parser@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/math-interval-parser/-/math-interval-parser-2.0.1.tgz#e22cd6d15a0a7f4c03aec560db76513da615bed4"
+
+ md5.js@^1.3.4:
+ version "1.3.5"
+ resolved "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+ safe-buffer "^5.1.2"
+
+ md5@^2.2.1:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
+ integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
+ dependencies:
+ charenc "0.0.2"
+ crypt "0.0.2"
+ is-buffer "~1.1.6"
+
+ mdn-data@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
+
+ mdn-data@2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978"
+
+ media-typer@0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+
+ mem@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
+ dependencies:
+ map-age-cleaner "^0.1.1"
+ mimic-fn "^2.0.0"
+ p-is-promise "^2.0.0"
+
+ memory-fs@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+ memory-fs@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
+ dependencies:
+ errno "^0.1.3"
+ readable-stream "^2.0.1"
+
+ merge-descriptors@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
+
+ merge-source-map@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+ dependencies:
+ source-map "^0.6.1"
+
+ merge-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+
+ merge2@^1.2.3, merge2@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81"
+
+ merge@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz#59ef4bf7e0b3e879186436e8481c06a6c162ca98"
+ integrity sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==
+
+ messageformat-formatters@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/messageformat-formatters/-/messageformat-formatters-2.0.1.tgz#0492c1402a48775f751c9b17c0354e92be012b08"
+
+ messageformat-parser@^4.1.2:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/messageformat-parser/-/messageformat-parser-4.1.3.tgz#b824787f57fcda7d50769f5b63e8d4fda68f5b9e"
+
+ messageformat@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/messageformat/-/messageformat-2.3.0.tgz#de263c49029d5eae65d7ee25e0754f57f425ad91"
+ dependencies:
+ make-plural "^4.3.0"
+ messageformat-formatters "^2.0.1"
+ messageformat-parser "^4.1.2"
+
+ methods@^1.0.1, methods@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+
+ micromatch@^3.1.10, micromatch@^3.1.4:
+ version "3.1.10"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+ micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
+ micromatch@^4.0.4:
+ version "4.0.5"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
+ dependencies:
+ braces "^3.0.2"
+ picomatch "^2.3.1"
+
+ miller-rabin@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
+ dependencies:
+ bn.js "^4.0.0"
+ brorand "^1.0.1"
+
+ mime-db@1.43.0, "mime-db@>= 1.43.0 < 2":
+ version "1.43.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58"
+
+ mime-db@1.52.0:
+ version "1.52.0"
+ resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
+ integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
+
+ mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.26"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06"
+ dependencies:
+ mime-db "1.43.0"
+
+ mime-types@^2.1.18, mime-types@~2.1.34:
+ version "2.1.35"
+ resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
+ integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
+ dependencies:
+ mime-db "1.52.0"
+
+ mime@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
+
+ mime@^2.4.4:
+ version "2.4.4"
+ resolved "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
+
+ mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+
+ mimic-fn@^2.0.0, mimic-fn@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+
+ mini-css-extract-plugin@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz#ac0059b02b9692515a637115b0cc9fed3a35c7b0"
+ integrity sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==
+ dependencies:
+ loader-utils "^1.1.0"
+ schema-utils "^1.0.0"
+ webpack-sources "^1.1.0"
+
+ mini-css-extract-plugin@^0.9.0:
+ version "0.9.0"
+ resolved "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e"
+ dependencies:
+ loader-utils "^1.1.0"
+ normalize-url "1.9.1"
+ schema-utils "^1.0.0"
+ webpack-sources "^1.1.0"
+
+ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
+
+ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
+
+ minimatch@3.0.4, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+ minimatch@^3.1.1:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+ dependencies:
+ brace-expansion "^1.1.7"
+
+ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+
+ minimist@^1.2.6:
+ version "1.2.8"
+ resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
+ integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+
+ minipass-collect@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
+ dependencies:
+ minipass "^3.0.0"
+
+ minipass-flush@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
+ dependencies:
+ minipass "^3.0.0"
+
+ minipass-pipeline@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a"
+ dependencies:
+ minipass "^3.0.0"
+
+ minipass@^3.0.0, minipass@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
+ dependencies:
+ yallist "^4.0.0"
+
+ mississippi@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
+ dependencies:
+ concat-stream "^1.5.0"
+ duplexify "^3.4.2"
+ end-of-stream "^1.1.0"
+ flush-write-stream "^1.0.0"
+ from2 "^2.1.0"
+ parallel-transform "^1.1.0"
+ pump "^3.0.0"
+ pumpify "^1.3.3"
+ stream-each "^1.1.0"
+ through2 "^2.0.0"
+
+ mixin-deep@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+ mkdirp@0.5.4:
+ version "0.5.4"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512"
+ dependencies:
+ minimist "^1.2.5"
+
+ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
+ version "0.5.5"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ dependencies:
+ minimist "^1.2.5"
+
+ mkdirp@^0.5.6:
+ version "0.5.6"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+ integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
+ dependencies:
+ minimist "^1.2.6"
+
+ mkdirp@~1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+
+ mocha@^6.2.2:
+ version "6.2.3"
+ resolved "https://registry.npmjs.org/mocha/-/mocha-6.2.3.tgz#e648432181d8b99393410212664450a4c1e31912"
+ dependencies:
+ ansi-colors "3.2.3"
+ browser-stdout "1.3.1"
+ debug "3.2.6"
+ diff "3.5.0"
+ escape-string-regexp "1.0.5"
+ find-up "3.0.0"
+ glob "7.1.3"
+ growl "1.10.5"
+ he "1.2.0"
+ js-yaml "3.13.1"
+ log-symbols "2.2.0"
+ minimatch "3.0.4"
+ mkdirp "0.5.4"
+ ms "2.1.1"
+ node-environment-flags "1.0.5"
+ object.assign "4.1.0"
+ strip-json-comments "2.0.1"
+ supports-color "6.0.0"
+ which "1.3.1"
+ wide-align "1.1.3"
+ yargs "13.3.2"
+ yargs-parser "13.1.2"
+ yargs-unparser "1.6.0"
+
+ mochapack@^1.1.13:
+ version "1.1.15"
+ resolved "https://registry.npmjs.org/mochapack/-/mochapack-1.1.15.tgz#426c793b871ed006c781172da2b15f612f11f2dc"
+ dependencies:
+ "@babel/runtime-corejs2" "^7.0.0"
+ chalk "^2.4.2"
+ chokidar "^2.0.0"
+ glob-parent "5.1.0"
+ globby "^10.0.1"
+ interpret "^1.2.0"
+ is-glob "^4.0.1"
+ loader-utils "^1.2.3"
+ lodash "^4.17.15"
+ memory-fs "^0.4.1"
+ minimatch "^3.0.4"
+ nodent-runtime "^3.2.1"
+ normalize-path "^3.0.0"
+ progress "^2.0.3"
+ source-map-support "^0.5.13"
+ toposort "^2.0.2"
+ yargs "14.0.0"
+
+ module-alias@^2.1.0:
+ version "2.2.2"
+ resolved "https://registry.npmjs.org/module-alias/-/module-alias-2.2.2.tgz#151cdcecc24e25739ff0aa6e51e1c5716974c0e0"
+ integrity sha512-A/78XjoX2EmNvppVWEhM2oGk3x4lLxnkEA4jTbaK97QKSDjkIoOsKQlfylt/d3kKKi596Qy3NP5XrXJ6fZIC9Q==
+
+ moment@^2.24.0:
+ version "2.29.4"
+ resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
+ integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
+
+ move-concurrently@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
+ dependencies:
+ aproba "^1.1.1"
+ copy-concurrently "^1.0.0"
+ fs-write-stream-atomic "^1.0.8"
+ mkdirp "^0.5.1"
+ rimraf "^2.5.4"
+ run-queue "^1.0.3"
+
+ ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+ ms@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
+
+ ms@2.1.2, ms@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+
+ multicast-dns-service-types@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
+
+ multicast-dns@^6.0.1:
+ version "6.2.3"
+ resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
+ dependencies:
+ dns-packet "^1.3.1"
+ thunky "^1.0.2"
+
+ mustache@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz#89e78a9d207d78f2799b1e95764a25bf71a28322"
+ integrity sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==
+
+ mustache@^4.0.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64"
+
+ mustache@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.1.0.tgz#8c1b042238a982d2eb2d30efc6c14296ae3f699d"
+
+ mute-stream@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
+
+ mz@^2.4.0:
+ version "2.7.0"
+ resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+ nan@^2.12.1:
+ version "2.14.1"
+ resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
+
+ nanomatch@^1.2.9:
+ version "1.2.13"
+ resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+ natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+
+ negotiator@0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
+
+ negotiator@0.6.3:
+ version "0.6.3"
+ resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
+ integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
+
+ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
+
+ nice-try@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
+
+ no-case@^2.2.0:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+ dependencies:
+ lower-case "^1.1.1"
+
+ node-environment-flags@1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz#fa930275f5bf5dae188d6192b24b4c8bbac3d76a"
+ dependencies:
+ object.getownpropertydescriptors "^2.0.3"
+ semver "^5.7.0"
+
+ node-forge@0.9.0:
+ version "0.9.0"
+ resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579"
+
+ node-int64@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
+
+ node-ipc@^9.1.1:
+ version "9.1.1"
+ resolved "https://registry.npmjs.org/node-ipc/-/node-ipc-9.1.1.tgz#4e245ed6938e65100e595ebc5dc34b16e8dd5d69"
+ dependencies:
+ event-pubsub "4.3.0"
+ js-message "1.0.5"
+ js-queue "2.0.0"
+
+ node-libs-browser@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
+ dependencies:
+ assert "^1.1.1"
+ browserify-zlib "^0.2.0"
+ buffer "^4.3.0"
+ console-browserify "^1.1.0"
+ constants-browserify "^1.0.0"
+ crypto-browserify "^3.11.0"
+ domain-browser "^1.1.1"
+ events "^3.0.0"
+ https-browserify "^1.0.0"
+ os-browserify "^0.3.0"
+ path-browserify "0.0.1"
+ process "^0.11.10"
+ punycode "^1.2.4"
+ querystring-es3 "^0.2.0"
+ readable-stream "^2.3.3"
+ stream-browserify "^2.0.1"
+ stream-http "^2.7.2"
+ string_decoder "^1.0.0"
+ timers-browserify "^2.0.4"
+ tty-browserify "0.0.0"
+ url "^0.11.0"
+ util "^0.11.0"
+ vm-browserify "^1.0.1"
+
+ node-modules-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
+
+ node-notifier@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12"
+ dependencies:
+ growly "^1.3.0"
+ is-wsl "^2.1.1"
+ semver "^6.3.0"
+ shellwords "^0.1.1"
+ which "^1.3.1"
+
+ node-releases@^1.1.53:
+ version "1.1.53"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4"
+
+ node-releases@^2.0.8:
+ version "2.0.10"
+ resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
+ integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
+
+ nodent-runtime@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.npmjs.org/nodent-runtime/-/nodent-runtime-3.2.1.tgz#9e2755d85e39f764288f0d4752ebcfe3e541e00e"
+
+ nopt@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
+ dependencies:
+ abbrev "1"
+ osenv "^0.1.4"
+
+ normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ resolve "^1.10.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+ normalize-path@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379"
+
+ normalize-path@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+ normalize-path@^3.0.0, normalize-path@~3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+
+ normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+
+ normalize-url@1.9.1:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c"
+ dependencies:
+ object-assign "^4.0.1"
+ prepend-http "^1.0.0"
+ query-string "^4.1.0"
+ sort-keys "^1.0.0"
+
+ normalize-url@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
+
+ npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+ npm-run-path@^4.0.0, npm-run-path@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ dependencies:
+ path-key "^3.0.0"
+
+ nth-check@^1.0.2, nth-check@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
+ dependencies:
+ boolbase "~1.0.0"
+
+ num2fraction@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
+
+ number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+ nwsapi@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+
+ oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+
+ object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+ object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+ object-hash@^1.1.4:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df"
+
+ object-hash@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz#d12db044e03cd2ca3d77c0570d87225b02e1e6ea"
+
+ object-inspect@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
+
+ object-inspect@^1.9.0:
+ version "1.12.3"
+ resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
+ integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
+
+ object-is@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+ object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+
+ object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ dependencies:
+ isobject "^3.0.0"
+
+ object.assign@4.1.0, object.assign@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
+ object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+
+ object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ dependencies:
+ isobject "^3.0.1"
+
+ object.values@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+
+ obuf@^1.0.0, obuf@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
+
+ on-finished@^2.3.0:
+ version "2.4.1"
+ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
+ integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
+ dependencies:
+ ee-first "1.1.1"
+
+ on-finished@~2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+ dependencies:
+ ee-first "1.1.1"
+
+ on-headers@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
+
+ once@^1.3.0, once@^1.3.1, once@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+ onetime@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+ onetime@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5"
+ dependencies:
+ mimic-fn "^2.1.0"
+
+ onetime@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
+ dependencies:
+ mimic-fn "^2.1.0"
+
+ only@~0.0.2:
+ version "0.0.2"
+ resolved "https://registry.npmjs.org/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
+ integrity sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==
+
+ open@^6.3.0:
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
+ dependencies:
+ is-wsl "^1.1.0"
+
+ opener@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz#6d2f0e77f1a0af0032aca716c2c1fbb8e7e8abed"
+
+ opn@^5.4.0, opn@^5.5.0:
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
+ dependencies:
+ is-wsl "^1.1.0"
+
+ optionator@^0.8.1, optionator@^0.8.3:
+ version "0.8.3"
+ resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
+ ora@^3.4.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318"
+ dependencies:
+ chalk "^2.4.2"
+ cli-cursor "^2.1.0"
+ cli-spinners "^2.0.0"
+ log-symbols "^2.2.0"
+ strip-ansi "^5.2.0"
+ wcwidth "^1.0.1"
+
+ original@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
+ dependencies:
+ url-parse "^1.4.3"
+
+ os-browserify@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
+
+ os-homedir@^1.0.0, os-homedir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+ os-locale-s-fix@^1.0.8-fix-1:
+ version "1.0.8-fix-1"
+ resolved "https://registry.yarnpkg.com/os-locale-s-fix/-/os-locale-s-fix-1.0.8-fix-1.tgz#7db4f9fc7cea29e9266900ea0bc72aaff13ff14a"
+ integrity sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==
+ dependencies:
+ lcid "^3.0.0"
+
+ os-locale@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
+ dependencies:
+ execa "^1.0.0"
+ lcid "^2.0.0"
+ mem "^4.0.0"
+
+ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
+
+ osenv@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
+ dependencies:
+ os-homedir "^1.0.0"
+ os-tmpdir "^1.0.0"
+
+ p-defer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
+
+ p-each-series@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48"
+
+ p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+ p-finally@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
+
+ p-is-promise@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
+
+ p-limit@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
+ dependencies:
+ p-try "^1.0.0"
+
+ p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.2.2:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ dependencies:
+ p-try "^2.0.0"
+
+ p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+ p-locate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
+ dependencies:
+ p-limit "^2.0.0"
+
+ p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ dependencies:
+ p-limit "^2.2.0"
+
+ p-map@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
+
+ p-map@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d"
+ dependencies:
+ aggregate-error "^3.0.0"
+
+ p-retry@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
+ dependencies:
+ retry "^0.12.0"
+
+ p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+
+ p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+
+ pako@^1.0.11, pako@~1.0.2, pako@~1.0.5:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+
+ parallel-transform@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc"
+ dependencies:
+ cyclist "^1.0.1"
+ inherits "^2.0.3"
+ readable-stream "^2.1.5"
+
+ param-case@2.1.x:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
+ dependencies:
+ no-case "^2.2.0"
+
+ parent-module@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
+ dependencies:
+ callsites "^3.0.0"
+
+ parse-asn1@^5.0.0:
+ version "5.1.5"
+ resolved "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e"
+ dependencies:
+ asn1.js "^4.0.0"
+ browserify-aes "^1.0.0"
+ create-hash "^1.1.0"
+ evp_bytestokey "^1.0.0"
+ pbkdf2 "^3.0.3"
+ safe-buffer "^5.1.1"
+
+ parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+ parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+ parse-json@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f"
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+ lines-and-columns "^1.1.6"
+
+ parse-passwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
+
+ parse5-htmlparser2-tree-adapter@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-5.1.1.tgz#e8c743d4e92194d5293ecde2b08be31e67461cbc"
+ dependencies:
+ parse5 "^5.1.1"
+
+ parse5@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+
+ parse5@5.1.1, parse5@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178"
+
+ parse5@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c"
+ integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==
+ dependencies:
+ "@types/node" "*"
+
+ parseqs@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5"
+ integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==
+
+ parseuri@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a"
+ integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==
+
+ parseurl@^1.3.2, parseurl@~1.3.2, parseurl@~1.3.3:
+ version "1.3.3"
+ resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
+
+ pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+
+ path-browserify@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
+
+ path-dirname@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+
+ path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+ path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+ path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+
+ path-is-absolute@1.0.1, path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+ path-is-inside@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+
+ path-key@^2.0.0, path-key@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+ path-key@^3.0.0, path-key@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+
+ path-parse@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+
+ path-parse@^1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+ path-to-regexp@0.1.7:
+ version "0.1.7"
+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
+
+ path-to-regexp@^1.1.1:
+ version "1.8.0"
+ resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
+ integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
+ dependencies:
+ isarray "0.0.1"
+
+ path-type@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73"
+ dependencies:
+ pify "^2.0.0"
+
+ path-type@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
+ dependencies:
+ pify "^3.0.0"
+
+ path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+
+ pathval@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+
+ pbkdf2@^3.0.3:
+ version "3.0.17"
+ resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
+ dependencies:
+ create-hash "^1.1.2"
+ create-hmac "^1.1.4"
+ ripemd160 "^2.0.1"
+ safe-buffer "^5.0.1"
+ sha.js "^2.4.8"
+
+ performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+ picocolors@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1:
+ version "2.2.2"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
+
+ picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+ pify@^2.0.0, pify@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+ pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
+ pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+
+ pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+ pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+ pirates@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
+ dependencies:
+ node-modules-regexp "^1.0.0"
+
+ pirates@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
+ integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+
+ pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+ pkg-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b"
+ dependencies:
+ find-up "^2.1.0"
+
+ pkg-dir@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
+ dependencies:
+ find-up "^3.0.0"
+
+ pkg-dir@^4.1.0, pkg-dir@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ dependencies:
+ find-up "^4.0.0"
+
+ pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
+ dependencies:
+ find-up "^2.1.0"
+
+ pn@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
+
+ pnp-webpack-plugin@^1.6.4:
+ version "1.6.4"
+ resolved "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149"
+ dependencies:
+ ts-pnp "^1.1.6"
+
+ portfinder@^1.0.20:
+ version "1.0.32"
+ resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz#2fe1b9e58389712429dc2bea5beb2146146c7f81"
+ integrity sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==
+ dependencies:
+ async "^2.6.4"
+ debug "^3.2.7"
+ mkdirp "^0.5.6"
+
+ portfinder@^1.0.25:
+ version "1.0.25"
+ resolved "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca"
+ dependencies:
+ async "^2.6.2"
+ debug "^3.1.1"
+ mkdirp "^0.5.1"
+
+ posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+
+ postcss-calc@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1"
+ dependencies:
+ postcss "^7.0.27"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.0.2"
+
+ postcss-colormin@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
+ dependencies:
+ browserslist "^4.0.0"
+ color "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-convert-values@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-discard-comments@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
+ dependencies:
+ postcss "^7.0.0"
+
+ postcss-discard-duplicates@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
+ dependencies:
+ postcss "^7.0.0"
+
+ postcss-discard-empty@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
+ dependencies:
+ postcss "^7.0.0"
+
+ postcss-discard-overridden@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
+ dependencies:
+ postcss "^7.0.0"
+
+ postcss-helpers@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/postcss-helpers/-/postcss-helpers-0.3.2.tgz#cf8721d8d6605d2577302f966afefda1fea9929c"
+ integrity sha512-hppnMXY6Ehe8CgLHQCDWbyUsXvBFggdzftWzznL65MhgZsE8o8pUTYbmUbLst0rps+wyUSLIUJ0bGpV2Tzv7lw==
+ dependencies:
+ urijs "^1.18.12"
+
+ postcss-import@^12.0.1:
+ version "12.0.1"
+ resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153"
+ integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==
+ dependencies:
+ postcss "^7.0.1"
+ postcss-value-parser "^3.2.3"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
+
+ postcss-load-config@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
+ dependencies:
+ cosmiconfig "^5.0.0"
+ import-cwd "^2.0.0"
+
+ postcss-loader@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
+ dependencies:
+ loader-utils "^1.1.0"
+ postcss "^7.0.0"
+ postcss-load-config "^2.0.0"
+ schema-utils "^1.0.0"
+
+ postcss-merge-longhand@^4.0.11:
+ version "4.0.11"
+ resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
+ dependencies:
+ css-color-names "0.0.4"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ stylehacks "^4.0.0"
+
+ postcss-merge-rules@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ cssnano-util-same-parent "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+ vendors "^1.0.0"
+
+ postcss-minify-font-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-minify-gradients@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ is-color-stop "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-minify-params@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
+ dependencies:
+ alphanum-sort "^1.0.0"
+ browserslist "^4.0.0"
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ uniqs "^2.0.0"
+
+ postcss-minify-selectors@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
+ dependencies:
+ alphanum-sort "^1.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+
+ postcss-modules-extract-imports@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
+ dependencies:
+ postcss "^7.0.5"
+
+ postcss-modules-local-by-default@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63"
+ integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==
+ dependencies:
+ postcss "^7.0.6"
+ postcss-selector-parser "^6.0.0"
+ postcss-value-parser "^3.3.1"
+
+ postcss-modules-local-by-default@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915"
+ dependencies:
+ icss-utils "^4.1.1"
+ postcss "^7.0.16"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.0.0"
+
+ postcss-modules-scope@^2.1.0, postcss-modules-scope@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+ dependencies:
+ postcss "^7.0.6"
+ postcss-selector-parser "^6.0.0"
+
+ postcss-modules-values@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64"
+ integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==
+ dependencies:
+ icss-replace-symbols "^1.1.0"
+ postcss "^7.0.6"
+
+ postcss-modules-values@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10"
+ dependencies:
+ icss-utils "^4.0.0"
+ postcss "^7.0.6"
+
+ postcss-normalize-charset@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
+ dependencies:
+ postcss "^7.0.0"
+
+ postcss-normalize-display-values@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-positions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-repeat-style@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-string@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
+ dependencies:
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-timing-functions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-unicode@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-url@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
+ dependencies:
+ is-absolute-url "^2.0.0"
+ normalize-url "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-normalize-whitespace@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
+ dependencies:
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-ordered-values@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
+ dependencies:
+ cssnano-util-get-arguments "^4.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-reduce-initial@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
+ dependencies:
+ browserslist "^4.0.0"
+ caniuse-api "^3.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+
+ postcss-reduce-transforms@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
+ dependencies:
+ cssnano-util-get-match "^4.0.0"
+ has "^1.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+
+ postcss-selector-parser@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
+ dependencies:
+ dot-prop "^5.2.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+ postcss-selector-parser@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
+ integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
+ dependencies:
+ cssesc "^2.0.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
+ dependencies:
+ cssesc "^3.0.0"
+ indexes-of "^1.0.1"
+ uniq "^1.0.1"
+
+ postcss-svgo@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
+ dependencies:
+ is-svg "^3.0.0"
+ postcss "^7.0.0"
+ postcss-value-parser "^3.0.0"
+ svgo "^1.0.0"
+
+ postcss-unique-selectors@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
+ dependencies:
+ alphanum-sort "^1.0.0"
+ postcss "^7.0.0"
+ uniqs "^2.0.0"
+
+ postcss-urlrewrite@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/postcss-urlrewrite/-/postcss-urlrewrite-0.2.2.tgz#bad53f4de04bc0812f278733314bd3062ed36bd4"
+ integrity sha512-DxPSgykgHjoV4Z+ygvq2C5HkiuiKQQD74xpoNQSQuyi8zab9nODVtNKfnCN6BEv9VZrjpOGLGAf8BDvgG6EtHg==
+ dependencies:
+ postcss-helpers "^0.3.2"
+
+ postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
+
+ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d"
+
+ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6:
+ version "7.0.27"
+ resolved "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9"
+ dependencies:
+ chalk "^2.4.2"
+ source-map "^0.6.1"
+ supports-color "^6.1.0"
+
+ prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+
+ prepend-http@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
+
+ prettier@^1.18.2:
+ version "1.19.1"
+ resolved "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb"
+
+ pretty-error@^2.0.2:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
+ dependencies:
+ renderkid "^2.0.1"
+ utila "~0.4"
+
+ pretty-format@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-25.4.0.tgz#c58801bb5c4926ff4a677fe43f9b8b99812c7830"
+ dependencies:
+ "@jest/types" "^25.4.0"
+ ansi-regex "^5.0.0"
+ ansi-styles "^4.0.0"
+ react-is "^16.12.0"
+
+ pretty@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5"
+ dependencies:
+ condense-newlines "^0.2.1"
+ extend-shallow "^2.0.1"
+ js-beautify "^1.6.12"
+
+ private@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
+
+ process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+
+ process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+
+ progress@^2.0.0, progress@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
+
+ promise-inflight@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
+
+ prompts@^2.0.1:
+ version "2.3.2"
+ resolved "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068"
+ dependencies:
+ kleur "^3.0.3"
+ sisteransi "^1.0.4"
+
+ proto-list@~1.2.1:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
+
+ proxy-addr@~2.0.5:
+ version "2.0.6"
+ resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf"
+ dependencies:
+ forwarded "~0.1.2"
+ ipaddr.js "1.9.1"
+
+ prr@~1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
+
+ pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+ psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+
+ public-encrypt@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
+ dependencies:
+ bn.js "^4.1.0"
+ browserify-rsa "^4.0.0"
+ create-hash "^1.1.0"
+ parse-asn1 "^5.0.0"
+ randombytes "^2.0.1"
+ safe-buffer "^5.1.2"
+
+ pump@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+ pump@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
+ pumpify@^1.3.3:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
+ punycode@1.3.2:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
+
+ punycode@^1.2.4:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+ punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+
+ q@^1.1.2:
+ version "1.5.1"
+ resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
+
+ qr-image@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/qr-image/-/qr-image-3.2.0.tgz#9fa8295beae50c4a149cf9f909a1db464a8672e8"
+ integrity sha512-rXKDS5Sx3YipVsqmlMJsJsk6jXylEpiHRC2+nJy66fxA5ExYyGa4PqwteW69SaVmAb2OQ18HbYriT7cGQMbduw==
+
+ qrcode-reader@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/qrcode-reader/-/qrcode-reader-1.0.4.tgz#95d9bb9e8130800361a96cb5a43124ad1d9e06b8"
+ integrity sha512-rRjALGNh9zVqvweg1j5OKIQKNsw3bLC+7qwlnead5K/9cb1cEIAGkwikt/09U0K+2IDWGD9CC6SP7tHAjUeqvQ==
+
+ qrcode-terminal@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819"
+ integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==
+
+ qs@6.7.0:
+ version "6.7.0"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
+
+ qs@^6.4.0, qs@^6.5.2:
+ version "6.11.0"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
+ dependencies:
+ side-channel "^1.0.4"
+
+ qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+
+ query-string@^4.1.0:
+ version "4.3.4"
+ resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb"
+ dependencies:
+ object-assign "^4.1.0"
+ strict-uri-encode "^1.0.0"
+
+ querystring-es3@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
+
+ querystring@0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
+
+ querystringify@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
+
+ randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
+ dependencies:
+ safe-buffer "^5.1.0"
+
+ randomfill@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
+ dependencies:
+ randombytes "^2.0.5"
+ safe-buffer "^5.1.0"
+
+ range-parser@^1.2.1, range-parser@~1.2.1:
+ version "1.2.1"
+ resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
+
+ raw-body@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
+ dependencies:
+ bytes "3.1.0"
+ http-errors "1.7.2"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+ raw-body@^2.2.0, raw-body@^2.3.3:
+ version "2.5.2"
+ resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a"
+ integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==
+ dependencies:
+ bytes "3.1.2"
+ http-errors "2.0.0"
+ iconv-lite "0.4.24"
+ unpipe "1.0.0"
+
+ rc@^1.0.1, rc@^1.1.6:
+ version "1.2.8"
+ resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
+ integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
+ dependencies:
+ deep-extend "^0.6.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+ react-is@^16.12.0:
+ version "16.13.1"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+
+ read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+ dependencies:
+ pify "^2.3.0"
+
+ read-pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be"
+ dependencies:
+ find-up "^2.0.0"
+ read-pkg "^2.0.0"
+
+ read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ dependencies:
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
+
+ read-pkg@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8"
+ dependencies:
+ load-json-file "^2.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^2.0.0"
+
+ read-pkg@^5.1.1, read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ dependencies:
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
+
+ "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+ readable-stream@^3.0.6, readable-stream@^3.1.1:
+ version "3.6.0"
+ resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
+ readdirp@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
+ dependencies:
+ graceful-fs "^4.1.11"
+ micromatch "^3.1.10"
+ readable-stream "^2.0.2"
+
+ readdirp@~3.6.0:
+ version "3.6.0"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
+ dependencies:
+ picomatch "^2.2.1"
+
+ realpath-native@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866"
+
+ recast@*:
+ version "0.22.0"
+ resolved "https://registry.npmjs.org/recast/-/recast-0.22.0.tgz#1dd3bf1b86e5eb810b044221a1a734234ed3e9c0"
+ integrity sha512-5AAx+mujtXijsEavc5lWXBPQqrM4+Dl5qNH96N2aNeuJFUzpiiToKPsxQD/zAIJHspz7zz0maX0PCtCTFVlixQ==
+ dependencies:
+ assert "^2.0.0"
+ ast-types "0.15.2"
+ esprima "~4.0.0"
+ source-map "~0.6.1"
+ tslib "^2.0.1"
+
+ recast@^0.20.4:
+ version "0.20.4"
+ resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.4.tgz#db55983eac70c46b3fff96c8e467d65ffb4a7abc"
+ dependencies:
+ ast-types "0.14.2"
+ esprima "~4.0.0"
+ source-map "~0.6.1"
+ tslib "^2.0.1"
+
+ rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==
+ dependencies:
+ resolve "^1.1.6"
+
+ regenerate-unicode-properties@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
+ integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
+ dependencies:
+ regenerate "^1.4.2"
+
+ regenerate-unicode-properties@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
+ dependencies:
+ regenerate "^1.4.0"
+
+ regenerate@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
+
+ regenerate@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+ regenerator-runtime@^0.13.11:
+ version "0.13.11"
+ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
+ integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
+
+ regenerator-runtime@^0.13.4:
+ version "0.13.5"
+ resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
+
+ regenerator-transform@^0.14.2:
+ version "0.14.4"
+ resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7"
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+ private "^0.1.8"
+
+ regenerator-transform@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
+ integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+ regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+ regexp.prototype.flags@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
+
+ regexpp@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
+
+ regexpp@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
+
+ regexpu-core@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938"
+ dependencies:
+ regenerate "^1.4.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
+ unicode-match-property-ecmascript "^1.0.4"
+ unicode-match-property-value-ecmascript "^1.2.0"
+
+ regexpu-core@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz#66900860f88def39a5cb79ebd9490e84f17bcdfb"
+ integrity sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==
+ dependencies:
+ "@babel/regjsgen" "^0.8.0"
+ regenerate "^1.4.2"
+ regenerate-unicode-properties "^10.1.0"
+ regjsparser "^0.9.1"
+ unicode-match-property-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.1.0"
+
+ registry-auth-token@3.3.2:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20"
+ integrity sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==
+ dependencies:
+ rc "^1.1.6"
+ safe-buffer "^5.0.1"
+
+ registry-url@3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942"
+ integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==
+ dependencies:
+ rc "^1.0.1"
+
+ regjsgen@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
+
+ regjsparser@^0.6.4:
+ version "0.6.4"
+ resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
+ dependencies:
+ jsesc "~0.5.0"
+
+ regjsparser@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
+ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
+ dependencies:
+ jsesc "~0.5.0"
+
+ relateurl@0.2.x:
+ version "0.2.7"
+ resolved "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+
+ remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+
+ renderkid@^2.0.1:
+ version "2.0.3"
+ resolved "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149"
+ dependencies:
+ css-select "^1.1.0"
+ dom-converter "^0.2"
+ htmlparser2 "^3.3.0"
+ strip-ansi "^3.0.0"
+ utila "^0.4.0"
+
+ repeat-element@^1.1.2:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+
+ repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+ replace-ext@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
+
+ request-promise-core@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
+ dependencies:
+ lodash "^4.17.15"
+
+ request-promise-native@^1.0.7, request-promise-native@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
+ dependencies:
+ request-promise-core "1.1.3"
+ stealthy-require "^1.1.1"
+ tough-cookie "^2.3.3"
+
+ request@^2.88.0, request@^2.88.2:
+ version "2.88.2"
+ resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.3"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.5.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+ require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+ require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+ require-main-filename@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+
+ requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+
+ resolve-cwd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
+ dependencies:
+ resolve-from "^3.0.0"
+
+ resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ dependencies:
+ resolve-from "^5.0.0"
+
+ resolve-dir@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e"
+ dependencies:
+ expand-tilde "^1.2.2"
+ global-modules "^0.2.3"
+
+ resolve-from@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
+
+ resolve-from@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
+
+ resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+
+ resolve-path@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
+ integrity sha512-i1xevIst/Qa+nA9olDxLWnLk8YZbi8R/7JPbCMcgyWaFR6bKWaexgJgEB5oc2PKMjYdrHynyz0NY+if+H98t1w==
+ dependencies:
+ http-errors "~1.6.2"
+ path-is-absolute "1.0.1"
+
+ resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+
+ resolve@1.1.7:
+ version "1.1.7"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
+ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.11.1:
+ version "1.22.1"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
+ integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
+ dependencies:
+ is-core-module "^2.9.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+ resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.8.1:
+ version "1.16.1"
+ resolved "https://registry.npmjs.org/resolve/-/resolve-1.16.1.tgz#49fac5d8bacf1fd53f200fa51247ae736175832c"
+ dependencies:
+ path-parse "^1.0.6"
+
+ restore-cursor@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+ dependencies:
+ onetime "^2.0.0"
+ signal-exit "^3.0.2"
+
+ restore-cursor@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
+ dependencies:
+ onetime "^5.1.0"
+ signal-exit "^3.0.2"
+
+ ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+
+ retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+
+ reusify@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+
+ rgb-regex@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
+
+ rgba-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
+
+ rimraf@2.6.3:
+ version "2.6.3"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
+ dependencies:
+ glob "^7.1.3"
+
+ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
+ version "2.7.1"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ dependencies:
+ glob "^7.1.3"
+
+ rimraf@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+ dependencies:
+ glob "^7.1.3"
+
+ ripemd160@^2.0.0, ripemd160@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
+ dependencies:
+ hash-base "^3.0.0"
+ inherits "^2.0.1"
+
+ rollup-plugin-babel@^4.3.3, rollup-plugin-babel@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb"
+ dependencies:
+ "@babel/helper-module-imports" "^7.0.0"
+ rollup-pluginutils "^2.8.1"
+
+ rollup-plugin-clear@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.npmjs.org/rollup-plugin-clear/-/rollup-plugin-clear-2.0.7.tgz#27a191bccb3964246ca2aad427e8798cbe87c9b1"
+ integrity sha512-Hg8NC3JcJBO1ofgyQC0IACpyKn/yhHPGZ3C7R3ubNGWUXy9JXHQrewk4J4hVcZznw6SOKayLsaNae596Rwt8Vg==
+ dependencies:
+ rimraf "^2.6.2"
+
+ rollup-plugin-commonjs@^10.0.2:
+ version "10.1.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb"
+ integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q==
+ dependencies:
+ estree-walker "^0.6.1"
+ is-reference "^1.1.2"
+ magic-string "^0.25.2"
+ resolve "^1.11.0"
+ rollup-pluginutils "^2.8.1"
+
+ rollup-plugin-copy@^3.1.0:
+ version "3.4.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-copy/-/rollup-plugin-copy-3.4.0.tgz#f1228a3ffb66ffad8606e2f3fb7ff23141ed3286"
+ integrity sha512-rGUmYYsYsceRJRqLVlE9FivJMxJ7X6jDlP79fmFkL8sJs7VVMSVyA2yfyL+PGyO/vJs4A87hwhgVfz61njI+uQ==
+ dependencies:
+ "@types/fs-extra" "^8.0.1"
+ colorette "^1.1.0"
+ fs-extra "^8.1.0"
+ globby "10.0.1"
+ is-plain-object "^3.0.0"
+
+ rollup-plugin-eslint@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-eslint/-/rollup-plugin-eslint-7.0.0.tgz#a6dbcbc14699a7a02155697c0c3dfa26cca59a9b"
+ integrity sha512-u35kXiY11ULeNQGTlRkYx7uGJ/hS/Dx3wj8f9YVC3oMLTGU9fOqQJsAKYtBFZU3gJ8Vt3gu8ppB1vnKl+7gatQ==
+ dependencies:
+ eslint "^6.0.0"
+ rollup-pluginutils "^2.7.1"
+
+ rollup-plugin-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz#a18da0a4b30bf5ca1ee76ddb1422afbb84ae2b9e"
+ integrity sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow==
+ dependencies:
+ rollup-pluginutils "^2.5.0"
+
+ rollup-plugin-node-resolve@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523"
+ integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw==
+ dependencies:
+ "@types/resolve" "0.0.8"
+ builtin-modules "^3.1.0"
+ is-module "^1.0.0"
+ resolve "^1.11.1"
+ rollup-pluginutils "^2.8.1"
+
+ rollup-plugin-replace@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz#f41ae5372e11e7a217cde349c8b5d5fd115e70e3"
+ integrity sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA==
+ dependencies:
+ magic-string "^0.25.2"
+ rollup-pluginutils "^2.6.0"
+
+ rollup-plugin-terser@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz#9c0dd33d5771df9630cd027d6a2559187f65885e"
+ dependencies:
+ "@babel/code-frame" "^7.5.5"
+ jest-worker "^24.9.0"
+ rollup-pluginutils "^2.8.2"
+ serialize-javascript "^2.1.2"
+ terser "^4.6.2"
+
+ rollup-plugin-uglify@^6.0.2:
+ version "6.0.4"
+ resolved "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz#65a0959d91586627f1e46a7db966fd504ec6c4e6"
+ integrity sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ jest-worker "^24.0.0"
+ serialize-javascript "^2.1.2"
+ uglify-js "^3.4.9"
+
+ rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.6.0, rollup-pluginutils@^2.7.1, rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2:
+ version "2.8.2"
+ resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
+ dependencies:
+ estree-walker "^0.6.1"
+
+ rollup@^1.19.3:
+ version "1.32.1"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4"
+ integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==
+ dependencies:
+ "@types/estree" "*"
+ "@types/node" "*"
+ acorn "^7.1.0"
+
+ rollup@^2.6.1:
+ version "2.7.1"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-2.7.1.tgz#d571e49a35b1c923fe9cf6f7290dba2482864fdc"
+ optionalDependencies:
+ fsevents "~2.1.2"
+
+ rsvp@^4.8.4:
+ version "4.8.5"
+ resolved "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
+
+ run-async@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8"
+ dependencies:
+ is-promise "^2.1.0"
+
+ run-parallel@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679"
+
+ run-queue@^1.0.0, run-queue@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
+ dependencies:
+ aproba "^1.1.1"
+
+ rxjs@^6.5.3:
+ version "6.5.5"
+ resolved "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
+ dependencies:
+ tslib "^1.9.0"
+
+ safe-area-insets@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.npmjs.org/safe-area-insets/-/safe-area-insets-1.4.1.tgz#89309e01a516dcd7d2fe012a9c4115182957bd8b"
+
+ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+
+ safe-buffer@5.2.1:
+ version "5.2.1"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+ safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
+
+ safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ dependencies:
+ ret "~0.1.10"
+
+ "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+
+ sane@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
+ dependencies:
+ "@cnakazawa/watch" "^1.0.3"
+ anymatch "^2.0.0"
+ capture-exit "^2.0.0"
+ exec-sh "^0.3.2"
+ execa "^1.0.0"
+ fb-watchman "^2.0.0"
+ micromatch "^3.1.4"
+ minimist "^1.1.1"
+ walker "~1.0.5"
+
+ sax@~1.2.4:
+ version "1.2.4"
+ resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
+
+ saxes@^3.1.9:
+ version "3.1.11"
+ resolved "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
+ dependencies:
+ xmlchars "^2.1.1"
+
+ saxes@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
+ dependencies:
+ xmlchars "^2.2.0"
+
+ schema-utils@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
+ dependencies:
+ ajv "^6.1.0"
+ ajv-errors "^1.0.0"
+ ajv-keywords "^3.1.0"
+
+ schema-utils@^2.0.0, schema-utils@^2.5.0, schema-utils@^2.6.4, schema-utils@^2.6.5:
+ version "2.6.6"
+ resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c"
+ dependencies:
+ ajv "^6.12.0"
+ ajv-keywords "^3.4.1"
+
+ select-hose@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
+
+ selfsigned@^1.10.7:
+ version "1.10.7"
+ resolved "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b"
+ dependencies:
+ node-forge "0.9.0"
+
+ "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0:
+ version "5.7.1"
+ resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+
+ semver@7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
+
+ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+
+ send@0.17.1:
+ version "0.17.1"
+ resolved "https://registry.npmjs.org/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
+ dependencies:
+ debug "2.6.9"
+ depd "~1.1.2"
+ destroy "~1.0.4"
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ etag "~1.8.1"
+ fresh "0.5.2"
+ http-errors "~1.7.2"
+ mime "1.6.0"
+ ms "2.1.1"
+ on-finished "~2.3.0"
+ range-parser "~1.2.1"
+ statuses "~1.5.0"
+
+ serialize-javascript@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
+
+ serve-index@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
+ dependencies:
+ accepts "~1.3.4"
+ batch "0.6.1"
+ debug "2.6.9"
+ escape-html "~1.0.3"
+ http-errors "~1.6.2"
+ mime-types "~2.1.17"
+ parseurl "~1.3.2"
+
+ serve-static@1.14.1:
+ version "1.14.1"
+ resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
+ dependencies:
+ encodeurl "~1.0.2"
+ escape-html "~1.0.3"
+ parseurl "~1.3.3"
+ send "0.17.1"
+
+ set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+ set-getter@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz#d769c182c9d5a51f409145f2fba82e5e86e80376"
+ dependencies:
+ to-object-path "^0.3.0"
+
+ set-value@^2.0.0, set-value@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+ setimmediate@^1.0.4, setimmediate@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
+
+ setprototypeof@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+
+ setprototypeof@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
+
+ setprototypeof@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
+ integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
+
+ sha.js@^2.4.0, sha.js@^2.4.8:
+ version "2.4.11"
+ resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
+ dependencies:
+ inherits "^2.0.1"
+ safe-buffer "^5.0.1"
+
+ shallow-clone@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
+ integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
+ dependencies:
+ kind-of "^6.0.2"
+
+ shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+ shebang-command@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ dependencies:
+ shebang-regex "^3.0.0"
+
+ shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+ shebang-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
+
+ shell-exec@1.0.2, shell-exec@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/shell-exec/-/shell-exec-1.0.2.tgz#2e9361b0fde1d73f476c4b6671fa17785f696756"
+
+ shell-quote@^1.6.1:
+ version "1.7.2"
+ resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
+
+ shelljs@^0.8.1:
+ version "0.8.5"
+ resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
+ integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
+ shellwords@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
+
+ side-channel@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
+ integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
+ dependencies:
+ call-bind "^1.0.0"
+ get-intrinsic "^1.0.2"
+ object-inspect "^1.9.0"
+
+ sigmund@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
+
+ signal-exit@^3.0.0, signal-exit@^3.0.2:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+
+ signal-exit@^3.0.3:
+ version "3.0.7"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+ simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ dependencies:
+ is-arrayish "^0.3.1"
+
+ sisteransi@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+
+ slash@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
+
+ slash@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
+
+ slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+
+ slice-ansi@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+ dependencies:
+ ansi-styles "^3.2.0"
+ astral-regex "^1.0.0"
+ is-fullwidth-code-point "^2.0.0"
+
+ snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+ snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ dependencies:
+ kind-of "^3.2.0"
+
+ snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+ socket.io-adapter@~1.1.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9"
+ integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==
+
+ socket.io-client@2.5.0:
+ version "2.5.0"
+ resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.5.0.tgz#34f486f3640dde9c2211fce885ac2746f9baf5cb"
+ integrity sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==
+ dependencies:
+ backo2 "1.0.2"
+ component-bind "1.0.0"
+ component-emitter "~1.3.0"
+ debug "~3.1.0"
+ engine.io-client "~3.5.0"
+ has-binary2 "~1.0.2"
+ indexof "0.0.1"
+ parseqs "0.0.6"
+ parseuri "0.0.6"
+ socket.io-parser "~3.3.0"
+ to-array "0.1.4"
+
+ socket.io-parser@~3.3.0:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.3.tgz#3a8b84823eba87f3f7624e64a8aaab6d6318a72f"
+ integrity sha512-qOg87q1PMWWTeO01768Yh9ogn7chB9zkKtQnya41Y355S0UmpXgpcrFwAgjYJxu9BdKug5r5e9YtVSeWhKBUZg==
+ dependencies:
+ component-emitter "~1.3.0"
+ debug "~3.1.0"
+ isarray "2.0.1"
+
+ socket.io-parser@~3.4.0:
+ version "3.4.2"
+ resolved "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.2.tgz#d70a69f34900d8290a511995d26f581828a49065"
+ integrity sha512-QFZBaZDNqZXeemwejc7D39jrq2eGK/qZuVDiMPKzZK1hLlNvjGilGt4ckfQZeVX4dGmuPzCytN9ZW1nQlEWjgA==
+ dependencies:
+ component-emitter "1.2.1"
+ debug "~4.1.0"
+ isarray "2.0.1"
+
+ socket.io@^2.2.0:
+ version "2.5.0"
+ resolved "https://registry.npmjs.org/socket.io/-/socket.io-2.5.0.tgz#e1c7fb1823f7fa09dfebb5bb68f9d2ee03a0a2e3"
+ integrity sha512-gGunfS0od3VpwDBpGwVkzSZx6Aqo9uOcf1afJj2cKnKFAoyl16fvhpsUhmUFd4Ldbvl5JvRQed6eQw6oQp6n8w==
+ dependencies:
+ debug "~4.1.0"
+ engine.io "~3.6.0"
+ has-binary2 "~1.0.2"
+ socket.io-adapter "~1.1.0"
+ socket.io-client "2.5.0"
+ socket.io-parser "~3.4.0"
+
+ sockjs-client@1.4.0:
+ version "1.4.0"
+ resolved "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5"
+ dependencies:
+ debug "^3.2.5"
+ eventsource "^1.0.7"
+ faye-websocket "~0.11.1"
+ inherits "^2.0.3"
+ json3 "^3.3.2"
+ url-parse "^1.4.3"
+
+ sockjs@0.3.19:
+ version "0.3.19"
+ resolved "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
+ dependencies:
+ faye-websocket "^0.10.0"
+ uuid "^3.0.1"
+
+ sort-keys@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad"
+ dependencies:
+ is-plain-obj "^1.0.0"
+
+ source-list-map@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
+
+ source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
+ version "0.5.3"
+ resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ dependencies:
+ atob "^2.1.2"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+ source-map-support@^0.5.13, source-map-support@^0.5.6, source-map-support@~0.5.12:
+ version "0.5.18"
+ resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.18.tgz#f5f33489e270bd7f7d7e7b8debf283f3a4066960"
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+ source-map-support@^0.5.16:
+ version "0.5.21"
+ resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+ source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+
+ source-map@^0.5.0, source-map@^0.5.6:
+ version "0.5.7"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
+ source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+
+ sourcemap-codec@^1.4.4:
+ version "1.4.8"
+ resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+
+ spdx-correct@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+ spdx-exceptions@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+
+ spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+ spdx-license-ids@^3.0.0:
+ version "3.0.5"
+ resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
+
+ spdy-transport@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
+ dependencies:
+ debug "^4.1.0"
+ detect-node "^2.0.4"
+ hpack.js "^2.1.6"
+ obuf "^1.1.2"
+ readable-stream "^3.0.6"
+ wbuf "^1.7.3"
+
+ spdy@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
+ dependencies:
+ debug "^4.1.0"
+ handle-thing "^2.0.0"
+ http-deceiver "^1.2.7"
+ select-hose "^2.0.0"
+ spdy-transport "^3.0.0"
+
+ split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ dependencies:
+ extend-shallow "^3.0.0"
+
+ sprintf-js@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
+
+ sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+ sshpk@^1.7.0:
+ version "1.16.1"
+ resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
+ ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
+ jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
+ tweetnacl "~0.14.0"
+
+ ssri@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
+ dependencies:
+ figgy-pudding "^3.5.1"
+
+ ssri@^7.0.0, ssri@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d"
+ dependencies:
+ figgy-pudding "^3.5.1"
+ minipass "^3.1.1"
+
+ stable@^0.1.8:
+ version "0.1.8"
+ resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
+
+ stack-utils@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
+
+ stackframe@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71"
+
+ static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+ statuses@2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
+ integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
+
+ "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@^1.5.0, statuses@~1.5.0:
+ version "1.5.0"
+ resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
+
+ stealthy-require@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
+
+ stream-browserify@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
+ dependencies:
+ inherits "~2.0.1"
+ readable-stream "^2.0.2"
+
+ stream-each@^1.1.0:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
+ dependencies:
+ end-of-stream "^1.1.0"
+ stream-shift "^1.0.0"
+
+ stream-http@^2.7.2:
+ version "2.8.3"
+ resolved "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
+ dependencies:
+ builtin-status-codes "^3.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.3.6"
+ to-arraybuffer "^1.0.0"
+ xtend "^4.0.0"
+
+ stream-shift@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+
+ strict-uri-encode@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
+
+ stricter-htmlparser2@^3.9.6:
+ version "3.9.6"
+ resolved "https://registry.yarnpkg.com/stricter-htmlparser2/-/stricter-htmlparser2-3.9.6.tgz#fd195f5e4bc0989c6b15fc79eca85c6401bb5045"
+ dependencies:
+ domelementtype "^1.3.0"
+ domutils "^1.5.1"
+ entities "^1.1.1"
+ inherits "^2.0.1"
+ readable-stream "^2.0.2"
+ x-domhandler "^2.4.2"
+
+ string-length@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837"
+ dependencies:
+ astral-regex "^1.0.0"
+ strip-ansi "^5.2.0"
+
+ string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+ "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+ string-width@^3.0.0, string-width@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+ dependencies:
+ emoji-regex "^7.0.1"
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^5.1.0"
+
+ string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.0"
+
+ string.prototype.trimend@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+ string.prototype.trimleft@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+ string.prototype.trimstart "^1.0.0"
+
+ string.prototype.trimright@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+ string.prototype.trimend "^1.0.0"
+
+ string.prototype.trimstart@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+
+ string_decoder@^1.0.0, string_decoder@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+ dependencies:
+ safe-buffer "~5.2.0"
+
+ string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+ strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+ dependencies:
+ ansi-regex "^4.1.0"
+
+ strip-ansi@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+ dependencies:
+ ansi-regex "^5.0.0"
+
+ strip-bom-buffer@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.npmjs.org/strip-bom-buffer/-/strip-bom-buffer-0.1.1.tgz#ca3ddc4919c13f9fddf30b1dff100a9835248b4d"
+ dependencies:
+ is-buffer "^1.1.0"
+ is-utf8 "^0.2.0"
+
+ strip-bom-string@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-0.1.2.tgz#9c6e720a313ba9836589518405ccfb88a5f41b9c"
+
+ strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+ strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+
+ strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+ strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+
+ strip-indent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68"
+
+ strip-json-comments@2.0.1, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+ strip-json-comments@^3.0.1, strip-json-comments@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180"
+
+ stylehacks@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
+ dependencies:
+ browserslist "^4.0.0"
+ postcss "^7.0.0"
+ postcss-selector-parser "^3.0.0"
+
+ success-symbol@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/success-symbol/-/success-symbol-0.1.0.tgz#24022e486f3bf1cdca094283b769c472d3b72897"
+
+ supports-color@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz#76cfe742cf1f41bb9b1c29ad03068c05b4c0e40a"
+ dependencies:
+ has-flag "^3.0.0"
+
+ supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+ supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ dependencies:
+ has-flag "^3.0.0"
+
+ supports-color@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
+ dependencies:
+ has-flag "^3.0.0"
+
+ supports-color@^7.0.0, supports-color@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
+ dependencies:
+ has-flag "^4.0.0"
+
+ supports-hyperlinks@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
+ dependencies:
+ has-flag "^4.0.0"
+ supports-color "^7.0.0"
+
+ supports-preserve-symlinks-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
+ integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
+
+ svg-tags@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
+
+ svgo@^1.0.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+ dependencies:
+ chalk "^2.4.1"
+ coa "^2.0.2"
+ css-select "^2.0.0"
+ css-select-base-adapter "^0.1.1"
+ css-tree "1.0.0-alpha.37"
+ csso "^4.0.2"
+ js-yaml "^3.13.1"
+ mkdirp "~0.5.1"
+ object.values "^1.1.0"
+ sax "~1.2.4"
+ stable "^0.1.8"
+ unquote "~1.1.1"
+ util.promisify "~1.0.0"
+
+ symbol-tree@^3.2.2, symbol-tree@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+
+ table@^5.2.3:
+ version "5.4.6"
+ resolved "https://registry.npmjs.org/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+ dependencies:
+ ajv "^6.10.2"
+ lodash "^4.17.14"
+ slice-ansi "^2.1.0"
+ string-width "^3.0.0"
+
+ tapable@^1.0.0, tapable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
+
+ terminal-link@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
+ dependencies:
+ ansi-escapes "^4.2.1"
+ supports-hyperlinks "^2.0.0"
+
+ terser-webpack-plugin@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
+ dependencies:
+ cacache "^12.0.2"
+ find-cache-dir "^2.1.0"
+ is-wsl "^1.1.0"
+ schema-utils "^1.0.0"
+ serialize-javascript "^2.1.2"
+ source-map "^0.6.1"
+ terser "^4.1.2"
+ webpack-sources "^1.4.0"
+ worker-farm "^1.7.0"
+
+ terser-webpack-plugin@^2.3.5:
+ version "2.3.5"
+ resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81"
+ dependencies:
+ cacache "^13.0.1"
+ find-cache-dir "^3.2.0"
+ jest-worker "^25.1.0"
+ p-limit "^2.2.2"
+ schema-utils "^2.6.4"
+ serialize-javascript "^2.1.2"
+ source-map "^0.6.1"
+ terser "^4.4.3"
+ webpack-sources "^1.4.3"
+
+ terser@^4.1.2, terser@^4.4.3, terser@^4.6.2:
+ version "4.6.11"
+ resolved "https://registry.npmjs.org/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f"
+ dependencies:
+ commander "^2.20.0"
+ source-map "~0.6.1"
+ source-map-support "~0.5.12"
+
+ test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
+
+ text-table@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+
+ thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+ "thenify@>= 3.1.0 < 4":
+ version "3.3.0"
+ resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
+ dependencies:
+ any-promise "^1.0.0"
+
+ thread-loader@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz#cbd2c139fc2b2de6e9d28f62286ab770c1acbdda"
+ dependencies:
+ loader-runner "^2.3.1"
+ loader-utils "^1.1.0"
+ neo-async "^2.6.0"
+
+ throat@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
+
+ through2@^2.0.0, through2@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+ through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
+ thunky@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
+
+ timers-browserify@^2.0.4:
+ version "2.0.11"
+ resolved "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
+ dependencies:
+ setimmediate "^1.0.4"
+
+ timsort@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
+
+ tmp@^0.0.33:
+ version "0.0.33"
+ resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+ dependencies:
+ os-tmpdir "~1.0.2"
+
+ tmpl@1.0.x:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1"
+
+ to-array@0.1.4:
+ version "0.1.4"
+ resolved "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890"
+ integrity sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==
+
+ to-arraybuffer@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
+
+ to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+
+ to-file@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/to-file/-/to-file-0.2.0.tgz#236c6c088065e570defbd15cf4b4e565be46ea93"
+ dependencies:
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ file-contents "^0.2.4"
+ glob-parent "^2.0.0"
+ is-valid-glob "^0.3.0"
+ isobject "^2.1.0"
+ lazy-cache "^2.0.1"
+ vinyl "^1.1.1"
+
+ to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ dependencies:
+ kind-of "^3.0.2"
+
+ to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+ to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ dependencies:
+ is-number "^7.0.0"
+
+ to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+ toidentifier@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
+
+ toidentifier@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
+ integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
+
+ toposort@^1.0.0:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
+
+ toposort@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330"
+
+ tough-cookie@^2.3.3, tough-cookie@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ dependencies:
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
+ tough-cookie@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
+ dependencies:
+ ip-regex "^2.1.0"
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
+ tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ dependencies:
+ punycode "^2.1.0"
+
+ tr46@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479"
+ dependencies:
+ punycode "^2.1.1"
+
+ tryer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8"
+
+ ts-pnp@^1.1.6:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92"
+
+ tslib@^1.9.0:
+ version "1.11.1"
+ resolved "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35"
+
+ tslib@^2.0.1:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a"
+
+ tsscmp@1.0.6:
+ version "1.0.6"
+ resolved "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb"
+ integrity sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==
+
+ tty-browserify@0.0.0:
+ version "0.0.0"
+ resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
+
+ tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ dependencies:
+ safe-buffer "^5.0.1"
+
+ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+ type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ dependencies:
+ prelude-ls "~1.1.2"
+
+ type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5:
+ version "4.0.8"
+ resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+
+ type-fest@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
+
+ type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+
+ type-fest@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
+
+ type-is@^1.6.14, type-is@^1.6.16, type-is@~1.6.17, type-is@~1.6.18:
+ version "1.6.18"
+ resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
+ dependencies:
+ media-typer "0.3.0"
+ mime-types "~2.1.24"
+
+ typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ dependencies:
+ is-typedarray "^1.0.0"
+
+ typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
+ typescript@^4.8.3:
+ version "4.9.5"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
+ integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+
+ uglify-js@3.4.x:
+ version "3.4.10"
+ resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
+ dependencies:
+ commander "~2.19.0"
+ source-map "~0.6.1"
+
+ uglify-js@^3.4.9:
+ version "3.17.4"
+ resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"
+ integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==
+
+ uglifycss@^0.0.29:
+ version "0.0.29"
+ resolved "https://registry.yarnpkg.com/uglifycss/-/uglifycss-0.0.29.tgz#abe49531155d146e75dd2fdf933d371bc1180054"
+ integrity sha512-J2SQ2QLjiknNGbNdScaNZsXgmMGI0kYNrXaDlr4obnPW9ni1jljb1NeEVWAiTgZ8z+EBWP2ozfT9vpy03rjlMQ==
+
+ unc-path-regex@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
+
+ unicode-canonical-property-names-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
+
+ unicode-canonical-property-names-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
+ unicode-match-property-ecmascript@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^1.0.4"
+ unicode-property-aliases-ecmascript "^1.0.4"
+
+ unicode-match-property-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+ integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^2.0.0"
+ unicode-property-aliases-ecmascript "^2.0.0"
+
+ unicode-match-property-value-ecmascript@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
+
+ unicode-match-property-value-ecmascript@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
+ integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
+
+ unicode-property-aliases-ecmascript@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
+
+ unicode-property-aliases-ecmascript@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
+ integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
+
+ union-value@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^2.0.1"
+
+ uniq@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+
+ uniqs@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
+
+ unique-filename@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
+ dependencies:
+ unique-slug "^2.0.0"
+
+ unique-slug@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
+ dependencies:
+ imurmurhash "^0.1.4"
+
+ universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+
+ universalify@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
+
+ unpipe@1.0.0, unpipe@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
+
+ unquote@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
+
+ unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+ upath@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
+
+ update-browserslist-db@^1.0.10:
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
+ integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+ update-check@^1.5.3:
+ version "1.5.4"
+ resolved "https://registry.npmjs.org/update-check/-/update-check-1.5.4.tgz#5b508e259558f1ad7dbc8b4b0457d4c9d28c8743"
+ integrity sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==
+ dependencies:
+ registry-auth-token "3.3.2"
+ registry-url "3.1.0"
+
+ upper-case@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+
+ uri-js@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
+ dependencies:
+ punycode "^2.1.0"
+
+ urijs@^1.18.12, urijs@^1.19.0:
+ version "1.19.11"
+ resolved "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz#204b0d6b605ae80bea54bea39280cdb7c9f923cc"
+ integrity sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==
+
+ urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+
+ url-loader@^2.1.0, url-loader@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz#e0e2ef658f003efb8ca41b0f3ffbf76bab88658b"
+ dependencies:
+ loader-utils "^1.2.3"
+ mime "^2.4.4"
+ schema-utils "^2.5.0"
+
+ url-parse@^1.4.3:
+ version "1.4.7"
+ resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
+ url@^0.11.0:
+ version "0.11.0"
+ resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
+ dependencies:
+ punycode "1.3.2"
+ querystring "0.2.0"
+
+ use@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
+
+ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+ util.promisify@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
+ dependencies:
+ define-properties "^1.1.2"
+ object.getownpropertydescriptors "^2.0.3"
+
+ util.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
+
+ util@0.10.3:
+ version "0.10.3"
+ resolved "https://registry.npmjs.org/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
+ dependencies:
+ inherits "2.0.1"
+
+ util@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.npmjs.org/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
+ dependencies:
+ inherits "2.0.3"
+
+ util@^0.12.0:
+ version "0.12.5"
+ resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
+ integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
+ dependencies:
+ inherits "^2.0.3"
+ is-arguments "^1.0.4"
+ is-generator-function "^1.0.7"
+ is-typed-array "^1.1.3"
+ which-typed-array "^1.1.2"
+
+ utila@^0.4.0, utila@~0.4:
+ version "0.4.0"
+ resolved "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+
+ utils-merge@1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
+
+ uuid@^3.0.1, uuid@^3.3.2:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+
+ v8-compile-cache@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e"
+
+ v8-to-istanbul@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20"
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+ source-map "^0.7.3"
+
+ validate-npm-package-license@^3.0.1:
+ version "3.0.4"
+ resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+ vary@^1.1.2, vary@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+
+ vendors@^1.0.0:
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+
+ verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+ vinyl@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884"
+ dependencies:
+ clone "^1.0.0"
+ clone-stats "^0.0.1"
+ replace-ext "0.0.1"
+
+ vm-browserify@^1.0.1:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
+
+ vue-eslint-parser@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.0.0.tgz#a4ed2669f87179dedd06afdd8736acbb3a3864d6"
+ dependencies:
+ debug "^4.1.1"
+ eslint-scope "^5.0.0"
+ eslint-visitor-keys "^1.1.0"
+ espree "^6.1.2"
+ esquery "^1.0.1"
+ lodash "^4.17.15"
+
+ vue-hot-reload-api@^2.3.0:
+ version "2.3.4"
+ resolved "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
+
+ vue-loader@^15.6.4:
+ version "15.10.1"
+ resolved "https://registry.npmjs.org/vue-loader/-/vue-loader-15.10.1.tgz#c451c4cd05a911aae7b5dbbbc09fb913fb3cca18"
+ integrity sha512-SaPHK1A01VrNthlix6h1hq4uJu7S/z0kdLUb6klubo738NeQoLbS6V9/d8Pv19tU0XdQKju3D1HSKuI8wJ5wMA==
+ dependencies:
+ "@vue/component-compiler-utils" "^3.1.0"
+ hash-sum "^1.0.2"
+ loader-utils "^1.1.0"
+ vue-hot-reload-api "^2.3.0"
+ vue-style-loader "^4.1.0"
+
+ vue-loader@^15.9.1:
+ version "15.9.1"
+ resolved "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.1.tgz#bd2ab8f3d281e51d7b81d15390a58424d142243e"
+ dependencies:
+ "@vue/component-compiler-utils" "^3.1.0"
+ hash-sum "^1.0.2"
+ loader-utils "^1.1.0"
+ vue-hot-reload-api "^2.3.0"
+ vue-style-loader "^4.1.0"
+
+ vue-router@^3.0.1:
+ version "3.1.6"
+ resolved "https://registry.npmjs.org/vue-router/-/vue-router-3.1.6.tgz#45f5a3a3843e31702c061dd829393554e4328f89"
+
+ vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
+ dependencies:
+ hash-sum "^1.0.2"
+ loader-utils "^1.0.2"
+
+ vue-template-compiler@^2.6.10, vue-template-compiler@^2.6.7:
+ version "2.7.14"
+ resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz#4545b7dfb88090744c1577ae5ac3f964e61634b1"
+ integrity sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==
+ dependencies:
+ de-indent "^1.0.2"
+ he "^1.2.0"
+
+ vue-template-compiler@^2.6.11:
+ version "2.6.11"
+ resolved "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz#c04704ef8f498b153130018993e56309d4698080"
+ dependencies:
+ de-indent "^1.0.2"
+ he "^1.1.0"
+
+ vue-template-es2015-compiler@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
+
+ vue@^2.6.11:
+ version "2.6.11"
+ resolved "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
+
+ w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ dependencies:
+ browser-process-hrtime "^1.0.0"
+
+ w3c-xmlserializer@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
+ dependencies:
+ domexception "^1.0.1"
+ webidl-conversions "^4.0.2"
+ xml-name-validator "^3.0.0"
+
+ w3c-xmlserializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a"
+ dependencies:
+ xml-name-validator "^3.0.0"
+
+ walker@^1.0.7, walker@~1.0.5:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
+ dependencies:
+ makeerror "1.0.x"
+
+ watchpack-chokidar2@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"
+ integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==
+ dependencies:
+ chokidar "^2.1.8"
+
+ watchpack@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2"
+ dependencies:
+ chokidar "^2.1.8"
+ graceful-fs "^4.1.2"
+ neo-async "^2.5.0"
+
+ watchpack@^1.7.4:
+ version "1.7.5"
+ resolved "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453"
+ integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==
+ dependencies:
+ graceful-fs "^4.1.2"
+ neo-async "^2.5.0"
+ optionalDependencies:
+ chokidar "^3.4.1"
+ watchpack-chokidar2 "^2.0.1"
+
+ wbuf@^1.1.0, wbuf@^1.7.3:
+ version "1.7.3"
+ resolved "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
+ dependencies:
+ minimalistic-assert "^1.0.0"
+
+ wcwidth@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
+ dependencies:
+ defaults "^1.0.3"
+
+ webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+
+ webidl-conversions@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff"
+
+ webidl-conversions@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514"
+
+ webpack-bundle-analyzer@^3.6.1:
+ version "3.7.0"
+ resolved "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.7.0.tgz#84da434e89442899b884d9ad38e466d0db02a56f"
+ dependencies:
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
+ bfj "^6.1.1"
+ chalk "^2.4.1"
+ commander "^2.18.0"
+ ejs "^2.6.1"
+ express "^4.16.3"
+ filesize "^3.6.1"
+ gzip-size "^5.0.0"
+ lodash "^4.17.15"
+ mkdirp "^0.5.1"
+ opener "^1.5.1"
+ ws "^6.0.0"
+
+ webpack-chain@^6.4.0:
+ version "6.4.0"
+ resolved "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.4.0.tgz#22f0b27b6a9bc9ee3cba4f9e6513cf66394034e2"
+ dependencies:
+ deepmerge "^1.5.2"
+ javascript-stringify "^2.0.1"
+
+ webpack-dev-middleware@^3.7.2:
+ version "3.7.2"
+ resolved "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3"
+ dependencies:
+ memory-fs "^0.4.1"
+ mime "^2.4.4"
+ mkdirp "^0.5.1"
+ range-parser "^1.2.1"
+ webpack-log "^2.0.0"
+
+ webpack-dev-server@^3.10.3:
+ version "3.10.3"
+ resolved "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0"
+ dependencies:
+ ansi-html "0.0.7"
+ bonjour "^3.5.0"
+ chokidar "^2.1.8"
+ compression "^1.7.4"
+ connect-history-api-fallback "^1.6.0"
+ debug "^4.1.1"
+ del "^4.1.1"
+ express "^4.17.1"
+ html-entities "^1.2.1"
+ http-proxy-middleware "0.19.1"
+ import-local "^2.0.0"
+ internal-ip "^4.3.0"
+ ip "^1.1.5"
+ is-absolute-url "^3.0.3"
+ killable "^1.0.1"
+ loglevel "^1.6.6"
+ opn "^5.5.0"
+ p-retry "^3.0.1"
+ portfinder "^1.0.25"
+ schema-utils "^1.0.0"
+ selfsigned "^1.10.7"
+ semver "^6.3.0"
+ serve-index "^1.9.1"
+ sockjs "0.3.19"
+ sockjs-client "1.4.0"
+ spdy "^4.0.1"
+ strip-ansi "^3.0.1"
+ supports-color "^6.1.0"
+ url "^0.11.0"
+ webpack-dev-middleware "^3.7.2"
+ webpack-log "^2.0.0"
+ ws "^6.2.1"
+ yargs "12.0.5"
+
+ webpack-log@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
+ dependencies:
+ ansi-colors "^3.0.0"
+ uuid "^3.3.2"
+
+ webpack-merge@^4.1.4, webpack-merge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
+ dependencies:
+ lodash "^4.17.15"
+
+ webpack-sources@^1.1.0, webpack-sources@^1.3.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3:
+ version "1.4.3"
+ resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
+ dependencies:
+ source-list-map "^2.0.0"
+ source-map "~0.6.1"
+
+ webpack@^4.0.0, webpack@^4.42.0:
+ version "4.43.0"
+ resolved "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6"
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/wasm-edit" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ acorn "^6.4.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^4.1.0"
+ eslint-scope "^4.0.3"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.3"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
+ schema-utils "^1.0.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.3"
+ watchpack "^1.6.1"
+ webpack-sources "^1.4.1"
+
+ webpack@^4.29.5:
+ version "4.46.0"
+ resolved "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542"
+ integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==
+ dependencies:
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/wasm-edit" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ acorn "^6.4.1"
+ ajv "^6.10.2"
+ ajv-keywords "^3.4.1"
+ chrome-trace-event "^1.0.2"
+ enhanced-resolve "^4.5.0"
+ eslint-scope "^4.0.3"
+ json-parse-better-errors "^1.0.2"
+ loader-runner "^2.4.0"
+ loader-utils "^1.2.3"
+ memory-fs "^0.4.1"
+ micromatch "^3.1.10"
+ mkdirp "^0.5.3"
+ neo-async "^2.6.1"
+ node-libs-browser "^2.2.1"
+ schema-utils "^1.0.0"
+ tapable "^1.1.3"
+ terser-webpack-plugin "^1.4.3"
+ watchpack "^1.7.4"
+ webpack-sources "^1.4.1"
+
+ websocket-driver@>=0.5.1:
+ version "0.7.3"
+ resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
+ dependencies:
+ http-parser-js ">=0.4.0 <0.4.11"
+ safe-buffer ">=5.1.0"
+ websocket-extensions ">=0.1.1"
+
+ websocket-extensions@>=0.1.1:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
+
+ whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
+ dependencies:
+ iconv-lite "0.4.24"
+
+ whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+
+ whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
+ whatwg-url@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz#37f256cb746398e19b107bd6ef820b4ae2d15871"
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^2.0.0"
+ webidl-conversions "^5.0.0"
+
+ which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+ which-typed-array@^1.1.2:
+ version "1.1.9"
+ resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
+ integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
+ dependencies:
+ available-typed-arrays "^1.0.5"
+ call-bind "^1.0.2"
+ for-each "^0.3.3"
+ gopd "^1.0.1"
+ has-tostringtag "^1.0.0"
+ is-typed-array "^1.1.10"
+
+ which@1.3.1, which@^1.2.12, which@^1.2.9, which@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
+ dependencies:
+ isexe "^2.0.0"
+
+ which@^2.0.1, which@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ dependencies:
+ isexe "^2.0.0"
+
+ wide-align@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+ dependencies:
+ string-width "^1.0.2 || 2"
+
+ word-wrap@~1.2.3:
+ version "1.2.3"
+ resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
+
+ worker-farm@^1.7.0:
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
+ dependencies:
+ errno "~0.1.7"
+
+ wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+ wrap-ansi@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
+ dependencies:
+ ansi-styles "^3.2.0"
+ string-width "^3.0.0"
+ strip-ansi "^5.0.0"
+
+ wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+ wrap-loader@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/wrap-loader/-/wrap-loader-0.2.0.tgz#8209f87ec80047a657a2adabbcfd62cfad7f0aae"
+ integrity sha512-Qdhdu7vr2H8dLE2sKySQznOBHXIHbKg7PZ5aqkeBOQHGqxLfcJw/ZlB40j67b1tks9OYqSBCHc+uHtGRCmQYlg==
+ dependencies:
+ loader-utils "^1.1.0"
+
+ wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+ write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+ dependencies:
+ imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
+ signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
+
+ write@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.npmjs.org/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
+ dependencies:
+ mkdirp "^0.5.1"
+
+ ws@^6.0.0, ws@^6.2.1:
+ version "6.2.1"
+ resolved "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
+ dependencies:
+ async-limiter "~1.0.0"
+
+ ws@^7.0.0, ws@^7.2.3:
+ version "7.2.3"
+ resolved "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46"
+
+ ws@~7.4.2:
+ version "7.4.6"
+ resolved "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
+ integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
+
+ x-domhandler@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/x-domhandler/-/x-domhandler-2.4.2.tgz#21afb2d71977118688e49e05c30894497ce3d5e9"
+ dependencies:
+ domelementtype "1"
+
+ xml-name-validator@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
+
+ xmlchars@^2.1.1, xmlchars@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+
+ xmlhttprequest-ssl@~1.6.2:
+ version "1.6.3"
+ resolved "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6"
+ integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==
+
+ xregexp@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz#e698189de49dd2a18cc5687b05e17c8e43943020"
+ integrity sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==
+
+ xtend@^4.0.0, xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+
+ "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+
+ yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+ yallist@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+
+ yallist@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+
+ yargs-parser@13.1.2, yargs-parser@^13.1.1, yargs-parser@^13.1.2:
+ version "13.1.2"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38"
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+ yargs-parser@^11.1.1:
+ version "11.1.1"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+ yargs-parser@^18.1.1:
+ version "18.1.3"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+ yargs-unparser@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz#ef25c2c769ff6bd09e4b0f9d7c605fb27846ea9f"
+ dependencies:
+ flat "^4.1.0"
+ lodash "^4.17.15"
+ yargs "^13.3.0"
+
+ yargs@12.0.5:
+ version "12.0.5"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.2.0"
+ find-up "^3.0.0"
+ get-caller-file "^1.0.1"
+ os-locale "^3.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1 || ^4.0.0"
+ yargs-parser "^11.1.1"
+
+ yargs@13.3.2, yargs@^13.3.0:
+ version "13.3.2"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"
+ dependencies:
+ cliui "^5.0.0"
+ find-up "^3.0.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^3.0.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.2"
+
+ yargs@14.0.0:
+ version "14.0.0"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-14.0.0.tgz#ba4cacc802b3c0b3e36a9e791723763d57a85066"
+ dependencies:
+ cliui "^5.0.0"
+ decamelize "^1.2.0"
+ find-up "^3.0.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^3.0.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^13.1.1"
+
+ yargs@^15.0.0, yargs@^15.3.1:
+ version "15.3.1"
+ resolved "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"
+ dependencies:
+ cliui "^6.0.0"
+ decamelize "^1.2.0"
+ find-up "^4.1.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^4.2.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.1"
+
+ yeast@0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419"
+ integrity sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==
+
+ ylru@^1.2.0:
+ version "1.3.2"
+ resolved "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz#0de48017473275a4cbdfc83a1eaf67c01af8a785"
+ integrity sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==
+
+ yorkie@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz#92411912d435214e12c51c2ae1093e54b6bb83d9"
+ dependencies:
+ execa "^0.8.0"
+ is-ci "^1.0.10"
+ normalize-path "^1.0.0"
+ strip-indent "^2.0.0"
diff --git a/packages/uni-template-compiler/lib/index.js b/packages/uni-template-compiler/lib/index.js
index c9b0280d333..bd12f19b2d2 100644
--- a/packages/uni-template-compiler/lib/index.js
+++ b/packages/uni-template-compiler/lib/index.js
@@ -15,7 +15,7 @@ const generateScript = require('./script/generate')
const traverseTemplate = require('./template/traverse')
const generateTemplate = require('./template/generate')
-const compilerModule = require('./module')
+const compilerModule = require('./module')
const compilerModuleUniad = require('./module.uniad')
const compilerAlipayModule = require('./module-alipay')
@@ -38,10 +38,10 @@ const isWin = /^win/.test(process.platform)
const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path)
module.exports = {
- compile (source, options = {}) {
- if (Array.isArray(options.modules)) {
- options.modules.push(compilerModuleUniad)
- }
+ compile (source, options = {}) {
+ if (Array.isArray(options.modules)) {
+ options.modules.push(compilerModuleUniad)
+ }
if ( // 启用摇树优化后,需要过滤内置组件
!options.autoComponentResourcePath ||
@@ -51,7 +51,7 @@ module.exports = {
}
if (!options.modules) {
options.modules = []
- }
+ }
// transformAssetUrls
options.modules.push(require('./asset-url'))
@@ -96,7 +96,7 @@ module.exports = {
return compileTemplate(source, options, compile)
}
- options.modules.push(compilerModule)
+ options.modules.push(compilerModule)
if (options.mp.platform === 'mp-alipay') {
options.modules.push(compilerAlipayModule)
@@ -124,9 +124,9 @@ module.exports = {
options.mp.filterModules = Object.keys(options.filterModules || {})
// (可用的原生微信小程序组件,global+scoped)
- options.mp.wxComponents = options.wxComponents || Object.create(null)
- Object.assign(options.mp.wxComponents, {
- 'uniad-plugin': 'plugin://uni-ad/ad'
+ options.mp.wxComponents = options.wxComponents || Object.create(null)
+ Object.assign(options.mp.wxComponents, {
+ 'uniad-plugin': 'plugin://uni-ad/ad'
})
const state = {
@@ -231,7 +231,7 @@ at ${resourcePath}.vue:1`)
if (
process.UNI_ENTRY[resourcePath] &&
process.env.UNI_PLATFORM !== 'app-plus' &&
- process.env.UNI_PLATFORM !== 'h5'
+ process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'mp-weibo'
) {
// 检查是否启用 shadow
let colorType = false
diff --git a/packages/vue-cli-plugin-uni-optimize/index.js b/packages/vue-cli-plugin-uni-optimize/index.js
index 59efcc49015..f1fb1efb5a8 100644
--- a/packages/vue-cli-plugin-uni-optimize/index.js
+++ b/packages/vue-cli-plugin-uni-optimize/index.js
@@ -16,7 +16,7 @@ module.exports = (api, options) => {
return
}
- if (process.env.NODE_ENV !== 'production' || process.env.UNI_PLATFORM !== 'h5') {
+ if (process.env.NODE_ENV !== 'production' || (process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'mp-weibo')) {
return
}
@@ -89,4 +89,4 @@ module.exports = (api, options) => {
.uses
.delete('cache-loader')
})
-}
+}
diff --git a/packages/vue-cli-plugin-uni/commands/build.js b/packages/vue-cli-plugin-uni/commands/build.js
index 5a206d68197..a295666df01 100644
--- a/packages/vue-cli-plugin-uni/commands/build.js
+++ b/packages/vue-cli-plugin-uni/commands/build.js
@@ -199,19 +199,25 @@ async function build (args, api, options) {
if (!args.silent && (process.env.UNI_PLATFORM !== 'app-plus' || process.env
.UNI_AUTOMATOR_WS_ENDPOINT)) {
- const targetDirShort = path.relative(
+ let targetDirShort = path.relative(
api.service.context,
process.env.UNI_OUTPUT_DIR
)
+ if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ targetDirShort = path.resolve(targetDirShort, '..', '..', '..')
+ // 处理html文件
+ // const htmlContent = fs.readFileSync(path.join(process.env.UNI_OUTPUT_DIR, 'index.html'), 'utf-8')
+ // const newHtmlContent = htmlContent.replace('', '')
+ // fs.writeFileSync(path.join(process.env.UNI_OUTPUT_DIR, 'index.html'), newHtmlContent)
+ }
if (!args.watch) {
const dirMsg = runByHBuilderX ? ''
: `The ${chalk.cyan(targetDirShort)} directory is ready to be deployed.`
done(`Build complete. ${dirMsg}`)
- if (process.env.UNI_PLATFORM !== 'h5') {
+ if (process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'mp-weibo') {
showRunPrompt()
}
-
if (process.env.UNI_PLATFORM === 'h5' && !isInHBuilderX) {
console.log()
console.log('欢迎将web站点部署到uniCloud前端网页托管平台,高速、免费、安全、省心,详见:https://uniapp.dcloud.io/uniCloud/hosting')
diff --git a/packages/vue-cli-plugin-uni/index.js b/packages/vue-cli-plugin-uni/index.js
index 2c854df487e..0c73c12f7f6 100644
--- a/packages/vue-cli-plugin-uni/index.js
+++ b/packages/vue-cli-plugin-uni/index.js
@@ -40,7 +40,7 @@ module.exports = (api, options) => {
return
}
- const type = ['app-plus', 'h5'].includes(process.env.UNI_PLATFORM)
+ const type = ['app-plus', 'h5', 'mp-weibo'].includes(process.env.UNI_PLATFORM)
? process.env.UNI_PLATFORM
: 'mp'
@@ -54,7 +54,7 @@ module.exports = (api, options) => {
if (options.pages) {
// h5平台 允许 vue.config.js pages 覆盖,其他平台移除 pages 配置
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
delete vueConfig.pages
} else {
delete options.pages
diff --git a/packages/vue-cli-plugin-uni/lib/chain-webpack.js b/packages/vue-cli-plugin-uni/lib/chain-webpack.js
index 5277538b4f8..aeeeaf897a4 100644
--- a/packages/vue-cli-plugin-uni/lib/chain-webpack.js
+++ b/packages/vue-cli-plugin-uni/lib/chain-webpack.js
@@ -91,7 +91,7 @@ module.exports = function chainWebpack (platformOptions, vueOptions, api) {
}
return options
})
- const platformExcludes = ['app-plus', 'h5', 'mp-360']
+ const platformExcludes = ['app-plus', 'h5', 'mp-360', 'mp-weibo']
const platform = process.env.UNI_PLATFORM
if (!platformExcludes.includes(platform)) {
// remove warning https://github.com/vuejs/vue-loader/issues/1742
@@ -168,7 +168,7 @@ module.exports = function chainWebpack (platformOptions, vueOptions, api) {
__VUE_PROD_DEVTOOLS__: JSON.stringify(false)
})
}
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
// TODO manifest.json
defines.__UNI_ROUTER_MODE__ = JSON.stringify('hash')
}
diff --git a/packages/vue-cli-plugin-uni/lib/configure-webpack.js b/packages/vue-cli-plugin-uni/lib/configure-webpack.js
index 7b1e99dad2c..c2851ba6898 100644
--- a/packages/vue-cli-plugin-uni/lib/configure-webpack.js
+++ b/packages/vue-cli-plugin-uni/lib/configure-webpack.js
@@ -258,7 +258,7 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
} : patterns))
const uniExtApis = require('@dcloudio/uni-cli-shared/lib/uni_modules/uni_modules')
- .parseUniExtApis(false, process.env.UNI_UTS_PLATFORM, 'javascript')
+ .parseUniExtApis(false)
const keys = Object.keys(uniExtApis)
if (keys.length) {
plugins.push(new webpack.ProvidePlugin(uniExtApis))
@@ -296,6 +296,10 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
plugins.push(new webpack.DefinePlugin(envs))
}
+ if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ require('./mp-weibo/templateDeal').templateDeal(manifestPlatformOptions)
+ }
+
if (runByHBuilderX) { // 使用 HBuilderX 中运行时,调整错误日志输出
const WebpackErrorsPlugin = require('../packages/webpack-errors-plugin')
const onErrors = require('../util/on-errors')
@@ -449,4 +453,4 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
watchOptions: require('./util').getWatchOptions()
}, platformWebpackConfig)
}
-}
+}
diff --git a/packages/vue-cli-plugin-uni/lib/env.js b/packages/vue-cli-plugin-uni/lib/env.js
index 27b96a103ed..9e056e8ba11 100644
--- a/packages/vue-cli-plugin-uni/lib/env.js
+++ b/packages/vue-cli-plugin-uni/lib/env.js
@@ -18,6 +18,7 @@ const defaultInputDir = 'src'
if (process.env.UNI_INPUT_DIR && process.env.UNI_INPUT_DIR.indexOf('./') === 0) {
process.env.UNI_INPUT_DIR = path.resolve(process.cwd(), process.env.UNI_INPUT_DIR)
}
+
process.env.UNI_INPUT_DIR = process.env.UNI_INPUT_DIR || path.resolve(process.cwd(), defaultInputDir)
const {
@@ -137,10 +138,12 @@ process.env.UNI_SECURE_NETWORK_ENABLE = isEnableSecureNetwork(manifestJsonObj, p
// 初始化环境变量
process.env.UNI_CLI_CONTEXT = require('@dcloudio/uni-cli-shared/lib/util').getCLIContext()
-const defaultOutputDir = './dist/' +
+let defaultOutputDir = './dist/' +
(process.env.NODE_ENV === 'production' ? 'build' : 'dev') + '/' +
(process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM)
-
+if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ defaultOutputDir = path.join(defaultOutputDir, 'src', 'res', 'h5')
+}
process.env.UNI_OUTPUT_DEFAULT_DIR = path.resolve(process.env.UNI_CLI_CONTEXT, defaultOutputDir)
if (process.env.UNI_OUTPUT_DIR && process.env.UNI_OUTPUT_DIR.indexOf('./') === 0) {
process.env.UNI_OUTPUT_DIR = path.resolve(process.cwd(), process.env.UNI_OUTPUT_DIR)
@@ -158,7 +161,7 @@ function initUtsPlatform () {
if (process.env.UNI_APP_PLATFORM === 'ios') {
process.env.UNI_UTS_PLATFORM = 'app-ios'
}
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
process.env.UNI_UTS_PLATFORM = 'web'
} else {
if (!process.env.UNI_UTS_PLATFORM) {
@@ -276,6 +279,45 @@ if (process.env.UNI_PLATFORM === 'h5') {
process.env.VUE_APP_INDEX_DARK_CSS_HASH = ''
}
}
+if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ const optimization = platformOptions.optimization
+ if (optimization) {
+ // 发行模式且主动启用优化
+ const treeShaking = optimization.treeShaking
+ if (
+ treeShaking &&
+ treeShaking.enable &&
+ process.env.NODE_ENV === 'production'
+ ) {
+ process.env.UNI_OPT_TREESHAKINGNG = true
+ process.UNI_USER_APIS = new Set()
+ if (Array.isArray(treeShaking.modules) && treeShaking.modules.length) {
+ const {
+ parseUserApis
+ } = require('@dcloudio/uni-cli-shared/lib/api')
+ try {
+ const modules = require('@dcloudio/uni-mp-weibo/lib/modules.json')
+ process.UNI_USER_APIS = parseUserApis(treeShaking.modules || [], modules)
+ } catch (e) { }
+ }
+ }
+ if (optimization.prefetch) {
+ process.env.UNI_OPT_PREFETCH = true
+ }
+ if (optimization.preload) {
+ process.env.UNI_OPT_PRELOAD = true
+ }
+ }
+ const indexCssBuffer = fs.readFileSync(require.resolve('@dcloudio/uni-mp-weibo/dist/index.css'))
+ process.env.VUE_APP_INDEX_CSS_HASH = loaderUtils.getHashDigest(indexCssBuffer, 'md5', 'hex', 8)
+ let indexDarkCssBuffer = ''
+ try {
+ indexDarkCssBuffer = fs.readFileSync(require.resolve('@dcloudio/uni-mp-weibo/dist/index.dark.css'))
+ process.env.VUE_APP_INDEX_DARK_CSS_HASH = loaderUtils.getHashDigest(indexDarkCssBuffer, 'md5', 'hex', 8)
+ } catch (error) {
+ process.env.VUE_APP_INDEX_DARK_CSS_HASH = ''
+ }
+}
if (process.env.UNI_PLATFORM === 'mp-qq') { // QQ小程序 强制自定义组件模式
platformOptions.usingComponents = true
@@ -332,7 +374,7 @@ if (platformOptions.nvueStyleCompiler === 'uni-app') {
}
if (platformOptions.usingComponents === true) {
- if (process.env.UNI_PLATFORM !== 'h5') {
+ if (process.env.UNI_PLATFORM !== 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
process.env.UNI_USING_COMPONENTS = true
}
if (process.env.UNI_PLATFORM === 'app-plus') {
@@ -364,7 +406,7 @@ process.env.UNI_STAT_UNI_CLOUD = '""'
process.env.UNI_STAT_DEBUG = '""'
if (
process.env.UNI_USING_COMPONENTS ||
- process.env.UNI_PLATFORM === 'h5'
+ process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo'
) { // 自定义组件模式或 h5 平台
const uniStatistics = Object.assign(
manifestJsonObj.uniStatistics || {},
@@ -453,7 +495,7 @@ if (process.env.UNI_USING_NATIVE || process.env.UNI_USING_V3_NATIVE) {
0: compileMode,
1: compileModeUrl
}))
-} else if (process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'quickapp-native') {
+} else if (process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'quickapp-native' && process.env.UNI_PLATFORM !== 'mp-weibo') {
try {
const info = process.env.UNI_COMPILER_VERSION
if (process.env.UNI_PLATFORM === 'app-plus') {
@@ -512,7 +554,7 @@ if (process.env.UNI_USING_V3 && process.env.UNI_PLATFORM === 'app-plus') {
moduleAlias.addAlias('vue-style-loader', '@dcloudio/vue-cli-plugin-uni/packages/app-vue-style-loader')
}
-if (process.env.UNI_PLATFORM === 'h5') {
+if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
moduleAlias.addAlias('vue-style-loader', '@dcloudio/vue-cli-plugin-uni/packages/h5-vue-style-loader')
}
@@ -546,6 +588,7 @@ if (
!process.env.UNI_USING_V3 &&
!process.env.UNI_USING_NATIVE &&
!process.env.UNI_USING_V3_NATIVE
+ && process.env.UNI_PLATFORM !== 'mp-weibo'
) { // 使用 cache, 拷贝 cache 的 json
const cacheJsonDir = path.resolve(
process.env.UNI_CLI_CONTEXT,
@@ -578,7 +621,7 @@ if (
(
process.env.UNI_PLATFORM === 'app-plus' &&
process.env.UNI_USING_V3
- )
+ ) || process.env.UNI_PLATFORM === 'mp-weibo'
) {
const migrate = require('@dcloudio/uni-migration')
const wxcomponentDirs = [path.resolve(process.env.UNI_INPUT_DIR, 'wxcomponents')]
diff --git a/packages/vue-cli-plugin-uni/lib/mp-weibo/auto-reload.js b/packages/vue-cli-plugin-uni/lib/mp-weibo/auto-reload.js
new file mode 100644
index 00000000000..d44594e1af7
--- /dev/null
+++ b/packages/vue-cli-plugin-uni/lib/mp-weibo/auto-reload.js
@@ -0,0 +1,9 @@
+(function () {
+ var userAgent = navigator.userAgent
+ window.addEventListener('resize', function () {
+ if (navigator.userAgent !== userAgent) {
+ /* eslint-disable no-undef */
+ location.reload()
+ }
+ })
+})()
diff --git a/packages/vue-cli-plugin-uni/lib/mp-weibo/compiler-options.js b/packages/vue-cli-plugin-uni/lib/mp-weibo/compiler-options.js
new file mode 100644
index 00000000000..a17e123214b
--- /dev/null
+++ b/packages/vue-cli-plugin-uni/lib/mp-weibo/compiler-options.js
@@ -0,0 +1,119 @@
+const {
+ tags
+} = require('@dcloudio/uni-cli-shared')
+const parser = require('@babel/parser')
+const t = require('@babel/types')
+
+const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/
+
+function isFunction (expr) {
+ try {
+ const body = parser.parse(`(${expr})`).program.body[0]
+ const expression = body.expression
+ return t.isFunctionDeclaration(body) || t.isArrowFunctionExpression(expression) || t.isFunctionExpression(
+ expression)
+ } catch (error) {}
+}
+
+function processEvent (expr, filterModules) {
+ const isMethodPath = simplePathRE.test(expr)
+ if (isMethodPath || isFunction(expr)) {
+ if (filterModules.find(name => expr.indexOf(name + '.') === 0)) {
+ return `
+$event = $handleWxsEvent($event);
+(${expr})($event, $getComponentDescriptor())
+`
+ } else {
+ expr = `(${expr})(...arguments)`
+ }
+ }
+ return `
+arguments[0] = $event = $handleEvent($event);
+${expr}
+`
+}
+
+function hasOwn (obj, key) {
+ return hasOwnProperty.call(obj, key)
+}
+
+const deprecated = {
+ events: {
+ tap: 'click',
+ longtap: 'longpress'
+ }
+}
+
+function addTag (tag) {
+ if (!process.UNI_TAGS) {
+ process.UNI_TAGS = new Set()
+ }
+ process.UNI_TAGS.add(tag)
+}
+
+module.exports = {
+ h5: true,
+ modules: [require('../format-text'), {
+ preTransformNode (el, options) {
+ if (el.tag.indexOf('v-uni-') === 0) {
+ addTag(el.tag.replace('v-uni-', ''))
+ } else if (hasOwn(tags, el.tag)) {
+ addTag(el.tag)
+ el.tag = 'v-uni-' + el.tag
+ }
+ },
+ postTransformNode (el, {
+ warn,
+ filterModules
+ }) {
+ if (el.tag === 'block') {
+ el.tag = 'template'
+ const vForKey = el.key
+ if (vForKey) {
+ delete el.key
+ el.children.forEach((childEl, index) => {
+ const childVForKey = childEl.key
+ if (childVForKey) {
+ childEl.key = `${childVForKey}+'_'+${vForKey}+'_${index}'`
+ } else {
+ childEl.key = `${vForKey}+'_${index}'`
+ }
+ })
+ }
+ }
+ if (el.events || el.nativeEvents) {
+ filterModules = filterModules || []
+ const {
+ events: eventsMap
+ } = deprecated
+ // const warnLogs = new Set()
+ normalizeEvent(el.events, eventsMap, filterModules)
+ normalizeEvent(el.nativeEvents, eventsMap, filterModules)
+ }
+ }
+ }]
+}
+
+function normalizeEvent (events, eventsMap, filterModules) {
+ if (!events) {
+ return
+ }
+ Object.keys(events).forEach(name => {
+ // 过时事件类型转换
+ if (eventsMap[name]) {
+ events[eventsMap[name]] = events[name]
+ delete events[name]
+ // warnLogs.add(`警告:事件${name}已过时,推荐使用${eventsMap[name]}代替`)
+ name = eventsMap[name]
+ }
+
+ const handlers = events[name]
+ if (Array.isArray(handlers)) {
+ handlers.forEach(handler => {
+ handler.value = processEvent(handler.value, filterModules)
+ })
+ } else {
+ handlers.value = processEvent(handlers.value, filterModules)
+ }
+ })
+}
diff --git a/packages/vue-cli-plugin-uni/lib/mp-weibo/cssnano-options.js b/packages/vue-cli-plugin-uni/lib/mp-weibo/cssnano-options.js
new file mode 100644
index 00000000000..3324d8c8a6f
--- /dev/null
+++ b/packages/vue-cli-plugin-uni/lib/mp-weibo/cssnano-options.js
@@ -0,0 +1,61 @@
+const {
+ getPlatformCssnano
+} = require('@dcloudio/uni-cli-shared')
+const webpack = require('webpack')
+
+module.exports = function initCssnanoOptions (webpackConfig) {
+ const module = webpackConfig.module
+ // TODO 临时 hack calc:false 看看 vue cli 后续是否开放 cssnano 的配置
+ const cssnanoOptions = {
+ sourceMap: false
+ }
+
+ const plugins = [require('cssnano')({
+ preset: ['default', getPlatformCssnano()]
+ })]
+
+ // TODO postcss-loader version > 4
+ if (webpack.version[0] > 4) {
+ cssnanoOptions.postcssOptions = { plugins }
+ } else {
+ cssnanoOptions.plugins = plugins
+ }
+
+ module.rule('css').oneOf('vue-modules').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('css').oneOf('vue').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('css').oneOf('normal-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('css').oneOf('normal').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+
+ module.rule('postcss').oneOf('vue-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('postcss').oneOf('vue').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('postcss').oneOf('normal-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('postcss').oneOf('normal').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+
+ module.rule('scss').oneOf('vue-modules').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('scss').oneOf('vue').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('scss').oneOf('normal-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('scss').oneOf('normal').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+
+ module.rule('sass').oneOf('vue-modules').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('sass').oneOf('vue').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('sass').oneOf('normal-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('sass').oneOf('normal').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+
+ module.rule('less').oneOf('vue-modules').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('less').oneOf('vue').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('less').oneOf('normal-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('less').oneOf('normal').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+
+ module.rule('stylus').oneOf('vue-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('stylus').oneOf('vue').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+ module.rule('stylus').oneOf('normal-modules').use('cssnano').loader('postcss-loader').options(
+ cssnanoOptions)
+ module.rule('stylus').oneOf('normal').use('cssnano').loader('postcss-loader').options(cssnanoOptions)
+}
diff --git a/packages/vue-cli-plugin-uni/lib/mp-weibo/index.js b/packages/vue-cli-plugin-uni/lib/mp-weibo/index.js
new file mode 100644
index 00000000000..b6f5496346b
--- /dev/null
+++ b/packages/vue-cli-plugin-uni/lib/mp-weibo/index.js
@@ -0,0 +1,197 @@
+const fs = require('fs')
+const path = require('path')
+const webpack = require('webpack')
+
+const {
+ getMainEntry,
+ getH5Options,
+ getPlatformStat,
+ getPlatformPush,
+ getPlatformUniCloud
+} = require('@dcloudio/uni-cli-shared')
+
+const {
+ getGlobalUsingComponentsCode
+} = require('@dcloudio/uni-cli-shared/lib/pages')
+
+const modifyVueLoader = require('../vue-loader')
+
+const WebpackHtmlAppendPlugin = require('../../packages/webpack-html-append-plugin')
+
+const WebpackUniAppPlugin = require('../../packages/webpack-uni-app-loader/plugin/index')
+
+function resolve (dir) {
+ return path.resolve(__dirname, '../../', dir)
+}
+
+const {
+ title,
+ publicPath,
+ template,
+ devServer
+} = getH5Options()
+
+const runtimePath = '@dcloudio/uni-mp-weixin/dist/mp.js'
+const wxsPath = '@dcloudio/uni-mp-weixin/dist/wxs.js'
+const uniCloudPath = path.resolve(__dirname, '../../packages/uni-cloud/dist/index.js')
+
+function getProvides () {
+ return {
+ __f__: [path.resolve(__dirname, '../format-log.js'), 'log'],
+ uniCloud: [uniCloudPath, 'default'],
+ 'wx.nextTick': [runtimePath, 'nextTick'],
+ Page: [runtimePath, 'Page'],
+ Component: [runtimePath, 'Component'],
+ Behavior: [runtimePath, 'Behavior'],
+ getDate: [wxsPath, 'getDate'],
+ getRegExp: [wxsPath, 'getRegExp']
+ }
+}
+
+const plugins = [
+ new WebpackUniAppPlugin(),
+ new webpack.ProvidePlugin(getProvides())
+]
+
+if (process.env.NODE_ENV !== 'production') {
+ plugins.push(new WebpackHtmlAppendPlugin(
+ `
+
+ `
+ ))
+}
+
+const vueConfig = {
+ parallel: false, // 因为传入了自定义 compiler,避免参数丢失,禁用parallel
+ publicPath,
+ pages: {
+ index: {
+ // page 的入口
+ entry: path.resolve(process.env.UNI_INPUT_DIR, getMainEntry()),
+ // 模板来源
+ template,
+ // 在 dist/index.html 的输出
+ filename: 'index.html',
+ // 当使用 title 选项时,
+ // template 中的 title 标签需要是 <%= htmlWebpackPlugin.options.title %>
+ title,
+ // 在这个页面中包含的块,默认情况下会包含
+ // 提取出来的通用 chunk 和 vendor chunk。
+ chunks: ['chunk-vendors', 'chunk-common', 'index'],
+ baseUrl: publicPath
+ }
+ }
+}
+
+if (devServer && Object.keys(devServer).length) {
+ vueConfig.devServer = devServer
+}
+
+module.exports = {
+ vueConfig,
+ webpackConfig (webpackConfig) {
+ let useBuiltIns = 'usage'
+
+ const statCode = getPlatformStat()
+ const pushCode = getPlatformPush()
+ const uniCloudCode = getPlatformUniCloud()
+ // try {
+ // const babelConfig = require(path.resolve(process.env.UNI_CLI_CONTEXT, 'babel.config.js'))
+ // useBuiltIns = babelConfig.presets[0][1].useBuiltIns
+ // } catch (e) {}
+
+ const beforeCode = (useBuiltIns === 'entry' ? 'import \'@babel/polyfill\';' : '') +
+ `import 'uni-pages';import 'uni-${process.env.UNI_PLATFORM}';`
+
+ return {
+ resolve: {
+ extensions: ['.uts', '.nvue'],
+ alias: {
+ 'vue-router': resolve('packages/h5-vue-router'),
+ 'uni-mp-weibo': require.resolve('@dcloudio/uni-mp-weibo')
+ }
+ },
+ module: {
+ rules: [{
+ test: path.resolve(process.env.UNI_INPUT_DIR, getMainEntry()),
+ use: [{
+ loader: path.resolve(__dirname, '../../packages/wrap-loader'),
+ options: {
+ before: [
+ beforeCode + require('../util').getAutomatorCode() + statCode + pushCode + uniCloudCode +
+ getGlobalUsingComponentsCode()
+ ]
+ }
+ }]
+ }, {
+ test: /App\.vue$/,
+ use: {
+ loader: path.resolve(__dirname, '../../packages/wrap-loader'),
+ options: {
+ before: [' ']
+ }
+ }
+ }, { // 解析组件,css 等
+ resourceQuery: /vue&type=script/,
+ use: [{
+ loader: path.resolve(__dirname,
+ '../../packages/webpack-uni-app-loader/using-components')
+ }]
+ }, {
+ resourceQuery: /vue&type=template/,
+ use: [{
+ loader: resolve('packages/webpack-uni-app-loader/filter-modules-template.js')
+ }, {
+ loader: '@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta'
+ }]
+ }, {
+ resourceQuery: [/lang=wxs/, /blockType=wxs/],
+ use: [{
+ loader: resolve('packages/webpack-uni-filter-loader')
+ }]
+ }]
+ },
+ resolveLoader: {
+ alias: {
+ 'vue-style-loader': resolve('packages/h5-vue-style-loader')
+ }
+ },
+ plugins,
+ optimization: {
+ moduleIds: webpack.version[0] > 4 ? 'deterministic' : 'hashed'
+ },
+ devServer: webpack.version[0] > 4 ? {
+ watchFiles: {
+ options: require('../util').getWatchOptions()
+ }
+ } : {
+ watchOptions: require('../util').getWatchOptions()
+ }
+ }
+ },
+ chainWebpack (webpackConfig, vueOptions, api) {
+ webpackConfig.plugins.delete('copy')
+
+ if (!process.env.UNI_OPT_PREFETCH) {
+ webpackConfig.plugins.delete('prefetch-index')
+ }
+ if (!process.env.UNI_OPT_PRELOAD) {
+ webpackConfig.plugins.delete('preload-index')
+ }
+
+ const compilerOptions = require('./compiler-options')
+ if (publicPath === './') {
+ compilerOptions.publicPath = publicPath
+ }
+ modifyVueLoader(webpackConfig, {
+ isH5: true,
+ hotReload: true
+ }, compilerOptions, api)
+
+ if (process.env.NODE_ENV === 'production') {
+ require('./cssnano-options')(webpackConfig)
+ }
+ }
+}
diff --git a/packages/vue-cli-plugin-uni/lib/mp-weibo/templateDeal.js b/packages/vue-cli-plugin-uni/lib/mp-weibo/templateDeal.js
new file mode 100644
index 00000000000..fa20bb341c4
--- /dev/null
+++ b/packages/vue-cli-plugin-uni/lib/mp-weibo/templateDeal.js
@@ -0,0 +1,76 @@
+const fsExtra = require('fs-extra')
+const path = require('path')
+const parseJson = require('@dcloudio/uni-cli-shared/lib/json').parseJson
+
+module.exports = {
+ templateDeal: function (manifestPlatformOptions) {
+ // 处理模版文件
+ const weiboOutputDir = path.resolve(process.env.UNI_OUTPUT_DIR, '..', '..', '..')
+ const weiboTemplatePath = path.resolve('node_modules/@dcloudio/uni-mp-weibo/template')
+ // 删掉之前生成的文件夹
+ fsExtra.emptyDirSync(weiboOutputDir)
+ // 将模版文件夹复制到生成目录
+ fsExtra.copySync(weiboTemplatePath, weiboOutputDir)
+ // 根据用户manifest.json中的配置,修改小程序的appid
+ const appId = manifestPlatformOptions && manifestPlatformOptions.appid
+ if (appId) {
+ try {
+ const wboxConfigPath = path.join(weiboOutputDir, 'wbox.config.json')
+ const wboxConfigJson = fsExtra.readJSONSync(wboxConfigPath)
+ wboxConfigJson.appId = appId
+ fsExtra.writeJSONSync(wboxConfigPath, wboxConfigJson, {
+ spaces: 2
+ })
+ } catch (e) { }
+ }
+ // STAER: 解析 pages.json 中的内容,生成 page 页面及 app.json 文件。
+ const pagesJsonStr = fsExtra.readFileSync(path.join(process.env.UNI_INPUT_DIR, 'pages.json'), 'utf8')
+ // preJson 处理 page.json 中的条件编译
+ path.join(process.env.UNI_INPUT_DIR, 'pages.json')
+ const pagesJson = parseJson(pagesJsonStr)
+ let pageOptions = pagesJson.pages
+ if (pagesJson.subPackages && pagesJson.subPackages.length) {
+ pagesJson.subPackages.forEach((subPackage) => {
+ pageOptions = pageOptions.concat(
+ subPackage.pages.map((item) => ({
+ ...item,
+ path: `${subPackage.root}/${item.path}`
+ })))
+ })
+ }
+ // ==> STAER: 根据 pages.json 生成 app.json
+ const appPages = pageOptions.map((item) => item.path)
+ const appJsonPath = path.join(weiboOutputDir, 'src', 'app.json')
+ const appJson = fsExtra.readJSONSync(appJsonPath)
+ appJson.pages = appPages
+ if (pagesJson.globalStyle) {
+ appJson.window = Object.assign(appJson.window, pagesJson.globalStyle)
+ }
+ fsExtra.writeJSONSync(appJsonPath, appJson, {
+ spaces: 2
+ })
+ // ==> END: 根据 pages.json 生成 app.json
+
+ // ==> STAER: 根据 pages.json 生成 pages 目录
+ const templatePagePath = path.resolve(weiboTemplatePath, 'src/pages/index/index')
+ const pageFileSuffixs = ['.vue', '.css', '.json']
+ pageOptions.forEach((pageInfo) => {
+ const targetPagePath = path.resolve(weiboOutputDir, 'src', pageInfo.path)
+ pageFileSuffixs.forEach((suffix) => {
+ fsExtra.copySync(`${templatePagePath}${suffix}`, `${targetPagePath}${suffix}`)
+ // 覆写 page.json 配置文件
+ if (
+ suffix === '.json' && pageInfo.style && Object.keys(pageInfo.style).length > 0
+ ) {
+ let pageJson = fsExtra.readJSONSync(`${targetPagePath}${suffix}`, 'utf8')
+ pageJson = Object.assign(pageJson, pageInfo.style)
+ fsExtra.writeJSONSync(
+ `${targetPagePath}${suffix}`,
+ pageJson, {
+ spaces: 2
+ })
+ }
+ })
+ })
+ }
+}
diff --git a/packages/vue-cli-plugin-uni/lib/options.js b/packages/vue-cli-plugin-uni/lib/options.js
index 85a1ca7b794..3cb2dc65388 100644
--- a/packages/vue-cli-plugin-uni/lib/options.js
+++ b/packages/vue-cli-plugin-uni/lib/options.js
@@ -30,7 +30,7 @@ module.exports = function initOptions (options) {
options.transpileDependencies.push('@dcloudio/uni-mp-weixin')
}
- if (process.env.UNI_PLATFORM === 'h5') { // h5 dev 用到了这两个,需要 babel
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') { // h5 dev 用到了这两个,需要 babel
options.transpileDependencies.push('ansi-regex')
options.transpileDependencies.push('strip-ansi')
}
@@ -39,7 +39,7 @@ module.exports = function initOptions (options) {
options.css = {}
}
- if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_USING_V3) {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_USING_V3 || process.env.UNI_PLATFORM === 'mp-weibo') {
options.css.extract = false
} else {
options.css.extract = true
diff --git a/packages/vue-cli-plugin-uni/lib/vue-loader.js b/packages/vue-cli-plugin-uni/lib/vue-loader.js
index 750fff9ac30..dd3af4a39d5 100644
--- a/packages/vue-cli-plugin-uni/lib/vue-loader.js
+++ b/packages/vue-cli-plugin-uni/lib/vue-loader.js
@@ -31,7 +31,7 @@ module.exports = function modifyVueLoader (webpackConfig, loaderOptions, compile
webpackConfig.plugin('vue-loader').use(require(vueLoader.loader).VueLoaderPlugin)
// h5 框架需要使用 scoped 样式,其他平台编译时识别是否 nvue 文件且注入 flex 相关样式
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
webpackConfig.module
.rule('vue')
.use('uniapp-h5-style-scoped')
@@ -57,4 +57,4 @@ module.exports = function modifyVueLoader (webpackConfig, loaderOptions, compile
.uses
.delete('cache-loader')
}
-}
+}
diff --git a/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/stylePlugins/scoped.js b/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/stylePlugins/scoped.js
index da0f637487b..040ed2eac99 100644
--- a/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/stylePlugins/scoped.js
+++ b/packages/vue-cli-plugin-uni/packages/@vue/component-compiler-utils/dist/stylePlugins/scoped.js
@@ -64,7 +64,7 @@ const once = (options) => (root) => {
(
process.env.UNI_PLATFORM === 'app-plus' &&
process.env.UNI_USING_V3
- )
+ ) || process.env.UNI_PLATFORM === 'mp-weibo'
) {
selector.insertAfter(node, selectorParser.attribute({
attribute: id
diff --git a/packages/vue-cli-plugin-uni/packages/postcss/index.js b/packages/vue-cli-plugin-uni/packages/postcss/index.js
index 5bbe58d5302..89af475a069 100644
--- a/packages/vue-cli-plugin-uni/packages/postcss/index.js
+++ b/packages/vue-cli-plugin-uni/packages/postcss/index.js
@@ -33,7 +33,7 @@ if (process.env.UNI_USING_V3) {
if (u === 'px' && process.UNI_TRANSFORM_PX) { // TODO px 转换为 upx
u = 'upx'
}
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
if (u === 'upx' || u === 'rpx') {
node.value = `%?${num}?%`
}
@@ -167,7 +167,7 @@ if (process.env.UNI_USING_V3) {
}
rewriteUrl(root)
- if (process.env.UNI_PLATFORM === 'h5') {
+ if (process.env.UNI_PLATFORM === 'h5' || process.env.UNI_PLATFORM === 'mp-weibo') {
// Transform CSS AST here
root.walkRules(rule => {
diff --git a/packages/vue-cli-plugin-uni/packages/vue-template-compiler/browser.js b/packages/vue-cli-plugin-uni/packages/vue-template-compiler/browser.js
index 55f5fe25bbd..2d1b36a5c6f 100644
--- a/packages/vue-cli-plugin-uni/packages/vue-template-compiler/browser.js
+++ b/packages/vue-cli-plugin-uni/packages/vue-template-compiler/browser.js
@@ -3698,7 +3698,7 @@
return
}
- if(process.env.UNI_PLATFORM !== 'h5'){ // fixed by xxxxxx 非 h5 平台 type 不会是 checkbox,radio
+ if(process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'mp-weibo'){ // fixed by xxxxxx 非 h5 平台 type 不会是 checkbox,radio
return
}
@@ -3765,34 +3765,34 @@
preTransformNode: preTransformNode
};
- /* */
-
- function transformNode$2(el) {
- var list = el.attrsList;
- for (var i = list.length - 1; i >= 0; i--) {
- var name = list[i].name;
- if (name.indexOf(':change:') === 0 || name.indexOf('v-bind:change:') === 0) {
- var nameArr = name.split(':');
- var wxsProp = nameArr[nameArr.length - 1];
- var wxsPropBinding = el.attrsMap[':' + wxsProp] || el.attrsMap['v-bind:' + wxsProp];
- if (wxsPropBinding) {
- (el.wxsPropBindings || (el.wxsPropBindings = {}))['change:' + wxsProp] = wxsPropBinding;
- }
- }
- }
- }
-
- function genData$2(el) {
- var data = '';
- if (el.wxsPropBindings) {
- data += "wxsProps:" + (JSON.stringify(el.wxsPropBindings)) + ",";
- }
- return data
- }
-
- var wxs = {
- transformNode: transformNode$2,
- genData: genData$2
+ /* */
+
+ function transformNode$2(el) {
+ var list = el.attrsList;
+ for (var i = list.length - 1; i >= 0; i--) {
+ var name = list[i].name;
+ if (name.indexOf(':change:') === 0 || name.indexOf('v-bind:change:') === 0) {
+ var nameArr = name.split(':');
+ var wxsProp = nameArr[nameArr.length - 1];
+ var wxsPropBinding = el.attrsMap[':' + wxsProp] || el.attrsMap['v-bind:' + wxsProp];
+ if (wxsPropBinding) {
+ (el.wxsPropBindings || (el.wxsPropBindings = {}))['change:' + wxsProp] = wxsPropBinding;
+ }
+ }
+ }
+ }
+
+ function genData$2(el) {
+ var data = '';
+ if (el.wxsPropBindings) {
+ data += "wxsProps:" + (JSON.stringify(el.wxsPropBindings)) + ",";
+ }
+ return data
+ }
+
+ var wxs = {
+ transformNode: transformNode$2,
+ genData: genData$2
};
var modules = [
diff --git a/packages/vue-cli-plugin-uni/packages/vue-template-compiler/build.js b/packages/vue-cli-plugin-uni/packages/vue-template-compiler/build.js
index 877a463bfc8..11a26d95ae7 100644
--- a/packages/vue-cli-plugin-uni/packages/vue-template-compiler/build.js
+++ b/packages/vue-cli-plugin-uni/packages/vue-template-compiler/build.js
@@ -3320,7 +3320,7 @@ function preTransformNode (el, options) {
return
}
- if(process.env.UNI_PLATFORM !== 'h5'){ // fixed by xxxxxx 非 h5 平台 type 不会是 checkbox,radio
+ if(process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'mp-weibo'){ // fixed by xxxxxx 非 h5 平台 type 不会是 checkbox,radio
return
}
@@ -3387,34 +3387,34 @@ var model = {
preTransformNode: preTransformNode
};
-/* */
-
-function transformNode$2(el) {
- var list = el.attrsList;
- for (var i = list.length - 1; i >= 0; i--) {
- var name = list[i].name;
- if (name.indexOf(':change:') === 0 || name.indexOf('v-bind:change:') === 0) {
- var nameArr = name.split(':');
- var wxsProp = nameArr[nameArr.length - 1];
- var wxsPropBinding = el.attrsMap[':' + wxsProp] || el.attrsMap['v-bind:' + wxsProp];
- if (wxsPropBinding) {
- (el.wxsPropBindings || (el.wxsPropBindings = {}))['change:' + wxsProp] = wxsPropBinding;
- }
- }
- }
-}
-
-function genData$2(el) {
- var data = '';
- if (el.wxsPropBindings) {
- data += "wxsProps:" + (JSON.stringify(el.wxsPropBindings)) + ",";
- }
- return data
-}
-
-var wxs = {
- transformNode: transformNode$2,
- genData: genData$2
+/* */
+
+function transformNode$2(el) {
+ var list = el.attrsList;
+ for (var i = list.length - 1; i >= 0; i--) {
+ var name = list[i].name;
+ if (name.indexOf(':change:') === 0 || name.indexOf('v-bind:change:') === 0) {
+ var nameArr = name.split(':');
+ var wxsProp = nameArr[nameArr.length - 1];
+ var wxsPropBinding = el.attrsMap[':' + wxsProp] || el.attrsMap['v-bind:' + wxsProp];
+ if (wxsPropBinding) {
+ (el.wxsPropBindings || (el.wxsPropBindings = {}))['change:' + wxsProp] = wxsPropBinding;
+ }
+ }
+ }
+}
+
+function genData$2(el) {
+ var data = '';
+ if (el.wxsPropBindings) {
+ data += "wxsProps:" + (JSON.stringify(el.wxsPropBindings)) + ",";
+ }
+ return data
+}
+
+var wxs = {
+ transformNode: transformNode$2,
+ genData: genData$2
};
var modules = [
diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-filter-loader/index.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-filter-loader/index.js
index c4f918a101e..2bbf4ef3b39 100644
--- a/packages/vue-cli-plugin-uni/packages/webpack-uni-filter-loader/index.js
+++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-filter-loader/index.js
@@ -17,7 +17,7 @@ module.exports = function (source, map) {
(
process.env.UNI_PLATFORM === 'app-plus' &&
process.env.UNI_USING_V3
- )
+ ) || process.env.UNI_PLATFORM === 'mp-weibo'
) { // h5 or v3 app-plus
this.callback(
null,
@@ -66,4 +66,4 @@ module.exports = function (source, map) {
}`,
map)
}
-}
+}
diff --git a/packages/webpack-uni-pages-loader/lib/index-new.js b/packages/webpack-uni-pages-loader/lib/index-new.js
index 817cb459d19..7c9cbacb445 100644
--- a/packages/webpack-uni-pages-loader/lib/index-new.js
+++ b/packages/webpack-uni-pages-loader/lib/index-new.js
@@ -143,6 +143,17 @@ module.exports = function (content, map) {
map
)
}
+ if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ return this.callback(
+ null,
+ require('./platforms/mp-weibo')(
+ pagesJson,
+ manifestJson,
+ this
+ ),
+ map
+ )
+ }
if (process.env.UNI_PLATFORM === 'quickapp-native') {
return this.callback(
null,
diff --git a/packages/webpack-uni-pages-loader/lib/index.js b/packages/webpack-uni-pages-loader/lib/index.js
index 752c9a718b7..183b2174cbf 100644
--- a/packages/webpack-uni-pages-loader/lib/index.js
+++ b/packages/webpack-uni-pages-loader/lib/index.js
@@ -53,7 +53,8 @@ module.exports = function (content, map) {
if (
process.env.UNI_USING_COMPONENTS ||
process.env.UNI_PLATFORM === 'h5' ||
- process.env.UNI_PLATFORM === 'quickapp-native'
+ process.env.UNI_PLATFORM === 'quickapp-native' ||
+ process.env.UNI_PLATFORM === 'mp-weibo'
) {
return require('./index-new').call(this, content, map)
}
@@ -90,6 +91,9 @@ module.exports = function (content, map) {
if (process.env.UNI_PLATFORM === 'h5') {
return require('./platforms/h5')(pagesJson, manifestJson)
}
+ if (process.env.UNI_PLATFORM === 'mp-weibo') {
+ return require('./platforms/mp-weibo')(pagesJson, manifestJson)
+ }
const changedEmitFiles = []
diff --git a/packages/webpack-uni-pages-loader/lib/platforms/mp-weibo.js b/packages/webpack-uni-pages-loader/lib/platforms/mp-weibo.js
new file mode 100644
index 00000000000..2d8a18bab51
--- /dev/null
+++ b/packages/webpack-uni-pages-loader/lib/platforms/mp-weibo.js
@@ -0,0 +1,469 @@
+const fs = require('fs')
+const path = require('path')
+
+const {
+ hasOwn,
+ getPlatforms,
+ getH5Options,
+ getFlexDirection,
+ getNetworkTimeout,
+ normalizePath
+} = require('@dcloudio/uni-cli-shared')
+
+const {
+ addPageUsingComponents
+} = require('@dcloudio/uni-cli-shared/lib/pages')
+
+const {
+ getTheme
+} = require('@dcloudio/uni-cli-shared/lib/theme')
+
+const compilerVersion = require('@dcloudio/webpack-uni-pages-loader/package.json')['uni-app'].compilerVersion
+
+const PLATFORMS = getPlatforms()
+
+const removePlatformStyle = function (style) {
+ Object.keys(style).forEach(name => {
+ if (PLATFORMS.includes(name)) {
+ delete style[name]
+ }
+ })
+}
+
+const getPageComponents = function (inputDir, pagesJson) {
+ const firstPagePath = pagesJson.pages[0].path
+ const pages = pagesJson.pages
+
+ // 解析分包
+ if (pagesJson.subPackages && pagesJson.subPackages.length) {
+ pagesJson.subPackages.forEach(({
+ root,
+ pages: subPages
+ }) => {
+ if (root && subPages.length) {
+ subPages.forEach(subPage => {
+ subPage.path = normalizePath(path.join(root, subPage.path))
+ pages.push(subPage)
+ })
+ }
+ })
+ }
+
+ const tabBarList = (pagesJson.tabBar && pagesJson.tabBar.list) || []
+ tabBarList.forEach(item => { // 添加全部属性,方便 Vue 响应式
+ item.text = item.text || ''
+ item.iconPath = item.iconPath || ''
+ item.selectedIconPath = item.selectedIconPath || ''
+ item.redDot = false
+ item.badge = ''
+ })
+
+ if (tabBarList.length) { // 添加全部属性,方便 Vue 响应式
+ pagesJson.tabBar.color = pagesJson.tabBar.color || '#999'
+ pagesJson.tabBar.selectedColor = pagesJson.tabBar.selectedColor || '#007aff'
+ pagesJson.tabBar.backgroundColor = pagesJson.tabBar.backgroundColor || ''
+ pagesJson.tabBar.borderStyle = pagesJson.tabBar.borderStyle || 'black'
+ }
+
+ const globalStyle = Object.assign({}, pagesJson.globalStyle || {})
+
+ Object.assign(
+ globalStyle,
+ globalStyle['app-plus'] || {},
+ globalStyle.h5 || {}
+ )
+
+ if (process.env.UNI_SUB_PLATFORM) {
+ Object.assign(globalStyle, globalStyle[process.env.UNI_SUB_PLATFORM] || {})
+ }
+
+ process.UNI_H5_PAGES_JSON = {
+ pages: {},
+ globalStyle
+ }
+
+ removePlatformStyle(process.UNI_H5_PAGES_JSON.globalStyle)
+
+ return pages.map(page => {
+ const name = page.path.replace(/\//g, '-')
+ const pagePath = normalizePath(path.resolve(inputDir, page.path))
+ const props = page.style || {}
+ const isEntry = firstPagePath === page.path
+ const tabBarIndex = tabBarList.findIndex(tabBarPage => tabBarPage.pagePath === page.path)
+ const isTabBar = tabBarIndex !== -1
+
+ let isNVue = false
+ if (process.env.UNI_USING_NVUE_COMPILER) {
+ if (!fs.existsSync(pagePath + '.vue') && fs.existsSync(pagePath + '.nvue')) {
+ isNVue = true
+ }
+ }
+ // 解析 titleNView,pullToRefresh
+ const h5Options = Object.assign({}, props['app-plus'] || {}, props.h5 || {})
+
+ if (process.env.UNI_SUB_PLATFORM) {
+ Object.assign(h5Options, props[process.env.UNI_SUB_PLATFORM] || {})
+ Object.assign(props, props[process.env.UNI_SUB_PLATFORM] || {})
+ }
+
+ removePlatformStyle(h5Options)
+
+ if (hasOwn(h5Options, 'titleNView')) {
+ props.titleNView = h5Options.titleNView
+ }
+ if (hasOwn(h5Options, 'pullToRefresh')) {
+ props.pullToRefresh = h5Options.pullToRefresh
+ }
+
+ let windowTop = 44
+ const pageStyle = Object.assign({}, globalStyle, props)
+ const titleNViewTypeList = {
+ none: 'default',
+ auto: 'transparent',
+ always: 'float'
+ }
+ let titleNView = pageStyle.titleNView
+ titleNView = Object.assign(
+ {},
+ {
+ type: pageStyle.navigationStyle === 'custom' ? 'none' : 'default'
+ },
+ pageStyle.transparentTitle in titleNViewTypeList
+ ? {
+ type: titleNViewTypeList[pageStyle.transparentTitle],
+ backgroundColor: 'rgba(0,0,0,0)'
+ }
+ : null,
+ typeof titleNView === 'object'
+ ? titleNView
+ : (
+ typeof titleNView === 'boolean'
+ ? {
+ type: titleNView ? 'default' : 'none'
+ }
+ : null
+ )
+ )
+ if (titleNView.type === 'none' || titleNView.type === 'transparent') {
+ windowTop = 0
+ }
+
+ // 删除 app-plus 平台配置
+ delete props['app-plus']
+ delete props.h5
+
+ if (process.env.UNI_SUB_PLATFORM) {
+ delete props[process.env.UNI_SUB_PLATFORM]
+ }
+
+ process.UNI_H5_PAGES_JSON.pages[page.path] = props
+
+ // 缓存usingComponents
+ addPageUsingComponents(page.path, props.usingComponents)
+
+ return {
+ name,
+ route: page.path,
+ path: pagePath,
+ props,
+ isNVue,
+ isEntry,
+ isTabBar,
+ tabBarIndex,
+ isQuit: isEntry || isTabBar,
+ windowTop,
+ topWindow: pageStyle.topWindow,
+ leftWindow: pageStyle.leftWindow,
+ rightWindow: pageStyle.rightWindow,
+ maxWidth: pageStyle.maxWidth
+ }
+ }).filter(pageComponents => !!pageComponents)
+}
+
+const genRegisterPageVueComponentsCode = function (pageComponents) {
+ return pageComponents
+ .map(({
+ name,
+ path,
+ isNVue,
+ isQuit,
+ isEntry,
+ isTabBar
+ }) => {
+ const ext = isNVue ? '.nvue' : '.vue'
+
+ return `Vue.component('${name}', resolve=>{
+const component = {
+ component:require.ensure([], () => resolve(require(${JSON.stringify(path)}+'${ext}')), '${name}'),
+ delay:__uniConfig['async'].delay,
+ timeout: __uniConfig['async'].timeout
+}
+if(__uniConfig['async']['loading']){
+ component.loading={
+ name:'SystemAsyncLoading',
+ render(createElement){
+ return createElement(__uniConfig['async']['loading'])
+ }
+ }
+}
+if(__uniConfig['async']['error']){
+ component.error={
+ name:'SystemAsyncError',
+ render(createElement){
+ return createElement(__uniConfig['async']['error'])
+ }
+ }
+}
+return component
+})`
+ })
+ .join('\n')
+}
+
+const genPageRoutes = function (pageComponents) {
+ let id = 1
+ return pageComponents
+ .map(({
+ name,
+ route,
+ props,
+ isNVue,
+ isQuit,
+ isEntry,
+ isTabBar,
+ windowTop,
+ tabBarIndex,
+ topWindow,
+ leftWindow,
+ rightWindow,
+ maxWidth
+ }) => {
+ return `
+{
+path: '/${isEntry ? '' : route}',${isEntry ? '\nalias:\'/' + route + '\',' : ''}
+component: {
+ render (createElement) {
+ return createElement(
+ 'Page',
+ {
+ props: Object.assign({
+ ${isQuit ? 'isQuit:true,\n' : ''}${isEntry ? 'isEntry:true,\n' : ''}${isTabBar ? 'isTabBar:true,\n' : ''}
+ ${topWindow === false ? 'topWindow:false,\n' : ''}${leftWindow === false ? 'leftWindow:false,\n' : ''}${rightWindow === false ? 'rightWindow:false,\n' : ''}
+ ${isTabBar ? ('tabBarIndex:' + tabBarIndex) : ''}
+ },__uniConfig.globalStyle,${JSON.stringify(props)})
+ },
+ [
+ createElement('${name}', {
+ slot: 'page'
+ })
+ ]
+ )
+ }
+},
+meta:{${isQuit ? '\nid:' + (id++) + ',' : ''}
+ name:'${name}',
+ isNVue:${isNVue},maxWidth:${maxWidth || 0},${topWindow === false ? 'topWindow:false,\n' : ''}${leftWindow === false ? 'leftWindow:false,\n' : ''}${rightWindow === false ? 'rightWindow:false,\n' : ''}
+ pagePath:'${route}'${isQuit ? ',\nisQuit:true' : ''}${isEntry ? ',\nisEntry:true' : ''}${isTabBar ? ',\nisTabBar:true' : ''}${tabBarIndex !== -1 ? (',\ntabBarIndex:' + tabBarIndex) : ''},
+ windowTop:${windowTop}
+}
+}`
+ })
+}
+
+const genSystemRoutes = function () {
+ return [
+ `
+{
+path: '/choose-location',
+component: {
+ render (createElement) {
+ return createElement(
+ 'Page',
+ {
+ props:{
+ navigationStyle:'custom'
+ }
+ },
+ [
+ createElement('system-choose-location', {
+ slot: 'page'
+ })
+ ]
+ )
+ }
+},
+meta:{
+ name:'choose-location',
+ pagePath:'/choose-location'
+}
+}
+ `,
+ `
+{
+path: '/open-location',
+component: {
+ render (createElement) {
+ return createElement(
+ 'Page',
+ {
+ props:{
+ navigationStyle:'custom'
+ }
+ },
+ [
+ createElement('system-open-location', {
+ slot: 'page'
+ })
+ ]
+ )
+ }
+},
+meta:{
+ name:'open-location',
+ pagePath:'/open-location'
+}
+}
+ `
+ ]
+}
+
+function filterPages (pagesJson, includes) {
+ const pages = []
+ let subPackages = pagesJson.subPackages || []
+ if (!Array.isArray(subPackages)) {
+ subPackages = []
+ }
+ includes.forEach(includePagePath => {
+ let page = pagesJson.pages.find(page => page.path === includePagePath)
+ if (!page) {
+ for (let i = 0; i < subPackages.length; i++) {
+ const {
+ root,
+ pages: subPages
+ } = subPackages[i]
+ page = subPages.find(subPage => normalizePath(path.join(root, subPage.path)) === includePagePath)
+ if (page) {
+ break
+ }
+ }
+ }
+ if (!page) {
+ console.error(`${includePagePath} is not found`)
+ }
+ pages.push(page)
+ })
+ pagesJson.pages = pages
+}
+
+function genLayoutComponentsCode (pagesJson) {
+ const code = []
+ const {
+ topWindow,
+ leftWindow,
+ rightWindow
+ } = pagesJson
+ if (topWindow && topWindow.path) {
+ code.push(
+ `import TopWindow from './${topWindow.path}';
+${topWindow.style ? ('TopWindow.style=' + JSON.stringify(topWindow.style)) : ''}
+Vue.component('VUniTopWindow',TopWindow);`
+ )
+ }
+ if (leftWindow && leftWindow.path) {
+ code.push(
+ `import LeftWindow from './${leftWindow.path}';
+${leftWindow.style ? ('LeftWindow.style=' + JSON.stringify(leftWindow.style)) : ''}
+Vue.component('VUniLeftWindow',LeftWindow);`
+ )
+ }
+
+ if (rightWindow && rightWindow.path) {
+ code.push(
+ `
+import RightWindow from './${rightWindow.path}';
+${rightWindow.style ? ('RightWindow.style=' + JSON.stringify(rightWindow.style)) : ''}
+Vue.component('VUniRightWindow',RightWindow);`
+ )
+ }
+ return code.join('\n')
+}
+
+module.exports = function (pagesJson, manifestJson, loader) {
+ const inputDir = process.env.UNI_INPUT_DIR
+
+ global.uniPlugin.configurePages.forEach(configurePages => {
+ configurePages(pagesJson, manifestJson, loader)
+ })
+
+ if (loader.resourceQuery) {
+ const loaderUtils = require('loader-utils')
+ const params = loaderUtils.parseQuery(loader.resourceQuery)
+ if (params.pages) {
+ try {
+ const pages = JSON.parse(params.pages)
+ if (Array.isArray(pages)) {
+ filterPages(pagesJson, pages)
+ }
+ } catch (e) {}
+ }
+ }
+
+ const pageComponents = getPageComponents(inputDir, pagesJson)
+
+ pagesJson.globalStyle = process.UNI_H5_PAGES_JSON.globalStyle
+ delete pagesJson.pages
+ delete pagesJson.subPackages
+
+ const h5 = getH5Options(manifestJson)
+
+ const networkTimeoutConfig = getNetworkTimeout(manifestJson)
+
+ const sdkConfigs = h5.sdkConfigs || {}
+
+ const qqMapKey = sdkConfigs.maps && sdkConfigs.maps.qqmap && sdkConfigs.maps.qqmap.key
+ const googleMapKey = sdkConfigs.maps && sdkConfigs.maps.google && sdkConfigs.maps.google.key
+ const aMapKey = sdkConfigs.maps && sdkConfigs.maps.amap && sdkConfigs.maps.amap.key
+ const aMapSecurityJsCode =
+ sdkConfigs.maps && sdkConfigs.maps.amap && sdkConfigs.maps.amap.securityJsCode
+ const aMapServiceHost =
+ sdkConfigs.maps && sdkConfigs.maps.amap && sdkConfigs.maps.amap.serviceHost
+
+ let locale = manifestJson.locale
+ locale = locale && locale.toUpperCase() !== 'AUTO' ? locale : ''
+
+ return `
+import Vue from 'vue'
+${genLayoutComponentsCode(pagesJson)}
+const locales = ${fs.existsSync(path.resolve(process.env.UNI_INPUT_DIR, 'locale')) ? 'require.context(\'./locale\', false, /.json$/)' : '{keys(){return []}}'}
+global['____${h5.appid}____'] = true;
+delete global['____${h5.appid}____'];
+global.__uniConfig = ${JSON.stringify(pagesJson)};
+global.__uniConfig.compilerVersion = '${compilerVersion}';
+global.__uniConfig.darkmode = ${JSON.stringify(h5.darkmode || false)};
+global.__uniConfig.themeConfig = ${JSON.stringify(getTheme())};
+global.__uniConfig.uniPlatform = '${process.env.UNI_PLATFORM}';
+global.__uniConfig.appId = '${process.env.UNI_APP_ID}';
+global.__uniConfig.appName = '${process.env.UNI_APP_NAME}';
+global.__uniConfig.appVersion = '${process.env.UNI_APP_VERSION_NAME}';
+global.__uniConfig.appVersionCode = '${process.env.UNI_APP_VERSION_CODE}';
+global.__uniConfig.router = ${JSON.stringify(h5.router)};
+global.__uniConfig.publicPath = ${JSON.stringify(h5.publicPath)};
+global.__uniConfig['async'] = ${JSON.stringify(h5.async)};
+global.__uniConfig.debug = ${manifestJson.debug === true};
+global.__uniConfig.networkTimeout = ${JSON.stringify(networkTimeoutConfig)};
+global.__uniConfig.sdkConfigs = ${JSON.stringify(sdkConfigs)};
+global.__uniConfig.qqMapKey = ${JSON.stringify(qqMapKey)};
+global.__uniConfig.googleMapKey = ${JSON.stringify(googleMapKey)};
+global.__uniConfig.aMapKey = ${JSON.stringify(aMapKey)};
+global.__uniConfig.aMapSecurityJsCode = ${JSON.stringify(aMapSecurityJsCode)};
+global.__uniConfig.aMapServiceHost = ${JSON.stringify(aMapServiceHost)};
+global.__uniConfig.locale = ${JSON.stringify(locale)};
+global.__uniConfig.fallbackLocale = ${JSON.stringify(manifestJson.fallbackLocale)};
+global.__uniConfig.locales = locales.keys().reduce((res,key)=>{const locale=key.replace(/\\.\\/(uni-app.)?(.*).json/,'$2');const messages = locales(key);Object.assign(res[locale]||(res[locale]={}),messages.common||messages);return res},{});
+global.__uniConfig.nvue = ${JSON.stringify({ 'flex-direction': getFlexDirection(manifestJson['app-plus']) })}
+global.__uniConfig.__webpack_chunk_load__ = __webpack_chunk_load__
+${genRegisterPageVueComponentsCode(pageComponents)}
+global.__uniRoutes=[${genPageRoutes(pageComponents).concat(genSystemRoutes()).join(',')}]
+global.UniApp && new global.UniApp();
+`
+}
diff --git a/src/core/helpers/i18n/index.js b/src/core/helpers/i18n/index.js
index a6bcc8697d4..730af48240e 100644
--- a/src/core/helpers/i18n/index.js
+++ b/src/core/helpers/i18n/index.js
@@ -24,7 +24,7 @@ export const LOCALE_ES = 'es'
const messages = {}
-if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'app-plus') {
+if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'app-plus' || __PLATFORM__ === 'mp-weibo') {
Object.assign(messages, {
[LOCALE_EN]: en,
[LOCALE_ES]: es,
@@ -36,7 +36,7 @@ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'app-plus') {
let locale
-if (__PLATFORM__ === 'h5') {
+if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
locale = (navigator.cookieEnabled && window.localStorage && localStorage[UNI_STORAGE_LOCALE]) || __uniConfig.locale || navigator.language
} else if (__PLATFORM__ === 'app-plus') {
if (typeof weex === 'object') {
@@ -70,7 +70,7 @@ initI18nMessages()
export const i18n = initVueI18n(
locale,
- __PLATFORM__ === 'app-plus' || __PLATFORM__ === 'h5' ? messages : {}
+ __PLATFORM__ === 'app-plus' || __PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo' ? messages : {}
)
export const t = i18n.t
export const i18nMixin = (i18n.mixin = {
diff --git a/src/core/helpers/index.js b/src/core/helpers/index.js
index 7a98e8d7376..e6c138f92c9 100644
--- a/src/core/helpers/index.js
+++ b/src/core/helpers/index.js
@@ -21,7 +21,7 @@ export function normalizeDataset (dataset = {}) {
// ios8.x,9.x Object.assign({},dataset) 始终返回 {}
// http://ask.dcloud.net.cn/question/70246
const result = JSON.parse(JSON.stringify(dataset))
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
const keys = Object.keys(result)
const len = keys.length
if (len) {
diff --git a/src/core/helpers/promise.js b/src/core/helpers/promise.js
index e713cacd415..25eb633a653 100644
--- a/src/core/helpers/promise.js
+++ b/src/core/helpers/promise.js
@@ -73,6 +73,9 @@ export function promisify (name, api) {
return api
}
return function promiseApi (options = {}, ...params) {
+ if (window.weibo && window.weibo[name] && name === 'switchTab') {
+ window.weibo[name](options)
+ }
if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {
return wrapperReturnValue(name, invokeApi(name, api, options, ...params))
}
diff --git a/src/core/helpers/windows.js b/src/core/helpers/windows.js
index 15990ee48ca..52da33f56f3 100644
--- a/src/core/helpers/windows.js
+++ b/src/core/helpers/windows.js
@@ -1,7 +1,7 @@
const WINDOW_NAMES = ['VUniLeftWindow', 'VUniTopWindow', 'VUniRightWindow']
export function checkInWindows (vm) {
- if (__PLATFORM__ !== 'h5') {
+ if (__PLATFORM__ !== 'h5' && __PLATFORM__ !== 'mp-weibo') {
return false
}
while (vm) {
@@ -10,4 +10,4 @@ export function checkInWindows (vm) {
}
vm = vm.$parent
}
-}
+}
diff --git a/src/core/service/api/context/canvas.js b/src/core/service/api/context/canvas.js
index 88013779a8f..b6be26dc29b 100644
--- a/src/core/service/api/context/canvas.js
+++ b/src/core/service/api/context/canvas.js
@@ -330,7 +330,7 @@ export class CanvasContext {
measureText (text) {
const font = this.state.font
let width = 0
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
width = measureText(text, font)
} else {
const webview = plus.webview.all().find(webview => webview.getURL().endsWith('www/__uniappview.html'))
diff --git a/src/core/service/api/ui/locale.js b/src/core/service/api/ui/locale.js
index d2bbc181044..db2c2ace2de 100644
--- a/src/core/service/api/ui/locale.js
+++ b/src/core/service/api/ui/locale.js
@@ -34,7 +34,7 @@ export function setLocale (locale) {
})
weex.requireModule('plus').setLanguage(locale)
}
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
navigator.cookieEnabled && window.localStorage && (localStorage[UNI_STORAGE_LOCALE] = locale)
}
callbacks.forEach(callbackId => {
diff --git a/src/core/service/bridge/on.js b/src/core/service/bridge/on.js
index 7a13d615b70..73c00f71e33 100644
--- a/src/core/service/bridge/on.js
+++ b/src/core/service/bridge/on.js
@@ -80,7 +80,7 @@ export default function initOn (on, {
on('onError', onError)
on('onPageNotFound', onPageNotFound)
- if (__PLATFORM__ !== 'h5') { // 后续有时间,h5 平台也要迁移到 onAppRoute
+ if (__PLATFORM__ !== 'h5' || __PLATFORM__ === 'mp-weibo') { // 后续有时间,h5 平台也要迁移到 onAppRoute
on('onAppRoute', onAppRoute)
}
diff --git a/src/core/service/bridge/subscribe.js b/src/core/service/bridge/subscribe.js
index 27f11c9f1f8..f49b4c65bc4 100644
--- a/src/core/service/bridge/subscribe.js
+++ b/src/core/service/bridge/subscribe.js
@@ -67,7 +67,7 @@ export default function initSubscribe (subscribe, {
}
}
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
subscribe('onPageReady', createPageEvent('onReady'))
}
diff --git a/src/core/service/plugins/app/router-guard.js b/src/core/service/plugins/app/router-guard.js
index 65479570d88..1f3ba6346e5 100644
--- a/src/core/service/plugins/app/router-guard.js
+++ b/src/core/service/plugins/app/router-guard.js
@@ -143,7 +143,7 @@ function beforeEach (to, from, next, routes) {
console.debug(`Core:keepAliveInclude=${JSON.stringify(this.keepAliveInclude)}`)
}
/* eslint-disable no-undef */
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
if (to.meta && to.meta.name) {
document.body.className = 'uni-body ' + to.meta.name
const nvueDirKey = 'nvue-dir-' + __uniConfig.nvue['flex-direction']
@@ -225,12 +225,12 @@ function afterEach (to, from) {
if (toVm) { // 目标页面若已存在,则触发 onShow
// 延迟执行 onShow,防止与 UniServiceJSBridge.emit('onHidePopup') 冲突。
setTimeout(function () {
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
UniServiceJSBridge.emit('onNavigationBarChange', toVm.$parent.$parent.navigationBar)
}
callPageHook(toVm, 'onShow')
}, 0)
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
document.title = toVm.$parent.$parent.navigationBar.titleText
}
}
diff --git a/src/core/service/plugins/index.js b/src/core/service/plugins/index.js
index 2e21f7b5614..f254639d70b 100644
--- a/src/core/service/plugins/index.js
+++ b/src/core/service/plugins/index.js
@@ -72,7 +72,7 @@ export default {
routes
} = {}) {
if (
- __PLATFORM__ === 'h5' &&
+ (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') &&
Vue.config.devtools &&
typeof window !== 'undefined' &&
window.navigator.userAgent.toLowerCase().indexOf('hbuilderx') !== -1
@@ -134,7 +134,7 @@ export default {
}
/* eslint-disable no-undef */
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
if (entryRoute.meta && entryRoute.meta.name) {
document.body.className = 'uni-body ' + entryRoute.meta.name
if (entryRoute.meta.isNVue) {
diff --git a/src/core/service/plugins/page/index.js b/src/core/service/plugins/page/index.js
index 482419d9b5f..15f648353f1 100644
--- a/src/core/service/plugins/page/index.js
+++ b/src/core/service/plugins/page/index.js
@@ -11,10 +11,30 @@ import createPage from './create-page'
export function createPageMixin () {
return {
created: function pageCreated () {
- const options = decodedQuery(this.$route.query)
- createPage(this, options)
- callPageHook(this, 'onLoad', options)
- callPageHook(this, 'onShow')
+ try {
+ const options = decodedQuery(this.$route.query)
+ createPage(this, options)
+ callPageHook(this, 'onLoad', options)
+ callPageHook(this, 'onShow')
+ } catch (e) {
+ console.error(e)
+ }
+ if (__PLATFORM__ === 'mp-weibo') {
+ var onShareAppMessage = this.$options.onShareAppMessage
+ if (onShareAppMessage && typeof onShareAppMessage === 'function') {
+ uni.sendShareMessage({
+ data: onShareAppMessage.call(this)
+ })
+ } else if (Array.isArray(onShareAppMessage) && onShareAppMessage.length && typeof onShareAppMessage[0] === 'function') {
+ uni.sendShareMessage({
+ data: onShareAppMessage[0].call(this)
+ })
+ } else {
+ uni.sendShareMessage({
+ data: null
+ })
+ }
+ }
}
}
-}
+}
diff --git a/src/core/service/plugins/util.js b/src/core/service/plugins/util.js
index 84eecf31fc2..7c648139c02 100644
--- a/src/core/service/plugins/util.js
+++ b/src/core/service/plugins/util.js
@@ -12,7 +12,7 @@ export function callAppHook (vm, hook, params) {
}
export function callPageHook (vm, hook, params) {
// hack 一下,H5 平台通知 View 层onShow,方便 View 层来切换 scroll 事件监听
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
if (hook === 'onLoad') {
vm.$mp.query = params
UniServiceJSBridge.publishHandler('onPageLoad', vm, vm.$page.id)
diff --git a/src/core/view/bridge/subscribe/scroll.js b/src/core/view/bridge/subscribe/scroll.js
index c1f86c8c228..4be7723ad0a 100644
--- a/src/core/view/bridge/subscribe/scroll.js
+++ b/src/core/view/bridge/subscribe/scroll.js
@@ -16,7 +16,7 @@ export function pageScrollTo ({
if (el) {
const { top, height } = el.getBoundingClientRect()
scrollTop = top + window.pageYOffset
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
scrollTop -= height
}
}
diff --git a/src/core/view/components/button/index.vue b/src/core/view/components/button/index.vue
index e6c84475266..22da0ed5eea 100644
--- a/src/core/view/components/button/index.vue
+++ b/src/core/view/components/button/index.vue
@@ -96,6 +96,9 @@ export default {
)
feedback.show('slide-in-right')
}
+ if (__PLATFORM__ === 'mp-weibo' && this.openType === 'share') {
+ window.uni.share()
+ }
},
_bindObjectListeners (data, value) {
if (value) {
diff --git a/src/core/view/components/editor/index.vue b/src/core/view/components/editor/index.vue
index 0b6fd4eb682..ce1bdb9380f 100644
--- a/src/core/view/components/editor/index.vue
+++ b/src/core/view/components/editor/index.vue
@@ -19,7 +19,7 @@ import loadScript from './load-script'
function isiOS () {
if (__PLATFORM__ === 'app-plus') {
return plus.os.name.toLowerCase() === 'ios'
- } else if (__PLATFORM__ === 'h5') {
+ } else if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
const ua = navigator.userAgent
const isIOS = /iphone|ipad|ipod/i.test(ua)
const isMac = /Macintosh|Mac/i.test(ua)
diff --git a/src/core/view/components/swiper/index.vue b/src/core/view/components/swiper/index.vue
index 4f6d08a5136..259b024ee0b 100644
--- a/src/core/view/components/swiper/index.vue
+++ b/src/core/view/components/swiper/index.vue
@@ -696,7 +696,7 @@ export default {
this.hideNavigation = true
},
_navigationSwiperAddMouseEvent () {
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
const rootRef = this.$refs.slidesWrapper
if (rootRef) {
rootRef.removeEventListener('mousemove', this._navigationMouseMove)
@@ -770,7 +770,7 @@ export default {
}, slidesDots))
}
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
if (this.navigation) {
const navigationClass = {
'uni-swiper-navigation-hide': this.hideNavigation,
diff --git a/src/core/view/mixins/base.js b/src/core/view/mixins/base.js
index 169aacfcde2..1ce02871407 100644
--- a/src/core/view/mixins/base.js
+++ b/src/core/view/mixins/base.js
@@ -6,6 +6,9 @@ import {
export default {
methods: {
$getRealPath (src) {
+ if (__PLATFORM__ === 'mp-weibo' && src.startsWith('Temp')) {
+ return `../../${src}`
+ }
return src ? getRealPath(src) : src
},
$trigger (name, $event, detail) {
diff --git a/src/core/view/mixins/field.js b/src/core/view/mixins/field.js
index 8e6aa8796e0..7569e952a4e 100644
--- a/src/core/view/mixins/field.js
+++ b/src/core/view/mixins/field.js
@@ -173,7 +173,7 @@ export default {
setTimeout(this._focus.bind(this), 100)
return
}
- if (__PLATFORM__ === 'h5') {
+ if (__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') {
field.focus()
} else {
const timeout = FOCUS_DELAY - (Date.now() - startTime)
diff --git a/src/core/view/plugins/index.js b/src/core/view/plugins/index.js
index d90c27b543b..b842f20ee94 100644
--- a/src/core/view/plugins/index.js
+++ b/src/core/view/plugins/index.js
@@ -93,7 +93,7 @@ export default {
initBehaviors(options, this)
}
- if (__PLATFORM__ === 'h5' && isPage(this)) {
+ if ((__PLATFORM__ === 'h5' || __PLATFORM__ === 'mp-weibo') && isPage(this)) {
options.mounted = options.mounted ? [].concat(pageMounted, options.mounted) : [pageMounted]
}
}
diff --git a/src/platforms/mp-weibo/canIUse.json b/src/platforms/mp-weibo/canIUse.json
new file mode 100644
index 00000000000..da4e23df12d
--- /dev/null
+++ b/src/platforms/mp-weibo/canIUse.json
@@ -0,0 +1,3 @@
+{
+ "navigateTo": []
+}
diff --git a/src/platforms/mp-weibo/components/app/components.js b/src/platforms/mp-weibo/components/app/components.js
new file mode 100644
index 00000000000..fa2adbfa43d
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/components.js
@@ -0,0 +1,9 @@
+import TabBar from './tabBar'
+import Layout from './layout'
+import Components from 'uni-h5-app-components'
+
+export default {
+ TabBar,
+ Layout,
+ ...Components
+}
diff --git a/src/platforms/mp-weibo/components/app/customTabBar.vue b/src/platforms/mp-weibo/components/app/customTabBar.vue
new file mode 100644
index 00000000000..ad595189860
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/customTabBar.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+ {{ item.badge }}
+
+
+
+ {{ item.text }}
+
+ {{ item.badge }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/index.vue b/src/platforms/mp-weibo/components/app/index.vue
new file mode 100644
index 00000000000..11637c0a2ab
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/index.vue
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/layout.vue b/src/platforms/mp-weibo/components/app/layout.vue
new file mode 100644
index 00000000000..69d47750c25
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/layout.vue
@@ -0,0 +1,457 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/observable.js b/src/platforms/mp-weibo/components/app/observable.js
new file mode 100644
index 00000000000..f67a871111e
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/observable.js
@@ -0,0 +1,24 @@
+import Vue from 'vue'
+import { initTabBarI18n } from 'uni-helpers/i18n'
+import { onThemeChange, parseTheme } from '../theme'
+
+const originalTabBar = __uniConfig.tabBar || {}
+
+__uniConfig.tabBar = Vue.observable(parseTheme(initTabBarI18n(originalTabBar)))
+
+onThemeChange(() => {
+ const tabBarStyle = parseTheme(initTabBarI18n(originalTabBar))
+ __uniConfig.tabBar.backgroundColor = tabBarStyle.backgroundColor
+ __uniConfig.tabBar.borderStyle = tabBarStyle.borderStyle
+ __uniConfig.tabBar.color = tabBarStyle.color
+ __uniConfig.tabBar.selectedColor = tabBarStyle.selectedColor
+ __uniConfig.tabBar.blurEffect = tabBarStyle.blurEffect
+ if (tabBarStyle.list && tabBarStyle.list.length && __uniConfig.tabBar.list.length) {
+ tabBarStyle.list.forEach((item, index) => {
+ __uniConfig.tabBar.list[index].iconPath = item.iconPath
+ __uniConfig.tabBar.list[index].selectedIconPath = item.selectedIconPath
+ })
+ }
+})
+
+export const tabBar = __uniConfig.tabBar
diff --git a/src/platforms/mp-weibo/components/app/popup/actionSheet.vue b/src/platforms/mp-weibo/components/app/popup/actionSheet.vue
new file mode 100644
index 00000000000..682b9f1b871
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/actionSheet.vue
@@ -0,0 +1,389 @@
+
+
+
+
+
+
+
+
+
+ {{ $$t('uni.showActionSheet.cancel') }}
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/popup/index.js b/src/platforms/mp-weibo/components/app/popup/index.js
new file mode 100644
index 00000000000..6fb5e673513
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/index.js
@@ -0,0 +1,11 @@
+import Toast from './toast'
+import Modal from './modal'
+import ActionSheet from './actionSheet'
+import PreviewImage from './preview-image'
+
+export default {
+ Toast,
+ Modal,
+ ActionSheet,
+ PreviewImage
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/action-sheet.js b/src/platforms/mp-weibo/components/app/popup/mixins/action-sheet.js
new file mode 100644
index 00000000000..5ab21082f1b
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/action-sheet.js
@@ -0,0 +1,29 @@
+import {
+ isFn
+} from 'uni-shared'
+
+export default {
+ data () {
+ return {
+ showActionSheet: {
+ visible: false
+ }
+ }
+ },
+ created () {
+ UniServiceJSBridge.on('onShowActionSheet', (args, callback) => {
+ this.showActionSheet = args
+ this.onActionSheetCloseCallback = callback
+ })
+ UniServiceJSBridge.on('onHidePopup', args => {
+ this.showActionSheet.visible = false
+ })
+ },
+ methods: {
+ // 处理 actionSheet close 回调
+ _onActionSheetClose (type) {
+ this.showActionSheet.visible = false
+ isFn(this.onActionSheetCloseCallback) && this.onActionSheetCloseCallback(type)
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/index.js b/src/platforms/mp-weibo/components/app/popup/mixins/index.js
new file mode 100644
index 00000000000..0eefeb08b47
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/index.js
@@ -0,0 +1,8 @@
+const mixins = []
+const context = require.context('./', false, /\.js$/)
+context.keys().forEach(function (key) {
+ if (key !== './index.js') {
+ mixins.push(context(key).default)
+ }
+})
+export default mixins
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/modal.js b/src/platforms/mp-weibo/components/app/popup/mixins/modal.js
new file mode 100644
index 00000000000..18fa3dbbdd0
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/modal.js
@@ -0,0 +1,29 @@
+import {
+ isFn
+} from 'uni-shared'
+
+export default {
+ data () {
+ return {
+ showModal: {
+ visible: false
+ }
+ }
+ },
+ created () {
+ UniServiceJSBridge.on('onShowModal', (args, callback) => {
+ this.showModal = args
+ this.onModalCloseCallback = callback
+ })
+ UniServiceJSBridge.on('onHidePopup', args => {
+ this.showModal.visible = false
+ })
+ },
+ methods: {
+ // 处理 modal close 回调
+ _onModalClose (res) {
+ this.showModal.visible = false
+ isFn(this.onModalCloseCallback) && this.onModalCloseCallback(res)
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/popup.js b/src/platforms/mp-weibo/components/app/popup/mixins/popup.js
new file mode 100644
index 00000000000..70bf6077231
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/popup.js
@@ -0,0 +1,72 @@
+export default {
+ data () {
+ return {
+ popupWidth: 0,
+ popupHeight: 0
+ }
+ },
+ computed: {
+ isDesktop () {
+ return this.popupWidth >= 500 && this.popupHeight >= 500
+ },
+ popupStyle () {
+ const style = {}
+ const contentStyle = style.content = {}
+ const triangleStyle = style.triangle = {}
+ const popover = this.popover
+ function getNumber (value) {
+ return Number(value) || 0
+ }
+ if (this.isDesktop && popover) {
+ Object.assign(triangleStyle, {
+ position: 'absolute',
+ width: '0',
+ height: '0',
+ 'margin-left': '-6px',
+ 'border-style': 'solid'
+ })
+ const popoverLeft = getNumber(popover.left)
+ const popoverWidth = getNumber(popover.width)
+ const popoverTop = getNumber(popover.top)
+ const popoverHeight = getNumber(popover.height)
+ const center = popoverLeft + popoverWidth / 2
+ contentStyle.transform = 'none !important'
+ const contentLeft = Math.max(0, center - 300 / 2)
+ contentStyle.left = `${contentLeft}px`
+ let triangleLeft = Math.max(12, center - contentLeft)
+ triangleLeft = Math.min(300 - 12, triangleLeft)
+ triangleStyle.left = `${triangleLeft}px`
+ const vcl = this.popupHeight / 2
+ if (popoverTop + popoverHeight - vcl > vcl - popoverTop) {
+ contentStyle.top = 'auto'
+ contentStyle.bottom = `${this.popupHeight - popoverTop + 6}px`
+ triangleStyle.bottom = '-6px'
+ triangleStyle['border-width'] = '6px 6px 0 6px'
+ triangleStyle['border-color'] = '#fcfcfd transparent transparent transparent'
+ } else {
+ contentStyle.top = `${popoverTop + popoverHeight + 6}px`
+ triangleStyle.top = '-6px'
+ triangleStyle['border-width'] = '0 6px 6px 6px'
+ triangleStyle['border-color'] = 'transparent transparent #fcfcfd transparent'
+ }
+ }
+ return style
+ }
+ },
+ mounted () {
+ const fixSize = () => {
+ const {
+ windowWidth,
+ windowHeight,
+ windowTop
+ } = uni.getSystemInfoSync()
+ this.popupWidth = windowWidth
+ this.popupHeight = windowHeight + windowTop
+ }
+ window.addEventListener('resize', fixSize)
+ fixSize()
+ this.$once('hook:beforeDestroy', () => {
+ window.removeEventListener('resize', fixSize)
+ })
+ }
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/preview-image.js b/src/platforms/mp-weibo/components/app/popup/mixins/preview-image.js
new file mode 100644
index 00000000000..a63b8982b51
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/preview-image.js
@@ -0,0 +1,32 @@
+import {
+ isFn
+} from 'uni-shared'
+
+export default {
+ data () {
+ return {
+ previewImage: {
+ visible: false
+ }
+ }
+ },
+ created () {
+ UniServiceJSBridge.on('onShowPreviewImage', (args, callback) => {
+ this.previewImage = Object.assign({}, args, { visible: true })
+ isFn(callback) && this.$nextTick(callback)
+ })
+ UniServiceJSBridge.on('onClosePreviewImage', (callback) => {
+ this._onPreviewClose()
+ isFn(callback) && this.$nextTick(callback)
+ })
+ UniServiceJSBridge.on('onHidePopup', _ => {
+ this.previewImage.visible = false
+ })
+ },
+ methods: {
+ // 处理 preview-image close 回调
+ _onPreviewClose (res) {
+ this.previewImage.visible = false
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/toast.js b/src/platforms/mp-weibo/components/app/popup/mixins/toast.js
new file mode 100644
index 00000000000..40d7afdb173
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/toast.js
@@ -0,0 +1,52 @@
+import {
+ t
+} from 'uni-core/helpers/i18n'
+export default {
+ data () {
+ return {
+ showToast: {
+ visible: false
+ }
+ }
+ },
+ created () {
+ let showType = ''
+
+ const createOnShow = (type) => {
+ return (args) => {
+ showType = type
+ setTimeout(() => { // 延迟一下 show 可解决窗口打开前调用 showToast 在 onHidePopup 之后触发
+ this.showToast = args
+ }, 10)
+ }
+ }
+
+ UniServiceJSBridge.on('onShowToast', createOnShow('onShowToast'))
+ UniServiceJSBridge.on('onShowLoading', createOnShow('onShowLoading'))
+
+ const createOnHide = (type) => {
+ return () => {
+ if (!showType) {
+ return
+ }
+ let warnMsg = ''
+ if (type === 'onHideToast' && showType !== 'onShowToast') {
+ warnMsg = t('uni.showToast.unpaired')
+ } else if (type === 'onHideLoading' && showType !== 'onShowLoading') {
+ warnMsg = t('uni.showLoading.unpaired')
+ }
+ if (warnMsg) {
+ return console.warn(warnMsg)
+ }
+ showType = ''
+ setTimeout(() => { // 与 show 对应延迟10ms,避免快速调用 show,hide 导致无法关闭
+ this.showToast.visible = false
+ }, 10)
+ }
+ }
+
+ UniServiceJSBridge.on('onHidePopup', createOnHide('onHidePopup'))
+ UniServiceJSBridge.on('onHideToast', createOnHide('onHideToast'))
+ UniServiceJSBridge.on('onHideLoading', createOnHide('onHideLoading'))
+ }
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/mixins/transition.js b/src/platforms/mp-weibo/components/app/popup/mixins/transition.js
new file mode 100644
index 00000000000..325178bf9b6
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/mixins/transition.js
@@ -0,0 +1,6 @@
+export default {
+ methods: {
+ beforeTransition () {},
+ afterTransition () {}
+ }
+}
diff --git a/src/platforms/mp-weibo/components/app/popup/modal.vue b/src/platforms/mp-weibo/components/app/popup/modal.vue
new file mode 100644
index 00000000000..e77307a3647
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/modal.vue
@@ -0,0 +1,310 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ cancelText }}
+
+
+ {{ confirmText }}
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/popup/preview-image/image-view.vue b/src/platforms/mp-weibo/components/app/popup/preview-image/image-view.vue
new file mode 100644
index 00000000000..e1952dc64aa
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/preview-image/image-view.vue
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/popup/preview-image/index.vue b/src/platforms/mp-weibo/components/app/popup/preview-image/index.vue
new file mode 100644
index 00000000000..4af6a54aa0c
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/preview-image/index.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/popup/toast.vue b/src/platforms/mp-weibo/components/app/popup/toast.vue
new file mode 100644
index 00000000000..21ae1061e6b
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/popup/toast.vue
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/app/tabBar.vue b/src/platforms/mp-weibo/components/app/tabBar.vue
new file mode 100644
index 00000000000..26c0e16a8fc
--- /dev/null
+++ b/src/platforms/mp-weibo/components/app/tabBar.vue
@@ -0,0 +1,451 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selectedIndex === index ? item.iconfont.selectedText : item.iconfont.text }}
+
+
+
+
+ {{ item.text }}
+
+
+ {{ item.badge }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/async-error/index.vue b/src/platforms/mp-weibo/components/async-error/index.vue
new file mode 100644
index 00000000000..0df294ec5d6
--- /dev/null
+++ b/src/platforms/mp-weibo/components/async-error/index.vue
@@ -0,0 +1,36 @@
+
+
+ {{ $$t("uni.async.error") }}
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/async-loading/index.vue b/src/platforms/mp-weibo/components/async-loading/index.vue
new file mode 100644
index 00000000000..36f2f9535ed
--- /dev/null
+++ b/src/platforms/mp-weibo/components/async-loading/index.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/index.js b/src/platforms/mp-weibo/components/index.js
new file mode 100644
index 00000000000..59e8677adfb
--- /dev/null
+++ b/src/platforms/mp-weibo/components/index.js
@@ -0,0 +1,20 @@
+import Vue from 'vue'
+
+import App from './app'
+import Page from './page'
+import AsyncError from './async-error'
+import AsyncLoading from './async-loading'
+import CustomTabBar from './app/customTabBar'
+
+import SystemRouteComponents from 'uni-h5-system-routes'
+
+Vue.component(App.name, App)
+Vue.component(Page.name, Page)
+Vue.component(AsyncError.name, AsyncError)
+Vue.component(AsyncLoading.name, AsyncLoading)
+Vue.component(CustomTabBar.name, CustomTabBar)
+
+Object.keys(SystemRouteComponents).forEach(name => {
+ const Component = SystemRouteComponents[name]
+ Vue.component(Component.name, Component)
+})
diff --git a/src/platforms/mp-weibo/components/page/index.vue b/src/platforms/mp-weibo/components/page/index.vue
new file mode 100644
index 00000000000..c8de271034f
--- /dev/null
+++ b/src/platforms/mp-weibo/components/page/index.vue
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/page/pageBody.vue b/src/platforms/mp-weibo/components/page/pageBody.vue
new file mode 100644
index 00000000000..4d06d71cf39
--- /dev/null
+++ b/src/platforms/mp-weibo/components/page/pageBody.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/page/pageHead.vue b/src/platforms/mp-weibo/components/page/pageHead.vue
new file mode 100644
index 00000000000..b40fe3fc95b
--- /dev/null
+++ b/src/platforms/mp-weibo/components/page/pageHead.vue
@@ -0,0 +1,593 @@
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/page/pageRefresh.vue b/src/platforms/mp-weibo/components/page/pageRefresh.vue
new file mode 100644
index 00000000000..ac7c4f22e9d
--- /dev/null
+++ b/src/platforms/mp-weibo/components/page/pageRefresh.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/page/pull-to-refresh.js b/src/platforms/mp-weibo/components/page/pull-to-refresh.js
new file mode 100644
index 00000000000..3c4570d70df
--- /dev/null
+++ b/src/platforms/mp-weibo/components/page/pull-to-refresh.js
@@ -0,0 +1,230 @@
+function processDeltaY (evt, identifier, startY) {
+ const touch = Array.prototype.slice.call(evt.changedTouches).filter(touch => touch.identifier === identifier)[0]
+ if (!touch) {
+ return false
+ }
+ evt.deltaY = touch.pageY - startY
+ return true
+}
+
+// const ratio = 2.2
+
+const PULLING = 'pulling'
+const REACHED = 'reached'
+
+const ABORTING = 'aborting'
+const REFRESHING = 'refreshing'
+const RESTORING = 'restoring'
+
+export default {
+ mounted () {
+ if (this.enablePullDownRefresh) {
+ this.refreshContainerElem = this.$refs.refresh.$el
+ this.refreshControllerElem = this.refreshContainerElem.querySelector('.uni-page-refresh')
+ this.refreshInnerElemStyle = this.refreshControllerElem.querySelector('.uni-page-refresh-inner').style
+
+ UniServiceJSBridge.on(this.$route.params.__id__ + '.startPullDownRefresh', () => {
+ if (!this.state) {
+ this.state = REFRESHING
+ this._addClass()
+ setTimeout(() => {
+ this._refreshing()
+ }, 50)
+ }
+ })
+
+ UniServiceJSBridge.on(this.$route.params.__id__ + '.stopPullDownRefresh', () => {
+ if (this.state === REFRESHING) {
+ this._removeClass()
+ this.state = RESTORING
+ this._addClass()
+
+ this._restoring(() => {
+ this._removeClass()
+ this.state = this.distance = this.offset = null
+ })
+ }
+ })
+ }
+ },
+ methods: {
+ _touchstart (evt) {
+ const touch = evt.changedTouches[0]
+ this.touchId = touch.identifier
+ this.startY = touch.pageY
+ if ([ABORTING, REFRESHING, RESTORING].indexOf(this.state) >= 0) {
+ this.canRefresh = false
+ } else {
+ this.canRefresh = true
+ }
+ },
+ _touchmove (evt) {
+ if (!this.canRefresh) {
+ return
+ }
+ if (!processDeltaY(evt, this.touchId, this.startY)) {
+ return
+ }
+
+ let {
+ deltaY
+ } = evt
+
+ if ((document.documentElement.scrollTop || document.body.scrollTop) !== 0) {
+ this.touchId = null
+ return
+ }
+
+ if (deltaY < 0 && !this.state) {
+ return
+ }
+
+ evt.preventDefault()
+
+ if (this.distance == null) {
+ this.offset = deltaY
+ this.state = PULLING
+ this._addClass()
+ }
+
+ deltaY = deltaY - this.offset
+
+ if (deltaY < 0) {
+ deltaY = 0
+ }
+
+ this.distance = deltaY
+
+ const reached = deltaY >= this.refreshOptions.range && this.state !== REACHED
+ const pulling = deltaY < this.refreshOptions.range && this.state !== PULLING
+
+ if (reached || pulling) {
+ this._removeClass()
+ this.state = this.state === REACHED ? PULLING : REACHED
+ this._addClass()
+ }
+
+ this._pulling(deltaY)
+ },
+ _touchend (evt) {
+ if (!processDeltaY(evt, this.touchId, this.startY)) {
+ return
+ }
+ if (this.state === null) {
+ return
+ }
+ if (this.state === PULLING) {
+ this._removeClass()
+ this.state = ABORTING
+ this._addClass()
+ this._aborting(() => {
+ this._removeClass()
+ this.state = this.distance = this.offset = null
+ })
+ } else if (this.state === REACHED) {
+ this._removeClass()
+ this.state = REFRESHING
+ this._addClass()
+ this._refreshing()
+ }
+ },
+ _toggleClass (type) {
+ if (!this.state) {
+ return
+ }
+ const elem = this.refreshContainerElem
+ if (elem) {
+ elem.classList[type]('uni-page-refresh--' + this.state)
+ }
+ },
+ _addClass () {
+ this._toggleClass('add')
+ },
+ _removeClass () {
+ this._toggleClass('remove')
+ },
+ _pulling (deltaY) {
+ const elem = this.refreshControllerElem
+ if (!elem) {
+ return
+ }
+
+ const style = elem.style
+
+ let rotate = deltaY / this.refreshOptions.range
+
+ if (rotate > 1) {
+ rotate = 1
+ } else {
+ rotate = rotate * rotate * rotate
+ }
+
+ const y = Math.round(deltaY / (this.refreshOptions.range / this.refreshOptions.height))
+
+ const transform = y ? 'translate3d(-50%, ' + y + 'px, 0)' : 0
+
+ style.webkitTransform = transform
+ style.clip = 'rect(' + (45 - y) + 'px,45px,45px,-5px)'
+
+ this.refreshInnerElemStyle.webkitTransform = 'rotate(' + 360 * rotate + 'deg)'
+ },
+ _aborting (callback) {
+ const elem = this.refreshControllerElem
+ if (!elem) {
+ return
+ }
+
+ const style = elem.style
+
+ if (style.webkitTransform) {
+ style.webkitTransition = '-webkit-transform 0.3s'
+ style.webkitTransform = 'translate3d(-50%, 0, 0)'
+ const abortTransitionEnd = function () {
+ timeout && clearTimeout(timeout)
+ elem.removeEventListener('webkitTransitionEnd', abortTransitionEnd)
+ style.webkitTransition = ''
+ callback()
+ }
+ elem.addEventListener('webkitTransitionEnd', abortTransitionEnd)
+ const timeout = setTimeout(abortTransitionEnd, 350) // 部分手机,部分情况webkitTransitionEnd不触发
+ } else {
+ callback()
+ }
+ },
+ _refreshing () {
+ const elem = this.refreshControllerElem
+ if (!elem) {
+ return
+ }
+
+ const style = elem.style
+ style.webkitTransition = '-webkit-transform 0.2s'
+ style.webkitTransform = 'translate3d(-50%, ' + this.refreshOptions.height + 'px, 0)'
+
+ // Service 执行 refresh
+ UniServiceJSBridge.emit('onPullDownRefresh', {}, this.$route.params.__id__)
+ },
+ _restoring (callback) {
+ const elem = this.refreshControllerElem
+ if (!elem) {
+ return
+ }
+
+ const style = elem.style
+
+ style.webkitTransition = '-webkit-transform 0.3s'
+ style.webkitTransform += ' scale(0.01)'
+
+ const restoreTransitionEnd = function () {
+ timeout && clearTimeout(timeout)
+ elem.removeEventListener('webkitTransitionEnd', restoreTransitionEnd)
+ style.webkitTransition = ''
+ style.webkitTransform = 'translate3d(-50%, 0, 0)'
+ callback()
+ }
+
+ elem.addEventListener('webkitTransitionEnd', restoreTransitionEnd)
+ const timeout = setTimeout(restoreTransitionEnd, 350) // 部分手机,部分情况webkitTransitionEnd不触发
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/components/page/transparent.js b/src/platforms/mp-weibo/components/page/transparent.js
new file mode 100644
index 00000000000..ba104689c0f
--- /dev/null
+++ b/src/platforms/mp-weibo/components/page/transparent.js
@@ -0,0 +1,93 @@
+import {
+ hexToRgba
+} from 'uni-shared'
+
+export default {
+ mounted () {
+ if (this.type === 'transparent') {
+ const transparentElemStyle = this.$el.querySelector('.uni-page-head-transparent').style
+ const titleElem = this.$el.querySelector('.uni-page-head__title')
+ const iconElems = this.$el.querySelectorAll('.uni-btn-icon')
+ const iconElemsStyles = []
+ const textColor = this.textColor
+ for (let i = 0; i < iconElems.length; i++) {
+ iconElemsStyles.push(iconElems[i].style)
+ }
+ const borderRadiusElems = this.$el.querySelectorAll('.uni-page-head-btn')
+ const oldColors = []
+ const borderRadiusElemsStyles = []
+ for (let i = 0; i < borderRadiusElems.length; i++) {
+ const borderRadiusElem = borderRadiusElems[i]
+ oldColors.push(getComputedStyle(borderRadiusElem).backgroundColor)
+ borderRadiusElemsStyles.push(borderRadiusElem.style)
+ }
+ this._A = 0
+ UniViewJSBridge.on('onPageScroll', ({
+ scrollTop
+ }) => {
+ const 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(${this._R},${this._G},${this._B},${alpha})`
+ borderRadiusElemsStyles.forEach(function (borderRadiusElemStyle, index) {
+ const oldColor = oldColors[index]
+ // eslint-disable-next-line
+ let rgba = oldColor.match(/[\d+\.]+/g)
+ rgba[3] = (1 - alpha) * (rgba.length === 4 ? rgba[3] : 1)
+ borderRadiusElemStyle.backgroundColor = `rgba(${rgba})`
+ })
+ })
+ } else if (this.type === 'float') {
+ const iconElems = this.$el.querySelectorAll('.uni-btn-icon')
+ const iconElemsStyles = []
+ for (let i = 0; i < iconElems.length; i++) {
+ iconElemsStyles.push(iconElems[i].style)
+ }
+ const borderRadiusElems = this.$el.querySelectorAll('.uni-page-head-btn')
+ const oldColors = []
+ const borderRadiusElemsStyles = []
+ for (let i = 0; i < borderRadiusElems.length; i++) {
+ const borderRadiusElem = borderRadiusElems[i]
+ oldColors.push(getComputedStyle(borderRadiusElem).backgroundColor)
+ borderRadiusElemsStyles.push(borderRadiusElem.style)
+ }
+ }
+ },
+ computed: {
+ color () {
+ return this.type === 'transparent' ? '#fff' : this.textColor
+ },
+ offset () {
+ return parseInt(this.coverage)
+ },
+ bgColor () {
+ if (this.type === 'transparent') {
+ const {
+ r,
+ g,
+ b
+ } = hexToRgba(this.backgroundColor)
+ this._R = r
+ this._G = g
+ this._B = b
+ return `rgba(${r},${g},${b},0)`
+ }
+ return this.backgroundColor
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/components/system-routes/choose-location/index.vue b/src/platforms/mp-weibo/components/system-routes/choose-location/index.vue
new file mode 100644
index 00000000000..78cb669d6f0
--- /dev/null
+++ b/src/platforms/mp-weibo/components/system-routes/choose-location/index.vue
@@ -0,0 +1,555 @@
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/system-routes/index.js b/src/platforms/mp-weibo/components/system-routes/index.js
new file mode 100644
index 00000000000..41decc80eee
--- /dev/null
+++ b/src/platforms/mp-weibo/components/system-routes/index.js
@@ -0,0 +1,7 @@
+import ChooseLocation from './choose-location'
+import OpenLocation from './open-location'
+
+export default {
+ ChooseLocation,
+ OpenLocation
+}
diff --git a/src/platforms/mp-weibo/components/system-routes/open-location/index.vue b/src/platforms/mp-weibo/components/system-routes/open-location/index.vue
new file mode 100644
index 00000000000..ab0a7aa5516
--- /dev/null
+++ b/src/platforms/mp-weibo/components/system-routes/open-location/index.vue
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+
+
+
+ {{ name }}
+
+
+ {{ address }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/components/theme.js b/src/platforms/mp-weibo/components/theme.js
new file mode 100644
index 00000000000..877cb3aff52
--- /dev/null
+++ b/src/platforms/mp-weibo/components/theme.js
@@ -0,0 +1,26 @@
+import { normallizeStyles } from 'uni-shared'
+import { getTheme } from '../service/api/base/get-browser-info'
+import {
+ ON_THEME_CHANGE
+} from 'uni-helpers/constants'
+
+export { getTheme }
+
+export function onThemeChange (callback = () => { }) {
+ if (__uniConfig.darkmode) {
+ UniServiceJSBridge.on('api.' + ON_THEME_CHANGE, callback)
+ }
+}
+
+export function offThemeChange (callback = () => { }) {
+ UniServiceJSBridge.off('api.' + ON_THEME_CHANGE, callback)
+}
+
+export function parseTheme (pageStyle) {
+ let parsedStyle = {}
+ if (__uniConfig.darkmode) {
+ const theme = getTheme()
+ parsedStyle = normallizeStyles(pageStyle, __uniConfig.themeConfig, theme)
+ }
+ return __uniConfig.darkmode ? parsedStyle : pageStyle
+}
diff --git a/src/platforms/mp-weibo/helpers/append-css.js b/src/platforms/mp-weibo/helpers/append-css.js
new file mode 100644
index 00000000000..cdc9c57b482
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/append-css.js
@@ -0,0 +1,14 @@
+export default function appendCss (css, cssId, replace = false) {
+ let style = document.getElementById(cssId)
+ if (style && replace) {
+ style.parentNode.removeChild(style)
+ style = null
+ }
+ if (!style) {
+ style = document.createElement('style')
+ style.type = 'text/css'
+ cssId && (style.id = cssId)
+ document.getElementsByTagName('head')[0].appendChild(style)
+ }
+ style.appendChild(document.createTextNode(css))
+}
diff --git a/src/platforms/mp-weibo/helpers/can-i-use.js b/src/platforms/mp-weibo/helpers/can-i-use.js
new file mode 100644
index 00000000000..fee9e753361
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/can-i-use.js
@@ -0,0 +1,9 @@
+function cssSupports (css) {
+ return window.CSS && CSS.supports && (CSS.supports(css) || CSS.supports.apply(CSS, css.split(':')))
+}
+
+export default {
+ 'css.var': cssSupports('--a:0'),
+ 'css.env': cssSupports('top:env(a)'),
+ 'css.constant': cssSupports('top:constant(a)')
+}
diff --git a/src/platforms/mp-weibo/helpers/file.js b/src/platforms/mp-weibo/helpers/file.js
new file mode 100644
index 00000000000..f42f743b149
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/file.js
@@ -0,0 +1,122 @@
+import {
+ hasOwn
+} from 'uni-shared'
+
+/**
+ * 暂存的文件对象
+ */
+const files = {}
+/**
+ * 从url读取File
+ * @param {string} url
+ * @param {boolean} local
+ * @param {Promise}
+ */
+export function urlToFile (url, local) {
+ var file = files[url]
+ if (file) {
+ return Promise.resolve(file)
+ }
+ if (/^data:[a-z-]+\/[a-z-]+;base64,/.test(url)) {
+ return Promise.resolve(base64ToFile(url))
+ }
+ if (local) {
+ return Promise.reject(new Error('not find'))
+ }
+ return new Promise((resolve, reject) => {
+ var xhr = new XMLHttpRequest()
+ xhr.open('GET', url, true)
+ xhr.responseType = 'blob'
+ xhr.onload = function () {
+ resolve(this.response)
+ }
+ xhr.onerror = reject
+ xhr.send()
+ })
+}
+/**
+ * base64转File
+ * @param {string} base64
+ * @return {File}
+ */
+export function base64ToFile (base64) {
+ base64 = base64.split(',')
+ var type = base64[0].match(/:(.*?);/)[1]
+ var str = atob(base64[1])
+ var n = str.length
+ var array = new Uint8Array(n)
+ while (n--) {
+ array[n] = str.charCodeAt(n)
+ }
+ return blobToFile(array, type)
+}
+/**
+ * 简易获取扩展名
+ * @param {string} type
+ * @return {string}
+ */
+function getExtname (type) {
+ const extname = type.split('/')[1]
+ return extname ? `.${extname}` : ''
+}
+/**
+ * 简易获取文件名
+ * @param {*} url
+ */
+export function getFileName (url) {
+ url = url.split('#')[0].split('?')[0]
+ const array = url.split('/')
+ return array[array.length - 1]
+}
+
+/**
+ * blob转File
+ * @param {Blob} blob
+ * @param {string} type
+ * @return {File}
+ */
+export function blobToFile (blob, type) {
+ if (!(blob instanceof File)) {
+ type = type || blob.type || ''
+ const filename = `${Date.now()}${getExtname(type)}`
+ try {
+ blob = new File([blob], filename, { type })
+ } catch (error) {
+ blob = blob instanceof Blob ? blob : new Blob([blob], { type })
+ blob.name = blob.name || filename
+ }
+ }
+ return blob
+}
+/**
+ * 从本地file或者blob对象创建url
+ * @param {Blob|File} file
+ * @return {string}
+ */
+export function fileToUrl (file) {
+ for (const key in files) {
+ if (hasOwn(files, key)) {
+ const oldFile = files[key]
+ if (oldFile === file) {
+ return key
+ }
+ }
+ }
+ var url = (window.URL || window.webkitURL).createObjectURL(file)
+ files[url] = file
+ return url
+}
+
+export function getSameOriginUrl (url) {
+ const a = document.createElement('a')
+ a.href = url
+ if (a.origin === location.origin) {
+ return Promise.resolve(url)
+ }
+ return urlToFile(url).then(fileToUrl)
+}
+
+export function revokeObjectURL (url) {
+ (window.URL || window.webkitURL).revokeObjectURL(url)
+ delete files[url]
+}
diff --git a/src/platforms/mp-weibo/helpers/get-jsonp.js b/src/platforms/mp-weibo/helpers/get-jsonp.js
new file mode 100644
index 00000000000..1ca99b678f3
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/get-jsonp.js
@@ -0,0 +1,39 @@
+/**
+ * JSONP请求
+ * @param {string} url 请求的地址
+ * @param {object} options 请求的参数
+ * @param {Function} success 请求成功的回调
+ * @param {Function} error 请求失败的回调
+ */
+export function getJSONP (url, options, success, error) {
+ var js = document.createElement('script')
+ var callbackKey = options.callback || 'callback'
+ var callbackName = '__callback' + Date.now() + Math.random().toString().slice(2)
+ var timeout = options.timeout || 30000
+ var timing
+ function end () {
+ clearTimeout(timing)
+ delete window[callbackName]
+ js.remove()
+ }
+ window[callbackName] = (res) => {
+ if (typeof success === 'function') {
+ success(res)
+ }
+ end()
+ }
+ js.onerror = () => {
+ if (typeof error === 'function') {
+ error()
+ }
+ end()
+ }
+ timing = setTimeout(function () {
+ if (typeof error === 'function') {
+ error()
+ }
+ end()
+ }, timeout)
+ js.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + callbackKey + '=' + callbackName
+ document.body.appendChild(js)
+}
diff --git a/src/platforms/mp-weibo/helpers/get-real-path.js b/src/platforms/mp-weibo/helpers/get-real-path.js
new file mode 100644
index 00000000000..e5a06943799
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/get-real-path.js
@@ -0,0 +1,43 @@
+import getRealRoute from 'uni-helpers/get-real-route'
+
+const SCHEME_RE = /^([a-z-]+:)?\/\//i
+const DATA_RE = /^data:.*,.*/
+
+function addBase (filePath) {
+ const base = __uniConfig.router.base
+ if (!base) {
+ return filePath
+ }
+ if (base !== '/') {
+ // 部分地址已经带了base(如被webpack处理过的资源自动带了publicPath)
+ if (('/' + filePath).indexOf(base) === 0) {
+ return '/' + filePath
+ }
+ }
+ return base + filePath
+}
+
+export default function getRealPath (filePath) {
+ // 相对路径模式对静态资源路径特殊处理
+ if (__uniConfig.router.base === './') {
+ filePath = filePath.replace(/^\.\/static\//, '/static/')
+ }
+ if (filePath.indexOf('/') === 0) {
+ if (filePath.indexOf('//') === 0) {
+ filePath = 'https:' + filePath
+ } else {
+ return addBase(filePath.substr(1))
+ }
+ }
+ // 网络资源或base64
+ if (SCHEME_RE.test(filePath) || DATA_RE.test(filePath) || filePath.indexOf('blob:') === 0) {
+ return filePath
+ }
+
+ const pages = getCurrentPages()
+ if (pages.length) {
+ return addBase(getRealRoute(pages[pages.length - 1].$page.route, filePath).substr(1))
+ }
+
+ return filePath
+}
diff --git a/src/platforms/mp-weibo/helpers/get-window-offset.js b/src/platforms/mp-weibo/helpers/get-window-offset.js
new file mode 100644
index 00000000000..575c5709d37
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/get-window-offset.js
@@ -0,0 +1,41 @@
+import {
+ NAVBAR_HEIGHT,
+ TABBAR_HEIGHT
+} from 'uni-helpers/constants'
+import safeAreaInsets from 'safe-area-insets'
+
+export default function getWindowOffset () {
+ if (uni.canIUse('css.var')) {
+ const style = document.documentElement.style
+ const top = parseInt((style.getPropertyValue('--window-top').match(/\d+/) || ['0'])[0])
+ const bottom = parseInt((style.getPropertyValue('--window-bottom').match(/\d+/) || ['0'])[0])
+ const left = parseInt((style.getPropertyValue('--window-left').match(/\d+/) || ['0'])[0])
+ const right = parseInt((style.getPropertyValue('--window-right').match(/\d+/) || ['0'])[0])
+ const topWindowHeight = parseInt((style.getPropertyValue('--top-window-height').match(/\d+/) || ['0'])[0])
+ return {
+ top: (top ? (top + safeAreaInsets.top) : 0) + (topWindowHeight || 0),
+ bottom: bottom ? (bottom + safeAreaInsets.bottom) : 0,
+ left: left ? (left + safeAreaInsets.left) : 0,
+ right: right ? (right + safeAreaInsets.right) : 0
+ }
+ }
+
+ let top = 0
+ let bottom = 0
+ const pages = getCurrentPages()
+ if (pages.length) {
+ const pageVm = pages[pages.length - 1].$parent.$parent
+ const navigationBarType = pageVm.navigationBar.type
+ top = navigationBarType === 'default' || navigationBarType === 'float' ? NAVBAR_HEIGHT : 0
+ }
+ const app = getApp()
+ if (app) {
+ bottom = app.$children[0] && app.$children[0].showTabBar ? TABBAR_HEIGHT : 0
+ }
+ return {
+ top,
+ bottom,
+ left: 0,
+ right: 0
+ }
+}
diff --git a/src/platforms/mp-weibo/helpers/keypress.js b/src/platforms/mp-weibo/helpers/keypress.js
new file mode 100644
index 00000000000..ece074b1d03
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/keypress.js
@@ -0,0 +1,43 @@
+export default {
+ name: 'Keypress',
+ props: {
+ disable: {
+ type: Boolean,
+ default: false
+ }
+ },
+ mounted () {
+ const keyNames = {
+ esc: ['Esc', 'Escape'],
+ tab: 'Tab',
+ enter: 'Enter',
+ space: [' ', 'Spacebar'],
+ up: ['Up', 'ArrowUp'],
+ left: ['Left', 'ArrowLeft'],
+ right: ['Right', 'ArrowRight'],
+ down: ['Down', 'ArrowDown'],
+ delete: ['Backspace', 'Delete', 'Del']
+ }
+ const listener = ($event) => {
+ if (this.disable) {
+ return
+ }
+ const keyName = Object.keys(keyNames).find(key => {
+ const keyName = $event.key
+ const value = keyNames[key]
+ return value === keyName || (Array.isArray(value) && value.includes(keyName))
+ })
+ if (keyName) {
+ // 避免和其他按键事件冲突
+ setTimeout(() => {
+ this.$emit(keyName, $event)
+ }, 0)
+ }
+ }
+ document.addEventListener('keyup', listener)
+ this.$once('hook:beforeDestroy', () => {
+ document.removeEventListener('keyup', listener)
+ })
+ },
+ render: () => null
+}
diff --git a/src/platforms/mp-weibo/helpers/location.js b/src/platforms/mp-weibo/helpers/location.js
new file mode 100644
index 00000000000..44c1007415a
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/location.js
@@ -0,0 +1,114 @@
+import { getJSONP } from './get-jsonp'
+import { loadMaps } from '../view/components/map/maps'
+
+export const ICON_PATH_ORIGIN =
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAC01BMVEUAAAAAef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef96quGStdqStdpbnujMzMzCyM7Gyc7Ky83MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAef8GfP0yjfNWnOp0qOKKsdyYt9mju9aZt9mMstx1qeJYnekyjvIIfP0qivVmouaWttnMzMyat9lppOUujPQKffxhoOfNzc3Y2Njh4eHp6enu7u7y8vL19fXv7+/i4uLZ2dnOzs6auNgOf/sKff15quHR0dHx8fH9/f3////j4+N6quFdn+iywdPb29vw8PD+/v7c3NyywtLa2tr29vbS0tLd3d38/Pzf39/o6Ojc7f+q0v+HwP9rsf9dqv9Hnv9Vpv/q6urj8P+Vx/9Am/8Pgf8Iff/z8/OAvP95uf/n5+c5l//V6f+52v+y1//7+/vt7e0rkP/09PTQ0NDq9P8Whf+cy//W1tbe3t7A3v/m5ubs7OxOov/r6+vk5OQiaPjKAAAAknRSTlMACBZ9oB71/jiqywJBZATT6hBukRXv+zDCAVrkDIf4JbQsTb7eVeJLbwfa8Rh4G/OlPS/6/kxQ9/xdmZudoJxNVhng7B6wtWdzAtQOipcF1329wS44doK/BAkyP1pvgZOsrbnGXArAg34G2IsD1eMRe7bi7k5YnqFT9V0csyPedQyYD3p/Fje+hDpskq/MwpRBC6yKp2MAAAQdSURBVHja7Zn1exMxGIAPHbrhDsPdneHuNtzd3d3dIbjLh93o2o4i7TpgG1Jk0g0mMNwd/gTa5rq129reHnK5e/bk/TFNk/dJ7r5894XjGAwGg8GgTZasCpDIll1+hxw5vXLJLpEboTx5ZXbIhyzkl9fB28cqUaCgrBKFkI3CcjoUKYolihWXUSI7EihRUjaHXF52CVRKLoe8eZIdUOkyMknkRw6UlcehYAFHiXK+skgURk6Ul8OhQjFnCVRRBolKqRxQ5SzUHaqgNGSj7VCmalqJnDkoS5RF6ZCbroNvufQkUD6qEuXTdUA+3hQdqiEXVKfnUKOmK4latalJ1EEuoZZ6162HJ9x/4OChw0eOHj12/MTJU6dxG7XUu751tjNnz4ET5y9ctLZTSr0beKFLl89bpuUDrqgC1RqNWqsKuqqzNFw7e51S6u3tc+OmZUJ9kCHY6ECwOkRvab51iUrqXej2HYDQsHBjWgx3Ae7dppB6N2wEcF9jdMGDUIDGTaR2aNoM9FqjG7QmaN5CWgc/gIePjG559BigpZQOrYB/4jBfRGRUtDkmJjY6KjLCofkpD62lc2gDfMpWPIuLdwyV8XEpHgaddBZ+wBuSFcwJqSN2ovmZ/dfnOvCTxqGtwzq8SEjv4EhISn48eWgnhUP7DvDSvgzxrs6vV6+FLiro2EkCic4QKkzwJsH1KYreCp0eQhfyDl1B/w4P/xa5JVJ4U03QjbRD9x7wXlgH5IE3wmMBHXoSlugFAcI6f/AkkSi8q6HQm6xDn77wEQ8djTwSj3tqAMguRTe4ikeOQyJ4YV+KfkQl+oNW5GbY4gWOWgbwJ+kwAD6Fi90MK2ZsrIeBBCUGwRXbqJ+/iJMQliIEBhOU6AJhtlG/IpHE2bqrYQg5h6HA4yQiRqwEfkGCdTCMmMRw+IbPDCQaHCsCYAQxiZHw3TbmD/ESOHgHwShiEqPhp/gggYkSztIxxCRawy/bmEniJaJtfwiEscQkxkFgRqJESqQwwHhiEuMBp3Vm8RK/cZoHEzKXhCK2QxEPpiJe0YlKCFaKCNv/cYBNUsBRPlkJSc0U+dM7E9H0ThGJbgZT/iR7yj+VqMS06Qr4+OFm2JdCxIa8lugzkJs5K6MfxAaYPUcBpYG5khZJEkUUSb7DPCnKRfPBXj6M8FwuegoLpCgXcQszVjhbJFUJUee2hBhLoYTIcYtB57KY+opSMdVqwatSlZVj05aV//CwJLMX2DluaUcwhXm4ali2XOoLjxUrPV26zFtF4f5p0Gp310+z13BUWNvbehEXona6iAtX/zVZmtfN4WixfsNky4S6gCCVVq3RPLdfSfpv3MRRZfPoLc6Xs/5bt3EyMGzE9h07/Xft2t15z6i9+zgGg8FgMBgMBoPBYDAYDAYj8/APG67Rie8pUDsAAAAASUVORK5CYII='
+export const ICON_PATH_TARGET =
+ 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAACcCAMAAAC3Fl5oAAAB3VBMVEVMaXH/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/EhL/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/Dw//AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/AAD/GRn/NTX/Dw//Fhb/AAD/AAD/AAD/GRn/GRn/Y2P/AAD/AAD/ExP/Ghr/AAD/AAD/MzP/GRn/AAD/Hh7/AAD/RUX/AAD/AAD/AAD/AAD/AAD/AAD/Dg7/AAD/HR3/Dw//FRX/SUn/AAD/////kJD/DQ3/Zmb/+/v/wMD/mJj/6en/vb3/1NT//Pz/ODj/+fn/3Nz/nJz/j4//9/f/7e3/9vb/7Oz/2Nj/x8f/Ozv/+Pj/3d3/nZ3/2dn//f3/6Oj/2tr/v7//09P/vr7/mZn/l5cdSvP3AAAAe3RSTlMAAhLiZgTb/vztB/JMRhlp6lQW86g8mQ4KFPs3UCH5U8huwlesWtTYGI7RsdVeJGfTW5rxnutLsvXWF8vQNdo6qQbuz7D4hgVIx2xtw8GC1TtZaIw0i84P98tU0/fsj7PKaAgiZZxeVfo8Z52eg1P0nESrENnjXVPUgw/uuSmDAAADsUlEQVR42u3aZ3cTRxgF4GtbYleSLdnGcsENG2ODjbExEHrvhAQCIb1Bem+QdkeuuFMNBBJIfmuOckzZI8/srHYmH3Lm+QNXK632LTvQ03Tu/IWeU/tTGTKT2n+q58L5c00wpXJd47DHEt5w47pKxLbhdLdPKb/7dBYxVLxw1GcI/2h1BcpzKNFHLX2JQ4gumaiitqpEEhEdOMJI9h5AFC3feYzI+7IF2tpSLEOqDXpObPRYFm/jCWho/4Ble7MdoT7fzhhq9yHEz28wltU1UPrJZ0wd66HwicfYvEFIfePTAP8tSLTupBHvtGJFH9bSkNrNWEHzERrT34xSH9Ogr1CijkbVAUH1KRqVqkdQAw07iIAaGlcTqI+/0LjeJJ5J0IIEnkpXMdzs4sTtW9dnZq7fuj2xOMtwVWk88RHDjBYejYvnjD8qjOpfQsUqhvj7oSjxcJIhVj3pyKqpNjYvVjQ/RrXq5YABKi3MCYm5BSrtWO5v11DlmlC4RpU1WRS9SJU7QukOVbpQ9JLu549+Dd0AUOlTbkGEuk85vxLAK5QbuytC3R2j3HoAjZSbFxrmKTcCoJdSk0LLJKV6gSaPMqNTQsvUKGW8JrxKqUWhaZFSeWyh1LTQNE2pHF6mzOy40DQ+S5mLimJcENoKlOnBWsr8KbRNUGYt5LXgd6HtD3lNQIoyN4S2G5RJIUOZm0LbTcqsBqVmhLYZSlkPsP4VWf+Rrd+m1v9o9h8Vv5p42C1R5qL1x7WRglOgVN52yfwNOBu76P+lLPoYidu23KPciIHGa07ZeIW1jvcNtI7q5vexCPGYCmf+m/Y9a3sAwQ5bI9T7ukPgPcn9GToEao+xk1OixJT+GIsvNAbx6eAgPq0xiF+KtkpYKhRXCQ8eFFcJhSWGu3rZ8jJkCM8kz9K4TUnrC6mAgzTsB9tLwQ2W15qfosQ2GrQNpZr7aczbzVjBZsvLcaC1g0bsbIVEnU8DOr6H1KDH2LwtUBi0/JII6Dxm9zUXkH+XMWzfh1Dte1i2Pe3QkC77Zel7aehpO8wyHG6Dtt0NjKxhN6I4uSli/TqJiJJDUQ4NDCURXTrXRy1XcumyD24M+AzhD1RXIIZsl/LoyZmurJHDM7s8lvB2FQ/PmPJ6PseAXP5HGMYAAC7ABbgAF+ACXIALcAEuwAW4ABfgAlyAC3ABLsAFuID/d8Cx4NEt8/byOf0wLnis8zjMq9/Kp7bWw4JOj8u8TlhRl+G/Mp2wpOX48GffvvZ1CyL4B53LAS6zb08EAAAAAElFTkSuQmCC'
+
+export const MapType = {
+ QQ: 'qq',
+ GOOGLE: 'google',
+ AMAP: 'AMap',
+ UNKNOWN: ''
+}
+
+export function getMapInfo () {
+ if (__uniConfig.qqMapKey) {
+ return {
+ type: MapType.QQ,
+ key: __uniConfig.qqMapKey
+ }
+ }
+ if (__uniConfig.googleMapKey) {
+ return {
+ type: MapType.GOOGLE,
+ key: __uniConfig.googleMapKey
+ }
+ }
+ if (__uniConfig.aMapKey) {
+ return {
+ type: MapType.AMAP,
+ key: __uniConfig.aMapKey,
+ securityJsCode: __uniConfig.aMapSecurityJsCode,
+ serviceHost: __uniConfig.aMapServiceHost
+ }
+ }
+ return {
+ type: MapType.UNKNOWN,
+ key: ''
+ }
+}
+
+export const IS_AMAP = getMapInfo().type === MapType.AMAP
+
+export function translateCoordinateSystem (type, coords, skip) {
+ const mapInfo = getMapInfo()
+ const wgs84Map = [MapType.GOOGLE]
+ if (
+ type.toUpperCase() === 'WGS84' ||
+ wgs84Map.includes(mapInfo.type) ||
+ skip
+ ) {
+ return Promise.resolve(coords)
+ }
+
+ if (mapInfo.type === MapType.QQ) {
+ return new Promise((resolve, reject) => {
+ getJSONP(
+ `https://apis.map.qq.com/jsapi?qt=translate&type=1&points=${coords.longitude},${coords.latitude}&key=${mapInfo.key}&output=jsonp&pf=jsapi&ref=jsapi`,
+ {
+ callback: 'cb'
+ },
+ res => {
+ if (
+ 'detail' in res &&
+ 'points' in res.detail &&
+ res.detail.points.length
+ ) {
+ const location = res.detail.points[0]
+ resolve({
+ longitude: location.lng,
+ latitude: location.lat,
+ altitude: coords.altitude,
+ accuracy: coords.accuracy,
+ altitudeAccuracy: coords.altitudeAccuracy,
+ heading: coords.heading,
+ speed: coords.speed
+ })
+ } else {
+ reject(new Error('translate coordinate system fail'))
+ }
+ },
+ () => reject(new Error('translate coordinate system fail'))
+ )
+ })
+ }
+
+ if (mapInfo.type === MapType.AMAP) {
+ return new Promise((resolve, reject) => {
+ loadMaps([], () => {
+ window.AMap.convertFrom(
+ [coords.longitude, coords.latitude],
+ 'gps',
+ (_, res) => {
+ if (res.info === 'ok' && res.locations.length) {
+ const { lat, lng } = res.locations[0]
+ resolve({
+ longitude: lng,
+ latitude: lat,
+ altitude: coords.altitude,
+ accuracy: coords.accuracy,
+ altitudeAccuracy: coords.altitudeAccuracy,
+ heading: coords.heading,
+ speed: coords.speed
+ })
+ } else {
+ reject(new Error('translate coordinate system fail'))
+ }
+ }
+ )
+ })
+ })
+ }
+}
diff --git a/src/platforms/mp-weibo/helpers/save-image.js b/src/platforms/mp-weibo/helpers/save-image.js
new file mode 100644
index 00000000000..720e7bb215f
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/save-image.js
@@ -0,0 +1,3 @@
+export default function saveImage (base64, dirname, callback) {
+ callback(null, base64)
+}
diff --git a/src/platforms/mp-weibo/helpers/scroll.js b/src/platforms/mp-weibo/helpers/scroll.js
new file mode 100644
index 00000000000..41c4d3b5121
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/scroll.js
@@ -0,0 +1,9 @@
+export function initScrollBounce () {
+
+}
+
+export function disableScrollBounce ({
+ disable
+}) {
+
+}
diff --git a/src/platforms/mp-weibo/helpers/todo-api.js b/src/platforms/mp-weibo/helpers/todo-api.js
new file mode 100644
index 00000000000..4a574516de8
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/todo-api.js
@@ -0,0 +1,61 @@
+export default [
+ 'saveImageToPhotosAlbum',
+ 'getRecorderManager',
+ 'saveVideoToPhotosAlbum',
+ 'createCameraContext',
+ 'createLivePlayerContext',
+ 'saveFile',
+ 'getSavedFileList',
+ 'getSavedFileInfo',
+ 'removeSavedFileInfo',
+ 'onMemoryWarning',
+ 'onGyroscopeChange',
+ 'startGyroscope',
+ 'stopGyroscope',
+ 'scanCode',
+ // 'setClipboardData',
+ // 'getClipboardData',
+ 'setScreenBrightness',
+ 'getScreenBrightness',
+ 'setKeepScreenOn',
+ 'onUserCaptureScreen',
+ 'addPhoneContact',
+ 'openBluetoothAdapter',
+ 'startBluetoothDevicesDiscovery',
+ 'onBluetoothDeviceFound',
+ 'stopBluetoothDevicesDiscovery',
+ 'onBluetoothAdapterStateChange',
+ 'getConnectedBluetoothDevices',
+ 'getBluetoothDevices',
+ 'getBluetoothAdapterState',
+ 'closeBluetoothAdapter',
+ 'writeBLECharacteristicValue',
+ 'readBLECharacteristicValue',
+ 'onBLEConnectionStateChange',
+ 'onBLECharacteristicValueChange',
+ 'notifyBLECharacteristicValueChange',
+ 'getBLEDeviceServices',
+ 'getBLEDeviceCharacteristics',
+ 'createBLEConnection',
+ 'closeBLEConnection',
+ 'onBeaconServiceChange',
+ 'onBeaconUpdate',
+ 'getBeacons',
+ 'startBeaconDiscovery',
+ 'stopBeaconDiscovery',
+ 'setBackgroundColor',
+ 'setBackgroundTextStyle',
+ 'getProvider',
+ 'login',
+ 'checkSession',
+ 'getUserInfo',
+ 'share',
+ 'onShareAppMessage',
+ 'showShareMenu',
+ 'hideShareMenu',
+ 'requestPayment',
+ 'subscribePush',
+ 'unsubscribePush',
+ 'onPush',
+ 'offPush'
+]
diff --git a/src/platforms/mp-weibo/helpers/uuid.js b/src/platforms/mp-weibo/helpers/uuid.js
new file mode 100644
index 00000000000..6a9cab97548
--- /dev/null
+++ b/src/platforms/mp-weibo/helpers/uuid.js
@@ -0,0 +1,16 @@
+const UUID_KEY = '__DC_STAT_UUID'
+const storage = (navigator.cookieEnabled && (window.localStorage || window.sessionStorage)) || {}
+let deviceId
+
+export default function () {
+ deviceId = deviceId || storage[UUID_KEY]
+ if (!deviceId) {
+ deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7)
+ try {
+ storage[UUID_KEY] = deviceId
+ } catch (error) {
+
+ }
+ }
+ return deviceId
+}
diff --git a/src/platforms/mp-weibo/runtime/web-view.js b/src/platforms/mp-weibo/runtime/web-view.js
new file mode 100644
index 00000000000..19f4db67b64
--- /dev/null
+++ b/src/platforms/mp-weibo/runtime/web-view.js
@@ -0,0 +1,6 @@
+import api from '../../app-plus/runtime/web-view-api'
+
+export function initWebviewApi (readyCallback) {
+ document.addEventListener('DOMContentLoaded', readyCallback)
+ return api
+}
diff --git a/src/platforms/mp-weibo/service/api.js b/src/platforms/mp-weibo/service/api.js
new file mode 100644
index 00000000000..3416848bad0
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api.js
@@ -0,0 +1,8 @@
+const api = Object.create(null)
+
+const modules = require.context('./api', true, /\.js$/)
+modules.keys().forEach(function (key) {
+ Object.assign(api, modules(key))
+})
+
+export default api
diff --git a/src/platforms/mp-weibo/service/api/base/event-bus.js b/src/platforms/mp-weibo/service/api/base/event-bus.js
new file mode 100644
index 00000000000..566b7142fc9
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/base/event-bus.js
@@ -0,0 +1,23 @@
+import Vue from 'vue'
+
+const Emitter = new Vue()
+
+function apply (ctx, method, args) {
+ return ctx[method].apply(ctx, args)
+}
+
+export function $on () {
+ return apply(Emitter, '$on', [...arguments])
+}
+
+export function $off () {
+ return apply(Emitter, '$off', [...arguments])
+}
+
+export function $once () {
+ return apply(Emitter, '$once', [...arguments])
+}
+
+export function $emit () {
+ return apply(Emitter, '$emit', [...arguments])
+}
diff --git a/src/platforms/mp-weibo/service/api/base/get-browser-info.js b/src/platforms/mp-weibo/service/api/base/get-browser-info.js
new file mode 100644
index 00000000000..75f04108d20
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/base/get-browser-info.js
@@ -0,0 +1,219 @@
+import { isStr } from 'uni-shared'
+
+function IEVersion () {
+ const userAgent = navigator.userAgent
+ const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1
+ const isEdge = userAgent.indexOf('Edge') > -1 && !isIE
+ const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1
+ if (isIE) {
+ const reIE = new RegExp('MSIE (\\d+\\.\\d+);')
+ reIE.test(userAgent)
+ const fIEVersion = parseFloat(RegExp.$1)
+ if (fIEVersion > 6) {
+ return fIEVersion
+ } else {
+ return 6
+ }
+ } else if (isEdge) {
+ return -1
+ } else if (isIE11) {
+ return 11
+ } else {
+ return -1
+ }
+}
+
+export function getTheme () {
+ if (__uniConfig.darkmode !== true) return isStr(__uniConfig.darkmode) ? __uniConfig.darkmode : 'light'
+ try {
+ return window.matchMedia('(prefers-color-scheme: light)').matches
+ ? 'light'
+ : 'dark'
+ } catch (error) {
+ return 'light'
+ }
+}
+
+const ua = navigator.userAgent
+/**
+ * 是否安卓设备
+ */
+const isAndroid = /android/i.test(ua)
+/**
+ * 是否iOS设备
+ */
+const isIOS = /iphone|ipad|ipod/i.test(ua)
+/**
+ * 是否是Windows设备
+ */
+const isWindows = ua.match(/Windows NT ([\d|\d.\d]*)/i)
+/**
+ * 是否是Mac设备
+ */
+const isMac = /Macintosh|Mac/i.test(ua)
+/**
+ * 是否是Linux设备
+ */
+const isLinux = /Linux|X11/i.test(ua)
+/**
+ * 是否是iPadOS
+ */
+const isIPadOS = isMac && navigator.maxTouchPoints > 0
+/**
+ * 获取系统信息-同步
+ */
+export function getBrowserInfo () {
+ var language = navigator.language
+ var osname
+ var osversion
+ var model
+ let deviceType = 'phone'
+
+ if (isIOS) {
+ osname = 'iOS'
+ const osversionFind = ua.match(/OS\s([\w_]+)\slike/)
+ if (osversionFind) {
+ osversion = osversionFind[1].replace(/_/g, '.')
+ }
+ const modelFind = ua.match(/\(([a-zA-Z]+);/)
+ if (modelFind) {
+ model = modelFind[1]
+ }
+ } else if (isAndroid) {
+ osname = 'Android'
+ // eslint-disable-next-line no-useless-escape
+ const osversionFind = ua.match(/Android[\s/]([\w\.]+)[;\s]/)
+ if (osversionFind) {
+ osversion = osversionFind[1]
+ }
+ const infoFind = ua.match(/\((.+?)\)/)
+ const infos = infoFind ? infoFind[1].split(';') : ua.split(' ')
+ // eslint-disable-next-line no-useless-escape
+ const otherInfo = [/\bAndroid\b/i, /\bLinux\b/i, /\bU\b/i, /^\s?[a-z][a-z]$/i, /^\s?[a-z][a-z]-[a-z][a-z]$/i, /\bwv\b/i, /\/[\d\.,]+$/, /^\s?[\d\.,]+$/, /\bBrowser\b/i, /\bMobile\b/i]
+ for (let i = 0; i < infos.length; i++) {
+ const info = infos[i]
+ if (info.indexOf('Build') > 0) {
+ model = info.split('Build')[0].trim()
+ break
+ }
+ let other
+ for (let o = 0; o < otherInfo.length; o++) {
+ if (otherInfo[o].test(info)) {
+ other = true
+ break
+ }
+ }
+ if (!other) {
+ model = info.trim()
+ break
+ }
+ }
+ } else if (isIPadOS) {
+ model = 'iPad'
+ osname = 'iOS'
+ osversion = typeof window.BigInt === 'function' ? '14.0' : '13.0'
+ deviceType = 'pad'
+ } else if (isWindows || isMac || isLinux) {
+ model = 'PC'
+ osname = 'PC'
+ deviceType = 'pc'
+ const osversionFind = ua.match(/\((.+?)\)/)[1]
+
+ if (isWindows) {
+ osname = 'Windows'
+ osversion = ''
+ switch (isWindows[1]) {
+ case '5.1':
+ osversion = 'XP'
+ break
+ case '6.0':
+ osversion = 'Vista'
+ break
+ case '6.1':
+ osversion = '7'
+ break
+ case '6.2':
+ osversion = '8'
+ break
+ case '6.3':
+ osversion = '8.1'
+ break
+ case '10.0':
+ osversion = '10'
+ break
+ }
+
+ const framework = osversionFind.match(/[Win|WOW]([\d]+)/)
+ if (framework) {
+ osversion += ` x${framework[1]}`
+ }
+ } else if (isMac) {
+ osname = 'macOS'
+ osversion = osversionFind.match(/Mac OS X (.+)/) || ''
+
+ if (osversion) {
+ osversion = osversion[1].replace(/_/g, '.')
+ // '10_15_7' or '10.16; rv:86.0'
+ if (osversion.indexOf(';') !== -1) {
+ osversion = osversion.split(';')[0]
+ }
+ }
+ } else if (isLinux) {
+ osname = 'Linux'
+ osversion = osversionFind.match(/Linux (.*)/) || ''
+
+ if (osversion) {
+ osversion = osversion[1]
+ // 'x86_64' or 'x86_64; rv:79.0'
+ if (osversion.indexOf(';') !== -1) {
+ osversion = osversion.split(';')[0]
+ }
+ }
+ }
+ } else {
+ osname = 'Other'
+ osversion = '0'
+ deviceType = 'unknown'
+ }
+
+ var system = `${osname} ${osversion}`
+ var platform = osname.toLocaleLowerCase()
+
+ let browserName = ''
+ let browserVersion = String(IEVersion())
+ if (browserVersion !== '-1') { browserName = 'IE' } else {
+ const browseVendors = ['Version', 'Firefox', 'Chrome', 'Edge{0,1}']
+ const vendors = ['Safari', 'Firefox', 'Chrome', 'Edge']
+ for (let index = 0; index < browseVendors.length; index++) {
+ const vendor = browseVendors[index]
+ const reg = new RegExp(`(${vendor})/(\\S*)\\b`)
+ if (reg.test(ua)) {
+ browserName = vendors[index]
+ browserVersion = ua.match(reg)[2]
+ }
+ }
+ }
+
+ // deviceOrientation
+ let deviceOrientation = 'portrait'
+ const orientation = typeof window.screen.orientation === 'undefined' ? window.orientation : window.screen.orientation.angle
+ deviceOrientation = Math.abs(orientation) === 90 ? 'landscape' : 'portrait'
+
+ return {
+ deviceBrand: undefined,
+ brand: undefined,
+ deviceModel: model,
+ deviceOrientation,
+ model,
+ system,
+ platform,
+ browserName: browserName.toLocaleLowerCase(),
+ browserVersion,
+ language,
+ deviceType,
+ ua,
+ osname,
+ osversion,
+ theme: getTheme()
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/constants.js b/src/platforms/mp-weibo/service/api/constants.js
new file mode 100644
index 00000000000..14225177d3c
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/constants.js
@@ -0,0 +1 @@
+export const TEMP_PATH = ''
diff --git a/src/platforms/mp-weibo/service/api/context/inner-audio.js b/src/platforms/mp-weibo/service/api/context/inner-audio.js
new file mode 100644
index 00000000000..4a0a0490648
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/context/inner-audio.js
@@ -0,0 +1,177 @@
+import getRealPath from 'uni-platform/helpers/get-real-path'
+
+/**
+ * 可以批量设置的监听事件
+ */
+const innerAudioContextEventNames = ['onCanplay', 'onPlay', 'onPause', 'onStop', 'onEnded', 'onTimeUpdate', 'onError', 'onWaiting', 'onSeeking', 'onSeeked']
+
+const innerAudioContextOffEventNames = ['offCanplay', 'offPlay', 'offPause', 'offStop', 'offEnded', 'offTimeUpdate', 'offError', 'offWaiting', 'offSeeking', 'offSeeked']
+
+/**
+ * 音频上下文对象
+ */
+class InnerAudioContext {
+ /**
+ * 原始音频对象
+ */
+ _audio
+ /**
+ * 是否暂停中
+ */
+ _stoping
+ /**
+ * 开始时间
+ */
+ startTime
+ /**
+ * 事件监听
+ */
+ _events
+ /**
+ * 音频地址
+ */
+ _src
+ /**
+ * 音频上下文初始化
+ */
+ constructor () {
+ var audio = this._audio = new Audio()
+ this._stoping = false
+ // 和audio对象同名同效果的属性
+ var propertys = ['src', 'autoplay', 'loop', 'duration', 'currentTime', 'paused', 'volume']
+ propertys.forEach((property) => {
+ Object.defineProperty(this, property, {
+ set: property === 'src' ? (src) => {
+ audio.src = getRealPath(src)
+ this._src = src
+ return src
+ } : (val) => {
+ audio[property] = val
+ return val
+ },
+ get: property === 'src' ? () => {
+ return this._src
+ } : () => {
+ return audio[property]
+ }
+ })
+ })
+ this.startTime = 0
+ Object.defineProperty(this, 'obeyMuteSwitch', {
+ set (val) {
+ return false
+ },
+ get () {
+ return false
+ }
+ })
+ Object.defineProperty(this, 'buffered', {
+ get () {
+ var buffered = audio.buffered
+ if (buffered.length) {
+ return buffered.end(buffered.length - 1)
+ } else {
+ return 0
+ }
+ }
+ })
+ // 初始化事件监听列表
+ this._events = {}
+ innerAudioContextEventNames.forEach(eventName => {
+ this._events[eventName] = []
+ })
+ audio.addEventListener('loadedmetadata', () => {
+ 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 = ['canplay', 'pause', 'seeking', 'seeked', 'timeUpdate']
+ eventNames.forEach(eventName => {
+ audio.addEventListener(eventName.toLowerCase(), () => {
+ // stop事件过滤
+ if (this._stoping && stopEventNames.indexOf(eventName) >= 0) {
+ return
+ }
+ this._events[`on${eventName.substr(0, 1).toUpperCase()}${eventName.substr(1)}`].forEach((callback) => {
+ callback()
+ })
+ }, false)
+ })
+ }
+
+ /**
+ * 播放
+ */
+ play () {
+ this._stoping = false
+ this._audio.play()
+ }
+
+ /**
+ * 暂停
+ */
+ pause () {
+ this._audio.pause()
+ }
+
+ /**
+ * 停止
+ */
+ stop () {
+ this._stoping = true
+ this._audio.pause()
+ this._audio.currentTime = 0
+ this._events.onStop.forEach((callback) => {
+ callback()
+ })
+ }
+
+ /**
+ * 跳转到
+ * @param {number} position
+ */
+ seek (position) {
+ this._stoping = false
+ position = Number(position)
+ if (typeof position === 'number' && !isNaN(position)) {
+ this._audio.currentTime = position
+ }
+ }
+
+ /**
+ * 销毁
+ */
+ destroy () {
+ this.stop()
+ }
+}
+
+// 批量设置音频上下文事件监听方法
+innerAudioContextEventNames.forEach((eventName) => {
+ InnerAudioContext.prototype[eventName] = function (callback) {
+ if (typeof callback === 'function') {
+ this._events[eventName].push(callback)
+ }
+ }
+})
+
+// 批量设置音频上下文事件取消监听方法
+innerAudioContextOffEventNames.forEach((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)
+ }
+ }
+})
+
+/**
+ * 创建音频上下文
+ */
+export function createInnerAudioContext () {
+ return new InnerAudioContext()
+}
diff --git a/src/platforms/mp-weibo/service/api/context/operate-map-player.js b/src/platforms/mp-weibo/service/api/context/operate-map-player.js
new file mode 100644
index 00000000000..abf1d8dd7be
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/context/operate-map-player.js
@@ -0,0 +1,8 @@
+export function operateMapPlayer (mapId, pageVm, type, data) {
+ const pageId = pageVm.$page.id
+ UniServiceJSBridge.publishHandler(pageId + '-map-' + mapId, {
+ mapId,
+ type,
+ data
+ }, pageId)
+}
diff --git a/src/platforms/mp-weibo/service/api/context/operate-video-player.js b/src/platforms/mp-weibo/service/api/context/operate-video-player.js
new file mode 100644
index 00000000000..2f154abaf2a
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/context/operate-video-player.js
@@ -0,0 +1,8 @@
+export function operateVideoPlayer (videoId, pageVm, type, data) {
+ const pageId = pageVm.$page.id
+ UniServiceJSBridge.publishHandler(pageId + '-video-' + videoId, {
+ videoId,
+ type,
+ data
+ }, pageId)
+}
diff --git a/src/platforms/mp-weibo/service/api/device/accelerometer.js b/src/platforms/mp-weibo/service/api/device/accelerometer.js
new file mode 100644
index 00000000000..736f0dbe51d
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/accelerometer.js
@@ -0,0 +1,78 @@
+let listener
+
+const callbackIds = []
+
+export function startAccelerometer (options, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ if (!window.DeviceMotionEvent) {
+ return {
+ errMsg: 'startAccelerometer:fail'
+ }
+ }
+ function addEventListener () {
+ listener = function (event) {
+ const acceleration = event.acceleration || event.accelerationIncludingGravity
+ callbackIds.forEach(callbackId => {
+ invoke(callbackId, {
+ x: acceleration.x || 0,
+ y: acceleration.y || 0,
+ z: acceleration.z || 0
+ })
+ })
+ }
+ window.addEventListener('devicemotion', listener, false)
+ }
+ if (!listener) {
+ if (DeviceMotionEvent.requestPermission) {
+ DeviceMotionEvent.requestPermission().then((res) => {
+ if (res === 'granted') {
+ addEventListener()
+ invoke(callbackId, {
+ errMsg: 'startAccelerometer:ok'
+ })
+ } else {
+ invoke(callbackId, {
+ errMsg: `startAccelerometer:fail ${res}`
+ })
+ }
+ }).catch(error => {
+ invoke(callbackId, {
+ errMsg: `startAccelerometer:fail ${error}`
+ })
+ })
+ return
+ }
+ addEventListener()
+ }
+ return {}
+}
+
+export function stopAccelerometer () {
+ if (listener) {
+ window.removeEventListener('devicemotion', listener, false)
+ listener = null
+ }
+ return {}
+}
+
+export function onAccelerometerChange (callbackId) {
+ if (!callbackIds.length) {
+ startAccelerometer()
+ }
+ callbackIds.push(callbackId)
+}
+
+export function offAccelerometerChange (callbackId) {
+ // 暂不支持移除所有监听
+ if (callbackId) {
+ const index = callbackIds.indexOf(callbackId)
+ if (index >= 0) {
+ callbackIds.splice(index, 1)
+ }
+ }
+ if (!callbackIds.length) {
+ stopAccelerometer()
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/device/clipboard.js b/src/platforms/mp-weibo/service/api/device/clipboard.js
new file mode 100644
index 00000000000..4f473b41be8
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/clipboard.js
@@ -0,0 +1,42 @@
+
+export function getClipboardData () {
+ const pasteText = document.getElementById('#clipboard')
+ const data = pasteText ? pasteText.value : undefined
+ if (data) {
+ return {
+ data,
+ errMsg: 'getClipboardData:ok'
+ }
+ } else {
+ return {
+ errMsg: 'getClipboardData:fail'
+ }
+ }
+}
+
+export function setClipboardData ({
+ data
+}) {
+ const pasteText = document.getElementById('#clipboard')
+ pasteText && pasteText.remove()
+ const textarea = document.createElement('textarea')
+ textarea.id = '#clipboard'
+ textarea.style.position = 'fixed'
+ textarea.style.top = '-9999px'
+ textarea.style.zIndex = '-9999'
+ document.body.appendChild(textarea)
+ textarea.value = data
+ textarea.select()
+ textarea.setSelectionRange(0, textarea.value.length)
+ const result = document.execCommand('Copy', false, null)
+ textarea.blur()
+ if (result) {
+ return {
+ errMsg: 'setClipboardData:ok'
+ }
+ } else {
+ return {
+ errMsg: 'setClipboardData:fail'
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/device/compass.js b/src/platforms/mp-weibo/service/api/device/compass.js
new file mode 100644
index 00000000000..2905de0c241
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/compass.js
@@ -0,0 +1,76 @@
+let listener
+
+const callbackIds = []
+
+export function startCompass (options, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ if (!window.DeviceOrientationEvent) {
+ return {
+ errMsg: 'startCompass:fail'
+ }
+ }
+ function addEventListener () {
+ listener = function (event) {
+ const direction = 360 - event.alpha
+ callbackIds.forEach(callbackId => {
+ invoke(callbackId, {
+ direction: direction || 0
+ })
+ })
+ }
+ window.addEventListener('deviceorientation', listener, false)
+ }
+ if (!listener) {
+ if (DeviceOrientationEvent.requestPermission) {
+ DeviceOrientationEvent.requestPermission().then((res) => {
+ if (res === 'granted') {
+ addEventListener()
+ invoke(callbackId, {
+ errMsg: 'startCompass:ok'
+ })
+ } else {
+ invoke(callbackId, {
+ errMsg: `startCompass:fail ${res}`
+ })
+ }
+ }).catch(error => {
+ invoke(callbackId, {
+ errMsg: `startCompass:fail ${error}`
+ })
+ })
+ return
+ }
+ addEventListener()
+ }
+ return {}
+}
+
+export function stopCompass () {
+ if (listener) {
+ window.removeEventListener('deviceorientation', listener, false)
+ listener = null
+ }
+ return {}
+}
+
+export function onCompassChange (callbackId) {
+ if (!callbackIds.length) {
+ startCompass()
+ }
+ callbackIds.push(callbackId)
+}
+
+export function offCompassChange (callbackId) {
+ // 暂不支持移除所有监听
+ if (callbackId) {
+ const index = callbackIds.indexOf(callbackId)
+ if (index >= 0) {
+ callbackIds.splice(index, 1)
+ }
+ }
+ if (!callbackIds.length) {
+ stopCompass()
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/device/get-system-info.js b/src/platforms/mp-weibo/service/api/device/get-system-info.js
new file mode 100644
index 00000000000..f790f2f88e5
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/get-system-info.js
@@ -0,0 +1,117 @@
+import { getWindowInfo } from './get-window-info'
+import deviceId from 'uni-platform/helpers/uuid'
+import { getBrowserInfo } from '../base/get-browser-info'
+import { sortObject } from 'uni-shared'
+
+let browserInfo = {}
+let _initBrowserInfo = true
+
+function initBrowserInfo () {
+ if (!_initBrowserInfo) return
+ browserInfo = getBrowserInfo()
+}
+
+export function getDeviceInfo () {
+ initBrowserInfo()
+ const {
+ deviceBrand,
+ deviceModel,
+ brand,
+ model,
+ platform,
+ system,
+ deviceOrientation,
+ deviceType
+ } = browserInfo
+
+ return {
+ brand,
+ deviceBrand,
+ deviceModel,
+ devicePixelRatio: window.devicePixelRatio,
+ deviceId: deviceId(),
+ deviceOrientation,
+ deviceType,
+ model,
+ platform,
+ system
+ }
+}
+
+export function getAppBaseInfo () {
+ initBrowserInfo()
+ const { theme, language, browserName, browserVersion } = browserInfo
+
+ const appLanguage = uni
+ ? uni.getLocale
+ ? uni.getLocale()
+ : language
+ : language
+
+ return {
+ appId: __uniConfig.appId,
+ appName: __uniConfig.appName,
+ appVersion: __uniConfig.appVersion,
+ appVersionCode: __uniConfig.appVersionCode,
+ appLanguage,
+ enableDebug: false,
+ hostSDKVersion: undefined,
+ hostPackageName: undefined,
+ hostFontSizeSetting: undefined,
+ hostName: browserName,
+ hostVersion: browserVersion,
+ hostTheme: theme,
+ hostLanguage: language,
+ language,
+ SDKVersion: '',
+ theme,
+ version: ''
+ }
+}
+
+/**
+ * 获取系统信息-同步
+ */
+export function getSystemInfoSync () {
+ _initBrowserInfo = true
+ initBrowserInfo()
+ _initBrowserInfo = false
+ const windowInfo = getWindowInfo()
+ const deviceInfo = getDeviceInfo()
+ const appBaseInfo = getAppBaseInfo()
+ _initBrowserInfo = true
+
+ const { ua, browserName, browserVersion, osname, osversion } = browserInfo
+
+ const systemInfo = Object.assign(
+ {},
+ windowInfo,
+ deviceInfo,
+ appBaseInfo,
+ {
+ browserName,
+ browserVersion,
+ fontSizeSetting: appBaseInfo.hostFontSizeSetting,
+ osName: osname.toLocaleLowerCase(),
+ osVersion: osversion,
+ osLanguage: undefined,
+ osTheme: undefined,
+ uniPlatform: 'web',
+ uniCompileVersion: __uniConfig.compilerVersion,
+ uniRuntimeVersion: __uniConfig.compilerVersion,
+ ua
+ }
+ )
+
+ delete systemInfo.screenTop
+ delete systemInfo.enableDebug
+ if (!__uniConfig.darkmode) delete systemInfo.theme
+
+ return sortObject(systemInfo)
+}
+/**
+ * 获取系统信息-异步
+ */
+export function getSystemInfo () {
+ return getSystemInfoSync()
+}
diff --git a/src/platforms/mp-weibo/service/api/device/get-window-info.js b/src/platforms/mp-weibo/service/api/device/get-window-info.js
new file mode 100644
index 00000000000..40e9db055f6
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/get-window-info.js
@@ -0,0 +1,51 @@
+import getWindowOffset from 'uni-platform/helpers/get-window-offset'
+import safeAreaInsets from 'safe-area-insets'
+
+export function getWindowInfo () {
+ var screen = window.screen
+ var pixelRatio = window.devicePixelRatio
+ // 横屏时 iOS 获取的屏幕宽高颠倒,进行纠正
+ const screenFix = /^Apple/.test(navigator.vendor) && typeof window.orientation === 'number'
+ const landscape = screenFix && Math.abs(window.orientation) === 90
+ var screenWidth = screenFix ? Math[landscape ? 'max' : 'min'](screen.width, screen.height) : screen.width
+ var screenHeight = screenFix ? Math[landscape ? 'min' : 'max'](screen.height, screen.width) : screen.height
+ var windowWidth = Math.min(window.innerWidth, document.documentElement.clientWidth, screenWidth) || screenWidth
+ var windowHeight = window.innerHeight
+ var statusBarHeight = safeAreaInsets.top
+
+ var safeArea = {
+ left: safeAreaInsets.left,
+ right: windowWidth - safeAreaInsets.right,
+ top: safeAreaInsets.top,
+ bottom: windowHeight - safeAreaInsets.bottom,
+ width: windowWidth - safeAreaInsets.left - safeAreaInsets.right,
+ height: windowHeight - safeAreaInsets.top - safeAreaInsets.bottom
+ }
+
+ const {
+ top: windowTop,
+ bottom: windowBottom
+ } = getWindowOffset()
+
+ windowHeight -= windowTop
+ windowHeight -= windowBottom
+
+ return {
+ windowTop,
+ windowBottom,
+ windowWidth,
+ windowHeight,
+ pixelRatio,
+ screenWidth,
+ screenHeight,
+ statusBarHeight,
+ safeArea,
+ safeAreaInsets: {
+ top: safeAreaInsets.top,
+ right: safeAreaInsets.right,
+ bottom: safeAreaInsets.bottom,
+ left: safeAreaInsets.left
+ },
+ screenTop: screenHeight - windowHeight
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/device/make-phone-call.js b/src/platforms/mp-weibo/service/api/device/make-phone-call.js
new file mode 100644
index 00000000000..274224f8b2b
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/make-phone-call.js
@@ -0,0 +1,8 @@
+export function makePhoneCall ({
+ phoneNumber
+}) {
+ window.location.href = `tel:${phoneNumber}`
+ return {
+ errMsg: 'makePhoneCall:ok'
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/device/network-info.js b/src/platforms/mp-weibo/service/api/device/network-info.js
new file mode 100644
index 00000000000..bd94693ab15
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/network-info.js
@@ -0,0 +1,67 @@
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+const callbackIds = []
+
+function changeHandler () {
+ const {
+ networkType
+ } = getNetworkType()
+ callbackIds.forEach(callbackId => {
+ invoke(callbackId, {
+ errMsg: 'onNetworkStatusChange:ok',
+ isConnected: networkType !== 'none',
+ networkType
+ })
+ })
+}
+
+export function onNetworkStatusChange (callbackId) {
+ const connection = navigator.connection || navigator.webkitConnection
+ callbackIds.push(callbackId)
+ if (connection) {
+ connection.addEventListener('change', changeHandler)
+ } else {
+ window.addEventListener('offline', changeHandler)
+ window.addEventListener('online', changeHandler)
+ }
+}
+
+export function offNetworkStatusChange (callbackId) {
+ // 暂不支持移除所有监听
+ if (callbackId) {
+ const index = callbackIds.indexOf(callbackId)
+ if (index >= 0) {
+ callbackIds.splice(index, 1)
+ }
+ }
+ if (!callbackIds.length) {
+ const connection = navigator.connection || navigator.webkitConnection
+ if (connection) {
+ connection.removeEventListener('change', changeHandler)
+ } else {
+ window.removeEventListener('offline', changeHandler)
+ window.removeEventListener('online', changeHandler)
+ }
+ }
+}
+
+export function getNetworkType () {
+ const connection = navigator.connection || navigator.webkitConnection
+ let networkType = 'unknown'
+ if (connection) {
+ networkType = connection.type
+ if (networkType === 'cellular' && connection.effectiveType) {
+ networkType = connection.effectiveType.replace('slow-', '')
+ } else if (!['none', 'wifi'].includes(networkType)) {
+ networkType = 'unknown'
+ }
+ } else if (navigator.onLine === false) {
+ networkType = 'none'
+ }
+ return {
+ errMsg: 'getNetworkType:ok',
+ networkType
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/device/vibrate.js b/src/platforms/mp-weibo/service/api/device/vibrate.js
new file mode 100644
index 00000000000..aa3c80a912c
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/device/vibrate.js
@@ -0,0 +1,25 @@
+const _isSupport = !!window.navigator.vibrate
+
+export function vibrateLong () {
+ if (_isSupport && window.navigator.vibrate(400)) {
+ return {
+ errMsg: 'vibrateLong:ok'
+ }
+ } else {
+ return {
+ errMsg: 'vibrateLong:fail'
+ }
+ }
+}
+
+export function vibrateShort () {
+ if (_isSupport && window.navigator.vibrate(15)) {
+ return {
+ errMsg: 'vibrateShort:ok'
+ }
+ } else {
+ return {
+ errMsg: 'vibrateShort:fail'
+ }
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/file/file.js b/src/platforms/mp-weibo/service/api/file/file.js
new file mode 100644
index 00000000000..5af5fe2aa00
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/file/file.js
@@ -0,0 +1,23 @@
+import {
+ urlToFile
+} from 'uni-platform/helpers/file'
+
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+export function getFileInfo ({
+ filePath
+} = {}, callbackId) {
+ // TODO 计算文件摘要
+ urlToFile(filePath).then((res) => {
+ invoke(callbackId, {
+ errMsg: 'getFileInfo:ok',
+ size: res.size
+ })
+ }).catch((err) => {
+ invoke(callbackId, {
+ errMsg: 'getFileInfo:fail ' + err.message
+ })
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/file/open-document.js b/src/platforms/mp-weibo/service/api/file/open-document.js
new file mode 100644
index 00000000000..aa79086d35c
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/file/open-document.js
@@ -0,0 +1,16 @@
+/**
+ * 打开文档
+ * @param {*} param0
+ * @param {*} callbackId
+ */
+export function openDocument ({
+ filePath
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ window.open(filePath)
+ invoke(callbackId, {
+ errMsg: 'openDocument:ok'
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/index.js b/src/platforms/mp-weibo/service/api/index.js
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/platforms/mp-weibo/service/api/keyboard/keyboard.js b/src/platforms/mp-weibo/service/api/keyboard/keyboard.js
new file mode 100644
index 00000000000..2a8392b82fd
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/keyboard/keyboard.js
@@ -0,0 +1,6 @@
+export function hideKeyboard () {
+ const activeElement = document.activeElement
+ if (activeElement && (activeElement.tagName === 'TEXTAREA' || activeElement.tagName === 'INPUT')) {
+ activeElement.blur()
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/location/choose-location.js b/src/platforms/mp-weibo/service/api/location/choose-location.js
new file mode 100644
index 00000000000..b751a80c557
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/location/choose-location.js
@@ -0,0 +1,32 @@
+/**
+ * 选择位置
+ * @param {*} callbackId
+ */
+export function chooseLocation (options, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ getApp().$router.push({
+ type: 'navigateTo',
+ path: '/choose-location',
+ query: options
+ }, function () {
+ var 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'
+ })
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/location/get-location.js b/src/platforms/mp-weibo/service/api/location/get-location.js
new file mode 100644
index 00000000000..dbd8badf337
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/location/get-location.js
@@ -0,0 +1,129 @@
+import {
+ getJSONP
+} from '../../../helpers/get-jsonp'
+import {
+ MapType,
+ getMapInfo,
+ translateCoordinateSystem
+} from '../../../helpers/location'
+import { loadMaps } from '../../../view/components/map/maps'
+
+/**
+ * 获取定位信息
+ * @param {*} options
+ * @param {*} callbackId
+ */
+export function getLocation ({
+ type,
+ altitude,
+ isHighAccuracy,
+ highAccuracyExpireTime
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ const mapInfo = getMapInfo()
+
+ new Promise((resolve, reject) => {
+ if (navigator.geolocation) {
+ navigator.geolocation.getCurrentPosition(res => resolve({ coords: res.coords }), reject, {
+ enableHighAccuracy: isHighAccuracy || altitude,
+ timeout: highAccuracyExpireTime || 1000 * 100
+ })
+ } else {
+ reject(new Error('device nonsupport geolocation'))
+ }
+ }).catch(() => {
+ return new Promise((resolve, reject) => {
+ if (mapInfo.type === MapType.QQ) {
+ getJSONP(`https://apis.map.qq.com/ws/location/v1/ip?output=jsonp&key=${mapInfo.key}`, {
+ callback: 'callback'
+ }, (res) => {
+ if ('result' in res && res.result.location) {
+ const location = res.result.location
+ resolve({
+ coords: {
+ latitude: location.lat,
+ longitude: location.lng
+ },
+ skip: true
+ })
+ } else {
+ reject(new Error(res.message || JSON.stringify(res)))
+ }
+ }, () => reject(new Error('network error')))
+ } else if (mapInfo.type === MapType.GOOGLE) {
+ uni.request({
+ method: 'POST',
+ url: `https://www.googleapis.com/geolocation/v1/geolocate?key=${mapInfo.key}`,
+ success (res) {
+ const data = res.data
+ if ('location' in data) {
+ resolve({
+ coords: {
+ latitude: data.location.lat,
+ longitude: data.location.lng,
+ accuracy: data.accuracy
+ },
+ skip: true
+ })
+ } else {
+ reject(new Error((data.error && data.error.message) || JSON.stringify(res)))
+ }
+ },
+ fail () {
+ reject(new Error('network error'))
+ }
+ })
+ } else if (mapInfo.type === MapType.AMAP) {
+ loadMaps([], () => {
+ window.AMap.plugin('AMap.Geolocation', () => {
+ const geolocation = new window.AMap.Geolocation({
+ enableHighAccuracy: true,
+ timeout: 10000
+ })
+
+ geolocation.getCurrentPosition((status, data) => {
+ if (status === 'complete') {
+ resolve({
+ coords: {
+ latitude: data.position.lat,
+ longitude: data.position.lng,
+ accuracy: data.accuracy
+ },
+ skip: true
+ })
+ } else {
+ reject(new Error(data.message))
+ }
+ })
+ })
+ })
+ } else {
+ reject(new Error('network error'))
+ }
+ })
+ }).then(({ coords, skip }) => {
+ translateCoordinateSystem(type, coords, skip)
+ .then(coords => {
+ invoke(
+ callbackId,
+ Object.assign(coords, {
+ errMsg: 'getLocation:ok',
+ verticalAccuracy: coords.altitudeAccuracy || 0,
+ // 无专门水平精度,使用位置精度替代
+ horizontalAccuracy: coords.accuracy
+ })
+ )
+ })
+ .catch(error => {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail ' + error.message
+ })
+ })
+ }).catch((error) => {
+ invoke(callbackId, {
+ errMsg: 'getLocation:fail ' + error.message || JSON.stringify(error)
+ })
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/location/location-change.js b/src/platforms/mp-weibo/service/api/location/location-change.js
new file mode 100644
index 00000000000..44699c184d8
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/location/location-change.js
@@ -0,0 +1,88 @@
+import { translateCoordinateSystem } from '../../../helpers/location'
+
+const { invokeCallbackHandler: invoke } = UniServiceJSBridge
+let successCallbackIds = []
+let errorCallbackIds = []
+let started = false
+let watchId = 0
+
+export function startLocationUpdate ({ type = 'gcj02' }, callbackId) {
+ if (!navigator.geolocation) {
+ return {
+ errMsg: 'startLocationUpdate:fail'
+ }
+ }
+
+ watchId = watchId || navigator.geolocation.watchPosition(
+ res => {
+ started = true
+ translateCoordinateSystem(type, res.coords)
+ .then((coords) => {
+ successCallbackIds.forEach(callbackId => {
+ invoke(callbackId, coords)
+ })
+ }).catch(error => {
+ errorCallbackIds.forEach(callbackId => {
+ invoke(callbackId, {
+ errMsg: `onLocationChange:fail ${error.message}`
+ })
+ })
+ })
+ },
+ error => {
+ if (!started) {
+ invoke(callbackId, { errMsg: `startLocationUpdate:fail ${error.message}` })
+ started = true
+ }
+ errorCallbackIds.forEach(callbackId => {
+ invoke(callbackId, {
+ errMsg: `onLocationChange:fail ${error.message}`
+ })
+ })
+ }
+ )
+ setTimeout(() => {
+ invoke(callbackId, {
+ errMsg: 'startLocationUpdate:ok'
+ })
+ }, 100)
+}
+
+export function stopLocationUpdate () {
+ if (watchId !== 0) {
+ navigator.geolocation.clearWatch(watchId)
+ started = false
+ watchId = 0
+ }
+ return {}
+}
+
+export function onLocationChange (callbackId) {
+ successCallbackIds.push(callbackId)
+}
+
+export function offLocationChange (callbackId) {
+ if (callbackId) {
+ const index = successCallbackIds.indexOf(callbackId)
+ if (index >= 0) {
+ successCallbackIds.splice(index, 1)
+ }
+ } else {
+ successCallbackIds = []
+ }
+}
+
+export function onLocationChangeError (callbackId) {
+ errorCallbackIds.push(callbackId)
+}
+
+export function offLocationChangeError (callbackId) {
+ if (callbackId) {
+ const index = errorCallbackIds.indexOf(callbackId)
+ if (index >= 0) {
+ errorCallbackIds.splice(index, 1)
+ }
+ } else {
+ errorCallbackIds = []
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/location/open-location.js b/src/platforms/mp-weibo/service/api/location/open-location.js
new file mode 100644
index 00000000000..4b514a4a7ab
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/location/open-location.js
@@ -0,0 +1,36 @@
+/**
+ * 查看位置
+ * @param {*} param0
+ * @param {*} callbackId
+ */
+export function openLocation ({
+ latitude,
+ longitude,
+ scale,
+ name,
+ address
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+
+ getApp().$router.push({
+ type: 'navigateTo',
+ path: '/open-location',
+ query: {
+ latitude,
+ longitude,
+ scale,
+ name,
+ address
+ }
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'openLocation:ok'
+ })
+ }, function () {
+ invoke(callbackId, {
+ errMsg: 'openLocation:fail'
+ })
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/media/MIMEType.js b/src/platforms/mp-weibo/service/api/media/MIMEType.js
new file mode 100644
index 00000000000..bbbf163a73f
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/MIMEType.js
@@ -0,0 +1,53 @@
+export default {
+ /**
+ * 关于图片常见的MIME类型
+ */
+ image: {
+ jpg: 'jpeg',
+ jpe: 'jpeg',
+ pbm: 'x-portable-bitmap',
+ pgm: 'x-portable-graymap',
+ pnm: 'x-portable-anymap',
+ ppm: 'x-portable-pixmap',
+ psd: 'vnd.adobe.photoshop',
+ pic: 'x-pict',
+ rgb: 'x-rgb',
+ svg: 'svg+xml',
+ svgz: 'svg+xml',
+ tif: 'tiff',
+ xif: 'vnd.xiff',
+ wbmp: 'vnd.wap.wbmp',
+ wdp: 'vnd.ms-photo',
+ xbm: 'x-xbitmap',
+ ico: 'x-icon'
+ },
+ /**
+ * 关于视频常见的MIME类型
+ */
+ video: {
+ '3g2': '3gpp2',
+ '3gp': '3gpp',
+ avi: 'x-msvideo',
+ f4v: 'x-f4v',
+ flv: 'x-flv',
+ jpgm: 'jpm',
+ jpgv: 'jpeg',
+ m1v: 'mpeg',
+ m2v: 'mpeg',
+ mpe: 'mpeg',
+ mpg: 'mpeg',
+ mpg4: 'mpeg',
+ m4v: 'x-m4v',
+ mkv: 'x-matroska',
+ mov: 'quicktime',
+ qt: 'quicktime',
+ movie: 'x-sgi-movie',
+ mp4v: 'mp4',
+ ogv: 'ogg',
+ smv: 'x-smv',
+ wm: 'x-ms-wm',
+ wmv: 'x-ms-wmv',
+ wmx: 'x-ms-wmx',
+ wvx: 'x-ms-wvx'
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/media/choose-file.js b/src/platforms/mp-weibo/service/api/media/choose-file.js
new file mode 100644
index 00000000000..02d0e224b58
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/choose-file.js
@@ -0,0 +1,65 @@
+import { fileToUrl } from 'uni-platform/helpers/file'
+import { t } from 'uni-core/helpers/i18n'
+import _createInput from './create_input'
+import { interact } from 'uni-mixins'
+
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+let fileInput = null
+
+export function chooseFile ({
+ // sizeType,
+ count,
+ sourceType,
+ type,
+ extension
+}, callbackId) {
+ // TODO handle sizeType 尝试通过 canvas 压缩
+
+ if (fileInput) {
+ document.body.removeChild(fileInput)
+ fileInput = null
+ }
+
+ fileInput = _createInput({
+ count,
+ sourceType,
+ type,
+ extension
+ })
+ document.body.appendChild(fileInput)
+
+ fileInput.addEventListener('change', function (event) {
+ const tempFiles = []
+ const fileCount = event.target.files.length
+ for (let i = 0; i < fileCount; i++) {
+ const file = event.target.files[i]
+ let filePath
+ Object.defineProperty(file, 'path', {
+ get () {
+ filePath = filePath || fileToUrl(file)
+ return filePath
+ }
+ })
+ if (i < count) tempFiles.push(file)
+ }
+ const res = {
+ errMsg: 'chooseFile:ok',
+ get tempFilePaths () {
+ return tempFiles.map(({ path }) => path)
+ },
+ tempFiles: tempFiles
+ }
+ invoke(callbackId, res)
+
+ // TODO 用户取消选择时,触发 fail,目前尚未找到合适的方法。
+ })
+
+ fileInput.click()
+
+ if (!interact.getStatus()) {
+ console.warn(`${t('uni.chooseFile.notUserActivation')}`)
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/media/choose-image.js b/src/platforms/mp-weibo/service/api/media/choose-image.js
new file mode 100644
index 00000000000..682dc41c420
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/choose-image.js
@@ -0,0 +1,63 @@
+import { fileToUrl } from 'uni-platform/helpers/file'
+import { t } from 'uni-core/helpers/i18n'
+import _createInput from './create_input'
+import { interact } from 'uni-mixins'
+
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+let imageInput = null
+
+export function chooseImage ({
+ count,
+ // sizeType,
+ sourceType,
+ extension
+}, callbackId) {
+ // TODO handle sizeType 尝试通过 canvas 压缩
+
+ if (imageInput) {
+ document.body.removeChild(imageInput)
+ imageInput = null
+ }
+
+ imageInput = _createInput({
+ count,
+ sourceType,
+ extension,
+ type: 'image'
+ })
+ document.body.appendChild(imageInput)
+ imageInput.addEventListener('change', function (event) {
+ const tempFiles = []
+ const fileCount = event.target.files.length
+ for (let i = 0; i < fileCount; i++) {
+ const file = event.target.files[i]
+ let filePath
+ Object.defineProperty(file, 'path', {
+ get () {
+ filePath = filePath || fileToUrl(file)
+ return filePath
+ }
+ })
+ if (i < count) tempFiles.push(file)
+ }
+ const res = {
+ errMsg: 'chooseImage:ok',
+ get tempFilePaths () {
+ return tempFiles.map(({ path }) => path)
+ },
+ tempFiles: tempFiles
+ }
+ invoke(callbackId, res)
+
+ // TODO 用户取消选择时,触发 fail,目前尚未找到合适的方法。
+ })
+
+ imageInput.click()
+
+ if (!interact.getStatus()) {
+ console.warn(`${t('uni.chooseFile.notUserActivation')}`)
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/media/choose-video.js b/src/platforms/mp-weibo/service/api/media/choose-video.js
new file mode 100644
index 00000000000..c363aaa0869
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/choose-video.js
@@ -0,0 +1,77 @@
+import { fileToUrl, revokeObjectURL } from 'uni-platform/helpers/file'
+import { t } from 'uni-core/helpers/i18n'
+import _createInput from './create_input'
+import { interact } from 'uni-mixins'
+
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+let videoInput = null
+
+export function chooseVideo ({
+ sourceType,
+ extension
+}, callbackId) {
+ if (videoInput) {
+ document.body.removeChild(videoInput)
+ videoInput = null
+ }
+
+ videoInput = _createInput({
+ sourceType: sourceType,
+ extension,
+ type: 'video'
+ })
+ document.body.appendChild(videoInput)
+
+ videoInput.addEventListener('change', function (event) {
+ const file = event.target.files[0]
+ const callbackResult = {
+ errMsg: 'chooseVideo:ok',
+ tempFile: file,
+ size: file.size,
+ duration: 0,
+ width: 0,
+ height: 0,
+ name: file.name
+ }
+ let filePath
+ Object.defineProperty(callbackResult, 'tempFilePath', {
+ get () {
+ filePath = filePath || fileToUrl(this.tempFile)
+ return filePath
+ }
+ })
+
+ const video = document.createElement('video')
+ if (video.onloadedmetadata !== undefined) {
+ const filePath = fileToUrl(file)
+ // 尝试获取视频的宽高信息
+ video.onloadedmetadata = function () {
+ revokeObjectURL(filePath)
+ invoke(callbackId, Object.assign(callbackResult, {
+ duration: video.duration || 0,
+ width: video.videoWidth || 0,
+ height: video.videoHeight || 0
+ }))
+ }
+ // 部分浏览器(如微信内置浏览器)未播放无法触发loadedmetadata事件
+ setTimeout(() => {
+ video.onloadedmetadata = null
+ revokeObjectURL(filePath)
+ invoke(callbackId, callbackResult)
+ }, 300)
+ video.src = filePath
+ } else {
+ invoke(callbackId, callbackResult)
+ }
+ // TODO 用户取消选择时,触发 fail,目前尚未找到合适的方法。
+ })
+
+ videoInput.click()
+
+ if (!interact.getStatus()) {
+ console.warn(`${t('uni.chooseFile.notUserActivation')}`)
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/media/create_input.js b/src/platforms/mp-weibo/service/api/media/create_input.js
new file mode 100644
index 00000000000..88583032365
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/create_input.js
@@ -0,0 +1,60 @@
+import { updateElementStyle } from 'uni-shared'
+import MIMEType from './MIMEType'
+import { interact } from 'uni-mixins'
+
+interact.addInteractListener()
+
+const ALL = '*'
+
+function isWXEnv () {
+ const ua = window.navigator.userAgent.toLowerCase()
+ if (ua.match(/MicroMessenger/i) && ua.match(/MicroMessenger/i)[0] === 'micromessenger') {
+ return true
+ } else {
+ return false
+ }
+}
+
+export default function ({ count, sourceType, type, extension }) {
+ const inputEl = document.createElement('input')
+ inputEl.type = 'file'
+
+ updateElementStyle(inputEl, {
+ position: 'absolute',
+ visibility: 'hidden',
+ 'z-index': -999,
+ width: 0,
+ height: 0,
+ top: 0,
+ left: 0
+ })
+
+ /**
+ * 选择文件
+ * chooseFile 使用后缀名
+ * chooseImage、chooseVideo 使用MIME类型
+ */
+ inputEl.accept = extension.map(item => {
+ if (type !== ALL) {
+ const MIMEKey = item.replace('.', '')
+ return `${type}/${MIMEType[type][MIMEKey] || MIMEKey}`
+ } else {
+ // 在微信环境里,'.jpeg,.png' 会提示没有应用可执行此操作
+ if (isWXEnv()) {
+ return '.'
+ }
+ return item.indexOf('.') === 0 ? item : `.${item}`
+ }
+ }).join(',')
+
+ if (count > 1) {
+ inputEl.multiple = 'multiple'
+ }
+
+ // 经过测试,仅能限制只通过相机拍摄,不能限制只允许从相册选择。
+ if (sourceType.length === 1 && sourceType[0] === 'camera') {
+ inputEl.capture = 'camera'
+ }
+
+ return inputEl
+}
diff --git a/src/platforms/mp-weibo/service/api/media/get-image-info.js b/src/platforms/mp-weibo/service/api/media/get-image-info.js
new file mode 100644
index 00000000000..78039eff17c
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/get-image-info.js
@@ -0,0 +1,27 @@
+function _getServiceAddress () {
+ return window.location.protocol + '//' + window.location.host
+}
+
+export function getImageInfo ({
+ src
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ const img = new Image()
+ const realPath = src
+ img.onload = function () {
+ invoke(callbackId, {
+ errMsg: 'getImageInfo:ok',
+ width: img.naturalWidth,
+ height: img.naturalHeight,
+ path: realPath.indexOf('/') === 0 ? _getServiceAddress() + realPath : realPath
+ })
+ }
+ img.onerror = function (e) {
+ invoke(callbackId, {
+ errMsg: 'getImageInfo:fail'
+ })
+ }
+ img.src = src
+}
diff --git a/src/platforms/mp-weibo/service/api/media/get-video-info.js b/src/platforms/mp-weibo/service/api/media/get-video-info.js
new file mode 100644
index 00000000000..63f39800d3e
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/get-video-info.js
@@ -0,0 +1,52 @@
+import {
+ urlToFile
+} from 'uni-platform/helpers/file'
+
+export function getVideoInfo ({
+ src
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ urlToFile(src, true).then(file => {
+ return file
+ }).catch(() => {
+ return {}
+ }).then(file => {
+ const result = file.size ? {
+ size: file.size,
+ errMsg: 'getVideoInfo:ok'
+ } : {
+ errMsg: 'getVideoInfo:fail'
+ }
+ const video = document.createElement('video')
+ if (video.onloadedmetadata !== undefined) {
+ // 部分浏览器(如微信内置浏览器)未播放无法触发loadedmetadata事件
+ const handle = setTimeout(() => {
+ video.onloadedmetadata = null
+ video.onerror = null
+ invoke(callbackId, result)
+ }, src.startsWith('data:') || src.startsWith('blob:') ? 300 : 3000)
+ // 尝试获取视频的宽高信息
+ video.onloadedmetadata = function () {
+ clearTimeout(handle)
+ video.onerror = null
+ invoke(callbackId, Object.assign(result, {
+ size: file.size,
+ duration: video.duration || 0,
+ width: video.videoWidth || 0,
+ height: video.videoHeight || 0,
+ errMsg: 'getVideoInfo:ok'
+ }))
+ }
+ video.onerror = function () {
+ clearTimeout(handle)
+ video.onloadedmetadata = null
+ invoke(callbackId, result)
+ }
+ video.src = src
+ } else {
+ invoke(callbackId, result)
+ }
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/media/preview-image.js b/src/platforms/mp-weibo/service/api/media/preview-image.js
new file mode 100644
index 00000000000..0f78fe7e760
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/media/preview-image.js
@@ -0,0 +1,20 @@
+const {
+ emit,
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+export function previewImage (args, callbackId) {
+ emit('onShowPreviewImage', args, function (res) {
+ invoke(callbackId, {
+ errMsg: 'previewImage:ok'
+ })
+ })
+}
+
+export function closePreviewImage (_, callbackId) {
+ emit('onClosePreviewImage', function () {
+ invoke(callbackId, {
+ errMsg: 'closePreviewImage:ok'
+ })
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/network/download-file.js b/src/platforms/mp-weibo/service/api/network/download-file.js
new file mode 100644
index 00000000000..6a7558b48d1
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/network/download-file.js
@@ -0,0 +1,119 @@
+import {
+ fileToUrl,
+ getFileName
+} from 'uni-platform/helpers/file'
+/**
+ * 下载任务
+ */
+class DownloadTask {
+ _xhr
+ _callbacks = []
+ constructor (xhr) {
+ this._xhr = xhr
+ }
+
+ /**
+ * 监听下载进度
+ * @param {Function} callback 回调
+ */
+ onProgressUpdate (callback) {
+ if (typeof callback !== 'function') {
+ return
+ }
+ this._callbacks.push(callback)
+ }
+
+ offProgressUpdate (callback) {
+ const index = this._callbacks.indexOf(callback)
+ if (index >= 0) {
+ this._callbacks.splice(index, 1)
+ }
+ }
+
+ /**
+ * 停止任务
+ */
+ abort () {
+ if (this._xhr) {
+ this._xhr.abort()
+ delete this._xhr
+ }
+ }
+}
+/**
+ * 下载文件
+ * @param {*} param0
+ * @param {string} callbackId
+ * @return {DownloadTask}
+ */
+export function downloadFile ({
+ url,
+ header,
+ timeout = (__uniConfig.networkTimeout && __uniConfig.networkTimeout.request) || 60 * 1000
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ var timer
+ var xhr = new XMLHttpRequest()
+ var downloadTask = new DownloadTask(xhr)
+ xhr.open('GET', url, true)
+ Object.keys(header).forEach(key => {
+ xhr.setRequestHeader(key, header[key])
+ })
+ xhr.responseType = 'blob'
+ xhr.onload = function () {
+ clearTimeout(timer)
+ const statusCode = xhr.status
+ const blob = this.response
+ let filename
+ // 使用 getResponseHeader 跨域时会出现警告,但相比 getAllResponseHeaders 更方便
+ const contentDisposition = xhr.getResponseHeader('content-disposition')
+ if (contentDisposition) {
+ // 暂时仅解析 filename 不解析 filename*
+ const res = contentDisposition.match(/filename="?(\S+)"?\b/)
+ if (res) {
+ filename = res[1]
+ }
+ }
+ blob.name = filename || getFileName(url)
+ invoke(callbackId, {
+ errMsg: 'downloadFile:ok',
+ statusCode,
+ tempFilePath: fileToUrl(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(callback => {
+ var totalBytesWritten = event.loaded
+ var totalBytesExpectedToWrite = event.total
+ var progress = Math.round(totalBytesWritten / totalBytesExpectedToWrite * 100)
+ callback({
+ progress,
+ totalBytesWritten,
+ 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
+}
diff --git a/src/platforms/mp-weibo/service/api/network/request.js b/src/platforms/mp-weibo/service/api/network/request.js
new file mode 100644
index 00000000000..30a08dd8e32
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/network/request.js
@@ -0,0 +1,155 @@
+import {
+ hasOwn
+} from 'uni-shared'
+
+/**
+ * 请求任务类
+ */
+class RequestTask {
+ _xhr
+ constructor (xhr) {
+ this._xhr = xhr
+ }
+
+ abort () {
+ if (this._xhr) {
+ this._xhr.abort()
+ delete this._xhr
+ }
+ }
+}
+
+/**
+ * 解析响应头
+ * @param {string} headers
+ * @return {object}
+ */
+function parseHeaders (headers) {
+ var headersObject = {}
+ var headersArray = headers.split('\n')
+ headersArray.forEach(header => {
+ var find = header.match(/(\S+\s*):\s*(.*)/)
+ if (!find || find.length !== 3) {
+ return
+ }
+ var key = find[1]
+ var val = find[2]
+ headersObject[key] = val
+ })
+ return headersObject
+}
+/**
+ * 发起网络请求
+ * @param {object} param0
+ * @param {string} callbackId
+ * @return {RequestTask}
+ */
+export function request ({
+ url,
+ data,
+ header,
+ method,
+ dataType,
+ responseType,
+ withCredentials,
+ timeout = (__uniConfig.networkTimeout && __uniConfig.networkTimeout.request) || 60 * 1000
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ var body = null
+ // 根据请求类型处理数据
+ var contentType
+ for (const key in header) {
+ if (hasOwn(header, key)) {
+ if (key.toLowerCase() === 'content-type') {
+ contentType = header[key]
+ if (contentType.indexOf('application/json') === 0) {
+ contentType = 'json'
+ } else if (contentType.indexOf('application/x-www-form-urlencoded') === 0) {
+ contentType = 'urlencoded'
+ } else {
+ contentType = 'string'
+ }
+ break
+ }
+ }
+ }
+ if (method !== 'GET') {
+ if (typeof data === 'string' || data instanceof ArrayBuffer) {
+ body = data
+ } else {
+ if (contentType === 'json') {
+ try {
+ body = JSON.stringify(data)
+ } catch (error) {
+ body = data.toString()
+ }
+ } else if (contentType === 'urlencoded') {
+ const bodyArray = []
+ for (const key in data) {
+ if (hasOwn(data, key)) {
+ bodyArray.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]))
+ }
+ }
+ body = bodyArray.join('&')
+ } else {
+ body = data.toString()
+ }
+ }
+ }
+ var xhr = new XMLHttpRequest()
+ var requestTask = new RequestTask(xhr)
+ xhr.open(method, url)
+ for (var key in header) {
+ if (hasOwn(header, key)) {
+ xhr.setRequestHeader(key, header[key])
+ }
+ }
+
+ var timer = setTimeout(function () {
+ xhr.onload = xhr.onabort = xhr.onerror = null
+ requestTask.abort()
+ invoke(callbackId, {
+ errMsg: 'request:fail timeout'
+ })
+ }, timeout)
+ xhr.responseType = responseType
+ xhr.onload = function () {
+ clearTimeout(timer)
+ const statusCode = xhr.status
+ let res = responseType === 'text' ? xhr.responseText : xhr.response
+ if (responseType === 'text' && dataType === 'json') {
+ try {
+ res = JSON.parse(res)
+ } catch (error) {
+ // 和微信一致解析失败不抛出错误
+ // invoke(callbackId, {
+ // errMsg: 'request:fail json parse error'
+ // })
+ // return
+ }
+ }
+ invoke(callbackId, {
+ data: res,
+ statusCode,
+ header: parseHeaders(xhr.getAllResponseHeaders()),
+ errMsg: 'request:ok'
+ })
+ }
+ xhr.onabort = function () {
+ clearTimeout(timer)
+ invoke(callbackId, {
+ errMsg: 'request:fail abort'
+ })
+ }
+ xhr.onerror = function () {
+ clearTimeout(timer)
+ invoke(callbackId, {
+ errMsg: 'request:fail'
+ })
+ }
+ xhr.withCredentials = withCredentials
+ xhr.send(body)
+ return requestTask
+}
diff --git a/src/platforms/mp-weibo/service/api/network/socket.js b/src/platforms/mp-weibo/service/api/network/socket.js
new file mode 100644
index 00000000000..56d131892de
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/network/socket.js
@@ -0,0 +1,220 @@
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+const eventNames = ['open', 'close', 'error', 'message']
+const callbacks = {}
+const socketTasks = []
+/**
+ * SocketTask
+ */
+class SocketTask {
+ /**
+ * WebSocket实例
+ */
+ _webSocket
+ /**
+ * 构造函数
+ * @param {string} url
+ * @param {Array} protocols
+ */
+ constructor (url, protocols, callback) {
+ let error
+ try {
+ const webSocket = this._webSocket = new WebSocket(url, protocols)
+ webSocket.binaryType = 'arraybuffer'
+ this._callbacks = {}
+ eventNames.forEach(name => {
+ this._callbacks[name] = []
+ webSocket.addEventListener(name, event => {
+ const { data, code, reason } = event
+ const res = name === 'message'
+ ? { data }
+ : name === 'close'
+ ? { code, reason }
+ : {}
+ this._callbacks[name].forEach(callback => {
+ try {
+ callback(res)
+ } catch (e) {
+ console.error(`thirdScriptError\n${e};at socketTask.on${name[0].toUpperCase() + name.substr(1)} callback function\n`, e)
+ }
+ })
+ if (this === socketTasks[0] && callbacks[name]) {
+ invoke(callbacks[name], res)
+ }
+ if (name === 'error' || name === 'close') {
+ const index = socketTasks.indexOf(this)
+ if (index >= 0) {
+ socketTasks.splice(index, 1)
+ }
+ }
+ })
+ })
+ const propertys = ['CLOSED', 'CLOSING', 'CONNECTING', 'OPEN', 'readyState']
+ propertys.forEach((property) => {
+ Object.defineProperty(this, property, {
+ get () {
+ return webSocket[property]
+ }
+ })
+ })
+ } catch (e) {
+ error = e
+ }
+ callback(error, this)
+ }
+
+ /**
+ * 发送
+ * @param {any} data
+ */
+ send (options = {}) {
+ const data = options.data
+ const ws = this._webSocket
+ try {
+ if (ws.readyState !== ws.OPEN) {
+ throw new Error('SocketTask.readyState is not OPEN')
+ }
+ ws.send(data)
+ this._callback(options, 'sendSocketMessage:ok')
+ } catch (error) {
+ this._callback(options, `sendSocketMessage:fail ${error}`)
+ }
+ }
+
+ /**
+ * 关闭
+ * @param {number} code
+ * @param {string} reason
+ */
+ close (options = {}) {
+ const ws = this._webSocket
+ const arrgs = []
+ arrgs.push(options.code || 1000)
+ if (typeof options.reason === 'string') {
+ arrgs.push(options.reason)
+ }
+ try {
+ ws.close(...arrgs)
+ this._callback(options, 'closeSocket:ok')
+ } catch (error) {
+ this._callback(options, `closeSocket:fail ${error}`)
+ }
+ }
+
+ /**
+ * 通用回调处理
+ */
+ _callback ({
+ success,
+ fail,
+ complete
+ }, errMsg) {
+ const data = {
+ errMsg
+ }
+ if (/:ok$/.test(errMsg)) {
+ if (typeof success === 'function') {
+ success(data)
+ }
+ } else {
+ if (typeof fail === 'function') {
+ fail(data)
+ }
+ }
+ if (typeof complete === 'function') {
+ complete(data)
+ }
+ }
+}
+eventNames.forEach(item => {
+ const name = item[0].toUpperCase() + item.substr(1)
+ SocketTask.prototype[`on${name}`] = function (callback) {
+ this._callbacks[item].push(callback)
+ }
+})
+/**
+ * 创建一个 WebSocket 连接
+ * @param {any} data 数据
+ * @return {SocketTask}
+ */
+export function connectSocket ({
+ url,
+ protocols
+}, callbackId) {
+ return new SocketTask(url, protocols, (error, socketTask) => {
+ if (!error) {
+ socketTasks.push(socketTask)
+ }
+ invoke(callbackId, {
+ errMsg: 'connectSocket:' + (error ? `fail ${error}` : 'ok')
+ })
+ })
+}
+/**
+ * 通过 WebSocket 连接发送数据
+ * @param {any} options
+ * @param {string} callbackId
+ */
+export function sendSocketMessage (options, callbackId) {
+ const socketTask = socketTasks[0]
+ if (socketTask && socketTask.readyState === socketTask.OPEN) {
+ socketTask.send(Object.assign({}, options, {
+ complete (res) {
+ invoke(callbackId, res)
+ }
+ }))
+ } else {
+ invoke(callbackId, {
+ errMsg: 'sendSocketMessage:fail WebSocket is not connected '
+ })
+ }
+}
+/**
+ * 关闭WebSocket连接
+ * @param {any} options
+ * @param {string} callbackId
+ */
+export function closeSocket (options, callbackId) {
+ const socketTask = socketTasks[0]
+ if (socketTask) {
+ socketTask.close(Object.assign({}, options, {
+ complete (res) {
+ invoke(callbackId, res)
+ }
+ }))
+ } else {
+ invoke(callbackId, {
+ errMsg: 'closeSocket:fail WebSocket is not connected'
+ })
+ }
+}
+/**
+ * 监听事件
+ * @param {string} method
+ */
+function on (method) {
+ return function (callbackId) {
+ callbacks[method] = callbackId
+ }
+}
+/**
+ * 监听WebSocket连接打开事件
+ * @param {Function} cb
+ */
+export const onSocketOpen = on('open')
+/**
+ * 监听WebSocket错误
+ * @param {Function} cb
+ */
+export const onSocketError = on('error')
+/**
+ * 监听WebSocket接受到服务器的消息事件
+ * @param {Function} cb
+ */
+export const onSocketMessage = on('message')
+/**
+ * 监听WebSocket关闭
+ * @param {Function} callback
+ */
+export const onSocketClose = on('close')
diff --git a/src/platforms/mp-weibo/service/api/network/upload-file.js b/src/platforms/mp-weibo/service/api/network/upload-file.js
new file mode 100644
index 00000000000..4fb033357e2
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/network/upload-file.js
@@ -0,0 +1,150 @@
+import {
+ urlToFile,
+ blobToFile
+} from 'uni-platform/helpers/file'
+/**
+ * 上传任务
+ */
+class UploadTask {
+ _xhr
+ _isAbort
+ _callbacks = []
+ constructor (xhr, callbackId) {
+ this._xhr = xhr
+ this._callbackId = callbackId
+ }
+
+ /**
+ * 监听上传进度
+ * @param callback 回调
+ */
+ onProgressUpdate (callback) {
+ if (typeof callback !== 'function') {
+ return
+ }
+ this._callbacks.push(callback)
+ }
+
+ offProgressUpdate (callback) {
+ const index = this._callbacks.indexOf(callback)
+ if (index >= 0) {
+ this._callbacks.splice(index, 1)
+ }
+ }
+
+ /**
+ * 中断上传任务
+ */
+ abort () {
+ this._isAbort = true
+ if (this._xhr) {
+ this._xhr.abort()
+ delete this._xhr
+ }
+ }
+}
+/**
+ * 上传文件
+ * @param {*} param0
+ * @param {*} callbackId
+ * @return {UploadTask}
+ */
+export function uploadFile ({
+ url,
+ file,
+ filePath,
+ name,
+ files,
+ header,
+ formData,
+ timeout = (__uniConfig.networkTimeout && __uniConfig.networkTimeout.uploadFile) || 60 * 1000
+}, callbackId) {
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ var uploadTask = new UploadTask(null, callbackId)
+ if (!Array.isArray(files) || !files.length) {
+ files = [{
+ name,
+ file,
+ uri: filePath
+ }]
+ }
+ function upload (realFiles) {
+ var xhr = new XMLHttpRequest()
+ var form = new FormData()
+ var timer
+ Object.keys(formData).forEach(key => {
+ form.append(key, formData[key])
+ })
+ Object.values(files).forEach(({ name }, index) => {
+ const file = realFiles[index]
+ form.append(name || 'file', file, file.name || `file-${Date.now()}`)
+ })
+ xhr.open('POST', url)
+ Object.keys(header).forEach(key => {
+ xhr.setRequestHeader(key, header[key])
+ })
+ xhr.upload.onprogress = function (event) {
+ uploadTask._callbacks.forEach(callback => {
+ var totalBytesSent = event.loaded
+ var totalBytesExpectedToSend = event.total
+ var progress = Math.round(totalBytesSent / totalBytesExpectedToSend * 100)
+ callback({
+ progress,
+ totalBytesSent,
+ totalBytesExpectedToSend
+ })
+ })
+ }
+ xhr.onerror = function () {
+ clearTimeout(timer)
+ invoke(callbackId, {
+ errMsg: 'uploadFile:fail'
+ })
+ }
+ xhr.onabort = function () {
+ clearTimeout(timer)
+ invoke(callbackId, {
+ errMsg: 'uploadFile:fail abort'
+ })
+ }
+ xhr.onload = function () {
+ clearTimeout(timer)
+ const statusCode = xhr.status
+ invoke(callbackId, {
+ errMsg: 'uploadFile:ok',
+ statusCode,
+ data: xhr.responseText || xhr.response
+ })
+ }
+ if (!uploadTask._isAbort) {
+ timer = setTimeout(function () {
+ xhr.upload.onprogress = xhr.onload = xhr.onabort = xhr.onerror = null
+ uploadTask.abort()
+ invoke(callbackId, {
+ errMsg: 'uploadFile:fail timeout'
+ })
+ }, timeout)
+ xhr.send(form)
+ uploadTask._xhr = xhr
+ } else {
+ invoke(callbackId, {
+ errMsg: 'uploadFile:fail abort'
+ })
+ }
+ }
+
+ Promise
+ .all(files.map(({ file, uri }) => file instanceof Blob ? Promise.resolve(blobToFile(file)) : urlToFile(uri)))
+ .then(upload)
+ .catch(() => {
+ setTimeout(() => {
+ invoke(callbackId, {
+ errMsg: 'uploadFile:fail file error'
+ })
+ }, 0)
+ })
+
+ return uploadTask
+}
diff --git a/src/platforms/mp-weibo/service/api/plugin/get-launch-options-sync.js b/src/platforms/mp-weibo/service/api/plugin/get-launch-options-sync.js
new file mode 100644
index 00000000000..a65ad9981f7
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/plugin/get-launch-options-sync.js
@@ -0,0 +1,11 @@
+import {
+ getLaunchOptions,
+ getEnterOptions
+} from 'uni-core/service/plugins/app'
+
+export function getLaunchOptionsSync () {
+ return getLaunchOptions()
+}
+export function getEnterOptionsSync () {
+ return getEnterOptions()
+}
diff --git a/src/platforms/mp-weibo/service/api/plugin/get-provider.js b/src/platforms/mp-weibo/service/api/plugin/get-provider.js
new file mode 100644
index 00000000000..b2a2cd4a885
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/plugin/get-provider.js
@@ -0,0 +1,8 @@
+export function getProvider ({
+ service
+}) {
+ return {
+ service,
+ provider: []
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/route/route.js b/src/platforms/mp-weibo/service/api/route/route.js
new file mode 100644
index 00000000000..6e484a24bfd
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/route/route.js
@@ -0,0 +1,135 @@
+import {
+ hasLifecycleHook,
+ findExistsPageIndex
+} from 'uni-helpers/index'
+
+import {
+ initEventChannel
+} from 'uni-helpers/navigate-to'
+
+const {
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+function onAppRoute (type, {
+ url,
+ delta,
+ events,
+ exists,
+ animationType,
+ animationDuration,
+ from = 'navigateBack',
+ detail
+} = {}) {
+ const router = getApp().$router
+ delete router.$eventChannel
+ switch (type) {
+ case 'redirectTo':
+ if (exists === 'back') {
+ const existsPageIndex = findExistsPageIndex(url)
+ if (existsPageIndex !== -1) {
+ const delta = (getCurrentPages().length - 1) - existsPageIndex
+ if (delta > 0) {
+ return onAppRoute('navigateBack', {
+ delta
+ })
+ }
+ }
+ }
+ router.replace({
+ type,
+ path: url
+ })
+ break
+ case 'navigateTo':
+ router.$eventChannel = initEventChannel(events)
+ router.push({
+ type,
+ path: url,
+ animationType,
+ animationDuration
+ })
+ return {
+ errMsg: type + ':ok',
+ eventChannel: router.$eventChannel
+ }
+ case 'navigateBack':
+ {
+ let canBack = true
+ const pages = getCurrentPages()
+ if (pages.length) {
+ const page = pages[pages.length - 1]
+ if (hasLifecycleHook(page.$options, 'onBackPress') && page.__call_hook('onBackPress', {
+ from
+ }) === true) {
+ canBack = false
+ }
+ }
+ if (canBack) {
+ if (delta > 1) {
+ router._$delta = delta
+ }
+ router.go(-delta, {
+ animationType,
+ animationDuration
+ })
+ }
+ }
+ break
+ case 'reLaunch':
+ router.replace({
+ type,
+ path: url
+ })
+ break
+ case 'switchTab':
+ router.replace({
+ type,
+ path: url,
+ params: {
+ detail
+ }
+ })
+ break
+ }
+ return {
+ errMsg: type + ':ok'
+ }
+}
+
+export function redirectTo (args) {
+ return onAppRoute('redirectTo', args)
+}
+
+export function navigateTo (args) {
+ return onAppRoute('navigateTo', args)
+}
+
+export function navigateBack (args) {
+ return onAppRoute('navigateBack', args)
+}
+
+export function reLaunch (args) {
+ return onAppRoute('reLaunch', args)
+}
+
+export function switchTab (args) {
+ return onAppRoute('switchTab', args)
+}
+
+export function preloadPage ({
+ url
+}, callbackId) {
+ const path = url.split('?')[0].replace(/\//g, '-')
+ __uniConfig.__webpack_chunk_load__(path.substr(1)).then(() => {
+ invoke(callbackId, {
+ url,
+ errMsg: 'preloadPage:ok'
+ })
+ }).catch(err => {
+ invoke(callbackId, {
+ url,
+ errMsg: 'preloadPage:fail ' + err
+ })
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/storage/storage.js b/src/platforms/mp-weibo/service/api/storage/storage.js
new file mode 100644
index 00000000000..0ec29683f88
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/storage/storage.js
@@ -0,0 +1,138 @@
+const STORAGE_KEYS = 'uni-storage-keys'
+
+function parseValue (value) {
+ const types = ['object', 'string', 'number', 'boolean', 'undefined']
+ try {
+ const object = typeof value === 'string' ? JSON.parse(value) : value
+ const type = object.type
+ if (types.indexOf(type) >= 0) {
+ const keys = Object.keys(object)
+ if (keys.length === 2 && 'data' in object) {
+ // eslint-disable-next-line valid-typeof
+ if (typeof object.data === type) {
+ return object.data
+ }
+ // eslint-disable-next-line no-useless-escape
+ if (type === 'object' && /^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}\.\d{3}Z$/.test(object.data)) {
+ // ISO 8601 格式返回 Date
+ return new Date(object.data)
+ }
+ } else if (keys.length === 1) {
+ return ''
+ }
+ }
+ } catch (error) { }
+}
+
+export function setStorage ({
+ key,
+ data
+} = {}) {
+ const type = typeof data
+ const value = type === 'string' ? data : JSON.stringify({
+ type,
+ data: data
+ })
+ try {
+ localStorage.setItem(key, value)
+ } catch (error) {
+ return {
+ errMsg: `setStorage:fail ${error}`
+ }
+ }
+ return {
+ errMsg: 'setStorage:ok'
+ }
+}
+
+export function setStorageSync (key, data) {
+ setStorage({
+ key,
+ data
+ })
+}
+
+export function getStorage ({
+ key
+} = {}) {
+ const value = localStorage && localStorage.getItem(key)
+ if (typeof value !== 'string') {
+ return {
+ data: '',
+ errMsg: 'getStorage:fail'
+ }
+ }
+ let data = value
+ try {
+ const object = JSON.parse(value)
+ const result = parseValue(object)
+ if (result !== undefined) {
+ data = result
+ }
+ } catch (error) { }
+ return {
+ data,
+ errMsg: 'getStorage:ok'
+ }
+}
+
+export function getStorageSync (key) {
+ const res = getStorage({
+ key
+ })
+ return res.data
+}
+
+export function removeStorage ({
+ key
+} = {}) {
+ if (localStorage) {
+ localStorage.removeItem(key)
+ }
+ return {
+ errMsg: 'removeStorage:ok'
+ }
+}
+
+export function removeStorageSync (key) {
+ removeStorage({
+ key
+ })
+}
+
+export function clearStorage () {
+ localStorage && localStorage.clear()
+ return {
+ errMsg: 'clearStorage:ok'
+ }
+}
+
+export function clearStorageSync () {
+ clearStorage()
+}
+
+export function getStorageInfo () {
+ const length = (localStorage && localStorage.length) || 0
+ const keys = []
+ let currentSize = 0
+ for (let index = 0; index < length; index++) {
+ const key = localStorage.key(index)
+ const value = localStorage.getItem(key)
+ currentSize += key.length + value.length
+ if (key !== STORAGE_KEYS) {
+ keys.push(key)
+ }
+ }
+ return {
+ keys,
+ currentSize: Math.ceil(currentSize * 2 / 1024),
+ limitSize: Number.MAX_VALUE,
+ errMsg: 'getStorageInfo:ok'
+ }
+}
+
+export function getStorageInfoSync () {
+ const res = getStorageInfo()
+ delete res.errMsg
+ return res
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/navigation-bar.js b/src/platforms/mp-weibo/service/api/ui/navigation-bar.js
new file mode 100644
index 00000000000..f64fe5e5f76
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/navigation-bar.js
@@ -0,0 +1,76 @@
+import {
+ isCurrentPage,
+ getPageHolder
+} from '../util.js'
+
+function setNavigationBar (type, args = {}) {
+ const page = getPageHolder(args.__page__)
+ if (page) {
+ 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
+ }
+ UniServiceJSBridge.emit('onNavigationBarChange', {
+ textColor: frontColor === '#000000' ? '#000' : '#fff',
+ backgroundColor: page.navigationBar.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
+ if (isCurrentPage(page)) { // 仅当前页面
+ document.title = title
+ }
+ UniServiceJSBridge.emit('onNavigationBarChange', {
+ titleText: title
+ })
+ }
+ break
+ }
+ }
+ return {}
+}
+
+export function setNavigationBarColor (args) {
+ return setNavigationBar('setNavigationBarColor', args)
+}
+
+export function showNavigationBarLoading (args) {
+ return setNavigationBar('showNavigationBarLoading', args)
+}
+
+export function hideNavigationBarLoading (args) {
+ return setNavigationBar('hideNavigationBarLoading', args)
+}
+
+export function setNavigationBarTitle (args) {
+ return setNavigationBar('setNavigationBarTitle', args)
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/popup.js b/src/platforms/mp-weibo/service/api/ui/popup.js
new file mode 100644
index 00000000000..779a6c93b3c
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/popup.js
@@ -0,0 +1,44 @@
+const {
+ emit,
+ invokeCallbackHandler: invoke
+} = UniServiceJSBridge
+
+export function showModal (args, callbackId) {
+ emit('onShowModal', args, function (res) {
+ invoke(callbackId, res)
+ })
+}
+
+export function showToast (args) {
+ emit('onShowToast', args)
+ return {}
+}
+
+export function hideToast () {
+ emit('onHideToast')
+ return {}
+}
+
+export function showLoading (args) {
+ emit('onShowLoading', args)
+ return {}
+}
+
+export function hideLoading () {
+ emit('onHideLoading')
+ return {}
+}
+
+export function showActionSheet (args, callbackId) {
+ emit('onShowActionSheet', args, function (tapIndex) {
+ if (tapIndex === -1) {
+ invoke(callbackId, {
+ errMsg: 'showActionSheet:fail cancel'
+ })
+ } else {
+ invoke(callbackId, {
+ tapIndex
+ })
+ }
+ })
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/pull-down-refresh.js b/src/platforms/mp-weibo/service/api/ui/pull-down-refresh.js
new file mode 100644
index 00000000000..5f40db8abd7
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/pull-down-refresh.js
@@ -0,0 +1,31 @@
+let pageId
+
+export function setPullDownRefreshPageId (pullDownRefreshPageId) {
+ pageId = pullDownRefreshPageId
+}
+
+export 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 {}
+}
+
+export 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 {}
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/request-component-info.js b/src/platforms/mp-weibo/service/api/ui/request-component-info.js
new file mode 100644
index 00000000000..e244db6d4a7
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/request-component-info.js
@@ -0,0 +1,13 @@
+import createCallbacks from 'uni-helpers/callbacks'
+import {
+ checkInWindows
+} from 'uni-helpers/windows'
+
+const requestComponentInfoCallbacks = createCallbacks('requestComponentInfo')
+
+export function requestComponentInfo (pageVm, queue, callback) {
+ UniServiceJSBridge.publishHandler('requestComponentInfo', {
+ reqId: requestComponentInfoCallbacks.push(callback),
+ reqs: queue
+ }, checkInWindows(pageVm) ? pageVm : pageVm.$page.id)
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/tab-bar.js b/src/platforms/mp-weibo/service/api/ui/tab-bar.js
new file mode 100644
index 00000000000..5564f963558
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/tab-bar.js
@@ -0,0 +1,125 @@
+import {
+ setProperties
+} from 'uni-shared'
+
+const setTabBarItemProps = ['text', 'iconPath', 'iconfont', 'selectedIconPath', 'visible']
+
+const setTabBarStyleProps = ['color', 'selectedColor', 'backgroundColor', 'borderStyle', 'midButton']
+
+const setTabBarBadgeProps = ['badge', 'redDot']
+
+const setTabBarIconfontStyles = ['text', 'selectedText', 'fontSize', 'color', 'selectedColor']
+
+function setTabBar (type, args = {}) {
+ const app = getApp()
+
+ if (app) {
+ let isTabBar = false
+ const pages = getCurrentPages()
+ if (pages.length) {
+ if (pages[pages.length - 1].$page.meta.isTabBar) {
+ isTabBar = true
+ }
+ } else if (app.$children[0].hasTabBar) {
+ isTabBar = true
+ }
+ if (!isTabBar) {
+ return {
+ errMsg: `${type}:fail not TabBar page`
+ }
+ }
+
+ const {
+ index
+ } = args
+ const tabBar = __uniConfig.tabBar
+ if (index >= __uniConfig.tabBar.list.length) {
+ return {
+ errMsg: `${type}:fail tabbar item not found`
+ }
+ }
+ switch (type) {
+ case 'showTabBar':
+ app.$children[0].hideTabBar = false
+ break
+ case 'hideTabBar':
+ app.$children[0].hideTabBar = true
+ break
+ case 'setTabBarItem': {
+ if (args.iconfont) {
+ setProperties(tabBar.list[index].iconfont, setTabBarIconfontStyles, args.iconfont)
+ args.iconfont = tabBar.list[index].iconfont
+ }
+ setProperties(tabBar.list[index], setTabBarItemProps, args)
+ const pagePath = args.pagePath
+ const route = pagePath && __uniRoutes.find(({ path }) => path === pagePath)
+ if (route) {
+ const meta = route.meta
+ meta.isTabBar = true
+ meta.tabBarIndex = index
+ meta.isQuit = true
+ meta.isSet = true
+ meta.id = index + 1
+ const tabBar = __uniConfig.tabBar
+ if (tabBar && tabBar.list && tabBar.list[index]) {
+ tabBar.list[index].pagePath = pagePath.startsWith('/') ? pagePath.substring(1) : pagePath
+ }
+ }
+ break
+ }
+ case 'setTabBarStyle':
+ setProperties(tabBar, setTabBarStyleProps, args)
+ break
+ case 'showTabBarRedDot':
+ setProperties(tabBar.list[index], setTabBarBadgeProps, {
+ badge: '',
+ redDot: true
+ })
+ break
+ case 'setTabBarBadge':
+ setProperties(tabBar.list[index], setTabBarBadgeProps, {
+ badge: args.text,
+ redDot: true
+ })
+ break
+ case 'hideTabBarRedDot':
+ case 'removeTabBarBadge':
+ setProperties(tabBar.list[index], setTabBarBadgeProps, {
+ badge: '',
+ redDot: false
+ })
+ break
+ }
+ }
+ return {}
+}
+export function setTabBarItem (args) {
+ return setTabBar('setTabBarItem', args)
+}
+
+export function setTabBarStyle (args) {
+ return setTabBar('setTabBarStyle', args)
+}
+
+export function hideTabBar (args) {
+ return setTabBar('hideTabBar', args)
+}
+
+export function showTabBar (args) {
+ return setTabBar('showTabBar', args)
+}
+export function hideTabBarRedDot (args) {
+ return setTabBar('hideTabBarRedDot', args)
+}
+
+export function showTabBarRedDot (args) {
+ return setTabBar('showTabBarRedDot', args)
+}
+
+export function removeTabBarBadge (args) {
+ return setTabBar('removeTabBarBadge', args)
+}
+
+export function setTabBarBadge (args) {
+ return setTabBar('setTabBarBadge', args)
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/window.js b/src/platforms/mp-weibo/service/api/ui/window.js
new file mode 100644
index 00000000000..c779fea641d
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/window.js
@@ -0,0 +1,55 @@
+const callbacks = []
+
+var tasks = []
+
+function onResize () {
+ tasks.push(setTimeout(() => {
+ tasks.forEach(task => clearTimeout(task))
+ tasks.length = 0
+
+ const {
+ invokeCallbackHandler: invoke
+ } = UniServiceJSBridge
+ const {
+ windowWidth,
+ windowHeight,
+ screenWidth,
+ screenHeight
+ } = uni.getSystemInfoSync()
+ var landscape = Math.abs(window.orientation) === 90
+ var deviceOrientation = landscape ? 'landscape' : 'portrait'
+
+ callbacks.forEach(callbackId => {
+ invoke(callbackId, {
+ deviceOrientation,
+ size: {
+ windowWidth,
+ windowHeight,
+ screenWidth,
+ screenHeight
+ }
+ })
+ })
+ }, 20))
+}
+/**
+ * 监听窗口大小变化
+ * @param {*} callbackId
+ */
+export function onWindowResize (callbackId) {
+ if (!callbacks.length) {
+ window.addEventListener('resize', onResize)
+ }
+ callbacks.push(callbackId)
+}
+/**
+ * 取消监听窗口大小变化
+ * @param {*} callbackId
+ */
+export function offWindowResize (callbackId) {
+ // 此处和微信平台一致查询不到去掉最后一个
+ callbacks.splice(callbacks.indexOf(callbackId), 1)
+ if (!callbacks.length) {
+ window.removeEventListener('resize', onResize)
+ }
+}
diff --git a/src/platforms/mp-weibo/service/api/ui/windows.js b/src/platforms/mp-weibo/service/api/ui/windows.js
new file mode 100644
index 00000000000..43b1184fae0
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/ui/windows.js
@@ -0,0 +1,97 @@
+import {
+ capitalize
+} from 'uni-shared'
+
+function showWindow (type, show) {
+ const api = show ? 'show' : 'hide' + capitalize(type) + 'Window'
+ const app = getApp()
+ if (app) {
+ const msg = app.$children[0].$refs.layout.showWindow(type, show)
+ if (msg) {
+ return {
+ errMsg: `${api}:fail ${msg}`
+ }
+ }
+ return {}
+ }
+ return {
+ errMsg: `${api}:fail app not ready`
+ }
+}
+
+export function showTopWindow () {
+ return showWindow('top', true)
+}
+
+export function hideTopWindow () {
+ return showWindow('top', false)
+}
+
+export function showLeftWindow () {
+ return showWindow('left', true)
+}
+
+export function hideLeftWindow () {
+ return showWindow('left', false)
+}
+export function showRightWindow () {
+ return showWindow('right', true)
+}
+
+export function hideRightWindow () {
+ return showWindow('right', false)
+}
+
+function getWindowStyle (type) {
+ const api = 'get' + capitalize(type) + 'WindowStyle'
+ const app = getApp()
+ if (!app) {
+ return {
+ errMsg: `${api}:fail app not ready`
+ }
+ }
+ const msg = app.$children[0].$refs.layout.getWindowStyle(type)
+ if (typeof msg === 'string' && msg.indexOf('Window not found') !== -1) {
+ return {
+ errMsg: `${api}:fail ${msg}`
+ }
+ }
+ return msg
+}
+
+export function getTopWindowStyle (style) {
+ return getWindowStyle('top')
+}
+export function getLeftWindowStyle (style) {
+ return getWindowStyle('left')
+}
+export function getRightWindowStyle (style) {
+ return getWindowStyle('right')
+}
+
+function setWindowStyle (type, style) {
+ const api = 'set' + capitalize(type) + 'WindowStyle'
+ const app = getApp()
+ if (!app) {
+ return {
+ errMsg: `${api}:fail app not ready`
+ }
+ }
+ const msg = app.$children[0].$refs.layout.setWindowStyle(type, style)
+ if (msg) {
+ return {
+ errMsg: `${api}:fail ${msg}`
+ }
+ }
+ return {}
+}
+
+export function setTopWindowStyle (style) {
+ return setWindowStyle('top', style)
+}
+export function setLeftWindowStyle (style) {
+ return setWindowStyle('left', style)
+}
+export function setRightWindowStyle (style) {
+ return setWindowStyle('right', style)
+}
diff --git a/src/platforms/mp-weibo/service/api/util.js b/src/platforms/mp-weibo/service/api/util.js
new file mode 100644
index 00000000000..808ab2bced3
--- /dev/null
+++ b/src/platforms/mp-weibo/service/api/util.js
@@ -0,0 +1,19 @@
+export function getPageHolder (__page__) {
+ if (__page__) {
+ return __page__.$holder
+ }
+ const pages = getCurrentPages()
+ const len = pages.length
+ if (len) {
+ return pages[len - 1].$holder
+ }
+}
+
+export function isCurrentPage (pageHolder) {
+ const pages = getCurrentPages()
+ const len = pages.length
+ if (len) {
+ return pages[len - 1].$holder === pageHolder
+ }
+ return false
+}
diff --git a/src/platforms/mp-weibo/service/bridge.js b/src/platforms/mp-weibo/service/bridge.js
new file mode 100644
index 00000000000..08a44abbbde
--- /dev/null
+++ b/src/platforms/mp-weibo/service/bridge.js
@@ -0,0 +1,11 @@
+/**
+ * 触发 service 层,与 onMethod 对应
+ */
+export function publish (name, res) {
+ return UniServiceJSBridge.emit('api.' + name, res)
+}
+
+export function publishHandler (event, args, pageId) {
+ // h5 平台直接调用UniViewJSBridge
+ global.UniViewJSBridge.subscribeHandler(event, args, pageId)
+}
diff --git a/src/platforms/mp-weibo/service/index.js b/src/platforms/mp-weibo/service/index.js
new file mode 100644
index 00000000000..c898b2f37b7
--- /dev/null
+++ b/src/platforms/mp-weibo/service/index.js
@@ -0,0 +1,29 @@
+import initOn from 'uni-core/service/bridge/on'
+import initSubscribe from 'uni-core/service/bridge/subscribe'
+
+import {
+ uni
+} from 'uni-core/service/uni'
+
+import {
+ getApp,
+ getCurrentPages
+}
+ from 'uni-core/service/plugins/app'
+
+initOn(UniServiceJSBridge.on, {
+ getApp,
+ getCurrentPages
+})
+
+initSubscribe(UniServiceJSBridge.subscribe, {
+ getApp,
+ getCurrentPages
+})
+
+export default uni
+export {
+ getApp,
+ getCurrentPages
+}
+ from 'uni-core/service/plugins/app'
diff --git a/src/platforms/mp-weibo/service/on-web-invoke-app-service.js b/src/platforms/mp-weibo/service/on-web-invoke-app-service.js
new file mode 100644
index 00000000000..a27c970170b
--- /dev/null
+++ b/src/platforms/mp-weibo/service/on-web-invoke-app-service.js
@@ -0,0 +1,10 @@
+export default function onWebInvokeAppService ({
+ name,
+ arg
+}, pageId) {
+ if (name === 'postMessage') {
+ // TODO 小程序后退、组件销毁、分享时通知
+ } else {
+ uni[name](arg)
+ }
+}
diff --git a/src/platforms/mp-weibo/view/bridge.js b/src/platforms/mp-weibo/view/bridge.js
new file mode 100644
index 00000000000..5e85ef211f2
--- /dev/null
+++ b/src/platforms/mp-weibo/view/bridge.js
@@ -0,0 +1,4 @@
+export function publishHandler (event, args, pageId) {
+ // h5 平台直接调用UniServiceJSBridge
+ global.UniServiceJSBridge.subscribeHandler(event, args, pageId)
+}
diff --git a/src/platforms/mp-weibo/view/bridge/subscribe/index.js b/src/platforms/mp-weibo/view/bridge/subscribe/index.js
new file mode 100644
index 00000000000..7c51cc5ec33
--- /dev/null
+++ b/src/platforms/mp-weibo/view/bridge/subscribe/index.js
@@ -0,0 +1,91 @@
+import {
+ isPlainObject,
+ supportsPassive
+} from 'uni-shared'
+
+import {
+ hasLifecycleHook
+} from 'uni-helpers/index'
+
+import {
+ NAVBAR_HEIGHT,
+ TABBAR_HEIGHT
+} from 'uni-helpers/constants'
+
+import {
+ disableScroll,
+ createScrollListener
+} from 'uni-core/view/bridge/subscribe/scroll'
+
+const passiveOptions = supportsPassive ? {
+ passive: false
+} : false
+
+function updateCssVar (vm) {
+ if (uni.canIUse('css.var')) {
+ const uniConfigTabbarHeight = parseFloat(__uniConfig.tabBar.height)
+ const pageVm = vm.$parent.$parent
+ const navigationBarType = pageVm.navigationBar.type
+ const windowTopValue = navigationBarType === 'default' || navigationBarType === 'float' ? NAVBAR_HEIGHT : 0
+ const windowBottomValue = getApp().$children[0].showTabBar ? isNaN(uniConfigTabbarHeight) ? TABBAR_HEIGHT : uniConfigTabbarHeight : 0
+ const envMethod = uni.canIUse('css.env') ? 'env' : (uni.canIUse('css.constant') ? 'constant' : '')
+ const windowTop = windowTopValue && envMethod ? `calc(${windowTopValue}px + ${envMethod}(safe-area-inset-top))`
+ : `${windowTopValue}px`
+ const windowBottom = windowBottomValue && envMethod
+ ? `calc(${windowBottomValue}px + ${envMethod}(safe-area-inset-bottom))` : `${windowBottomValue}px`
+ const style = document.documentElement.style
+ style.setProperty('--window-top', `calc(var(--top-window-height) + ${windowTop})`)
+ style.setProperty('--window-bottom', windowBottom)
+ console.debug(`${vm.$page.route}[${vm.$page.id}]:--window-top=${windowTop}`)
+ console.debug(`${vm.$page.route}[${vm.$page.id}]:--window-bottom=${windowBottom}`)
+ }
+}
+
+export default function initSubscribe (subscribe) {
+ let scrollListener = false
+ let disableScrollListener = false
+
+ subscribe('onPageLoad', vm => { // 用户 onLoad 之前 update
+ updateCssVar(vm)
+ })
+
+ subscribe('onPageShow', vm => {
+ const pageVm = vm.$parent.$parent
+
+ if (vm._isMounted) { // 非首次 show 才 update(首次 show 的时候在 onPageLoad 中触发了)
+ updateCssVar(vm)
+ }
+
+ if (disableScrollListener) {
+ document.removeEventListener('touchmove', disableScrollListener, passiveOptions)
+ }
+
+ if (pageVm.disableScroll) {
+ disableScrollListener = disableScroll
+ document.addEventListener('touchmove', disableScrollListener, passiveOptions)
+ }
+
+ const enablePageScroll = hasLifecycleHook(vm.$options, 'onPageScroll')
+ const enablePageReachBottom = hasLifecycleHook(vm.$options, 'onReachBottom')
+ const onReachBottomDistance = pageVm.onReachBottomDistance
+
+ const enableTransparentTitleNView = (isPlainObject(pageVm.titleNView) && pageVm.titleNView.type ===
+ 'transparent') || (isPlainObject(pageVm.navigationBar) && pageVm.navigationBar.type === 'transparent')
+
+ if (scrollListener) {
+ document.removeEventListener('scroll', scrollListener)
+ }
+
+ if (enableTransparentTitleNView || enablePageScroll || enablePageReachBottom) { // 初始化 scroll 监听
+ scrollListener = createScrollListener(vm.$page.id, {
+ enablePageScroll,
+ enablePageReachBottom,
+ onReachBottomDistance,
+ enableTransparentTitleNView
+ })
+ requestAnimationFrame(function () { // 避免监听太早,直接触发了 scroll
+ document.addEventListener('scroll', scrollListener)
+ })
+ }
+ })
+}
diff --git a/src/platforms/mp-weibo/view/components/ad/index.vue b/src/platforms/mp-weibo/view/components/ad/index.vue
new file mode 100644
index 00000000000..1c474fcc084
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/ad/index.vue
@@ -0,0 +1,592 @@
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/cover-image/index.vue b/src/platforms/mp-weibo/view/components/cover-image/index.vue
new file mode 100644
index 00000000000..6c82c992f01
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/cover-image/index.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/cover-view/index.vue b/src/platforms/mp-weibo/view/components/cover-view/index.vue
new file mode 100644
index 00000000000..895b0b5710e
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/cover-view/index.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/map/index.vue b/src/platforms/mp-weibo/view/components/map/index.vue
new file mode 100644
index 00000000000..87e004d646b
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/map/index.vue
@@ -0,0 +1,763 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/map/map-control.vue b/src/platforms/mp-weibo/view/components/map/map-control.vue
new file mode 100644
index 00000000000..f63dae1660b
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/map/map-control.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/map/map-marker.js b/src/platforms/mp-weibo/view/components/map/map-marker.js
new file mode 100644
index 00000000000..9543ba22486
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/map/map-marker.js
@@ -0,0 +1,419 @@
+import { MapType, getMapInfo, IS_AMAP } from '../../../helpers/location'
+import getRealPath from 'uni-platform/helpers/get-real-path'
+
+export default {
+ props: {
+ id: {
+ type: [Number, String],
+ default: ''
+ },
+ latitude: {
+ type: [Number, String],
+ require: true
+ },
+ longitude: {
+ type: [Number, String],
+ require: true
+ },
+ title: {
+ type: String,
+ default: ''
+ },
+ iconPath: {
+ type: String,
+ require: true
+ },
+ rotate: {
+ type: [Number, String],
+ default: 0
+ },
+ alpha: {
+ type: [Number, String],
+ default: 1
+ },
+ width: {
+ type: [Number, String],
+ default: ''
+ },
+ height: {
+ type: [Number, String],
+ default: ''
+ },
+ callout: {
+ type: Object,
+ default: null
+ },
+ label: {
+ type: Object,
+ default: null
+ },
+ anchor: {
+ type: Object,
+ default: null
+ },
+ clusterId: {
+ type: [Number, String],
+ default: ''
+ },
+ customCallout: {
+ type: Object,
+ default: null
+ },
+ ariaLabel: {
+ type: String,
+ default: ''
+ }
+ },
+ data () {
+ return {
+ idString: String(isNaN(Number(this.id)) ? '' : this.id)
+ }
+ },
+ mounted () {
+ const $parent = this.$parent
+ $parent.mapReady(() => {
+ this._maps = $parent._maps
+ this._map = $parent._map
+ this.addMarker(this.$props)
+ Object.keys(this.$props).forEach(key => {
+ this.$watch(key, () => {
+ this.updateMarker(this.$props)
+ })
+ })
+ })
+ },
+ beforeDestroy () {
+ this.removeMarker()
+ },
+ methods: {
+ addMarker (props) {
+ const maps = this._maps
+ const map = this._map
+ const marker = this._marker = new maps.Marker({
+ map,
+ flat: true,
+ autoRotation: false
+ })
+ this.$parent._markers[this.idString] = marker
+ this.updateMarker(props)
+ if (IS_AMAP) {
+ // 不通过 addListener 方式绑定事件,为了规避高德地图覆盖物点击触发map点击问题
+ marker.dom.addEventListener('click', e => {
+ this.handleAMapMarkerClick(e, marker)
+ })
+ // 地图缩放会触发touchend,故判断 touchstart 和 touchend touches[0] 是否相同确定是否点击
+ let touchStartTouch = {}
+ marker.dom.addEventListener('touchstart', e => {
+ touchStartTouch = e.touches[0]
+ })
+ marker.dom.addEventListener('touchend', e => {
+ const touchEndTouch = e.changedTouches[0]
+ if (touchStartTouch.clientX === touchEndTouch.clientX && touchStartTouch.clientY === touchEndTouch.clientY) {
+ this.handleAMapMarkerClick(e, marker)
+ }
+ })
+ } else {
+ maps.event.addListener(marker, 'click', (e) => {
+ const callout = marker.callout
+ if (callout && !callout.alwaysVisible) {
+ callout.set('visible', !callout.visible)
+ if (callout.visible) {
+ const div = callout.div
+ const parent = div.parentNode
+ parent.removeChild(div)
+ parent.appendChild(div)
+ }
+ }
+
+ const event = e.event || e.domEvent
+
+ if (this.idString) {
+ const { latitude, longitude } = this.getMarkerLatitudeLongitude(e)
+ this.$parent.$trigger('markertap', event, {
+ markerId: Number(this.idString),
+ latitude,
+ longitude
+ })
+ }
+ event.stopPropagation()
+ })
+ }
+ },
+ updateMarker (option) {
+ const map = this._map
+ const maps = this._maps
+ const marker = this._marker
+ const title = option.title
+ const position = IS_AMAP ? new maps.LngLat(option.longitude, option.latitude) : new maps.LatLng(option.latitude, option.longitude)
+ const img = new Image()
+ let imgHeight = 0
+ img.onload = () => {
+ const anchor = option.anchor || {}
+ let icon
+ let w
+ let h
+ const x = typeof anchor.x === 'number' ? anchor.x : 0.5
+ const y = typeof anchor.y === 'number' ? anchor.y : 1
+ if (option.iconPath && (option.width || option.height)) {
+ w = option.width || (img.width / img.height) * option.height
+ h = option.height || (img.height / img.width) * option.width
+ } else {
+ w = img.width / 2
+ h = img.height / 2
+ }
+ imgHeight = h
+ const top = h - (h - y * h)
+ if ('MarkerImage' in maps) {
+ // 腾讯 & google
+ icon = new maps.MarkerImage(
+ img.src,
+ null,
+ null,
+ new maps.Point(x * w, y * h),
+ new maps.Size(w, h)
+ )
+ } else if ('Icon' in maps) {
+ // 高德
+ icon = new maps.Icon({
+ image: img.src,
+ size: new maps.Size(w, h),
+ imageSize: new maps.Size(w, h),
+ imageOffset: new maps.Pixel(x * w, y * h)
+ })
+ } else {
+ icon = {
+ url: img.src,
+ anchor: new maps.Point(x, y),
+ size: new maps.Size(w, h)
+ }
+ }
+ marker.setPosition(position)
+ marker.setIcon(icon)
+ if ('setRotation' in marker) {
+ marker.setRotation(option.rotate || 0)
+ }
+ const labelOpt = option.label || {}
+ if ('label' in marker) {
+ marker.label.setMap(null)
+ delete marker.label
+ }
+ let label
+ if (labelOpt.content) {
+ const labelStyle = {
+ borderColor: labelOpt.borderColor,
+ borderWidth: (Number(labelOpt.borderWidth) || 0) + 'px',
+ padding: (Number(labelOpt.padding) || 0) + 'px',
+ borderRadius: (Number(labelOpt.borderRadius) || 0) + 'px',
+ backgroundColor: labelOpt.bgColor,
+ color: labelOpt.color,
+ fontSize: (labelOpt.fontSize || 14) + 'px',
+ lineHeight: (labelOpt.fontSize || 14) + 'px',
+ marginLeft: (Number(labelOpt.anchorX || labelOpt.x) || 0) + 'px',
+ marginTop: (Number(labelOpt.anchorY || labelOpt.y) || 0) + 'px'
+ }
+ if ('Label' in maps) {
+ // 腾讯
+ label = new maps.Label({
+ position,
+ map: map,
+ clickable: false,
+ content: labelOpt.content,
+ style: labelStyle
+ })
+ marker.label = label
+ } else if ('setLabel' in marker) {
+ if (IS_AMAP) {
+ const content =
+ `
+ ${labelOpt.content}
+
`
+ marker.setLabel({
+ content,
+ direction: 'bottom-right'
+ })
+ } else {
+ // google
+ const className = this.updateMarkerLabelStyle(this.idString, labelStyle)
+ marker.setLabel({
+ text: labelOpt.content,
+ color: labelStyle.color,
+ fontSize: labelStyle.fontSize,
+ className
+ })
+ }
+ }
+ }
+ const calloutOpt = option.callout || {}
+ let callout = marker.callout
+ let calloutStyle
+ if (calloutOpt.content || title) {
+ if (IS_AMAP && calloutOpt.content) {
+ calloutOpt.content = calloutOpt.content.replaceAll('\n', '
')
+ }
+ const boxShadow = '0px 0px 3px 1px rgba(0,0,0,0.5)'
+ let offsetY = -imgHeight / 2
+ if (option.width || option.height) {
+ offsetY += 14 - imgHeight / 2
+ }
+ calloutStyle = calloutOpt.content
+ ? {
+ position,
+ map,
+ top,
+ // handle AMap callout offset
+ offsetY,
+ content: calloutOpt.content,
+ color: calloutOpt.color,
+ fontSize: calloutOpt.fontSize,
+ borderRadius: calloutOpt.borderRadius,
+ bgColor: calloutOpt.bgColor,
+ padding: calloutOpt.padding,
+ boxShadow: calloutOpt.boxShadow || boxShadow,
+ display: calloutOpt.display
+ }
+ : {
+ position,
+ map,
+ top,
+ offsetY,
+ content: title,
+ boxShadow: boxShadow
+ }
+ if (callout) {
+ callout.setOption(calloutStyle)
+ } else {
+ if (IS_AMAP) {
+ const callback = ($event, self) => {
+ if (self.idString) {
+ self.$parent.$trigger('callouttap', $event, {
+ markerId: Number(self.idString)
+ })
+ }
+ }
+ callout = marker.callout = new maps.Callout(calloutStyle, callback, this)
+ } else {
+ callout = marker.callout = new maps.Callout(calloutStyle)
+ callout.div.onclick = ($event) => {
+ if (this.idString) {
+ this.$parent.$trigger('callouttap', $event, {
+ markerId: Number(this.idString)
+ })
+ }
+ $event.stopPropagation()
+ $event.preventDefault()
+ }
+ // The mobile terminal prevent google map callout click trigger map click
+ if (getMapInfo().type === MapType.GOOGLE) {
+ callout.div.onpointerdown = (e) => { e.stopPropagation() }
+ callout.div.ontouchstart = (e) => { e.stopPropagation() }
+ }
+ }
+ }
+ } else {
+ if (callout) {
+ this.removeMarkerCallout(marker.callout)
+ delete marker.callout
+ }
+ }
+ }
+ if (option.iconPath) {
+ img.src = getRealPath(option.iconPath)
+ } else {
+ console.error('Marker.iconPath is required.')
+ }
+ },
+ handleAMapMarkerClick (e, marker) {
+ const callout = marker.callout
+ if (callout && !callout.alwaysVisible) {
+ callout.visible = !callout.visible
+ if (callout.visible) {
+ marker.callout.createAMapText()
+ } else {
+ marker.callout.removeAMapText()
+ }
+ }
+ if (this.idString) {
+ this.$parent.$trigger('markertap', e, {
+ markerId: Number(this.idString),
+ latitude: marker._position.lat,
+ longitude: marker._position.lng
+ })
+ }
+ e.stopPropagation()
+ },
+ updateMarkerLabelStyle (id, style) {
+ const className = 'uni-map-marker-label-' + id
+ let styleEl = document.getElementById(className)
+ if (!styleEl) {
+ styleEl = document.createElement('style')
+ styleEl.id = className
+ document.head.appendChild(styleEl)
+ this.$once('hook:destroyed', () => {
+ styleEl.remove()
+ })
+ }
+ const newStyle = Object.assign({}, style, {
+ position: 'absolute',
+ top: '70px',
+ borderStyle: 'solid'
+ })
+ const div = document.createElement('div')
+ Object.keys(newStyle).forEach(key => {
+ div.style[key] = newStyle[key] || ''
+ })
+ styleEl.innerText = `.${className}{${div.getAttribute('style')}}`
+ return className
+ },
+ getMarkerLatitudeLongitude (e) {
+ const mapInfo = getMapInfo()
+ let latitude
+ let longitude
+
+ if (IS_AMAP) {
+ latitude = e.lnglat.lat
+ longitude = e.lnglat.lng
+ } else if (mapInfo.type === MapType.QQ) {
+ latitude = e.latLng.lat
+ longitude = e.latLng.lng
+ } else if (mapInfo.type === MapType.GOOGLE) {
+ latitude = e.latLng.lat()
+ longitude = e.latLng.lng()
+ }
+ return { latitude, longitude }
+ },
+ removeMarker () {
+ const marker = this._marker
+ if (marker) {
+ if (marker.label && 'setMap' in marker.label) {
+ marker.label.setMap(null)
+ }
+ if (marker.callout) {
+ this.removeMarkerCallout(marker.callout)
+ }
+ marker.setMap(null)
+ }
+ delete this.$parent._markers[this.idString]
+ this._marker = null
+ },
+ removeMarkerCallout (callout) {
+ if (IS_AMAP) {
+ callout.removeAMapText()
+ } else {
+ callout.setMap(null)
+ }
+ }
+ },
+ render () {
+ return null
+ }
+}
diff --git a/src/platforms/mp-weibo/view/components/map/map-polygon.js b/src/platforms/mp-weibo/view/components/map/map-polygon.js
new file mode 100644
index 00000000000..4b86a703d6d
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/map/map-polygon.js
@@ -0,0 +1,143 @@
+import { hexToRgba } from 'uni-shared'
+import { IS_AMAP } from '../../../helpers/location'
+
+export default {
+ props: {
+ // 边框虚线,腾讯地图支持,google 高德 地图不支持,默认值为[0, 0] 为实线,非 [0, 0] 为虚线,H5 端无法像微信小程序一样控制虚线的间隔像素大小
+ dashArray: {
+ type: Array,
+ default: () => [0, 0]
+ },
+ // 经纬度数组,[{latitude: 0, longitude: 0}]
+ points: {
+ type: Array,
+ required: true
+ },
+ // 描边的宽度
+ strokeWidth: {
+ type: Number,
+ default: 1
+ },
+ // 描边的颜色,十六进制
+ strokeColor: {
+ type: String,
+ default: '#000000'
+ },
+ // 填充颜色,十六进制
+ fillColor: {
+ type: String,
+ default: '#00000000'
+ },
+ // 设置多边形 Z 轴数值
+ zIndex: {
+ type: Number,
+ default: 0
+ }
+ },
+ mounted () {
+ const { $parent } = this
+ // 当地图准备好以后调用指定的回调函数
+ $parent.mapReady(() => {
+ this.drawPolygon()
+
+ // 遍历 props 对象,观察其中的每个属性,当属性发生变化时,更新地图上的 polygon
+ Object.keys(this.$props).forEach(key => {
+ this.$watch(key, () => {
+ this.drawPolygon()
+ }, { deep: true })
+ })
+ })
+ },
+ methods: {
+ // 绘制区域
+ drawPolygon () {
+ // polygon 组件的 props 配置
+ const {
+ points,
+ strokeWidth,
+ strokeColor,
+ dashArray,
+ fillColor,
+ zIndex
+ } = this
+
+ // 从父组件解析 _maps、_map 和 $trigger,下面要用
+ const { _maps, _map } = this.$parent
+
+ const path = points.map(item => {
+ const { latitude, longitude } = item
+ return IS_AMAP ? [longitude, latitude] : new _maps.LatLng(latitude, longitude)
+ })
+
+ const { r: fcR, g: fcG, b: fcB, a: fcA } = hexToRgba(fillColor)
+ const { r: scR, g: scG, b: scB, a: scA } = hexToRgba(strokeColor)
+
+ const polygonOptions = {
+ // 多边形是否可点击。
+ clickable: true,
+
+ // 鼠标在多边形内的光标样式。
+ cursor: 'crosshair',
+
+ // 多边形是否可编辑。
+ editable: false,
+
+ // 地图实例,即要显示多边形的地图
+ // @ts-ignore
+ map: _map,
+
+ // 区域填充色
+ fillColor: '',
+
+ // 多边形的路径,以经纬度坐标数组构成。
+ path,
+
+ // 区域边框
+ strokeColor: '',
+
+ // 多边形的边框样式。实线是solid,虚线是dash。
+ strokeDashStyle: dashArray.some((item) => item > 0) ? 'dash' : 'solid',
+
+ // 多边形的边框线宽。
+ strokeWeight: strokeWidth,
+
+ // 多边形是否可见。
+ visible: true,
+
+ // 多边形的zIndex值。
+ zIndex: zIndex
+ }
+
+ // 多边形的填充色、边框以及相应的透明度
+ if (_maps.Color) {
+ // 说明是 腾讯地图,google map 实例没有 Color 属性
+ // 将类型转为两者共有的 string,避免 ts 报错
+ polygonOptions.fillColor = new _maps.Color(fcR, fcG, fcB, fcA)
+ polygonOptions.strokeColor = new _maps.Color(scR, scG, scB, scA)
+ } else {
+ // google map
+ polygonOptions.fillColor = `rgb(${fcR}, ${fcG}, ${fcB})`
+ polygonOptions.fillOpacity = fcA
+ polygonOptions.strokeColor = `rgb(${scR}, ${scG}, ${scB})`
+ polygonOptions.strokeOpacity = scA
+ }
+
+ if (this.polygonIns) {
+ // 更新区域属性
+ this.polygonIns.setOptions(polygonOptions)
+ return
+ }
+
+ // 说明是新增区域
+ this.polygonIns = new _maps.Polygon(polygonOptions)
+ }
+ },
+ // 卸载时清除地图上绘制的 polygon
+ beforeDestroy () {
+ this.polygonIns.setMap(null)
+ this.polygonIns = null
+ },
+ render () {
+ return null
+ }
+}
diff --git a/src/platforms/mp-weibo/view/components/map/maps/callout.js b/src/platforms/mp-weibo/view/components/map/maps/callout.js
new file mode 100644
index 00000000000..545e2f97d89
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/map/maps/callout.js
@@ -0,0 +1,183 @@
+import { IS_AMAP } from '../../../../helpers/location'
+
+export function createCallout (maps) {
+ function onAdd () {
+ const div = this.div
+ const panes = this.getPanes()
+ panes.floatPane.appendChild(div)
+ }
+ function onRemove () {
+ const parentNode = this.div.parentNode
+ if (parentNode) {
+ parentNode.removeChild(this.div)
+ }
+ }
+
+ function createAMapText () {
+ const option = this.option
+ this.Text = new maps.Text({
+ text: option.content,
+ anchor: 'bottom-center', // 设置文本标记锚点
+ offset: new maps.Pixel(0, option.offsetY - 16),
+ style: {
+ padding: (option.padding || 8) + 'px',
+ 'line-height': (option.fontSize || 14) + 'px',
+ 'border-radius': (option.borderRadius || 0) + 'px',
+ 'border-color': `${option.bgColor || '#fff'} transparent transparent`,
+ 'background-color': option.bgColor || '#fff',
+ 'box-shadow': '0 2px 6px 0 rgba(114, 124, 245, .5)',
+ 'text-align': 'center',
+ 'font-size': (option.fontSize || 14) + 'px',
+ color: option.color || '#000'
+ },
+ position: option.position
+ })
+ // 不通过 addListener 方式绑定事件,为了规避高德地图覆盖物点击触发map点击问题
+ this.Text.dom.addEventListener('click', e => {
+ handleAMapTextClick(this, e)
+ })
+ this.Text.dom.addEventListener('touchend', e => {
+ handleAMapTextClick(this, e)
+ })
+
+ this.Text.setMap(option.map)
+ }
+
+ function handleAMapTextClick (self, e) {
+ self.callback(e, self.parent)
+ e.stopPropagation()
+ }
+
+ function removeAMapText () {
+ if (this.Text) {
+ this.option.map.remove(this.Text)
+ }
+ }
+
+ class Callout {
+ option
+ position
+ index
+ visible
+ alwaysVisible
+ div
+ triangle
+ callback
+ parent
+ Text
+
+ set onclick (callback) {
+ this.div.onclick = callback
+ }
+
+ get onclick () {
+ return this.div.onclick
+ }
+
+ constructor (option = {}, callback, parent) {
+ this.option = option || {}
+ this.visible = this.alwaysVisible = option.display === 'ALWAYS'
+ if (IS_AMAP) {
+ this.callback = callback
+ this.parent = parent
+ if (this.visible) {
+ this.createAMapText()
+ }
+ } else {
+ const map = option.map
+ this.position = option.position
+ this.index = 1
+ const div = (this.div = document.createElement('div'))
+ const divStyle = div.style
+ divStyle.position = 'absolute'
+ divStyle.whiteSpace = 'nowrap'
+ divStyle.transform = 'translateX(-50%) translateY(-100%)'
+ divStyle.zIndex = '1'
+ divStyle.boxShadow = option.boxShadow || 'none'
+ divStyle.display = this.visible ? 'block' : 'none'
+ const triangle = (this.triangle = document.createElement('div'))
+ triangle.setAttribute(
+ 'style',
+ 'position: absolute;white-space: nowrap;border-width: 4px;border-style: solid;border-color: #fff transparent transparent;border-image: initial;font-size: 12px;padding: 0px;background-color: transparent;width: 0px;height: 0px;transform: translate(-50%, 100%);left: 50%;bottom: 0;'
+ )
+ this.setStyle(option)
+ div.appendChild(triangle)
+ if (map) {
+ this.setMap(map)
+ }
+ }
+ }
+
+ createAMapText = createAMapText
+ removeAMapText = removeAMapText
+
+ onAdd = onAdd
+ construct = onAdd
+ setOption (option) {
+ this.option = option
+ if (option.display === 'ALWAYS') {
+ this.alwaysVisible = this.visible = true
+ } else {
+ this.alwaysVisible = false
+ }
+ if (IS_AMAP) {
+ if (this.visible) {
+ this.createAMapText()
+ }
+ } else {
+ this.setPosition(option.position)
+ this.setStyle(option)
+ }
+ }
+
+ setStyle (option) {
+ const div = this.div
+ const divStyle = div.style
+ div.innerText = option.content || ''
+ divStyle.lineHeight = (option.fontSize || 14) + 'px'
+ divStyle.fontSize = (option.fontSize || 14) + 'px'
+ divStyle.padding = (option.padding || 8) + 'px'
+ divStyle.color = option.color || '#000'
+ divStyle.borderRadius = (option.borderRadius || 0) + 'px'
+ divStyle.backgroundColor = option.bgColor || '#fff'
+ divStyle.marginTop = '-' + ((option.top || 0) + 5) + 'px'
+ this.triangle.style.borderColor = `${option.bgColor || '#fff'} transparent transparent`
+ }
+
+ setPosition (position) {
+ this.position = position
+ this.draw()
+ }
+
+ draw () {
+ const overlayProjection = this.getProjection()
+ if (!this.position || !this.div || !overlayProjection) {
+ return
+ }
+ const pixel = overlayProjection.fromLatLngToDivPixel(this.position)
+ const divStyle = this.div.style
+ divStyle.left = pixel.x + 'px'
+ divStyle.top = pixel.y + 'px'
+ }
+
+ changed () {
+ const divStyle = this.div.style
+ divStyle.display = this.visible ? 'block' : 'none'
+ }
+
+ onRemove = onRemove
+
+ destroy = onRemove
+ }
+ if (!IS_AMAP) {
+ const prototype = Callout.prototype
+ const overlay = new (maps.OverlayView || maps.Overlay)()
+ for (const key in overlay) {
+ if (!(key in prototype)) {
+ prototype[key] = overlay[key]
+ }
+ }
+ }
+
+ return Callout
+}
diff --git a/src/platforms/mp-weibo/view/components/map/maps/index.js b/src/platforms/mp-weibo/view/components/map/maps/index.js
new file mode 100644
index 00000000000..ad01257081b
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/map/maps/index.js
@@ -0,0 +1,77 @@
+import {
+ MapType,
+ getMapInfo,
+ IS_AMAP
+} from '../../../../helpers/location'
+import { createCallout } from './callout'
+
+let maps
+const callbacksMap = {}
+const GOOGLE_MAP_CALLBACKNAME = '__map_callback__'
+
+export function loadMaps (libraries, callback) {
+ const mapInfo = getMapInfo()
+ if (!mapInfo.key) {
+ console.error('Map key not configured.')
+ return
+ }
+ const callbacks = (callbacksMap[mapInfo.type] = callbacksMap[mapInfo.type] || [])
+ if (maps) {
+ callback(maps)
+ } else if (
+ window[mapInfo.type] &&
+ window[mapInfo.type].maps
+ ) {
+ maps = IS_AMAP ? window[mapInfo.type] : window[mapInfo.type].maps
+ maps.Callout = maps.Callout || createCallout(maps)
+ callback(maps)
+ } else if (callbacks.length) {
+ callbacks.push(callback)
+ } else {
+ callbacks.push(callback)
+ const globalExt = window
+ const callbackName = GOOGLE_MAP_CALLBACKNAME + mapInfo.type
+ globalExt[callbackName] = function () {
+ delete globalExt[callbackName]
+ maps = IS_AMAP ? window[mapInfo.type] : window[mapInfo.type].maps
+ maps.Callout = createCallout(maps)
+ callbacks.forEach((callback) => callback(maps))
+ callbacks.length = 0
+ }
+ const script = document.createElement('script')
+ let src = getScriptBaseUrl(mapInfo.type)
+
+ if (mapInfo.type === MapType.QQ) {
+ libraries.push('geometry')
+ }
+ if (libraries.length) {
+ src += `libraries=${libraries.join('%2C')}&`
+ }
+
+ if (IS_AMAP) {
+ handleAMapSecurityPolicy(mapInfo)
+ }
+ script.src = `${src}key=${mapInfo.key}&callback=${callbackName}`
+ script.onerror = function () {
+ console.error('Map load failed.')
+ }
+ document.body.appendChild(script)
+ }
+}
+
+function getScriptBaseUrl (mapType) {
+ const urlMap = {
+ qq: 'https://map.qq.com/api/js?v=2.exp&',
+ google: 'https://maps.googleapis.com/maps/api/js?',
+ AMap: 'https://webapi.amap.com/maps?v=2.0&'
+ }
+
+ return urlMap[mapType]
+}
+
+function handleAMapSecurityPolicy (mapInfo) {
+ window._AMapSecurityConfig = {
+ securityJsCode: mapInfo.securityJsCode || '',
+ serviceHost: mapInfo.serviceHost || ''
+ }
+}
diff --git a/src/platforms/mp-weibo/view/components/picker/index.vue b/src/platforms/mp-weibo/view/components/picker/index.vue
new file mode 100644
index 00000000000..ed159d08ddf
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/picker/index.vue
@@ -0,0 +1,913 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ typeof item === "object"
+ ? item[rangeKey] || ""
+ : _l10nItem(item, index0)
+ }}
+
+
+
+
+
+ {{ typeof item === "object" ? item[rangeKey] || "" : item }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/video/index.vue b/src/platforms/mp-weibo/view/components/video/index.vue
new file mode 100644
index 00000000000..9a8462f180e
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/video/index.vue
@@ -0,0 +1,1086 @@
+
+
+
+
+
+
+
+
+ {{ currentTime|time }}
+
+
+
+ {{ (duration||durationTime)|time }}
+
+
+
+ {{ $$t("uni.video.danmu") }}
+
+
+
+
+
+
+
+ {{ (duration||durationTime)|time }}
+
+
+
+
+ {{ $$t("uni.video.volume") }}
+
+
+
+
+
+
+
+
+ {{ currentTimeNew|time }} / {{ durationTime|time }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/view/README.md b/src/platforms/mp-weibo/view/components/view/README.md
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/platforms/mp-weibo/view/components/view/index.vue b/src/platforms/mp-weibo/view/components/view/index.vue
new file mode 100755
index 00000000000..49b129b3e4f
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/view/index.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/components/web-view/README.md b/src/platforms/mp-weibo/view/components/web-view/README.md
new file mode 100644
index 00000000000..d4c26617545
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/web-view/README.md
@@ -0,0 +1,15 @@
+# web-view
+|属性|完成度|
+|:-|:-|
+|src|√|
+|@message|-|
+
+|方法|完成度|
+|:-|:-|
+|navigateTo|√|
+|redirectTo|√|
+|reLaunch|√|
+|switchTab|√|
+|navigateBack|√|
+|getEnv|√|
+|postMessage|-|
diff --git a/src/platforms/mp-weibo/view/components/web-view/index.vue b/src/platforms/mp-weibo/view/components/web-view/index.vue
new file mode 100644
index 00000000000..8368beecf9c
--- /dev/null
+++ b/src/platforms/mp-weibo/view/components/web-view/index.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
diff --git a/src/platforms/mp-weibo/view/index.css b/src/platforms/mp-weibo/view/index.css
new file mode 100644
index 00000000000..daa705e49c8
--- /dev/null
+++ b/src/platforms/mp-weibo/view/index.css
@@ -0,0 +1,182 @@
+* {
+ margin: 0;
+ -webkit-tap-highlight-color: transparent;
+}
+
+@font-face {
+ font-weight: normal;
+ 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: normal;
+ font-style: normal;
+ font-family: "unibtn";
+ src: url('data:application/octet-stream;base64,AAEAAAALAIAAAwAwT1MvMg8SAzoAAAC8AAAAYGNtYXAAILNAAAABHAAAAGRnYXNwAAAAEAAAAYAAAAAIZ2x5ZnVT/G4AAAGIAAAEHGhlYWQOAdVuAAAFpAAAADZoaGVhB3wDzAAABdwAAAAkaG10eCIABqYAAAYAAAAALGxvY2EDqgTMAAAGLAAAABhtYXhwAA8ATQAABkQAAAAgbmFtZXBR8sQAAAZkAAAB2nBvc3QAAwAAAAAIQAAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADmUAPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQASAAAAA4ACAACAAYAAQAg5gLmBuZQ//3//wAAAAAAIOYA5gTmUP/9//8AAf/jGgQaAxm6AAMAAQAAAAAAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQFgAHkCwQLqABYAAAEmNDc2MhcBHgEVFAYHAQYiJyY0NwkBAWAICAcWBwE1BAQEBP7LBxYHCAgBIv7eAsUHFwcICP7cBAsFBgsE/twICAcXCAETARMAAAEBWAB5ArkC6gAXAAAJAhYUBwYiJwEuATU0NjcBNjIXFhQHMQK5/t4BIggICBUI/swFAwMFATQIFQgICALF/u3+7QgXBwgIASQECwYFCwQBJAgIBxcHAAACANAAaQO6Aw0AHAA2AAAlFAYjISImNRE0NjsBNSMiBhURFBYzITI2PQEjFRMnBxcHDgMPATM1PgE3PgE/AgcXNyc3A1IHBP3CBAYGBLDAERgYEQJfERcuaKQhbndKgmM9BQEvBTYtLXVABmpuIaQBAaUEBwcEAagFBjEZEf40ERkZEqWUAbysI3MBBjxffkcIBzxuKysyBAEBdCKsAgIAAgCXAF4DcwMbADEASgAAAS4BLwIuASMiBg8CDgEHBhYfAQcGFhceATMyNj8BFx4BMzI2Nz4BJzQwNSc3PgEnBTYmLwE3PgE/ARceAR8BBw4BHwEnJgYPAQNzAgoG42cDCgcGCgNk4wYKAgEDBKUlAQUFAwYEAgUDyswCBQMGCgMCAQEoowUDAv38AQMEjcIFCQJWWAIJBcOMBAMBIq4FCwSuAhQGCAEfzQYGBgbOIwEIBgYMBJ/iBgwEAgICAWxqAQEGBgMJAwEB3qEFDAa2BgoEiB0BBgWxsAUGARuJBAsFwVoDAQJcAAIAvwB1A1ADEQAhAD4AAAEiBh0BFAYjISImPQE0JiMiBh0BHgEzITI2PQE0JicuASM3AS4BIyIGBwEGFBceATMyNjcBNjIXARYyNz4BJwL3Cg4LB/51CAsOCgkPASYbAYwbJwQDAwkFWf7mChgNDRgJ/uYGBwMJBQQIBAEZBRAFARoHEwcGAQYBsA4J4gcLCwfiCQ4OCeIbJycb4gQJAwQDNAEaCgkJCf7lBxMGBAMDAwEZBQX+5wYHBhMHAAAAAAMA3AF2AzEB+gALABcAJAAAATI2NTQmIyIGFRQWITI2NTQmIyIGFRQWITI2NTQmIyIGFRQWMwEeHCcnHBsnJwEDHCcnHBsnJwEEGycnGxwnJxwBdicbGycnGxsnJxsbJycbGycnGxsnJxsbJwAAAAABAOwAnQMUAs4AJQAAATc2NCcmIg8BJyYiBwYUHwEHBhQXHgEzMjY/ARceATMyNjc2NCcCKOwJCQgYCOzqCBgICQnq7AkJBAoGBQsE7OwECwUGCgQJCQG76gkXCQgI6+sICAgYCOvrCBgIBAQEBOvtBQQFBAgXCQABAAAAAQAA3hDrLV8PPPUACwQAAAAAANWUyKsAAAAA1ZTIqwAAAAADugMbAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAO6AAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWAEAAFYBAAA0AQAAJcEAAC/BAAA3AQAAOwAAAAAAAoAFAAeAEoAdgDGAToBmgHSAg4AAQAAAAsASwADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA4AAAABAAAAAAACAAcAnwABAAAAAAADAA4ASwABAAAAAAAEAA4AtAABAAAAAAAFAAsAKgABAAAAAAAGAA4AdQABAAAAAAAKABoA3gADAAEECQABABwADgADAAEECQACAA4ApgADAAEECQADABwAWQADAAEECQAEABwAwgADAAEECQAFABYANQADAAEECQAGABwAgwADAAEECQAKADQA+HN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdFZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMHN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdHN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdFJlZ3VsYXIAUgBlAGcAdQBsAGEAcnN0cmVhbWljb25mb250AHMAdAByAGUAYQBtAGkAYwBvAG4AZgBvAG4AdEZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=') format('truetype')
+}
+
+html,
+body {
+ -webkit-user-select: none;
+ user-select: none;
+ width: 100%;
+ height: 100%;
+}
+
+/* html {
+ 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-icon-error:before {
+ content: "\EA0B";
+}
+
+.uni-loading,
+uni-button[loading]:before {
+ background: transparent 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;
+ animation: uni-loading 1s steps(12, end) infinite;
+ background-size: 100%;
+}
+
+@keyframes uni-loading {
+ 0% {
+ transform: rotate3d(0, 0, 1, 0deg);
+ }
+
+ 100% {
+ transform: rotate3d(0, 0, 1, 360deg);
+ }
+}
+
+/*
+html,
+body,
+uni-app,
+uni-page {
+ height: 100%;
+} */
+
+.uni-mask {
+ position: fixed;
+ z-index: 999;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ background: rgba(0, 0, 0, 0.5);
+}
+
+
+
+
+.uni-fade-enter-active,
+.uni-fade-leave-active {
+ transition-duration: 0.25s;
+ transition-property: opacity;
+ transition-timing-function: ease;
+}
+
+.uni-fade-enter,
+.uni-fade-leave-active {
+ opacity: 0
+}
+
+[nvue] uni-view,
+[nvue] uni-swiper-item,
+[nvue] uni-scroll-view {
+ display: flex;
+ flex-shrink: 0;
+ flex-grow: 0;
+ flex-basis: auto;
+ align-items: stretch;
+ align-content: flex-start;
+}
+
+[nvue] uni-button{
+ margin: 0;
+}
+
+[nvue-dir-row] uni-view,
+[nvue-dir-row] uni-swiper-item {
+ flex-direction: row;
+}
+
+[nvue-dir-column] uni-view,
+[nvue-dir-column] uni-label,
+[nvue-dir-column] uni-swiper-item {
+ flex-direction: column;
+}
+
+[nvue-dir-row-reverse] uni-view,
+[nvue-dir-row-reverse] uni-label,
+[nvue-dir-row-reverse] uni-swiper-item {
+ flex-direction: row-reverse;
+}
+
+[nvue-dir-column-reverse] uni-view,
+[nvue-dir-column-reverse] uni-label,
+[nvue-dir-column-reverse] uni-swiper-item {
+ flex-direction: column-reverse;
+}
+
+[nvue] uni-view,
+[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 {
+ position: relative;
+ border: 0px solid #000000;
+ box-sizing: border-box;
+}
+
+[nvue] uni-swiper-item {
+ position: absolute;
+}
diff --git a/src/shared/uni-id-mixin.js b/src/shared/uni-id-mixin.js
index b80d234a94d..5a4f0e409f8 100644
--- a/src/shared/uni-id-mixin.js
+++ b/src/shared/uni-id-mixin.js
@@ -33,7 +33,7 @@ function b64DecodeUnicode (str) {
}
function getCurrentUserInfo () {
- const token = (__PLATFORM__ === 'h5' || __PLATFORM__ === 'app-plus' ? uni : __GLOBAL__).getStorageSync('uni_id_token') || ''
+ const token = (__PLATFORM__ === 'h5' || __PLATFORM__ === 'app-plus' || __PLATFORM__ === 'mp-weibo' ? uni : __GLOBAL__).getStorageSync('uni_id_token') || ''
const tokenArr = token.split('.')
if (!token || tokenArr.length !== 3) {
return {