diff --git a/packages/uni-app-plus/dist/index.v3.js b/packages/uni-app-plus/dist/index.v3.js index c060ec71e2ad14099728159da336d63bda967e7a..b9541716c449b100e9bbbfb4d5600f2d515c2f4c 100644 --- a/packages/uni-app-plus/dist/index.v3.js +++ b/packages/uni-app-plus/dist/index.v3.js @@ -5853,7 +5853,7 @@ var serviceContext = (function () { ); } - function restoreGlobal( + function restoreGlobal ( newWeex, newPlus, newSetTimeout, @@ -6335,7 +6335,8 @@ var serviceContext = (function () { const PAGE_CREATED = 10; const WEBVIEW_READY = 'webviewReady'; - const WEBVIEW_UI_EVENT = 'webviewUIEvent'; + const WEBVIEW_UI_EVENT = 'webviewUIEvent'; + const VD_SYNC_CALLBACK = 'vdSyncCallback'; const pageFactory = Object.create(null); @@ -6345,9 +6346,9 @@ var serviceContext = (function () { const getPageVueComponent = cached(function (pagePath) { return pageFactory[pagePath]() - }); - - function createPage (pagePath, pageId) { + }); + + function createPage (pagePath, pageId, pageQuery, pageInstance) { if (!pageFactory[pagePath]) { console.error(`${pagePath} not found`); } @@ -6355,7 +6356,9 @@ var serviceContext = (function () { const pageVm = new (getPageVueComponent(pagePath))({ mpType: 'page', pageId, - pagePath + pagePath, + pageQuery, + pageInstance }); if (process.env.NODE_ENV !== 'production') { console.log(`new ${pagePath}`, Date.now() - startTime); @@ -6430,6 +6433,9 @@ var serviceContext = (function () { const index = pages.findIndex(page => page === this); if (index !== -1) { pages.splice(index, 1); + if (!webview.nvue) { + this.$vm.$destroy(); + } if (process.env.NODE_ENV !== 'production') { console.log(`[uni-app] removePage`, path, webview.id); } @@ -6461,9 +6467,7 @@ var serviceContext = (function () { } }, [pageId]); - pageInstance.$vm = createPage(route, pageId); - pageInstance.$vm.$scope = pageInstance; - pageInstance.$vm.$mount(); + createPage(route, pageId, query, pageInstance).$mount(); } } @@ -7674,7 +7678,8 @@ var serviceContext = (function () { pause: [], resume: [], start: [], - stop: [] + stop: [], + error: [] }; class RecorderManager { @@ -8942,8 +8947,12 @@ var serviceContext = (function () { }; } + function noop() {} + + const callbacks$a = []; // 数据同步 callback + class VDomSync { - constructor (pageId, pagePath) { + constructor(pageId, pagePath) { this.pageId = pageId; this.pagePath = pagePath; this.batchData = []; @@ -8955,9 +8964,19 @@ var serviceContext = (function () { this._init(); } - _init () { + _init() { + UniServiceJSBridge.subscribe(VD_SYNC_CALLBACK, () => { + const copies = callbacks$a.slice(0); + callbacks$a.length = 0; + for (let i = 0; i < copies.length; i++) { + copies[i](); + } + }); + registerWebviewUIEvent(this.pageId, (cid, nid, event) => { console.log(`[EVENT]`, cid, nid, event); + event.preventDefault = noop; + event.stopPropagation = noop; if ( this.handlers[cid] && this.handlers[cid][nid] && @@ -8966,29 +8985,49 @@ var serviceContext = (function () { this.handlers[cid][nid][event.type].forEach(handler => { handler(event); }); + } else { + console.error(`event handler[${cid}][${nid}][${event.type}] not found`); } }); } - getVm (id) { + addMountedVm(vm) { + vm._$mounted(); // 触发vd数据同步 + this.addCallback(function mounted() { + vm.__call_hook('mounted'); + }); + } + + addUpdatedVm(vm) { + vm._$updated(); // 触发vd数据同步 + this.addCallback(function mounted() { + vm.__call_hook('updated'); + }); + } + + addCallback(callback) { + isFn(callback) && callbacks$a.push(callback); + } + + getVm(id) { return this.vms[id] } - addVm (vm) { + addVm(vm) { this.vms[vm._$id] = vm; } - removeVm (vm) { + removeVm(vm) { delete this.vms[vm._$id]; } - addEvent (cid, nid, name, handler) { + addEvent(cid, nid, name, handler) { const cHandlers = this.handlers[cid] || (this.handlers[cid] = Object.create(null)); const nHandlers = cHandlers[nid] || (cHandlers[nid] = Object.create(null)); (nHandlers[name] || (nHandlers[name] = [])).push(handler); } - removeEvent (cid, nid, name, handler) { + removeEvent(cid, nid, name, handler) { const cHandlers = this.handlers[cid] || (this.handlers[cid] = Object.create(null)); const nHandlers = cHandlers[nid] || (cHandlers[nid] = Object.create(null)); const eHandlers = nHandlers[name]; @@ -9000,11 +9039,11 @@ var serviceContext = (function () { } } - push (type, nodeId, data) { + push(type, nodeId, data) { this.batchData.push([type, [nodeId, data]]); } - flush () { + flush() { if (!this.initialized) { this.initialized = true; this.batchData.push([PAGE_CREATED, [this.pageId, this.pagePath]]); @@ -9020,7 +9059,7 @@ var serviceContext = (function () { } } - destroy () { + destroy() { this.batchData.length = 0; this.vms = Object.create(null); this.initialized = false; @@ -9044,8 +9083,7 @@ var serviceContext = (function () { } } - function diff (newData, oldData) { - const result = Object.create(null); + function diff (newData, oldData, result) { let id, cur, old; for (id in newData) { cur = newData[id]; @@ -9059,25 +9097,47 @@ var serviceContext = (function () { return result } - function initData (Vue) { + function initData(Vue) { Vue.prototype._$s = setData; Vue.prototype._$i = setIfData; Vue.prototype._$f = setForData; Vue.prototype._$e = setElseIfData; - Vue.prototype._$setData = function setData (type, data) { + Vue.prototype._$setData = function setData(type, data) { this._$vd.push(type, this._$id, data); + }; + + Vue.prototype._$mounted = function mounted() { + if (!this._$vd) { + return + } + diff(this._$newData, this._$data, this._$vdMountedData); + this._$data = JSON.parse(JSON.stringify(this._$newData)); + console.log(`[${this._$id}] mounted ` + Date.now()); + if (this.mpType === 'page') { + // 页面 mounted 之后,第一次同步数据 + this._$vd.flush(); + } + }; + + Vue.prototype._$updated = function updated() { + if (!this._$vd) { + return + } + diff(this._$newData, this._$data, this._$vdUpdatedData); + this._$data = JSON.parse(JSON.stringify(this._$newData)); + console.log(`[${this._$id}] updated ` + Date.now()); this._$vd.initialized && this.$nextTick(this._$vd.flush.bind(this._$vd)); }; Object.defineProperty(Vue.prototype, '_$vd', { - get () { + get() { return this.$root._$vdomSync } }); Vue.mixin({ - beforeCreate () { + beforeCreate() { if (this.$options.mpType) { this.mpType = this.$options.mpType; } @@ -9090,52 +9150,34 @@ var serviceContext = (function () { if (this._$vd) { this._$id = guid(); this._$vd.addVm(this); + this._$vdMountedData = Object.create(null); + this._$setData(MOUNTED_DATA, this._$vdMountedData); console.log(`[${this._$id}] beforeCreate ` + Date.now()); // 目前全量采集做 diff(iOS 需要保留全量状态做 restore),理论上可以差量采集 this._$data = Object.create(null); this._$newData = Object.create(null); } }, - mounted () { - if (!this._$vd) { - return - } - const diffData = diff(this._$newData, this._$data); - this._$data = JSON.parse(JSON.stringify(this._$newData)); - console.log(`[${this._$id}] mounted ` + Date.now()); - this._$setData(MOUNTED_DATA, diffData); - if (this.mpType === 'page') { - // 页面 mounted 之后,第一次同步数据 - this._$vd.flush(); - } - }, - beforeUpdate () { + beforeUpdate() { if (!this._$vd) { return } + this._$vdUpdatedData = Object.create(null); + this._$setData(UPDATED_DATA, this._$vdUpdatedData); console.log(`[${this._$id}] beforeUpdate ` + Date.now()); this._$newData = Object.create(null); }, - updated () { - if (!this._$vd) { - return - } - const diffData = diff(this._$newData, this._$data); - this._$data = JSON.parse(JSON.stringify(this._$newData)); - console.log(`[${this._$id}] updated ` + Date.now()); - this._$setData(UPDATED_DATA, diffData); - }, - beforeDestroy () { + beforeDestroy() { if (!this._$vd) { return } this._$vd.removeVm(this); - this._$vdomSync && this._$vdomSync.destory(); + this._$vdomSync && this._$vdomSync.destroy(); } }); } - function setData (id, name, value) { + function setData(id, name, value) { const diffData = this._$newData[id] || (this._$newData[id] = {}); if (typeof name !== 'string') { @@ -9151,14 +9193,19 @@ var serviceContext = (function () { return (diffData[name] = value) } - function setForData (id, value) { + function setForData(id, value) { + const diffData = this._$newData[id] || (this._$newData[id] = {}); + const vForData = diffData['v-for'] || (diffData['v-for'] = []); + + if (value.forItems) { + return value.forItems + } + const { forIndex, key } = value; - const diffData = this._$newData[id] || (this._$newData[id] = {}); - const vForData = diffData['v-for'] || (diffData['v-for'] = []); if (!hasOwn(value, 'keyIndex')) { vForData[forIndex] = key; } else { @@ -9167,11 +9214,11 @@ var serviceContext = (function () { return key } - function setIfData (id, value) { + function setIfData(id, value) { return ((this._$newData[id] || (this._$newData[id] = {}))['v-if'] = value) } - function setElseIfData (id, value) { + function setElseIfData(id, value) { return ((this._$newData[id] || (this._$newData[id] = {}))['v-else-if'] = value) } @@ -9233,12 +9280,42 @@ var serviceContext = (function () { }); } + function initLifecycle (Vue) { + lifecycleMixin(Vue); + + Vue.mixin({ + beforeCreate () { + if (this.mpType === 'page') { + this.$scope = this.$options.pageInstance; + this.$scope.$vm = this; + delete this.$options.pageInstance; + } + }, + created () { + if (this.mpType === 'page') { + callPageHook(this.$scope, 'onLoad', this.$options.pageQuery); + callPageHook(this.$scope, 'onShow'); + } + }, + beforeDestroy () { + if (this.mpType === 'page') { + callPageHook(this.$scope, 'onUnload'); + } + }, + mounted () { + if (this.mpType === 'page') { + callPageHook(this.$scope, 'onReady'); + } + } + }); + } + var vuePlugin = { install (Vue, options) { initVue(Vue); initData(Vue); - lifecycleMixin(Vue); + initLifecycle(Vue); const oldMount = Vue.prototype.$mount; Vue.prototype.$mount = function mount (el, hydrating) { diff --git a/packages/uni-app-plus/dist/service.runtime.esm.js b/packages/uni-app-plus/dist/service.runtime.esm.js index a438cf5b370c51f09e002d9b9dffbcbabd59bf0d..88053fd7c7b10c510d6f18bb7712f10949344a8d 100644 --- a/packages/uni-app-plus/dist/service.runtime.esm.js +++ b/packages/uni-app-plus/dist/service.runtime.esm.js @@ -2619,20 +2619,21 @@ function renderList ( if (Array.isArray(val) || typeof val === 'string') { ret = new Array(val.length); for (i = 0, l = val.length; i < l; i++) { - ret[i] = render(val[i], i); + ret[i] = render(val[i], i, i, i); } } else if (typeof val === 'number') { ret = new Array(val); for (i = 0; i < val; i++) { - ret[i] = render(i + 1, i); + ret[i] = render(i + 1, i, i, i); } } else if (isObject(val)) { if (hasSymbol && val[Symbol.iterator]) { ret = []; var iterator = val[Symbol.iterator](); var result = iterator.next(); + i = 0; while (!result.done) { - ret.push(render(result.value, ret.length)); + ret.push(render(result.value, ret.length, i++, i)); result = iterator.next(); } } else { @@ -2640,7 +2641,7 @@ function renderList ( ret = new Array(keys.length); for (i = 0, l = keys.length; i < l; i++) { key = keys[i]; - ret[i] = render(val[key], key, i); + ret[i] = render(val[key], key, i, i); } } } @@ -3127,8 +3128,13 @@ var componentVNodeHooks = { var context = vnode.context; var componentInstance = vnode.componentInstance; if (!componentInstance._isMounted) { + // fixed by xxxxxx componentInstance._isMounted = true; - callHook(componentInstance, 'mounted'); + if (componentInstance._$vd) {// 延迟 mounted + componentInstance._$vd.addMountedVm(componentInstance); + } else { + callHook(componentInstance, 'mounted'); + } } if (vnode.data.keepAlive) { if (context._isMounted) { @@ -4074,8 +4080,13 @@ function mountComponent ( // manually mounted instance, call mounted on self // mounted is called for render-created child components in its inserted hook if (vm.$vnode == null) { + // fixed by xxxxxx vm._isMounted = true; - callHook(vm, 'mounted'); + if (vm._$vd) {// 延迟 mounted 事件 + vm._$vd.addMountedVm(vm); + } else { + callHook(vm, 'mounted'); + } } return vm } @@ -4340,7 +4351,12 @@ function callUpdatedHooks (queue) { var watcher = queue[i]; var vm = watcher.vm; if (vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) { - callHook(vm, 'updated'); + // fixed by xxxxx + if (vm._$vd) { // 延迟 updated 事件 + vm._$vd.addUpdatedVm(vm); + }else{ + callHook(vm, 'updated'); + } } } } @@ -6692,17 +6708,33 @@ function normalizeStyleBinding (bindingStyle) { } function updateExtras(oldVnode, vnode) { - if (isUndef(vnode.data.extras) && isUndef(vnode.data.attrs)) { + + var attrs = vnode.data.attrs; + var extras = vnode.data.extras; + + var isExtrasUndef = isUndef(extras); + if (isExtrasUndef && isUndef(attrs)) { return } var elm = vnode.elm; var context = vnode.context; - var attrs = vnode.data.attrs; - var extras = vnode.data.extras; - var id = attrs['_i']; + // 存储事件标记 + elm.setAttribute('nid', String(id)); + elm.setAttribute('cid', context._$id); + + if ( + ( + isExtrasUndef || + Object.keys(extras).length === 0 + ) && + Object.keys(attrs).length === 1 + ) { + return + } + var $s = vnode.context._$s.bind(vnode.context); if (extras) { @@ -6722,9 +6754,7 @@ function updateExtras(oldVnode, vnode) { key$1 !== '_i' && $s(id, 'a-' + key$1, attrs[key$1]); } } - // 存储事件标记 - elm.setAttribute('nid', String(id)); - elm.setAttribute('cid', context._$id); + } diff --git a/packages/uni-app-plus/dist/view.runtime.esm.js b/packages/uni-app-plus/dist/view.runtime.esm.js index 843bcfea6819bd041a818a11ff88e965c0f7cfe5..bc0baa257b6f33dbd8bf9e115a67a705493c8356 100644 --- a/packages/uni-app-plus/dist/view.runtime.esm.js +++ b/packages/uni-app-plus/dist/view.runtime.esm.js @@ -2627,20 +2627,21 @@ function renderList ( if (Array.isArray(val) || typeof val === 'string') { ret = new Array(val.length); for (i = 0, l = val.length; i < l; i++) { - ret[i] = render(val[i], i); + ret[i] = render(val[i], i, i, i); } } else if (typeof val === 'number') { ret = new Array(val); for (i = 0; i < val; i++) { - ret[i] = render(i + 1, i); + ret[i] = render(i + 1, i, i, i); } } else if (isObject(val)) { if (hasSymbol && val[Symbol.iterator]) { ret = []; var iterator = val[Symbol.iterator](); var result = iterator.next(); + i = 0; while (!result.done) { - ret.push(render(result.value, ret.length)); + ret.push(render(result.value, ret.length, i++, i)); result = iterator.next(); } } else { @@ -2648,7 +2649,7 @@ function renderList ( ret = new Array(keys.length); for (i = 0, l = keys.length; i < l; i++) { key = keys[i]; - ret[i] = render(val[key], key, i); + ret[i] = render(val[key], key, i, i); } } } diff --git a/packages/uni-app-plus/dist/view.umd.js b/packages/uni-app-plus/dist/view.umd.js index c1a6eecaa3a386d2c400ef369a43074389b012c4..2c9f8f36d7af679f8311748566454e2175d74fb8 100644 --- a/packages/uni-app-plus/dist/view.umd.js +++ b/packages/uni-app-plus/dist/view.umd.js @@ -91,7 +91,7 @@ return /******/ (function(modules) { // webpackBootstrap /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 122); +/******/ return __webpack_require__(__webpack_require__.s = 118); /******/ }) /************************************************************************/ /******/ ([ @@ -201,105 +201,6 @@ function normalizeComponent ( "use strict"; -// CONCATENATED MODULE: ./src/core/view/mixins/emitter.js -// 暂不提供通知所有 -// 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 */ var emitter = ({ - 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)); - } - } -}); -// EXTERNAL MODULE: ./src/core/view/mixins/listeners.js -var listeners = __webpack_require__(51); - -// EXTERNAL MODULE: ./src/core/view/mixins/hover.js -var hover = __webpack_require__(12); - -// EXTERNAL MODULE: ./src/core/view/mixins/subscriber.js -var subscriber = __webpack_require__(52); - -// CONCATENATED MODULE: ./src/core/view/mixins/index.js -/* concated harmony reexport emitter */__webpack_require__.d(__webpack_exports__, "a", function() { return emitter; }); -/* concated harmony reexport listeners */__webpack_require__.d(__webpack_exports__, "c", function() { return listeners["a" /* default */]; }); -/* concated harmony reexport hover */__webpack_require__.d(__webpack_exports__, "b", function() { return hover["a" /* default */]; }); -/* concated harmony reexport subscriber */__webpack_require__.d(__webpack_exports__, "d", function() { return subscriber["a" /* default */]; }); - - - - - -/***/ }), -/* 2 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; - // CONCATENATED MODULE: ./src/shared/env.js var supportsPassive = false; @@ -528,6 +429,105 @@ function stringifyQuery(obj) { +/***/ }), +/* 2 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; + +// CONCATENATED MODULE: ./src/core/view/mixins/emitter.js +// 暂不提供通知所有 +// 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 */ var emitter = ({ + 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)); + } + } +}); +// EXTERNAL MODULE: ./src/core/view/mixins/listeners.js +var listeners = __webpack_require__(49); + +// EXTERNAL MODULE: ./src/core/view/mixins/hover.js +var hover = __webpack_require__(12); + +// EXTERNAL MODULE: ./src/core/view/mixins/subscriber.js +var subscriber = __webpack_require__(50); + +// CONCATENATED MODULE: ./src/core/view/mixins/index.js +/* concated harmony reexport emitter */__webpack_require__.d(__webpack_exports__, "a", function() { return emitter; }); +/* concated harmony reexport listeners */__webpack_require__.d(__webpack_exports__, "c", function() { return listeners["a" /* default */]; }); +/* concated harmony reexport hover */__webpack_require__.d(__webpack_exports__, "b", function() { return hover["a" /* default */]; }); +/* concated harmony reexport subscriber */__webpack_require__.d(__webpack_exports__, "d", function() { return subscriber["a" /* default */]; }); + + + + + /***/ }), /* 3 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { @@ -536,25 +536,25 @@ function stringifyQuery(obj) { __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./packages/uni-app-plus/dist/view.runtime.esm.js -var view_runtime_esm = __webpack_require__(8); +var view_runtime_esm = __webpack_require__(6); // EXTERNAL MODULE: ./src/shared/index.js + 4 modules -var shared = __webpack_require__(2); +var shared = __webpack_require__(1); // EXTERNAL MODULE: ./src/core/helpers/index.js -var helpers = __webpack_require__(4); +var helpers = __webpack_require__(5); // CONCATENATED MODULE: ./src/core/helpers/constants.js var NAVBAR_HEIGHT = 44; var TABBAR_HEIGHT = 50; // EXTERNAL MODULE: ./src/core/view/bridge/subscribe/scroll.js -var subscribe_scroll = __webpack_require__(54); +var subscribe_scroll = __webpack_require__(52); // EXTERNAL MODULE: ./src/core/view/bridge/subscribe/api/request-component-info.js -var request_component_info = __webpack_require__(55); +var request_component_info = __webpack_require__(53); // EXTERNAL MODULE: ./src/core/view/bridge/subscribe/api/request-component-observer.js -var request_component_observer = __webpack_require__(48); +var request_component_observer = __webpack_require__(46); // CONCATENATED MODULE: ./src/core/view/bridge/subscribe/api/index.js @@ -634,6 +634,30 @@ initSubscribe(bridge_subscribe); /* 4 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return PAGE_CREATE; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return MOUNTED_DATA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return UPDATED_DATA; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return PAGE_CREATED; }); +/* unused harmony export LAYOUT_READY */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return APP_SERVICE_ID; }); +/* unused harmony export WEBVIEW_READY */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return WEBVIEW_UI_EVENT; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return VD_SYNC_CALLBACK; }); +var PAGE_CREATE = 2; +var MOUNTED_DATA = 4; +var UPDATED_DATA = 6; +var PAGE_CREATED = 10; +var LAYOUT_READY = 30; +var APP_SERVICE_ID = '__uniapp__service'; +var WEBVIEW_READY = 'webviewReady'; +var WEBVIEW_UI_EVENT = 'webviewUIEvent'; +var VD_SYNC_CALLBACK = 'vdSyncCallback'; + +/***/ }), +/* 5 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isPage; }); /* unused harmony export hasLifecycleHook */ @@ -678,330 +702,24 @@ function upx2px(str) { } /***/ }), -/* 5 */ +/* 6 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return PAGE_CREATE; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return MOUNTED_DATA; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return UPDATED_DATA; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return PAGE_CREATED; }); -/* unused harmony export LAYOUT_READY */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return APP_SERVICE_ID; }); -/* unused harmony export WEBVIEW_READY */ -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return WEBVIEW_UI_EVENT; }); -var PAGE_CREATE = 2; -var MOUNTED_DATA = 4; -var UPDATED_DATA = 6; -var PAGE_CREATED = 10; -var LAYOUT_READY = 30; -var APP_SERVICE_ID = '__uniapp__service'; -var WEBVIEW_READY = 'webviewReady'; -var WEBVIEW_UI_EVENT = 'webviewUIEvent'; +/* WEBPACK VAR INJECTION */(function(global) {/*! + * Vue.js v2.6.10 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +/* */ -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { +var emptyObject = Object.freeze({}); -"use strict"; - -var attrs = ['top', 'left', 'right', 'bottom']; -var inited; -var elementComputedStyle = {}; -var support; -function getSupport() { - if (!('CSS' in window) || typeof CSS.supports != 'function') { - support = ''; - } - else if (CSS.supports('top: env(safe-area-inset-top)')) { - support = 'env'; - } - else if (CSS.supports('top: constant(safe-area-inset-top)')) { - support = 'constant'; - } - else { - support = ''; - } - return support; -} -function init() { - support = typeof support === 'string' ? support : getSupport(); - if (!support) { - attrs.forEach(function (attr) { - elementComputedStyle[attr] = 0; - }); - return; - } - function setStyle(el, style) { - var elStyle = el.style; - Object.keys(style).forEach(function (key) { - var val = style[key]; - elStyle[key] = val; - }); - } - var cbs = []; - function parentReady(callback) { - if (callback) { - cbs.push(callback); - } - else { - cbs.forEach(function (cb) { - cb(); - }); - } - } - var passiveEvents = false; - try { - var opts = Object.defineProperty({}, 'passive', { - get: function () { - passiveEvents = { passive: true }; - } - }); - window.addEventListener('test', null, opts); - } - catch (e) { - } - function addChild(parent, attr) { - var a1 = document.createElement('div'); - var a2 = document.createElement('div'); - var a1Children = document.createElement('div'); - var a2Children = document.createElement('div'); - var W = 100; - var MAX = 10000; - var aStyle = { - position: 'absolute', - width: W + 'px', - height: '200px', - boxSizing: 'border-box', - overflow: 'hidden', - paddingBottom: support + "(safe-area-inset-" + attr + ")" - }; - setStyle(a1, aStyle); - setStyle(a2, aStyle); - setStyle(a1Children, { - transition: '0s', - animation: 'none', - width: '400px', - height: '400px' - }); - setStyle(a2Children, { - transition: '0s', - animation: 'none', - width: '250%', - height: '250%' - }); - a1.appendChild(a1Children); - a2.appendChild(a2Children); - parent.appendChild(a1); - parent.appendChild(a2); - parentReady(function () { - a1.scrollTop = a2.scrollTop = MAX; - var a1LastScrollTop = a1.scrollTop; - var a2LastScrollTop = a2.scrollTop; - function onScroll() { - if (this.scrollTop === (this === a1 ? a1LastScrollTop : a2LastScrollTop)) { - return; - } - a1.scrollTop = a2.scrollTop = MAX; - a1LastScrollTop = a1.scrollTop; - a2LastScrollTop = a2.scrollTop; - attrChange(attr); - } - a1.addEventListener('scroll', onScroll, passiveEvents); - a2.addEventListener('scroll', onScroll, passiveEvents); - }); - var computedStyle = getComputedStyle(a1); - Object.defineProperty(elementComputedStyle, attr, { - configurable: true, - get: function () { - return parseFloat(computedStyle.paddingBottom); - } - }); - } - var parentDiv = document.createElement('div'); - setStyle(parentDiv, { - position: 'absolute', - left: '0', - top: '0', - width: '0', - height: '0', - zIndex: '-1', - overflow: 'hidden', - visibility: 'hidden', - }); - attrs.forEach(function (key) { - addChild(parentDiv, key); - }); - document.body.appendChild(parentDiv); - parentReady(); - inited = true; -} -function getAttr(attr) { - if (!inited) { - init(); - } - return elementComputedStyle[attr]; -} -var changeAttrs = []; -function attrChange(attr) { - if (!changeAttrs.length) { - setTimeout(function () { - var style = {}; - changeAttrs.forEach(function (attr) { - style[attr] = elementComputedStyle[attr]; - }); - changeAttrs.length = 0; - callbacks.forEach(function (callback) { - callback(style); - }); - }, 0); - } - changeAttrs.push(attr); -} -var callbacks = []; -function onChange(callback) { - if (!getSupport()) { - return; - } - if (!inited) { - init(); - } - if (typeof callback === 'function') { - callbacks.push(callback); - } -} -function offChange(callback) { - var index = callbacks.indexOf(callback); - if (index >= 0) { - callbacks.splice(index, 1); - } -} -var safeAreaInsets = { - get support() { - return (typeof support === 'string' ? support : getSupport()).length != 0; - }, - get top() { - return getAttr('top'); - }, - get left() { - return getAttr('left'); - }, - get right() { - return getAttr('right'); - }, - get bottom() { - return getAttr('bottom'); - }, - onChange: onChange, - offChange: offChange -}; -module.exports = safeAreaInsets; -//# sourceMappingURL=index.js.map - -/***/ }), -/* 7 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -var addListenerToElement = function addListenerToElement(element, type, callback, r) { - // 暂时忽略capture - element.addEventListener(type, function ($event) { - if (typeof callback === 'function') { - if (callback($event) === false) { - $event.preventDefault(); - $event.stopPropagation(); - } - } - }, { - passive: false - }); -}; - -/* harmony default export */ __webpack_exports__["a"] = ({ - methods: { - touchtrack: function touchtrack(element, method, useCancel) { - var self = this; - var x0 = 0; - var y0 = 0; - var x1 = 0; - var y1 = 0; - - var fn = function fn($event, state, x, y) { - if (self[method]({ - target: $event.target, - currentTarget: $event.currentTarget, - preventDefault: $event.preventDefault.bind($event), - stopPropagation: $event.stopPropagation.bind($event), - touches: $event.touches, - changedTouches: $event.changedTouches, - detail: { - state: state, - x0: x, - y0: y, - dx: x - x0, - dy: y - y0, - ddx: x - x1, - ddy: y - y1, - timeStamp: $event.timeStamp - } - }) === false) { - return false; - } - }; - - var $eventOld = null; - addListenerToElement(element, 'touchstart', function ($event) { - if ($event.touches.length === 1 && !$eventOld) { - $eventOld = $event; - x0 = x1 = $event.touches[0].pageX; - y0 = y1 = $event.touches[0].pageY; - return fn($event, 'start', x0, y0); - } - }); - addListenerToElement(element, 'touchmove', function ($event) { - if ($event.touches.length === 1 && $eventOld) { - var res = fn($event, 'move', $event.touches[0].pageX, $event.touches[0].pageY); - x1 = $event.touches[0].pageX; - y1 = $event.touches[0].pageY; - return res; - } - }); - addListenerToElement(element, 'touchend', function ($event) { - if ($event.touches.length === 0 && $eventOld) { - $eventOld = null; - return fn($event, 'end', $event.changedTouches[0].pageX, $event.changedTouches[0].pageY); - } - }); - addListenerToElement(element, 'touchcancel', function ($event) { - if ($eventOld) { - var $eventTemp = $eventOld; - $eventOld = null; - return fn($event, useCancel ? 'cancel' : 'end', $eventTemp.touches[0].pageX, $eventTemp.touches[0].pageY); - } - }); - } - } -}); - -/***/ }), -/* 8 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(global) {/*! - * Vue.js v2.6.10 - * (c) 2014-2019 Evan You - * Released under the MIT License. - */ -/* */ - -var emptyObject = Object.freeze({}); - -// These helpers produce better VM code in JS engines due to their -// explicitness and function inlining. -function isUndef (v) { - return v === undefined || v === null -} +// These helpers produce better VM code in JS engines due to their +// explicitness and function inlining. +function isUndef (v) { + return v === undefined || v === null +} function isDef (v) { return v !== undefined && v !== null @@ -3613,20 +3331,21 @@ function renderList ( if (Array.isArray(val) || typeof val === 'string') { ret = new Array(val.length); for (i = 0, l = val.length; i < l; i++) { - ret[i] = render(val[i], i); + ret[i] = render(val[i], i, i, i); } } else if (typeof val === 'number') { ret = new Array(val); for (i = 0; i < val; i++) { - ret[i] = render(i + 1, i); + ret[i] = render(i + 1, i, i, i); } } else if (isObject(val)) { if (hasSymbol && val[Symbol.iterator]) { ret = []; var iterator = val[Symbol.iterator](); var result = iterator.next(); + i = 0; while (!result.done) { - ret.push(render(result.value, ret.length)); + ret.push(render(result.value, ret.length, i++, i)); result = iterator.next(); } } else { @@ -3634,7 +3353,7 @@ function renderList ( ret = new Array(keys.length); for (i = 0, l = keys.length; i < l; i++) { key = keys[i]; - ret[i] = render(val[key], key, i); + ret[i] = render(val[key], key, i, i); } } } @@ -9367,88 +9086,372 @@ function callPendingCbs (c) { c.elm._enterCb(); } } - -function recordPosition (c) { - c.data.newPos = c.elm.getBoundingClientRect(); + +function recordPosition (c) { + c.data.newPos = c.elm.getBoundingClientRect(); +} + +function applyTranslation (c) { + var oldPos = c.data.pos; + var newPos = c.data.newPos; + var dx = oldPos.left - newPos.left; + var dy = oldPos.top - newPos.top; + if (dx || dy) { + c.data.moved = true; + var s = c.elm.style; + s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)"; + s.transitionDuration = '0s'; + } +} + +var platformComponents = { + Transition: Transition, + TransitionGroup: TransitionGroup +}; + +/* */ + +// install platform specific utils +Vue.config.mustUseProp = mustUseProp; +Vue.config.isReservedTag = isReservedTag; +Vue.config.isReservedAttr = isReservedAttr; +Vue.config.getTagNamespace = getTagNamespace; +Vue.config.isUnknownElement = isUnknownElement; + +// install platform runtime directives & components +extend(Vue.options.directives, platformDirectives); +extend(Vue.options.components, platformComponents); + +// install platform patch function +Vue.prototype.__patch__ = inBrowser ? patch : noop; + +// public mount method +Vue.prototype.$mount = function ( + el, + hydrating +) { + el = el && inBrowser ? query(el) : undefined; + return mountComponent(this, el, hydrating) +}; + +// devtools global hook +/* istanbul ignore next */ +if (inBrowser) { + setTimeout(function () { + if (config.devtools) { + if (devtools) { + devtools.emit('init', Vue); + } else if ( + true + ) { + console[console.info ? 'info' : 'log']( + 'Download the Vue Devtools extension for a better development experience:\n' + + 'https://github.com/vuejs/vue-devtools' + ); + } + } + if ( true && + config.productionTip !== false && + typeof console !== 'undefined' + ) { + console[console.info ? 'info' : 'log']( + "You are running Vue in development mode.\n" + + "Make sure to turn on production mode when deploying for production.\n" + + "See more tips at https://vuejs.org/guide/deployment.html" + ); + } + }, 0); +} + +/* */ + +/* harmony default export */ __webpack_exports__["a"] = (Vue); + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(45))) + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var attrs = ['top', 'left', 'right', 'bottom']; +var inited; +var elementComputedStyle = {}; +var support; +function getSupport() { + if (!('CSS' in window) || typeof CSS.supports != 'function') { + support = ''; + } + else if (CSS.supports('top: env(safe-area-inset-top)')) { + support = 'env'; + } + else if (CSS.supports('top: constant(safe-area-inset-top)')) { + support = 'constant'; + } + else { + support = ''; + } + return support; +} +function init() { + support = typeof support === 'string' ? support : getSupport(); + if (!support) { + attrs.forEach(function (attr) { + elementComputedStyle[attr] = 0; + }); + return; + } + function setStyle(el, style) { + var elStyle = el.style; + Object.keys(style).forEach(function (key) { + var val = style[key]; + elStyle[key] = val; + }); + } + var cbs = []; + function parentReady(callback) { + if (callback) { + cbs.push(callback); + } + else { + cbs.forEach(function (cb) { + cb(); + }); + } + } + var passiveEvents = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function () { + passiveEvents = { passive: true }; + } + }); + window.addEventListener('test', null, opts); + } + catch (e) { + } + function addChild(parent, attr) { + var a1 = document.createElement('div'); + var a2 = document.createElement('div'); + var a1Children = document.createElement('div'); + var a2Children = document.createElement('div'); + var W = 100; + var MAX = 10000; + var aStyle = { + position: 'absolute', + width: W + 'px', + height: '200px', + boxSizing: 'border-box', + overflow: 'hidden', + paddingBottom: support + "(safe-area-inset-" + attr + ")" + }; + setStyle(a1, aStyle); + setStyle(a2, aStyle); + setStyle(a1Children, { + transition: '0s', + animation: 'none', + width: '400px', + height: '400px' + }); + setStyle(a2Children, { + transition: '0s', + animation: 'none', + width: '250%', + height: '250%' + }); + a1.appendChild(a1Children); + a2.appendChild(a2Children); + parent.appendChild(a1); + parent.appendChild(a2); + parentReady(function () { + a1.scrollTop = a2.scrollTop = MAX; + var a1LastScrollTop = a1.scrollTop; + var a2LastScrollTop = a2.scrollTop; + function onScroll() { + if (this.scrollTop === (this === a1 ? a1LastScrollTop : a2LastScrollTop)) { + return; + } + a1.scrollTop = a2.scrollTop = MAX; + a1LastScrollTop = a1.scrollTop; + a2LastScrollTop = a2.scrollTop; + attrChange(attr); + } + a1.addEventListener('scroll', onScroll, passiveEvents); + a2.addEventListener('scroll', onScroll, passiveEvents); + }); + var computedStyle = getComputedStyle(a1); + Object.defineProperty(elementComputedStyle, attr, { + configurable: true, + get: function () { + return parseFloat(computedStyle.paddingBottom); + } + }); + } + var parentDiv = document.createElement('div'); + setStyle(parentDiv, { + position: 'absolute', + left: '0', + top: '0', + width: '0', + height: '0', + zIndex: '-1', + overflow: 'hidden', + visibility: 'hidden', + }); + attrs.forEach(function (key) { + addChild(parentDiv, key); + }); + document.body.appendChild(parentDiv); + parentReady(); + inited = true; +} +function getAttr(attr) { + if (!inited) { + init(); + } + return elementComputedStyle[attr]; +} +var changeAttrs = []; +function attrChange(attr) { + if (!changeAttrs.length) { + setTimeout(function () { + var style = {}; + changeAttrs.forEach(function (attr) { + style[attr] = elementComputedStyle[attr]; + }); + changeAttrs.length = 0; + callbacks.forEach(function (callback) { + callback(style); + }); + }, 0); + } + changeAttrs.push(attr); +} +var callbacks = []; +function onChange(callback) { + if (!getSupport()) { + return; + } + if (!inited) { + init(); + } + if (typeof callback === 'function') { + callbacks.push(callback); + } } - -function applyTranslation (c) { - var oldPos = c.data.pos; - var newPos = c.data.newPos; - var dx = oldPos.left - newPos.left; - var dy = oldPos.top - newPos.top; - if (dx || dy) { - c.data.moved = true; - var s = c.elm.style; - s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)"; - s.transitionDuration = '0s'; - } +function offChange(callback) { + var index = callbacks.indexOf(callback); + if (index >= 0) { + callbacks.splice(index, 1); + } } - -var platformComponents = { - Transition: Transition, - TransitionGroup: TransitionGroup +var safeAreaInsets = { + get support() { + return (typeof support === 'string' ? support : getSupport()).length != 0; + }, + get top() { + return getAttr('top'); + }, + get left() { + return getAttr('left'); + }, + get right() { + return getAttr('right'); + }, + get bottom() { + return getAttr('bottom'); + }, + onChange: onChange, + offChange: offChange }; +module.exports = safeAreaInsets; +//# sourceMappingURL=index.js.map -/* */ - -// install platform specific utils -Vue.config.mustUseProp = mustUseProp; -Vue.config.isReservedTag = isReservedTag; -Vue.config.isReservedAttr = isReservedAttr; -Vue.config.getTagNamespace = getTagNamespace; -Vue.config.isUnknownElement = isUnknownElement; - -// install platform runtime directives & components -extend(Vue.options.directives, platformDirectives); -extend(Vue.options.components, platformComponents); - -// install platform patch function -Vue.prototype.__patch__ = inBrowser ? patch : noop; - -// public mount method -Vue.prototype.$mount = function ( - el, - hydrating -) { - el = el && inBrowser ? query(el) : undefined; - return mountComponent(this, el, hydrating) -}; +/***/ }), +/* 8 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -// devtools global hook -/* istanbul ignore next */ -if (inBrowser) { - setTimeout(function () { - if (config.devtools) { - if (devtools) { - devtools.emit('init', Vue); - } else if ( - true - ) { - console[console.info ? 'info' : 'log']( - 'Download the Vue Devtools extension for a better development experience:\n' + - 'https://github.com/vuejs/vue-devtools' - ); +"use strict"; +var addListenerToElement = function addListenerToElement(element, type, callback, r) { + // 暂时忽略capture + element.addEventListener(type, function ($event) { + if (typeof callback === 'function') { + if (callback($event) === false) { + $event.preventDefault(); + $event.stopPropagation(); } } - if ( true && - config.productionTip !== false && - typeof console !== 'undefined' - ) { - console[console.info ? 'info' : 'log']( - "You are running Vue in development mode.\n" + - "Make sure to turn on production mode when deploying for production.\n" + - "See more tips at https://vuejs.org/guide/deployment.html" - ); - } - }, 0); -} + }, { + passive: false + }); +}; -/* */ +/* harmony default export */ __webpack_exports__["a"] = ({ + methods: { + touchtrack: function touchtrack(element, method, useCancel) { + var self = this; + var x0 = 0; + var y0 = 0; + var x1 = 0; + var y1 = 0; -/* harmony default export */ __webpack_exports__["a"] = (Vue); + var fn = function fn($event, state, x, y) { + if (self[method]({ + target: $event.target, + currentTarget: $event.currentTarget, + preventDefault: $event.preventDefault.bind($event), + stopPropagation: $event.stopPropagation.bind($event), + touches: $event.touches, + changedTouches: $event.changedTouches, + detail: { + state: state, + x0: x, + y0: y, + dx: x - x0, + dy: y - y0, + ddx: x - x1, + ddy: y - y1, + timeStamp: $event.timeStamp + } + }) === false) { + return false; + } + }; -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47))) + var $eventOld = null; + addListenerToElement(element, 'touchstart', function ($event) { + if ($event.touches.length === 1 && !$eventOld) { + $eventOld = $event; + x0 = x1 = $event.touches[0].pageX; + y0 = y1 = $event.touches[0].pageY; + return fn($event, 'start', x0, y0); + } + }); + addListenerToElement(element, 'touchmove', function ($event) { + if ($event.touches.length === 1 && $eventOld) { + var res = fn($event, 'move', $event.touches[0].pageX, $event.touches[0].pageY); + x1 = $event.touches[0].pageX; + y1 = $event.touches[0].pageY; + return res; + } + }); + addListenerToElement(element, 'touchend', function ($event) { + if ($event.touches.length === 0 && $eventOld) { + $eventOld = null; + return fn($event, 'end', $event.changedTouches[0].pageX, $event.changedTouches[0].pageY); + } + }); + addListenerToElement(element, 'touchcancel', function ($event) { + if ($eventOld) { + var $eventTemp = $eventOld; + $eventOld = null; + return fn($event, useCancel ? 'cancel' : 'end', $eventTemp.touches[0].pageX, $eventTemp.touches[0].pageY); + } + }); + } + } +}); /***/ }), /* 9 */ @@ -9470,10 +9473,10 @@ function getWindowOffset() { "use strict"; // EXTERNAL MODULE: ./src/shared/index.js + 4 modules -var shared = __webpack_require__(2); +var shared = __webpack_require__(1); // EXTERNAL MODULE: ./src/core/helpers/index.js -var helpers = __webpack_require__(4); +var helpers = __webpack_require__(5); // CONCATENATED MODULE: ./src/core/helpers/patch.js function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -9723,7 +9726,7 @@ function initEvents() { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return publishHandler; }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); function plusReady(callback) { @@ -9856,8 +9859,8 @@ function publishHandler(event) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); -/* harmony import */ var uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46); +/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +/* harmony import */ var uni_helpers_hidpi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } @@ -10451,7 +10454,7 @@ function processTouches(target, touches) { /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); +/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_mixins__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); // // // @@ -10532,9 +10535,7 @@ function processTouches(target, touches) { /***/ }), -/* 27 */, -/* 28 */, -/* 29 */ +/* 27 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10542,7 +10543,7 @@ function processTouches(target, touches) { /***/ }), -/* 30 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10550,7 +10551,7 @@ function processTouches(target, touches) { /***/ }), -/* 31 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10558,7 +10559,7 @@ function processTouches(target, touches) { /***/ }), -/* 32 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10566,7 +10567,7 @@ function processTouches(target, touches) { /***/ }), -/* 33 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10574,7 +10575,7 @@ function processTouches(target, touches) { /***/ }), -/* 34 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10582,7 +10583,7 @@ function processTouches(target, touches) { /***/ }), -/* 35 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10590,7 +10591,7 @@ function processTouches(target, touches) { /***/ }), -/* 36 */ +/* 34 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10598,7 +10599,7 @@ function processTouches(target, touches) { /***/ }), -/* 37 */ +/* 35 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10606,7 +10607,7 @@ function processTouches(target, touches) { /***/ }), -/* 38 */ +/* 36 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10614,7 +10615,7 @@ function processTouches(target, touches) { /***/ }), -/* 39 */ +/* 37 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10622,7 +10623,7 @@ function processTouches(target, touches) { /***/ }), -/* 40 */ +/* 38 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -10630,14 +10631,14 @@ function processTouches(target, touches) { /***/ }), -/* 41 */ +/* 39 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return definePage; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getPageVueComponent; }); /* unused harmony export createPage */ -/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); var pageFactory = Object.create(null); function definePage(name, createPageVueComponent) { @@ -10646,7 +10647,7 @@ function definePage(name, createPageVueComponent) { var getPageVueComponent = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* cached */ "a"])(function (pagePath) { return pageFactory[pagePath](); }); -function createPage(pagePath, pageId) { +function createPage(pagePath, pageId, pageQuery, pageInstance) { if (!pageFactory[pagePath]) { console.error("".concat(pagePath, " not found")); } @@ -10655,7 +10656,9 @@ function createPage(pagePath, pageId) { var pageVm = new (getPageVueComponent(pagePath))({ mpType: 'page', pageId: pageId, - pagePath: pagePath + pagePath: pagePath, + pageQuery: pageQuery, + pageInstance: pageInstance }); if (true) { @@ -10666,7 +10669,7 @@ function createPage(pagePath, pageId) { } /***/ }), -/* 42 */ +/* 40 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10687,7 +10690,7 @@ function setCurrentPage(pageId, pagePath) { } /***/ }), -/* 43 */ +/* 41 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10761,7 +10764,7 @@ Friction.prototype.configuration = function () { }; /***/ }), -/* 44 */ +/* 42 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -10994,16 +10997,16 @@ Spring.prototype.configuration = function () { }; /***/ }), -/* 45 */ +/* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXTERNAL MODULE: ./src/core/view/mixins/scroller/Friction.js -var Friction = __webpack_require__(43); +var Friction = __webpack_require__(41); // EXTERNAL MODULE: ./src/core/view/mixins/scroller/Spring.js -var Spring = __webpack_require__(44); +var Spring = __webpack_require__(42); // CONCATENATED MODULE: ./src/core/view/mixins/scroller/Scroll.js @@ -11544,7 +11547,7 @@ Scroller.prototype.isScrolling = function () { }); /***/ }), -/* 46 */ +/* 44 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -11709,7 +11712,7 @@ function wrapper(canvas) { } /***/ }), -/* 47 */ +/* 45 */ /***/ (function(module, exports) { var g; @@ -11735,15 +11738,15 @@ module.exports = g; /***/ }), -/* 48 */ +/* 46 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return requestComponentObserver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return destroyComponentObserver; }); -/* harmony import */ var intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(64); +/* harmony import */ var intersection_observer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62); /* 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__(4); +/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); @@ -11819,23 +11822,23 @@ function destroyComponentObserver(_ref2) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 49 */ +/* 47 */ /***/ (function(module, exports) { module.exports = ['uni-app', 'uni-tabbar', 'uni-page', 'uni-page-head', 'uni-page-wrapper', 'uni-page-body', 'uni-page-refresh', 'uni-actionsheet', 'uni-modal', 'uni-toast', 'uni-resize-sensor', 'uni-ad', 'uni-audio', 'uni-button', 'uni-camera', 'uni-canvas', 'uni-checkbox', 'uni-checkbox-group', 'uni-cover-image', 'uni-cover-view', 'uni-form', 'uni-functional-page-navigator', 'uni-icon', 'uni-image', 'uni-input', 'uni-label', 'uni-live-player', 'uni-live-pusher', 'uni-map', 'uni-movable-area', 'uni-movable-view', 'uni-navigator', 'uni-official-account', 'uni-open-data', 'uni-picker', 'uni-picker-view', 'uni-picker-view-column', 'uni-progress', 'uni-radio', 'uni-radio-group', 'uni-rich-text', 'uni-scroll-view', 'uni-slider', 'uni-swiper', 'uni-swiper-item', 'uni-switch', 'uni-text', 'uni-textarea', 'uni-video', 'uni-view', 'uni-web-view']; /***/ }), -/* 50 */ +/* 48 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(UniViewJSBridge, global) {/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); -/* harmony import */ var uni_core_view_index_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65); +/* WEBPACK VAR INJECTION */(function(UniViewJSBridge, global) {/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); +/* harmony import */ var uni_core_view_index_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63); /* harmony import */ var uni_core_view_index_css__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(uni_core_view_index_css__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var uni_platform_page_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(41); -/* harmony import */ var uni_platform_view_framework_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42); -/* harmony import */ var uni_platform_view_framework_plugins_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62); -/* harmony import */ var _view_api_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(53); +/* harmony import */ var uni_platform_page_factory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(39); +/* harmony import */ var uni_platform_view_framework_page__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(40); +/* harmony import */ var uni_platform_view_framework_plugins_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60); +/* harmony import */ var _view_api_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _view_api_js__WEBPACK_IMPORTED_MODULE_5__["a"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _view_api_js__WEBPACK_IMPORTED_MODULE_5__["b"]; }); @@ -11856,17 +11859,17 @@ global.__definePage = uni_platform_page_factory__WEBPACK_IMPORTED_MODULE_2__[/* global.Vue = vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"]; vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].use(uni_platform_view_framework_plugins_index__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"]); -__webpack_require__(103); +__webpack_require__(100); -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3), __webpack_require__(47))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3), __webpack_require__(45))) /***/ }), -/* 51 */ +/* 49 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony default export */ __webpack_exports__["a"] = ({ props: { @@ -11976,11 +11979,11 @@ __webpack_require__(103); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 52 */ +/* 50 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); /* harmony default export */ __webpack_exports__["a"] = ({ // 取消id的定义,某些组件(canvas)内不在props内定义id @@ -12026,7 +12029,7 @@ __webpack_require__(103); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 53 */ +/* 51 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12082,7 +12085,7 @@ function upx2px(number, newDeviceWidth) { var get_window_offset = __webpack_require__(9); // EXTERNAL MODULE: ./node_modules/safe-area-insets/out/index.js -var out = __webpack_require__(6); +var out = __webpack_require__(7); var out_default = /*#__PURE__*/__webpack_require__.n(out); // CONCATENATED MODULE: ./src/platforms/h5/service/api/device/get-system-info.js @@ -12225,7 +12228,7 @@ function canIUse(schema) { } /***/ }), -/* 54 */ +/* 52 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -12356,12 +12359,12 @@ function createScrollListener(pageId, _ref2) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 55 */ +/* 53 */ /***/ (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__(4); +/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); /* harmony import */ var uni_platform_helpers_get_window_offset__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9); @@ -12515,14 +12518,14 @@ function requestComponentInfo(_ref, pageId) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 56 */ +/* 54 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); +/* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony import */ var uni_helpers_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); /* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); -/* harmony import */ var _behaviors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61); -/* harmony import */ var _wxs_component_descriptor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57); +/* harmony import */ var _behaviors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59); +/* harmony import */ var _wxs_component_descriptor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55); @@ -12615,12 +12618,12 @@ function pageMounted() { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 57 */ +/* 55 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return createComponentDescriptor; }); -/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); 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); } } @@ -12830,18 +12833,20 @@ function createComponentDescriptor(vm) { return vm.$el.__wxsComponentDescriptor; } } -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(47))) +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(45))) /***/ }), -/* 58 */ +/* 56 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initData; }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); -/* harmony import */ var _vdom_sync__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59); -/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42); -/* harmony import */ var _page_factory__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(41); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6); +/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); +/* harmony import */ var _vdom_sync__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57); +/* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(40); +/* harmony import */ var _page_factory__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(39); var _handleData; 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; } @@ -12858,24 +12863,27 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + + var vd; var PageVueComponent; -var handleData = (_handleData = {}, _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_0__[/* PAGE_CREATE */ "c"], function onPageCreate(data) { +var handleData = (_handleData = {}, _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_2__[/* PAGE_CREATE */ "c"], function onPageCreate(data) { var _data = _slicedToArray(data, 2), pageId = _data[0], - pagePath = _data[1]; // 设置当前页面伪对象,方便其他地方使用 getCurrentPages 获取当前页面 id,route + pagePath = _data[1]; + document.title = "".concat(pagePath, "[").concat(pageId, "]"); // 设置当前页面伪对象,方便其他地方使用 getCurrentPages 获取当前页面 id,route - Object(_page__WEBPACK_IMPORTED_MODULE_2__[/* setCurrentPage */ "b"])(pageId, pagePath); // 初始化当前页面 VueComponent(生成页面样式代码) + Object(_page__WEBPACK_IMPORTED_MODULE_4__[/* setCurrentPage */ "b"])(pageId, pagePath); // 初始化当前页面 VueComponent(生成页面样式代码) - PageVueComponent = Object(_page_factory__WEBPACK_IMPORTED_MODULE_3__[/* getPageVueComponent */ "b"])(pagePath); // 生成当前页面 vd + PageVueComponent = Object(_page_factory__WEBPACK_IMPORTED_MODULE_5__[/* getPageVueComponent */ "b"])(pagePath); // 生成当前页面 vd - vd = new _vdom_sync__WEBPACK_IMPORTED_MODULE_1__[/* VDomSync */ "a"](pageId); -}), _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_0__[/* MOUNTED_DATA */ "b"], function onMounted(data) { + vd = new _vdom_sync__WEBPACK_IMPORTED_MODULE_3__[/* VDomSync */ "a"](pageId); +}), _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_2__[/* MOUNTED_DATA */ "b"], function onMounted(data) { vd.addVData.apply(vd, data); -}), _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_0__[/* UPDATED_DATA */ "e"], function onUpdated(data) { +}), _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_2__[/* UPDATED_DATA */ "e"], function onUpdated(data) { vd.updateVData.apply(vd, data); -}), _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_0__[/* PAGE_CREATED */ "d"], function onPageCreated(data) { +}), _defineProperty(_handleData, _constants__WEBPACK_IMPORTED_MODULE_2__[/* PAGE_CREATED */ "d"], function onPageCreated(data) { var _data2 = _slicedToArray(data, 2), pageId = _data2[0], pagePath = _data2[1]; @@ -12890,13 +12898,40 @@ var handleData = (_handleData = {}, _defineProperty(_handleData, _constants__WEB function vdSync(_ref) { var data = _ref.data, options = _ref.options; + var isVdCallback = true; data.forEach(function (data) { + if (data[0] === _constants__WEBPACK_IMPORTED_MODULE_2__[/* PAGE_CREATE */ "c"]) { + // 页面创建无需触发 callback + isVdCallback = false; + } + handleData[data[0]](data[1]); }); vd.flush(); + isVdCallback && vue__WEBPACK_IMPORTED_MODULE_0__[/* default */ "a"].nextTick(function () { + UniViewJSBridge.publishHandler(_constants__WEBPACK_IMPORTED_MODULE_2__[/* VD_SYNC_CALLBACK */ "f"]); + }); +} + +function getData(id, name) { + var isFallbackContent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var root = this.$r; + + if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_1__[/* hasOwn */ "c"])(root, id)) { + var vNodeData = root[id]; + + if (Object(uni_shared__WEBPACK_IMPORTED_MODULE_1__[/* hasOwn */ "c"])(vNodeData, name)) { + return vNodeData[name]; + } else { + !isFallbackContent && console.error(this.$options.__file + ":[".concat(this._$id, "]$r[").concat(id, "][").concat(name, "] is undefined")); + } + } else { + !isFallbackContent && console.error(this.$options.__file + ":[".concat(this._$id, "]$r[").concat(id, "] is undefined")); + } } function initData(Vue) { + Vue.prototype._$g = getData; UniViewJSBridge.subscribe('vdSync', vdSync); Object.defineProperty(Vue.prototype, '_$vd', { get: function get() { @@ -12920,12 +12955,12 @@ function initData(Vue) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 59 */ +/* 57 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return VDomSync; }); -/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); +/* harmony import */ var uni_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } @@ -12968,10 +13003,10 @@ function () { }, { key: "initVm", value: function initVm(vm) { - var _this$addVDatas$pop = this.addVDatas.pop(), - _this$addVDatas$pop2 = _slicedToArray(_this$addVDatas$pop, 2), - nodeId = _this$addVDatas$pop2[0], - data = _this$addVDatas$pop2[1]; + var _this$addVDatas$shift = this.addVDatas.shift(), + _this$addVDatas$shift2 = _slicedToArray(_this$addVDatas$shift, 2), + nodeId = _this$addVDatas$shift2[0], + data = _this$addVDatas$shift2[1]; if (!nodeId) { vm._$id = Object(uni_shared__WEBPACK_IMPORTED_MODULE_0__[/* guid */ "b"])(); @@ -13000,7 +13035,9 @@ function () { return console.error("Not found ".concat(nodeId)); } - Object.assign(vm.$r, data); + Object.keys(data).forEach(function (nodeId) { + Object.assign(vm.$r[nodeId] || (vm.$r[nodeId] = Object.create(null)), data[nodeId]); + }); vm.$forceUpdate(); }); this.updateVDatas.length = 0; @@ -13011,20 +13048,21 @@ function () { }(); /***/ }), -/* 60 */ +/* 58 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(UniViewJSBridge) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return initEvent; }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4); function initEvent(Vue) { Vue.prototype.$handleViewEvent = function ($vueEvent, options) { var $event = this.$handleEvent($vueEvent); - var cid = this._$id; - var nid = $event.options.nid; + var cid = this._$id; // 当自定义组件根节点触发事件时,nid 始终为 0 + + var nid = $vueEvent.currentTarget === this.$el ? 0 : $event.options.nid; - if (!nid) { + if (typeof nid === 'undefined') { return console.error("[".concat(cid, "] nid not found")); } // 移除无用属性 @@ -13034,7 +13072,7 @@ function initEvent(Vue) { delete $event.preventDefault; delete $event.stopPropagation; delete $event.options; - UniViewJSBridge.publishHandler(_constants__WEBPACK_IMPORTED_MODULE_0__[/* WEBVIEW_UI_EVENT */ "f"], { + UniViewJSBridge.publishHandler(_constants__WEBPACK_IMPORTED_MODULE_0__[/* WEBVIEW_UI_EVENT */ "g"], { data: $event, options: { cid: cid, @@ -13046,16 +13084,16 @@ function initEvent(Vue) { /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(3))) /***/ }), -/* 61 */ +/* 59 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXTERNAL MODULE: ./src/shared/index.js + 4 modules -var shared = __webpack_require__(2); +var shared = __webpack_require__(1); // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +var mixins = __webpack_require__(2); // CONCATENATED MODULE: ./src/core/view/plugins/behaviors/form-field.js /** @@ -13165,13 +13203,13 @@ function initBehaviors(options, vm) { } /***/ }), -/* 62 */ +/* 60 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXTERNAL MODULE: ./src/core/helpers/tags.js -var tags = __webpack_require__(49); +var tags = __webpack_require__(47); var tags_default = /*#__PURE__*/__webpack_require__.n(tags); // CONCATENATED MODULE: ./src/core/vue.js @@ -13198,13 +13236,13 @@ function initVue(Vue) { }; } // EXTERNAL MODULE: ./src/core/view/plugins/index.js -var plugins = __webpack_require__(56); +var plugins = __webpack_require__(54); // EXTERNAL MODULE: ./src/platforms/app-plus/view/framework/plugins/data.js -var data = __webpack_require__(58); +var data = __webpack_require__(56); // EXTERNAL MODULE: ./src/platforms/app-plus/view/framework/plugins/event.js -var plugins_event = __webpack_require__(60); +var plugins_event = __webpack_require__(58); // CONCATENATED MODULE: ./src/platforms/app-plus/view/framework/plugins/index.js @@ -13225,7 +13263,7 @@ var plugins_event = __webpack_require__(60); }); /***/ }), -/* 63 */ +/* 61 */ /***/ (function(module, exports) { // document.currentScript polyfill by Adam Miller @@ -13267,7 +13305,7 @@ var plugins_event = __webpack_require__(60); /***/ }), -/* 64 */ +/* 62 */ /***/ (function(module, exports) { /** @@ -14014,7 +14052,7 @@ window.IntersectionObserverEntry = IntersectionObserverEntry; /***/ }), -/* 65 */ +/* 63 */ /***/ (function(module, exports, __webpack_require__) { // extracted by mini-css-extract-plugin @@ -14022,37 +14060,37 @@ window.IntersectionObserverEntry = IntersectionObserverEntry; /***/ }), -/* 66 */ +/* 64 */ /***/ (function(module, exports, __webpack_require__) { var map = { - "./button/index.vue": 115, - "./canvas/index.vue": 114, - "./checkbox-group/index.vue": 106, - "./checkbox/index.vue": 109, - "./form/index.vue": 110, + "./button/index.vue": 114, + "./canvas/index.vue": 110, + "./checkbox-group/index.vue": 98, + "./checkbox/index.vue": 108, + "./form/index.vue": 101, "./icon/index.vue": 102, - "./image/index.vue": 96, - "./input/index.vue": 97, - "./label/index.vue": 112, - "./movable-area/index.vue": 121, - "./movable-view/index.vue": 94, - "./navigator/index.vue": 95, - "./picker-view-column/index.vue": 119, + "./image/index.vue": 107, + "./input/index.vue": 104, + "./label/index.vue": 109, + "./movable-area/index.vue": 111, + "./movable-view/index.vue": 91, + "./navigator/index.vue": 103, + "./picker-view-column/index.vue": 115, "./picker-view/index.vue": 117, - "./progress/index.vue": 108, - "./radio-group/index.vue": 107, - "./radio/index.vue": 105, - "./resize-sensor/index.vue": 118, - "./rich-text/index.vue": 93, - "./scroll-view/index.vue": 104, - "./slider/index.vue": 111, - "./swiper-item/index.vue": 101, - "./swiper/index.vue": 116, - "./switch/index.vue": 100, - "./text/index.vue": 120, + "./progress/index.vue": 94, + "./radio-group/index.vue": 92, + "./radio/index.vue": 95, + "./resize-sensor/index.vue": 116, + "./rich-text/index.vue": 90, + "./scroll-view/index.vue": 96, + "./slider/index.vue": 106, + "./swiper-item/index.vue": 105, + "./swiper/index.vue": 112, + "./switch/index.vue": 93, + "./text/index.vue": 113, "./textarea/index.vue": 99, - "./view/index.vue": 98 + "./view/index.vue": 97 }; @@ -14074,10 +14112,10 @@ webpackContext.keys = function webpackContextKeys() { }; webpackContext.resolve = webpackContextResolve; module.exports = webpackContext; -webpackContext.id = 66; +webpackContext.id = 64; /***/ }), -/* 67 */ +/* 65 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14087,7 +14125,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 68 */ +/* 66 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14097,7 +14135,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 69 */ +/* 67 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14107,7 +14145,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 70 */ +/* 68 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14117,7 +14155,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 71 */ +/* 69 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14127,7 +14165,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 72 */ +/* 70 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14137,7 +14175,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 73 */ +/* 71 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14147,7 +14185,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 74 */ +/* 72 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14157,7 +14195,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 75 */ +/* 73 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14167,7 +14205,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 76 */ +/* 74 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14177,7 +14215,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 77 */ +/* 75 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14187,7 +14225,7 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 78 */ +/* 76 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14197,128 +14235,127 @@ webpackContext.id = 66; /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 79 */, -/* 80 */ +/* 77 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 81 */ +/* 78 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 82 */ +/* 79 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 83 */ +/* 80 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 84 */ +/* 81 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 85 */ +/* 82 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 86 */ +/* 83 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 87 */ +/* 84 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 88 */ +/* 85 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 89 */ +/* 86 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 90 */ +/* 87 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 91 */ +/* 88 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40); +/* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38); /* harmony import */ var _node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__); /* unused harmony reexport * */ /* unused harmony default export */ var _unused_webpack_default_export = (_node_modules_vue_cli_service_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_node_modules_vue_cli_service_node_modules_css_loader_index_js_ref_6_oneOf_1_1_node_modules_vue_cli_service_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_2_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_0_0_node_modules_vue_cli_service_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); /***/ }), -/* 92 */ +/* 89 */ /***/ (function(module, exports) { function webpackEmptyContext(req) { @@ -14329,10 +14366,10 @@ function webpackEmptyContext(req) { webpackEmptyContext.keys = function() { return []; }; webpackEmptyContext.resolve = webpackEmptyContext; module.exports = webpackEmptyContext; -webpackEmptyContext.id = 92; +webpackEmptyContext.id = 89; /***/ }), -/* 93 */ +/* 90 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14714,7 +14751,7 @@ function parseHtml(html) { return results.children; } // EXTERNAL MODULE: ./src/shared/index.js + 4 modules -var shared = __webpack_require__(2); +var shared = __webpack_require__(1); // CONCATENATED MODULE: ./src/core/view/components/rich-text/nodes-parser.js @@ -14923,7 +14960,7 @@ component.options.__file = "src/core/view/components/rich-text/index.vue" /* harmony default export */ var rich_text = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 94 */ +/* 91 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -14951,7 +14988,7 @@ render._withStripped = true // CONCATENATED MODULE: ./src/core/view/components/movable-view/index.vue?vue&type=template&id=8de47606& // EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js -var touchtrack = __webpack_require__(7); +var touchtrack = __webpack_require__(8); // CONCATENATED MODULE: ./src/core/view/components/movable-view/utils.js function e(e, t, n) { @@ -16040,41 +16077,202 @@ function g(e, t, n) { source: source }); } - } - - if (!this.scale) { - scale = this._scale; - } - - scale = this._adjustScale(scale); - scale = +scale.toFixed(3); + } + + 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__(73); + +// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js +var componentNormalizer = __webpack_require__(0); + +// 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 + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/core/view/components/movable-view/index.vue" +/* harmony default export */ var movable_view = __webpack_exports__["default"] = (component.exports); + +/***/ }), +/* 92 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio-group/index.vue?vue&type=template&id=17be8d0a& +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c( + "uni-radio-group", + _vm._g({}, _vm.$listeners), + [_vm._t("default")], + 2 + ) +} +var staticRenderFns = [] +render._withStripped = true + + +// CONCATENATED MODULE: ./src/core/view/components/radio-group/index.vue?vue&type=template&id=17be8d0a& + +// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules +var mixins = __webpack_require__(2); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio-group/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// + +/* harmony default export */ var radio_groupvue_type_script_lang_js_ = ({ + name: 'RadioGroup', + mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], + props: { + name: { + type: String, + default: '' + } + }, + data: function data() { + return { + radioList: [] + }; + }, + listeners: { + '@radio-change': '_changeHandler', + '@radio-group-update': '_radioGroupUpdateHandler' + }, + mounted: function mounted() { + this._resetRadioGroupValue(this.radioList.length - 1); + }, + 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, vm) { + var index = this.radioList.indexOf(vm); + + this._resetRadioGroupValue(index, true); + + this.$trigger('change', $event, { + value: vm.radioValue + }); + }, + _radioGroupUpdateHandler: function _radioGroupUpdateHandler($event) { + if ($event.type === 'add') { + this.radioList.push($event.vm); + } else { + var index = this.radioList.indexOf($event.vm); + this.radioList.splice(index, 1); + } + }, + _resetRadioGroupValue: function _resetRadioGroupValue(key, change) { + var _this = this; + + this.radioList.forEach(function (value, index) { + if (index === key) { + return; + } + + if (change) { + _this.radioList[index].radioChecked = false; + } else { + _this.radioList.forEach(function (v, i) { + if (index >= i) { + return; + } + + if (_this.radioList[i].radioChecked) { + _this.radioList[index].radioChecked = false; + } + }); + } + }); + }, + _getFormData: function _getFormData() { + var data = {}; - if (o && scale !== this._scale) { - this.$trigger('scale', {}, { - x: x, - y: y, - scale: scale + if (this.name !== '') { + var value = ''; + this.radioList.forEach(function (vm) { + if (vm.radioChecked) { + value = vm.value; + } }); + data['value'] = value; + data['key'] = this.name; } - 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; + return data; } } }); -// 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__(75); +// CONCATENATED MODULE: ./src/core/view/components/radio-group/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_radio_groupvue_type_script_lang_js_ = (radio_groupvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/radio-group/index.vue?vue&type=style&index=0&lang=css& +var radio_groupvue_type_style_index_0_lang_css_ = __webpack_require__(78); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/movable-view/index.vue +// CONCATENATED MODULE: ./src/core/view/components/radio-group/index.vue @@ -16084,7 +16282,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_movable_viewvue_type_script_lang_js_, + components_radio_groupvue_type_script_lang_js_, render, staticRenderFns, false, @@ -16096,56 +16294,69 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/movable-view/index.vue" -/* harmony default export */ var movable_view = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/radio-group/index.vue" +/* harmony default export */ var radio_group = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 95 */ +/* 93 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/navigator/index.vue?vue&type=template&id=c893a598& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/switch/index.vue?vue&type=template&id=04951fe6& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h - return _vm.hoverClass && _vm.hoverClass !== "none" - ? _c( - "uni-navigator", - _vm._g( - { - class: [_vm.hovering ? _vm.hoverClass : ""], - on: { - touchstart: _vm._hoverTouchStart, - touchend: _vm._hoverTouchEnd, - touchcancel: _vm._hoverTouchCancel, - click: _vm._onClick + return _c( + "uni-switch", + _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), + [ + _c("div", { staticClass: "uni-switch-wrapper" }, [ + _c("div", { + directives: [ + { + name: "show", + rawName: "v-show", + value: _vm.type === "switch", + expression: "type === 'switch'" } - }, - _vm.$listeners - ), - [_vm._t("default")], - 2 - ) - : _c( - "uni-navigator", - _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), - [_vm._t("default")], - 2 - ) + ], + staticClass: "uni-switch-input", + class: [_vm.switchChecked ? "uni-switch-input-checked" : ""], + style: { + backgroundColor: _vm.switchChecked ? _vm.color : "#DFDFDF", + borderColor: _vm.switchChecked ? _vm.color : "#DFDFDF" + } + }), + _c("div", { + directives: [ + { + name: "show", + rawName: "v-show", + value: _vm.type === "checkbox", + expression: "type === 'checkbox'" + } + ], + staticClass: "uni-checkbox-input", + class: [_vm.switchChecked ? "uni-checkbox-input-checked" : ""], + style: { color: _vm.color } + }) + ]) + ] + ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue?vue&type=template&id=c893a598& +// CONCATENATED MODULE: ./src/core/view/components/switch/index.vue?vue&type=template&id=04951fe6& // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +var mixins = __webpack_require__(2); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/navigator/index.vue?vue&type=script&lang=js& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/switch/index.vue?vue&type=script&lang=js& // // // @@ -16165,92 +16376,96 @@ var mixins = __webpack_require__(1); // // -var OPEN_TYPES = ['navigate', 'redirect', 'switchTab', 'reLaunch', 'navigateBack']; -/* harmony default export */ var navigatorvue_type_script_lang_js_ = ({ - name: 'Navigator', - mixins: [mixins["b" /* hover */]], +/* harmony default export */ var switchvue_type_script_lang_js_ = ({ + name: 'Switch', + mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], props: { - hoverClass: { - type: String, - default: 'navigator-hover' - }, - url: { + name: { type: String, default: '' }, - openType: { + checked: { + type: [Boolean, String], + default: false + }, + type: { type: String, - default: 'navigate', - validator: function validator(value) { - return ~OPEN_TYPES.indexOf(value); - } + default: 'switch' }, - delta: { - type: Number, - default: 1 + id: { + type: String, + default: '' }, - hoverStartTime: { - type: Number, - default: 20 + disabled: { + type: [Boolean, String], + default: false }, - hoverStayTime: { - type: Number, - default: 600 + color: { + type: String, + default: '#007aff' + } + }, + data: function data() { + return { + switchChecked: this.checked + }; + }, + watch: { + checked: function checked(val) { + this.switchChecked = val; } }, + created: function created() { + this.$dispatch('Form', 'uni-form-group-update', { + type: 'add', + vm: this + }); + }, + beforeDestroy: function beforeDestroy() { + this.$dispatch('Form', 'uni-form-group-update', { + type: 'remove', + vm: this + }); + }, + listeners: { + 'label-click': '_onClick', + '@label-click': '_onClick' + }, methods: { _onClick: function _onClick($event) { - if (this.openType !== 'navigateBack' && !this.url) { - console.error(" should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab"); + if (this.disabled) { return; } - switch (this.openType) { - case 'navigate': - uni.navigateTo({ - url: this.url - }); - break; - - case 'redirect': - uni.redirectTo({ - url: this.url - }); - break; - - case 'switchTab': - uni.switchTab({ - url: this.url - }); - break; - - case 'reLaunch': - uni.reLaunch({ - url: this.url - }); - break; - - case 'navigateBack': - uni.navigateBack({ - delta: this.delta - }); - break; + this.switchChecked = !this.switchChecked; + this.$trigger('change', $event, { + value: this.switchChecked + }); + }, + _resetFormData: function _resetFormData() { + this.switchChecked = false; + }, + _getFormData: function _getFormData() { + var data = {}; - default: - break; + if (this.name !== '') { + data['value'] = this.switchChecked; + data['key'] = this.name; } + + return data; } } }); -// 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_); -// 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__(76); +// 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__(85); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue +// CONCATENATED MODULE: ./src/core/view/components/switch/index.vue @@ -16260,7 +16475,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_navigatorvue_type_script_lang_js_, + components_switchvue_type_script_lang_js_, render, staticRenderFns, false, @@ -16272,46 +16487,49 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/navigator/index.vue" -/* harmony default export */ var components_navigator = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/switch/index.vue" +/* harmony default export */ var components_switch = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 96 */ +/* 94 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/image/index.vue?vue&type=template&id=c7af6f90& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/progress/index.vue?vue&type=template&id=34f62046& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( - "uni-image", - _vm._g({}, _vm.$listeners), + "uni-progress", + _vm._g({ staticClass: "uni-progress" }, _vm.$listeners), [ - _c("div", { ref: "content", style: _vm.modeStyle }), - _c("img", { attrs: { src: _vm.realImagePath } }), - _vm.mode === "widthFix" - ? _c("v-uni-resize-sensor", { - ref: "sensor", - on: { resize: _vm._resize } - }) + _c("div", { staticClass: "uni-progress-bar", style: _vm.outerBarStyle }, [ + _c("div", { + staticClass: "uni-progress-inner-bar", + style: _vm.innerBarStyle + }) + ]), + _vm.showInfo + ? [ + _c("p", { staticClass: "uni-progress-info" }, [ + _vm._v(_vm._s(_vm.currentPercent) + "%") + ]) + ] : _vm._e() ], - 1 + 2 ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/image/index.vue?vue&type=template&id=c7af6f90& - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/image/index.vue?vue&type=script&lang=js& -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +// CONCATENATED MODULE: ./src/core/view/components/progress/index.vue?vue&type=template&id=34f62046& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/progress/index.vue?vue&type=script&lang=js& // // // @@ -16324,189 +16542,128 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat // // // -/* harmony default export */ var imagevue_type_script_lang_js_ = ({ - name: 'Image', +// +// +// +// +var VALUES = { + activeColor: '#007AFF', + backgroundColor: '#EBEBEB', + activeMode: 'backwards' +}; +/* harmony default export */ var progressvue_type_script_lang_js_ = ({ + name: 'Progress', props: { - src: { + percent: { + type: [Number, String], + default: 0, + validator: function validator(value) { + return !isNaN(parseFloat(value, 10)); + } + }, + showInfo: { + type: [Boolean, String], + default: false + }, + strokeWidth: { + type: [Number, String], + default: 6, + validator: function validator(value) { + return !isNaN(parseFloat(value, 10)); + } + }, + color: { type: String, - default: '' + default: VALUES.activeColor }, - mode: { + activeColor: { type: String, - default: 'scaleToFill' + default: VALUES.activeColor }, - // TODO 懒加载 - lazyLoad: { + backgroundColor: { + type: String, + default: VALUES.backgroundColor + }, + active: { type: [Boolean, String], default: false + }, + activeMode: { + type: String, + default: VALUES.activeMode } }, data: function data() { return { - originalWidth: 0, - originalHeight: 0, - availHeight: '', - sizeFixed: false + currentPercent: 0, + strokeTimer: 0, + lastPercent: 0 }; }, computed: { - ratio: function ratio() { - return this.originalWidth && this.originalHeight ? this.originalWidth / this.originalHeight : 0; - }, - realImagePath: function realImagePath() { - return this.src && this.$getRealPath(this.src); + outerBarStyle: function outerBarStyle() { + return "background-color: ".concat(this.backgroundColor, "; height: ").concat(this.strokeWidth, "px;"); }, - modeStyle: function modeStyle() { - var size = 'auto'; - var position = ''; - var repeat = 'no-repeat'; - - switch (this.mode) { - case 'aspectFit': - size = 'contain'; - position = 'center center'; - break; - - case 'aspectFill': - size = 'cover'; - position = 'center center'; - break; - - case 'widthFix': - size = '100% 100%'; - break; - - case 'top': - position = 'center top'; - break; - - case 'bottom': - position = 'center bottom'; - break; - - case 'center': - position = 'center center'; - break; - - case 'left': - position = 'left center'; - break; - - case 'right': - position = 'right center'; - break; - - case 'top left': - position = 'left top'; - break; - - case 'top right': - position = 'right top'; - break; - - case 'bottom left': - position = 'left bottom'; - break; - - case 'bottom right': - position = 'right bottom'; - break; + innerBarStyle: function innerBarStyle() { + // 兼容下不推荐的属性,activeColor 优先级高于 color。 + var backgroundColor = ''; - default: - size = '100% 100%'; - position = '0% 0%'; - break; + if (this.color !== VALUES.activeColor && this.activeColor === VALUES.activeColor) { + backgroundColor = this.color; + } else { + backgroundColor = this.activeColor; } - return "background-position:".concat(position, ";background-size:").concat(size, ";background-repeat:").concat(repeat, ";"); + return "width: ".concat(this.currentPercent, "%;background-color: ").concat(backgroundColor); + }, + realPercent: function realPercent() { + // 确保最终计算时使用的是 Number 类型的值,并且在有效范围内。 + var realValue = parseFloat(this.percent, 10); + realValue < 0 && (realValue = 0); + realValue > 100 && (realValue = 100); + return realValue; } }, watch: { - src: function src(newValue, oldValue) { - this._loadImage(); - }, - mode: function mode(newValue, oldValue) { - if (oldValue === 'widthFix') { - this.$el.style.height = this.availHeight; - this.sizeFixed = false; - } + realPercent: function realPercent(newValue, oldValue) { + this.strokeTimer && clearInterval(this.strokeTimer); + this.lastPercent = oldValue || 0; - if (newValue === 'widthFix' && this.ratio) { - this._fixSize(); - } + this._activeAnimation(); } }, - mounted: function mounted() { - this.availHeight = this.$el.style.height || ''; - - this._loadImage(); + created: function created() { + this._activeAnimation(); }, methods: { - _resize: function _resize() { - if (this.mode === 'widthFix' && !this.sizeFixed) { - this._fixSize(); - } - }, - _fixSize: function _fixSize() { - var elWidth = this._getWidth(); - - if (elWidth) { - var height = elWidth / this.ratio; // fix: 解决 Chrome 浏览器上某些情况下导致 1px 缝隙的问题 - - if ((typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) && navigator.vendor === 'Google Inc.' && height > 10) { - height = Math.round(height / 2) * 2; - } + _activeAnimation: function _activeAnimation() { + var _this = this; - this.$el.style.height = height + 'px'; - this.sizeFixed = true; + if (this.active) { + this.currentPercent = this.activeMode === VALUES.activeMode ? 0 : this.lastPercent; + this.strokeTimer = setInterval(function () { + if (_this.currentPercent + 1 > _this.realPercent) { + _this.currentPercent = _this.realPercent; + _this.strokeTimer && clearInterval(_this.strokeTimer); + } else { + _this.currentPercent += 1; + } + }, 30); + } else { + this.currentPercent = this.realPercent; } - }, - _loadImage: function _loadImage() { - this.$refs.content.style.backgroundImage = this.src ? "url(".concat(this.realImagePath, ")") : 'none'; - - var _self = this; - - var img = new Image(); - - img.onload = function ($event) { - _self.originalWidth = this.width; - _self.originalHeight = this.height; - - if (_self.mode === 'widthFix') { - _self._fixSize(); - } - - _self.$trigger('load', $event, { - width: this.width, - height: this.height - }); - }; - - img.onerror = function ($event) { - _self.$trigger('error', $event, { - errMsg: "GET ".concat(_self.src, " 404 (Not Found)") - }); - }; - - img.src = this.realImagePath; - }, - _getWidth: function _getWidth() { - var computedStyle = window.getComputedStyle(this.$el); - var borderWidth = (parseFloat(computedStyle.borderLeftWidth, 10) || 0) + (parseFloat(computedStyle.borderRightWidth, 10) || 0); - var paddingWidth = (parseFloat(computedStyle.paddingLeft, 10) || 0) + (parseFloat(computedStyle.paddingRight, 10) || 0); - return this.$el.offsetWidth - borderWidth - paddingWidth; } } }); -// CONCATENATED MODULE: ./src/core/view/components/image/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_imagevue_type_script_lang_js_ = (imagevue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/image/index.vue?vue&type=style&index=0&lang=css& -var imagevue_type_style_index_0_lang_css_ = __webpack_require__(72); +// CONCATENATED MODULE: ./src/core/view/components/progress/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_progressvue_type_script_lang_js_ = (progressvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/progress/index.vue?vue&type=style&index=0&lang=css& +var progressvue_type_style_index_0_lang_css_ = __webpack_require__(77); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/image/index.vue +// CONCATENATED MODULE: ./src/core/view/components/progress/index.vue @@ -16516,7 +16673,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_imagevue_type_script_lang_js_, + components_progressvue_type_script_lang_js_, render, staticRenderFns, false, @@ -16528,192 +16685,38 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/image/index.vue" -/* harmony default export */ var components_image = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/progress/index.vue" +/* harmony default export */ var progress = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 97 */ +/* 95 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/input/index.vue?vue&type=template&id=c65e1032& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio/index.vue?vue&type=template&id=4b562a50& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( - "uni-input", - _vm._g( - { - on: { - change: function($event) { - $event.stopPropagation() - } - } - }, - _vm.$listeners - ), + "uni-radio", + _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), [ - _c("div", { ref: "wrapper", staticClass: "uni-input-wrapper" }, [ - _c( - "div", - { - directives: [ - { - name: "show", - rawName: "v-show", - value: !(_vm.composing || _vm.inputValue.length), - expression: "!(composing || inputValue.length)" - } - ], - ref: "placeholder", - staticClass: "uni-input-placeholder", - class: _vm.placeholderClass, - style: _vm.placeholderStyle - }, - [_vm._v(_vm._s(_vm.placeholder))] - ), - _vm.inputType === "checkbox" - ? _c("input", { - directives: [ - { - name: "model", - rawName: "v-model", - value: _vm.inputValue, - expression: "inputValue" - } - ], - ref: "input", - staticClass: "uni-input-input", - attrs: { - disabled: _vm.disabled, - maxlength: _vm.maxlength, - step: _vm.step, - autocomplete: "off", - type: "checkbox" - }, - domProps: { - checked: Array.isArray(_vm.inputValue) - ? _vm._i(_vm.inputValue, null) > -1 - : _vm.inputValue - }, - on: { - focus: _vm._onFocus, - blur: _vm._onBlur, - input: function($event) { - $event.stopPropagation() - return _vm._onInput($event) - }, - compositionstart: _vm._onComposition, - compositionend: _vm._onComposition, - keyup: function($event) { - $event.stopPropagation() - return _vm._onKeyup($event) - }, - change: function($event) { - var $$a = _vm.inputValue, - $$el = $event.target, - $$c = $$el.checked ? true : false - if (Array.isArray($$a)) { - var $$v = null, - $$i = _vm._i($$a, $$v) - if ($$el.checked) { - $$i < 0 && (_vm.inputValue = $$a.concat([$$v])) - } else { - $$i > -1 && - (_vm.inputValue = $$a - .slice(0, $$i) - .concat($$a.slice($$i + 1))) - } - } else { - _vm.inputValue = $$c - } - } - } - }) - : _vm.inputType === "radio" - ? _c("input", { - directives: [ - { - name: "model", - rawName: "v-model", - value: _vm.inputValue, - expression: "inputValue" - } - ], - ref: "input", - staticClass: "uni-input-input", - attrs: { - disabled: _vm.disabled, - maxlength: _vm.maxlength, - step: _vm.step, - autocomplete: "off", - type: "radio" - }, - domProps: { checked: _vm._q(_vm.inputValue, null) }, - on: { - focus: _vm._onFocus, - blur: _vm._onBlur, - input: function($event) { - $event.stopPropagation() - return _vm._onInput($event) - }, - compositionstart: _vm._onComposition, - compositionend: _vm._onComposition, - keyup: function($event) { - $event.stopPropagation() - return _vm._onKeyup($event) - }, - change: function($event) { - _vm.inputValue = null - } - } - }) - : _c("input", { - directives: [ - { - name: "model", - rawName: "v-model", - value: _vm.inputValue, - expression: "inputValue" - } - ], - ref: "input", - staticClass: "uni-input-input", - attrs: { - disabled: _vm.disabled, - maxlength: _vm.maxlength, - step: _vm.step, - autocomplete: "off", - type: _vm.inputType - }, - domProps: { value: _vm.inputValue }, - on: { - focus: _vm._onFocus, - blur: _vm._onBlur, - input: [ - function($event) { - if ($event.target.composing) { - return - } - _vm.inputValue = $event.target.value - }, - function($event) { - $event.stopPropagation() - return _vm._onInput($event) - } - ], - compositionstart: _vm._onComposition, - compositionend: _vm._onComposition, - keyup: function($event) { - $event.stopPropagation() - return _vm._onKeyup($event) - } - } - }) - ]) + _c( + "div", + { staticClass: "uni-radio-wrapper" }, + [ + _c("div", { + staticClass: "uni-radio-input", + class: _vm.radioChecked ? "uni-radio-input-checked" : "", + style: _vm.radioChecked ? _vm.checkedStyle : "" + }), + _vm._t("default") + ], + 2 + ) ] ) } @@ -16721,29 +16724,183 @@ var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/input/index.vue?vue&type=template&id=c65e1032& +// CONCATENATED MODULE: ./src/core/view/components/radio/index.vue?vue&type=template&id=4b562a50& + +// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules +var mixins = __webpack_require__(2); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// +// +// +// +// +// +// +// + +/* harmony default export */ var radiovue_type_script_lang_js_ = ({ + name: 'Radio', + mixins: [mixins["a" /* emitter */], mixins["c" /* 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() { + 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__(79); + +// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js +var componentNormalizer = __webpack_require__(0); + +// 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 + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/core/view/components/radio/index.vue" +/* harmony default export */ var components_radio = __webpack_exports__["default"] = (component.exports); + +/***/ }), +/* 96 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/scroll-view/index.vue?vue&type=template&id=e9d562fc& +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("uni-scroll-view", _vm._g({}, _vm.$listeners), [ + _c("div", { ref: "wrap", staticClass: "uni-scroll-view" }, [ + _c( + "div", + { + ref: "main", + staticClass: "uni-scroll-view", + style: { + "overflow-x": _vm.scrollX ? "auto" : "hidden", + "overflow-y": _vm.scrollY ? "auto" : "hidden" + } + }, + [_c("div", { ref: "content" }, [_vm._t("default")], 2)] + ) + ]) + ]) +} +var staticRenderFns = [] +render._withStripped = true + + +// CONCATENATED MODULE: ./src/core/view/components/scroll-view/index.vue?vue&type=template&id=e9d562fc& -// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +// EXTERNAL MODULE: ./src/core/view/mixins/scroller/index.js + 2 modules +var scroller = __webpack_require__(43); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/input/index.vue?vue&type=script&lang=js& -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// +// EXTERNAL MODULE: ./src/shared/index.js + 4 modules +var shared = __webpack_require__(1); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/scroll-view/index.vue?vue&type=script&lang=js& // // // @@ -16761,246 +16918,400 @@ var mixins = __webpack_require__(1); // // -var INPUT_TYPES = ['text', 'number', 'idcard', 'digit', 'password']; -var NUMBER_TYPES = ['number', 'digit']; -/* harmony default export */ var inputvue_type_script_lang_js_ = ({ - name: 'Input', - mixins: [mixins["a" /* emitter */]], - model: { - prop: 'value', - event: 'update:value' - }, + +var passiveOptions = shared["f" /* supportsPassive */] ? { + passive: true +} : false; +/* harmony default export */ var scroll_viewvue_type_script_lang_js_ = ({ + name: 'ScrollView', + mixins: [scroller["a" /* default */]], props: { - name: { - type: String, - default: '' - }, - value: { - type: [String, Number], - default: '' - }, - type: { - type: String, - default: 'text' + scrollX: { + type: [Boolean, String], + default: false }, - password: { + scrollY: { type: [Boolean, String], default: false }, - placeholder: { - type: String, - default: '' + upperThreshold: { + type: [Number, String], + default: 50 }, - placeholderStyle: { - type: String, - default: '' + lowerThreshold: { + type: [Number, String], + default: 50 }, - placeholderClass: { + scrollTop: { + type: [Number, String], + default: 0 + }, + scrollLeft: { + type: [Number, String], + default: 0 + }, + scrollIntoView: { type: String, default: '' }, - disabled: { + scrollWithAnimation: { type: [Boolean, String], default: false }, - maxlength: { - type: [Number, String], - default: 140 - }, - focus: { + enableBackToTop: { type: [Boolean, String], default: false - }, - confirmType: { - type: String, - default: 'done' } }, data: function data() { return { - inputValue: this.value + '', - composing: false, - wrapperHeight: 0, - cachedValue: '' + lastScrollTop: this.scrollTopNumber, + lastScrollLeft: this.scrollLeftNumber, + lastScrollToUpperTime: 0, + lastScrollToLowerTime: 0 }; }, 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; + upperThresholdNumber: function upperThresholdNumber() { + var val = Number(this.upperThreshold); + return isNaN(val) ? 50 : val; }, - step: function step() { - // 处理部分设备中无法输入小数点的问题 - return ~NUMBER_TYPES.indexOf(this.type) ? '0.000000000000000001' : ''; + lowerThresholdNumber: function lowerThresholdNumber() { + var val = Number(this.lowerThreshold); + return isNaN(val) ? 50 : val; + }, + scrollTopNumber: function scrollTopNumber() { + return Number(this.scrollTop) || 0; + }, + scrollLeftNumber: function scrollLeftNumber() { + return Number(this.scrollLeft) || 0; } }, watch: { - focus: function focus(value) { - value && this._focusInput(); - }, - value: function value(_value) { - this.inputValue = _value + ''; + scrollTopNumber: function scrollTopNumber(val) { + this._scrollTopChanged(val); }, - inputValue: function inputValue(value) { - this.$emit('update:value', value); + scrollLeftNumber: function scrollLeftNumber(val) { + this._scrollLeftChanged(val); }, - maxlength: function maxlength(value) { - var realValue = this.inputValue.slice(0, parseInt(value, 10)); - realValue !== this.inputValue && (this.inputValue = realValue); + scrollIntoView: function scrollIntoView(val) { + this._scrollIntoViewChanged(val); } }, - 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 = ''; + var self = this; + this._attached = true; - formElem.onsubmit = function () { - return false; - }; + this._scrollTopChanged(this.scrollTopNumber); - formElem.className = 'uni-input-form'; - formElem.appendChild(this.$refs.input); - this.$refs.wrapper.appendChild(formElem); - } + this._scrollLeftChanged(this.scrollLeftNumber); - var $vm = this; + this._scrollIntoViewChanged(this.scrollIntoView); - while ($vm) { - var scopeId = $vm.$options._scopeId; + this.__handleScroll = function (e) { + event.preventDefault(); + event.stopPropagation(); - if (scopeId) { - this.$refs.placeholder.setAttribute(scopeId, ''); + self._handleScroll.bind(self, event)(); + }; + + var touchStart = null; + var needStop = null; + + this.__handleTouchMove = function (event) { + var x = event.touches[0].pageX; + var y = event.touches[0].pageY; + var main = self.$refs.main; + + if (needStop === null) { + if (Math.abs(x - touchStart.x) > Math.abs(y - touchStart.y)) { + // 横向滑动 + if (self.scrollX) { + if (main.scrollLeft === 0 && x > touchStart.x) { + needStop = false; + return; + } else if (main.scrollWidth === main.offsetWidth + main.scrollLeft && x < touchStart.x) { + needStop = false; + return; + } + + needStop = true; + } else { + needStop = false; + } + } else { + // 纵向滑动 + if (self.scrollY) { + if (main.scrollTop === 0 && y > touchStart.y) { + needStop = false; + return; + } else if (main.scrollHeight === main.offsetHeight + main.scrollTop && y < touchStart.y) { + needStop = false; + return; + } + + needStop = true; + } else { + needStop = false; + } + } } - $vm = $vm.$parent; - } + if (needStop) { + event.stopPropagation(); + } + }; - this.focus && this._focusInput(); + this.__handleTouchStart = function (event) { + if (event.touches.length === 1) { + needStop = null; + touchStart = { + x: event.touches[0].pageX, + y: event.touches[0].pageY + }; + } + }; + + this.$refs.main.addEventListener('touchstart', this.__handleTouchStart, passiveOptions); + this.$refs.main.addEventListener('touchmove', this.__handleTouchMove, passiveOptions); + this.$refs.main.addEventListener('scroll', this.__handleScroll, shared["f" /* supportsPassive */] ? { + passive: false + } : false); + }, + activated: function activated() { + // 还原 scroll-view 滚动位置 + this.scrollY && (this.$refs.main.scrollTop = this.lastScrollTop); + this.scrollX && (this.$refs.main.scrollLeft = this.lastScrollLeft); }, beforeDestroy: function beforeDestroy() { - this.$dispatch('Form', 'uni-form-group-update', { - type: 'remove', - vm: this - }); + this.$refs.main.removeEventListener('touchstart', this.__handleTouchStart, passiveOptions); + this.$refs.main.removeEventListener('touchmove', this.__handleTouchMove, passiveOptions); + this.$refs.main.removeEventListener('scroll', this.__handleScroll, shared["f" /* supportsPassive */] ? { + passive: false + } : false); }, methods: { - _onKeyup: function _onKeyup($event) { - if ($event.keyCode === 13) { - this.$trigger('confirm', $event, { - value: $event.target.value - }); + scrollTo: function scrollTo(t, n) { + var i = this.$refs.main; + t < 0 ? t = 0 : n === 'x' && t > i.scrollWidth - i.offsetWidth ? t = i.scrollWidth - i.offsetWidth : n === 'y' && t > i.scrollHeight - i.offsetHeight && (t = i.scrollHeight - i.offsetHeight); + var r = 0; + var o = ''; + n === 'x' ? r = i.scrollLeft - t : n === 'y' && (r = i.scrollTop - t); + + if (r !== 0) { + this.$refs.content.style.transition = 'transform .3s ease-out'; + this.$refs.content.style.webkitTransition = '-webkit-transform .3s ease-out'; + + if (n === 'x') { + o = 'translateX(' + r + 'px) translateZ(0)'; + } else { + n === 'y' && (o = 'translateY(' + r + 'px) translateZ(0)'); + } + + this.$refs.content.removeEventListener('transitionend', this.__transitionEnd); + this.$refs.content.removeEventListener('webkitTransitionEnd', this.__transitionEnd); + this.__transitionEnd = this._transitionEnd.bind(this, t, n); + this.$refs.content.addEventListener('transitionend', this.__transitionEnd); + this.$refs.content.addEventListener('webkitTransitionEnd', this.__transitionEnd); + + if (n === 'x') { + // if (e !== 'ios') { + i.style.overflowX = 'hidden'; // } + } else if (n === 'y') { + i.style.overflowY = 'hidden'; + } + + this.$refs.content.style.transform = o; + this.$refs.content.style.webkitTransform = o; } }, - _onInput: function _onInput($event) { - if (this.composing) { + _handleTrack: function _handleTrack($event) { + if ($event.detail.state === 'start') { + this._x = $event.detail.x; + this._y = $event.detail.y; + this._noBubble = null; return; - } // 处理部分输入法可以输入其它字符的情况 + } + if ($event.detail.state === 'end') { + this._noBubble = false; + } - if (~NUMBER_TYPES.indexOf(this.type)) { - if (this.$refs.input.validity && !this.$refs.input.validity.valid) { - $event.target.value = this.cachedValue; - this.inputValue = $event.target.value; // 输入非法字符不触发 input 事件 + if (this._noBubble === null && this.scrollY) { + if (Math.abs(this._y - $event.detail.y) / Math.abs(this._x - $event.detail.x) > 1) { + this._noBubble = true; + } else { + this._noBubble = false; + } + } - return; + if (this._noBubble === null && this.scrollX) { + if (Math.abs(this._x - $event.detail.x) / Math.abs(this._y - $event.detail.y) > 1) { + this._noBubble = true; + } else { + this._noBubble = false; + } + } + + this._x = $event.detail.x; + this._y = $event.detail.y; + + if (this._noBubble) { + $event.stopPropagation(); + } + }, + _handleScroll: function _handleScroll($event) { + if (!($event.timeStamp - this._lastScrollTime < 20)) { + this._lastScrollTime = $event.timeStamp; + var target = $event.target; + this.$trigger('scroll', $event, { + scrollLeft: target.scrollLeft, + scrollTop: target.scrollTop, + scrollHeight: target.scrollHeight, + scrollWidth: target.scrollWidth, + deltaX: this.lastScrollLeft - target.scrollLeft, + deltaY: this.lastScrollTop - target.scrollTop + }); + + if (this.scrollY) { + if (target.scrollTop <= this.upperThresholdNumber && this.lastScrollTop - target.scrollTop > 0 && $event.timeStamp - this.lastScrollToUpperTime > 200) { + this.$trigger('scrolltoupper', $event, { + direction: 'top' + }); + this.lastScrollToUpperTime = $event.timeStamp; + } + + if (target.scrollTop + target.offsetHeight + this.lowerThresholdNumber >= target.scrollHeight && this.lastScrollTop - target.scrollTop < 0 && $event.timeStamp - this.lastScrollToLowerTime > 200) { + this.$trigger('scrolltolower', $event, { + direction: 'bottom' + }); + this.lastScrollToLowerTime = $event.timeStamp; + } + } + + if (this.scrollX) { + if (target.scrollLeft <= this.upperThresholdNumber && this.lastScrollLeft - target.scrollLeft > 0 && $event.timeStamp - this.lastScrollToUpperTime > 200) { + this.$trigger('scrolltoupper', $event, { + direction: 'left' + }); + this.lastScrollToUpperTime = $event.timeStamp; + } + + if (target.scrollLeft + target.offsetWidth + this.lowerThresholdNumber >= target.scrollWidth && this.lastScrollLeft - target.scrollLeft < 0 && $event.timeStamp - this.lastScrollToLowerTime > 200) { + this.$trigger('scrolltolower', $event, { + direction: 'right' + }); + this.lastScrollToLowerTime = $event.timeStamp; + } + } + + this.lastScrollTop = target.scrollTop; + this.lastScrollLeft = target.scrollLeft; + } + }, + _scrollTopChanged: function _scrollTopChanged(val) { + if (this.scrollY) { + if (this._innerSetScrollTop) { + this._innerSetScrollTop = false; + } else { + if (this.scrollWithAnimation) { + this.scrollTo(val, 'y'); + } else { + this.$refs.main.scrollTop = val; + } + } + } + }, + _scrollLeftChanged: function _scrollLeftChanged(val) { + if (this.scrollX) { + if (this._innerSetScrollLeft) { + this._innerSetScrollLeft = false; } else { - this.cachedValue = this.inputValue; + if (this.scrollWithAnimation) { + this.scrollTo(val, 'x'); + } else { + this.$refs.main.scrollLeft = val; + } + } + } + }, + _scrollIntoViewChanged: function _scrollIntoViewChanged(val) { + if (val) { + if (!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(val)) { + console.group('scroll-into-view="' + val + '" 有误'); + console.error('id 属性值格式错误。如不能以数字开头。'); + console.groupEnd(); + return; } - } // type="number" 不支持 maxlength 属性,因此需要主动限制长度。 + var element = this.$el.querySelector('#' + val); - if (this.inputType === 'number') { - var maxlength = parseInt(this.maxlength, 10); + if (element) { + var mainRect = this.$refs.main.getBoundingClientRect(); + var elRect = element.getBoundingClientRect(); - if (maxlength > 0 && $event.target.value.length > maxlength) { - $event.target.value = $event.target.value.slice(0, maxlength); - this.inputValue = $event.target.value; // 字符长度超出范围不触发 input 事件 + if (this.scrollX) { + var left = elRect.left - mainRect.left; + var scrollLeft = this.$refs.main.scrollLeft; + var x = scrollLeft + left; - return; - } - } + if (this.scrollWithAnimation) { + this.scrollTo(x, 'x'); + } else { + this.$refs.main.scrollLeft = x; + } + } - this.$trigger('input', $event, { - value: this.inputValue - }); - }, - _onFocus: function _onFocus($event) { - this.$trigger('focus', $event, { - value: $event.target.value - }); - }, - _onBlur: function _onBlur($event) { - this.$trigger('blur', $event, { - value: $event.target.value - }); - }, - _focusInput: function _focusInput() { - var _this = this; + if (this.scrollY) { + var top = elRect.top - mainRect.top; + var scrollTop = this.$refs.main.scrollTop; + var y = scrollTop + top; - setTimeout(function () { - _this.$refs.input.focus(); - }, 350); + if (this.scrollWithAnimation) { + this.scrollTo(y, 'y'); + } else { + this.$refs.main.scrollTop = y; + } + } + } + } }, - _blurInput: function _blurInput() { - var _this2 = this; + _transitionEnd: function _transitionEnd(val, type) { + this.$refs.content.style.transition = ''; + this.$refs.content.style.webkitTransition = ''; + this.$refs.content.style.transform = ''; + this.$refs.content.style.webkitTransform = ''; + var main = this.$refs.main; - setTimeout(function () { - _this2.$refs.input.blur(); - }, 350); - }, - _onComposition: function _onComposition($event) { - if ($event.type === 'compositionstart') { - this.composing = true; - } else { - this.composing = false; + if (type === 'x') { + main.style.overflowX = this.scrollX ? 'auto' : 'hidden'; + main.scrollLeft = val; + } else if (type === 'y') { + main.style.overflowY = this.scrollY ? 'auto' : 'hidden'; + main.scrollTop = val; } + + this.$refs.content.removeEventListener('transitionend', this.__transitionEnd); + this.$refs.content.removeEventListener('webkitTransitionEnd', this.__transitionEnd); }, - _resetFormData: function _resetFormData() { - this.inputValue = ''; - }, - _getFormData: function _getFormData() { - return this.name ? { - value: this.inputValue, - key: this.name - } : {}; + getScrollPosition: function getScrollPosition() { + var main = this.$refs.main; + return { + scrollLeft: main.scrollLeft, + scrollTop: main.scrollTop + }; } } }); -// 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__(73); +// CONCATENATED MODULE: ./src/core/view/components/scroll-view/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_scroll_viewvue_type_script_lang_js_ = (scroll_viewvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/scroll-view/index.vue?vue&type=style&index=0&lang=css& +var scroll_viewvue_type_style_index_0_lang_css_ = __webpack_require__(81); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/input/index.vue +// CONCATENATED MODULE: ./src/core/view/components/scroll-view/index.vue @@ -17010,7 +17321,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_inputvue_type_script_lang_js_, + components_scroll_viewvue_type_script_lang_js_, render, staticRenderFns, false, @@ -17022,11 +17333,11 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/input/index.vue" -/* harmony default export */ var input = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/scroll-view/index.vue" +/* harmony default export */ var scroll_view = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 98 */ +/* 97 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -17101,15 +17412,152 @@ var hover = __webpack_require__(12); 'label-click': 'clickHandler' } }); -// CONCATENATED MODULE: ./src/core/view/components/view/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_viewvue_type_script_lang_js_ = (viewvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/view/index.vue?vue&type=style&index=0&lang=css& -var viewvue_type_style_index_0_lang_css_ = __webpack_require__(91); +// CONCATENATED MODULE: ./src/core/view/components/view/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_viewvue_type_script_lang_js_ = (viewvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/view/index.vue?vue&type=style&index=0&lang=css& +var viewvue_type_style_index_0_lang_css_ = __webpack_require__(88); + +// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js +var componentNormalizer = __webpack_require__(0); + +// CONCATENATED MODULE: ./src/core/view/components/view/index.vue + + + + + + +/* normalize component */ + +var component = Object(componentNormalizer["a" /* default */])( + components_viewvue_type_script_lang_js_, + render, + staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "src/core/view/components/view/index.vue" +/* harmony default export */ var view = __webpack_exports__["default"] = (component.exports); + +/***/ }), +/* 98 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox-group/index.vue?vue&type=template&id=37cde58e& +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 = [] +render._withStripped = true + + +// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=template&id=37cde58e& + +// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules +var mixins = __webpack_require__(2); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox-group/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// + +/* harmony default export */ var checkbox_groupvue_type_script_lang_js_ = ({ + name: 'CheckboxGroup', + mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], + props: { + name: { + type: String, + default: '' + } + }, + data: function data() { + return { + checkboxList: [] + }; + }, + listeners: { + '@checkbox-change': '_changeHandler', + '@checkbox-group-update': '_checkboxGroupUpdateHandler' + }, + created: function created() { + this.$dispatch('Form', 'uni-form-group-update', { + type: 'add', + vm: this + }); + }, + beforeDestroy: function beforeDestroy() { + this.$dispatch('Form', 'uni-form-group-update', { + type: 'remove', + vm: this + }); + }, + methods: { + _changeHandler: function _changeHandler($event) { + var value = []; + this.checkboxList.forEach(function (vm) { + if (vm.checkboxChecked) { + value.push(vm.value); + } + }); + this.$trigger('change', $event, { + value: value + }); + }, + _checkboxGroupUpdateHandler: function _checkboxGroupUpdateHandler($event) { + if ($event.type === 'add') { + this.checkboxList.push($event.vm); + } else { + var index = this.checkboxList.indexOf($event.vm); + this.checkboxList.splice(index, 1); + } + }, + _getFormData: function _getFormData() { + var data = {}; + + if (this.name !== '') { + var value = []; + this.checkboxList.forEach(function (vm) { + if (vm.checkboxChecked) { + value.push(vm.value); + } + }); + data['value'] = value; + data['key'] = this.name; + } + + return data; + } + } +}); +// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_checkbox_groupvue_type_script_lang_js_ = (checkbox_groupvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=style&index=0&lang=css& +var checkbox_groupvue_type_style_index_0_lang_css_ = __webpack_require__(67); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/view/index.vue +// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue @@ -17119,7 +17567,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_viewvue_type_script_lang_js_, + components_checkbox_groupvue_type_script_lang_js_, render, staticRenderFns, false, @@ -17131,8 +17579,8 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/view/index.vue" -/* harmony default export */ var view = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/checkbox-group/index.vue" +/* harmony default export */ var checkbox_group = __webpack_exports__["default"] = (component.exports); /***/ }), /* 99 */ @@ -17259,7 +17707,7 @@ render._withStripped = true // CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue?vue&type=template&id=33f82dda& // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +var mixins = __webpack_require__(2); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/textarea/index.vue?vue&type=script&lang=js& // @@ -17439,267 +17887,29 @@ var mixins = __webpack_require__(1); this._checkSelection(); - this._checkCursor(); - }, - cursorNumber: function cursorNumber() { - this._checkCursor(); - }, - selectionStartNumber: function selectionStartNumber() { - this._checkSelection(); - }, - selectionEndNumber: function selectionEndNumber() { - this._checkSelection(); - }, - height: function height(_height) { - var lineHeight = getComputedStyle(this.$el).lineHeight.replace('px', ''); - var lineCount = Math.round(_height / lineHeight); - this.$trigger('linechange', {}, { - height: _height, - heightRpx: 750 / window.innerWidth * _height, - lineCount: lineCount - }); - - if (this.autoHeight) { - this.$el.style.height = this.height + 'px'; - } - } - }, - created: function created() { - this.$dispatch('Form', 'uni-form-group-update', { - type: 'add', - vm: this - }); - }, - mounted: function mounted() { - this._oldValue = this.$refs.textarea.value = this.valueSync; - - this._resize({ - height: this.$refs.sensor.$el.offsetHeight - }); - }, - beforeDestroy: function beforeDestroy() { - this.$dispatch('Form', 'uni-form-group-update', { - type: 'remove', - vm: this - }); - }, - methods: { - _focus: function _focus($event) { - this.focusSync = true; - this.$trigger('focus', $event, { - value: this.valueSync - }); - }, - _checkSelection: function _checkSelection() { - if (this.focusSync && !this.focusChangeSource && this.selectionStartNumber > -1 && this.selectionEndNumber > -1) { - this.$refs.textarea.selectionStart = this.selectionStartNumber; - this.$refs.textarea.selectionEnd = this.selectionEndNumber; - } - }, - _checkCursor: function _checkCursor() { - if (this.focusSync && (this.focusChangeSource === 'focus' || !this.focusChangeSource && this.selectionStartNumber < 0 && this.selectionEndNumber < 0) && this.cursorNumber > -1) { - this.$refs.textarea.selectionEnd = this.$refs.textarea.selectionStart = this.cursorNumber; - } - }, - _blur: function _blur($event) { - this.focusSync = false; - this.$trigger('blur', $event, { - value: this.valueSync, - cursor: this.$refs.textarea.selectionEnd - }); - }, - _compositionstart: function _compositionstart($event) { - this.composition = true; - }, - _compositionend: function _compositionend($event) { - this.composition = false; - }, - // 暂无完成按钮,此功能未实现 - _confirm: function _confirm($event) { - this.$trigger('confirm', $event, { - value: this.valueSync - }); - }, - _linechange: function _linechange($event) { - this.$trigger('linechange', $event, { - value: this.valueSync - }); - }, - _touchstart: function _touchstart() { - this.focusChangeSource = 'touch'; - }, - _resize: function _resize(_ref) { - var height = _ref.height; - this.height = height; - }, - _input: function _input($event) { - if (this.composition) { - this.valueComposition = $event.target.value; - } - }, - _getFormData: function _getFormData() { - return { - value: this.valueSync, - key: this.name - }; - }, - _resetFormData: function _resetFormData() { - this.valueSync = ''; - }, - _checkEmpty: function _checkEmpty(str) { - return str || false; - } - } -}); -// CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_textareavue_type_script_lang_js_ = (textareavue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/textarea/index.vue?vue&type=style&index=0&lang=css& -var textareavue_type_style_index_0_lang_css_ = __webpack_require__(90); - -// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js -var componentNormalizer = __webpack_require__(0); - -// 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 - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/core/view/components/textarea/index.vue" -/* harmony default export */ var components_textarea = __webpack_exports__["default"] = (component.exports); - -/***/ }), -/* 100 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/switch/index.vue?vue&type=template&id=04951fe6& -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c( - "uni-switch", - _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), - [ - _c("div", { staticClass: "uni-switch-wrapper" }, [ - _c("div", { - directives: [ - { - name: "show", - rawName: "v-show", - value: _vm.type === "switch", - expression: "type === 'switch'" - } - ], - staticClass: "uni-switch-input", - class: [_vm.switchChecked ? "uni-switch-input-checked" : ""], - style: { - backgroundColor: _vm.switchChecked ? _vm.color : "#DFDFDF", - borderColor: _vm.switchChecked ? _vm.color : "#DFDFDF" - } - }), - _c("div", { - directives: [ - { - name: "show", - rawName: "v-show", - value: _vm.type === "checkbox", - expression: "type === 'checkbox'" - } - ], - staticClass: "uni-checkbox-input", - class: [_vm.switchChecked ? "uni-checkbox-input-checked" : ""], - style: { color: _vm.color } - }) - ]) - ] - ) -} -var staticRenderFns = [] -render._withStripped = true - - -// CONCATENATED MODULE: ./src/core/view/components/switch/index.vue?vue&type=template&id=04951fe6& - -// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/switch/index.vue?vue&type=script&lang=js& -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// - -/* harmony default export */ var switchvue_type_script_lang_js_ = ({ - name: 'Switch', - mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], - props: { - name: { - type: String, - default: '' - }, - checked: { - type: [Boolean, String], - default: false - }, - type: { - type: String, - default: 'switch' + this._checkCursor(); }, - id: { - type: String, - default: '' + cursorNumber: function cursorNumber() { + this._checkCursor(); }, - disabled: { - type: [Boolean, String], - default: false + selectionStartNumber: function selectionStartNumber() { + this._checkSelection(); }, - color: { - type: String, - default: '#007aff' - } - }, - data: function data() { - return { - switchChecked: this.checked - }; - }, - watch: { - checked: function checked(val) { - this.switchChecked = val; + selectionEndNumber: function selectionEndNumber() { + this._checkSelection(); + }, + height: function height(_height) { + var lineHeight = getComputedStyle(this.$el).lineHeight.replace('px', ''); + var lineCount = Math.round(_height / lineHeight); + this.$trigger('linechange', {}, { + height: _height, + heightRpx: 750 / window.innerWidth * _height, + lineCount: lineCount + }); + + if (this.autoHeight) { + this.$el.style.height = this.height + 'px'; + } } }, created: function created() { @@ -17708,238 +17918,96 @@ var mixins = __webpack_require__(1); vm: this }); }, + mounted: function mounted() { + this._oldValue = this.$refs.textarea.value = this.valueSync; + + this._resize({ + height: this.$refs.sensor.$el.offsetHeight + }); + }, beforeDestroy: function beforeDestroy() { this.$dispatch('Form', 'uni-form-group-update', { type: 'remove', vm: this }); }, - 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 + _focus: function _focus($event) { + this.focusSync = true; + this.$trigger('focus', $event, { + value: this.valueSync }); }, - _resetFormData: function _resetFormData() { - this.switchChecked = false; + _checkSelection: function _checkSelection() { + if (this.focusSync && !this.focusChangeSource && this.selectionStartNumber > -1 && this.selectionEndNumber > -1) { + this.$refs.textarea.selectionStart = this.selectionStartNumber; + this.$refs.textarea.selectionEnd = this.selectionEndNumber; + } }, - _getFormData: function _getFormData() { - var data = {}; - - if (this.name !== '') { - data['value'] = this.switchChecked; - data['key'] = this.name; + _checkCursor: function _checkCursor() { + if (this.focusSync && (this.focusChangeSource === 'focus' || !this.focusChangeSource && this.selectionStartNumber < 0 && this.selectionEndNumber < 0) && this.cursorNumber > -1) { + this.$refs.textarea.selectionEnd = this.$refs.textarea.selectionStart = this.cursorNumber; } - - 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__(88); - -// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js -var componentNormalizer = __webpack_require__(0); - -// 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 - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/core/view/components/switch/index.vue" -/* harmony default export */ var components_switch = __webpack_exports__["default"] = (component.exports); - -/***/ }), -/* 101 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/swiper-item/index.vue?vue&type=template&id=3883b065& -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c( - "uni-swiper-item", - _vm._g({}, _vm.$listeners), - [_vm._t("default")], - 2 - ) -} -var staticRenderFns = [] -render._withStripped = true - - -// CONCATENATED MODULE: ./src/core/view/components/swiper-item/index.vue?vue&type=template&id=3883b065& - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/swiper-item/index.vue?vue&type=script&lang=js& -// -// -// -// -// -/* harmony default export */ var swiper_itemvue_type_script_lang_js_ = ({ - name: 'SwiperItem', - props: { - itemId: { - type: String, - default: '' - } - }, - mounted: function mounted() { - var $el = this.$el; - $el.style.position = 'absolute'; - $el.style.width = '100%'; - $el.style.height = '100%'; - var callbacks = this.$vnode._callbacks; - - if (callbacks) { - callbacks.forEach(function (callback) { - callback(); + }, + _blur: function _blur($event) { + this.focusSync = false; + this.$trigger('blur', $event, { + value: this.valueSync, + cursor: this.$refs.textarea.selectionEnd + }); + }, + _compositionstart: function _compositionstart($event) { + this.composition = true; + }, + _compositionend: function _compositionend($event) { + this.composition = false; + }, + // 暂无完成按钮,此功能未实现 + _confirm: function _confirm($event) { + this.$trigger('confirm', $event, { + value: this.valueSync }); - } - } -}); -// CONCATENATED MODULE: ./src/core/view/components/swiper-item/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_swiper_itemvue_type_script_lang_js_ = (swiper_itemvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/swiper-item/index.vue?vue&type=style&index=0&lang=css& -var swiper_itemvue_type_style_index_0_lang_css_ = __webpack_require__(86); - -// EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js -var componentNormalizer = __webpack_require__(0); - -// CONCATENATED MODULE: ./src/core/view/components/swiper-item/index.vue - - - - - - -/* normalize component */ - -var component = Object(componentNormalizer["a" /* default */])( - components_swiper_itemvue_type_script_lang_js_, - render, - staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "src/core/view/components/swiper-item/index.vue" -/* harmony default export */ var swiper_item = __webpack_exports__["default"] = (component.exports); - -/***/ }), -/* 102 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/icon/index.vue?vue&type=template&id=6c7a7a92& -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c("uni-icon", [ - _c("i", { - class: "uni-icon-" + _vm.type, - style: { "font-size": _vm._converPx(_vm.size), color: _vm.color }, - attrs: { role: "img" } - }) - ]) -} -var staticRenderFns = [] -render._withStripped = true - - -// CONCATENATED MODULE: ./src/core/view/components/icon/index.vue?vue&type=template&id=6c7a7a92& - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/icon/index.vue?vue&type=script&lang=js& -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ var iconvue_type_script_lang_js_ = ({ - name: 'Icon', - props: { - type: { - type: String, - required: true, - default: '' }, - size: { - type: [String, Number], - default: 23 + _linechange: function _linechange($event) { + this.$trigger('linechange', $event, { + value: this.valueSync + }); }, - color: { - type: String, - default: '' - } - }, - methods: { - _converPx: function _converPx(value) { - if (/\d+[ur]px$/i.test(value)) { - value.replace(/\d+[ur]px$/i, function (text) { - return "".concat(uni.upx2px(parseFloat(text)), "px"); - }); // eslint-disable-next-line no-useless-escape - } else if (/^-?[\d\.]+$/.test(value)) { - return "".concat(value, "px"); + _touchstart: function _touchstart() { + this.focusChangeSource = 'touch'; + }, + _resize: function _resize(_ref) { + var height = _ref.height; + this.height = height; + }, + _input: function _input($event) { + if (this.composition) { + this.valueComposition = $event.target.value; } - - return value || ''; + }, + _getFormData: function _getFormData() { + return { + value: this.valueSync, + key: this.name + }; + }, + _resetFormData: function _resetFormData() { + this.valueSync = ''; + }, + _checkEmpty: function _checkEmpty(str) { + return str || false; } } }); -// CONCATENATED MODULE: ./src/core/view/components/icon/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_iconvue_type_script_lang_js_ = (iconvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/icon/index.vue?vue&type=style&index=0&lang=css& -var iconvue_type_style_index_0_lang_css_ = __webpack_require__(71); +// 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__(87); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/icon/index.vue +// CONCATENATED MODULE: ./src/core/view/components/textarea/index.vue @@ -17949,7 +18017,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_iconvue_type_script_lang_js_, + components_textareavue_type_script_lang_js_, render, staticRenderFns, false, @@ -17961,18 +18029,18 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/icon/index.vue" -/* harmony default export */ var icon = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/textarea/index.vue" +/* harmony default export */ var components_textarea = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 103 */ +/* 100 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./packages/uni-app-plus/dist/view.runtime.esm.js -var view_runtime_esm = __webpack_require__(8); +var view_runtime_esm = __webpack_require__(6); // CONCATENATED MODULE: ./src/core/helpers/get-real-route.js function getRealRoute(fromRoute, toRoute) { @@ -17996,653 +18064,280 @@ function getRealRoute(fromRoute, 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('/'); -} -// CONCATENATED MODULE: ./src/platforms/app-plus/helpers/get-real-path.js - -var SCHEME_RE = /^([a-z-]+:)?\/\//i; -var DATA_RE = /^data:.*,.*/; - -function addBase(filePath) { - return filePath; -} - -function getRealPath(filePath) { - 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; - } - - var pages = getCurrentPages(); - - if (pages.length) { - return addBase(getRealRoute(pages[pages.length - 1].$page.route, filePath).substr(1)); - } - - return filePath; -} -// EXTERNAL MODULE: ./src/core/view/plugins/events.js + 1 modules -var events = __webpack_require__(10); - -// CONCATENATED MODULE: ./src/core/view/mixins/base.js - - -/* harmony default export */ var base = ({ - methods: { - $getRealPath: function $getRealPath(src) { - return getRealPath(src); - }, - $trigger: function $trigger(name, $event, detail) { - this.$emit(name, events["b" /* processEvent */].call(this, name, $event, detail, this.$el, this.$el)); - } - } -}); -// CONCATENATED MODULE: ./src/core/view/mixins/animation.js -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function converPx(value) { - if (/\d+[ur]px$/i.test(value)) { - value.replace(/\d+[ur]px$/i, function (text) { - return "".concat(uni.upx2px(parseFloat(text)), "px"); - }); // eslint-disable-next-line no-useless-escape - } else if (/^-?[\d\.]+$/.test(value)) { - return "".concat(value, "px"); - } - - return value || ''; -} - -function converType(type) { - return type.replace(/[A-Z]/g, function (text) { - return "-".concat(text.toLowerCase()); - }).replace('webkit', '-webkit'); -} - -function getStyle(action) { - var animateTypes1 = ['matrix', 'matrix3d', 'scale', 'scale3d', 'rotate3d', 'skew', 'translate', 'translate3d']; - var animateTypes2 = ['scaleX', 'scaleY', 'scaleZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'skewX', 'skewY', 'translateX', 'translateY', 'translateZ']; - var animateTypes3 = ['opacity', 'backgroundColor']; - var animateTypes4 = ['width', 'height', 'left', 'right', 'top', 'bottom']; - var animates = action.animates; - var option = action.option; - var transition = option.transition; - var style = {}; - var transform = []; - animates.forEach(function (animate) { - var type = animate.type; - - var args = _toConsumableArray(animate.args); - - if (animateTypes1.concat(animateTypes2).includes(type)) { - if (type.startsWith('rotate') || type.startsWith('skew')) { - args = args.map(function (value) { - return parseFloat(value) + 'deg'; - }); - } else if (type.startsWith('translate')) { - args = args.map(converPx); - } - - if (animateTypes2.indexOf(type)) { - args.length = 1; - } - - transform.push("".concat(type, "(").concat(args.join(','), ")")); - } else if (animateTypes3.concat(animateTypes4).includes(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); - } - } - - animate(); -} - -/* harmony default export */ var animation = ({ - props: ['animation'], - watch: { - animation: function animation() { - startAnimation(this); - } - }, - mounted: function mounted() { - startAnimation(this); - } -}); -// CONCATENATED MODULE: ./src/core/view/components/index.js - - - -var requireComponents = [// baseComponents -__webpack_require__(66), __webpack_require__(92)]; -requireComponents.forEach(function (components, index) { - components.keys().forEach(function (fileName) { - // 获取组件配置 - var componentModule = components(fileName); - var componentConfig = componentModule.default || componentModule; - componentConfig.mixins = componentConfig.mixins ? [].concat(base, componentConfig.mixins) : [base]; - componentConfig.mixins.push(animation); - componentConfig.name = 'VUni' + componentConfig.name; - componentConfig.isReserved = true; // 全局注册组件 - - view_runtime_esm["a" /* default */].component(componentConfig.name, componentConfig); - }); -}); + if (toRoute.indexOf('./') === 0) { + return getRealRoute(fromRoute, toRoute.substr(2)); + } -/***/ }), -/* 104 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var toRouteArray = toRoute.split('/'); + var toRouteLength = toRouteArray.length; + var i = 0; -"use strict"; -__webpack_require__.r(__webpack_exports__); + for (; i < toRouteLength && toRouteArray[i] === '..'; i++) {// noop + } -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/scroll-view/index.vue?vue&type=template&id=e9d562fc& -var render = function() { - var _vm = this - var _h = _vm.$createElement - var _c = _vm._self._c || _h - return _c("uni-scroll-view", _vm._g({}, _vm.$listeners), [ - _c("div", { ref: "wrap", staticClass: "uni-scroll-view" }, [ - _c( - "div", - { - ref: "main", - staticClass: "uni-scroll-view", - style: { - "overflow-x": _vm.scrollX ? "auto" : "hidden", - "overflow-y": _vm.scrollY ? "auto" : "hidden" - } - }, - [_c("div", { ref: "content" }, [_vm._t("default")], 2)] - ) - ]) - ]) + 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('/'); } -var staticRenderFns = [] -render._withStripped = true +// CONCATENATED MODULE: ./src/platforms/app-plus/helpers/get-real-path.js +var SCHEME_RE = /^([a-z-]+:)?\/\//i; +var DATA_RE = /^data:.*,.*/; -// CONCATENATED MODULE: ./src/core/view/components/scroll-view/index.vue?vue&type=template&id=e9d562fc& +function addBase(filePath) { + return filePath; +} -// EXTERNAL MODULE: ./src/core/view/mixins/scroller/index.js + 2 modules -var scroller = __webpack_require__(45); +function getRealPath(filePath) { + if (filePath.indexOf('/') === 0) { + if (filePath.indexOf('//') === 0) { + filePath = 'https:' + filePath; + } else { + return addBase(filePath.substr(1)); + } + } // 网络资源或base64 -// EXTERNAL MODULE: ./src/shared/index.js + 4 modules -var shared = __webpack_require__(2); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/scroll-view/index.vue?vue&type=script&lang=js& -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// + if (SCHEME_RE.test(filePath) || DATA_RE.test(filePath) || filePath.indexOf('blob:') === 0) { + return filePath; + } + var pages = getCurrentPages(); -var passiveOptions = shared["f" /* supportsPassive */] ? { - passive: true -} : false; -/* harmony default export */ var scroll_viewvue_type_script_lang_js_ = ({ - name: 'ScrollView', - mixins: [scroller["a" /* default */]], - props: { - scrollX: { - type: [Boolean, String], - default: false - }, - scrollY: { - type: [Boolean, String], - default: false - }, - upperThreshold: { - type: [Number, String], - default: 50 - }, - lowerThreshold: { - type: [Number, String], - default: 50 - }, - scrollTop: { - type: [Number, String], - default: 0 - }, - scrollLeft: { - type: [Number, String], - default: 0 - }, - scrollIntoView: { - type: String, - default: '' - }, - scrollWithAnimation: { - type: [Boolean, String], - default: false - }, - enableBackToTop: { - type: [Boolean, String], - default: false - } - }, - data: function data() { - return { - lastScrollTop: this.scrollTopNumber, - lastScrollLeft: this.scrollLeftNumber, - lastScrollToUpperTime: 0, - lastScrollToLowerTime: 0 - }; - }, - computed: { - upperThresholdNumber: function upperThresholdNumber() { - var val = Number(this.upperThreshold); - return isNaN(val) ? 50 : val; - }, - lowerThresholdNumber: function lowerThresholdNumber() { - var val = Number(this.lowerThreshold); - return isNaN(val) ? 50 : val; - }, - scrollTopNumber: function scrollTopNumber() { - return Number(this.scrollTop) || 0; - }, - scrollLeftNumber: function scrollLeftNumber() { - return Number(this.scrollLeft) || 0; - } - }, - watch: { - scrollTopNumber: function scrollTopNumber(val) { - this._scrollTopChanged(val); - }, - scrollLeftNumber: function scrollLeftNumber(val) { - this._scrollLeftChanged(val); - }, - scrollIntoView: function scrollIntoView(val) { - this._scrollIntoViewChanged(val); - } - }, - mounted: function mounted() { - var self = this; - this._attached = true; + if (pages.length) { + return addBase(getRealRoute(pages[pages.length - 1].$page.route, filePath).substr(1)); + } - this._scrollTopChanged(this.scrollTopNumber); + return filePath; +} +// EXTERNAL MODULE: ./src/core/view/plugins/events.js + 1 modules +var events = __webpack_require__(10); - this._scrollLeftChanged(this.scrollLeftNumber); +// CONCATENATED MODULE: ./src/core/view/mixins/base.js - this._scrollIntoViewChanged(this.scrollIntoView); - this.__handleScroll = function (e) { - event.preventDefault(); - event.stopPropagation(); +/* harmony default export */ var base = ({ + methods: { + $getRealPath: function $getRealPath(src) { + return getRealPath(src); + }, + $trigger: function $trigger(name, $event, detail) { + this.$emit(name, events["b" /* processEvent */].call(this, name, $event, detail, this.$el, this.$el)); + } + } +}); +// CONCATENATED MODULE: ./src/core/view/mixins/animation.js +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - self._handleScroll.bind(self, event)(); - }; +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - var touchStart = null; - var needStop = null; +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - this.__handleTouchMove = function (event) { - var x = event.touches[0].pageX; - var y = event.touches[0].pageY; - var main = self.$refs.main; +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - if (needStop === null) { - if (Math.abs(x - touchStart.x) > Math.abs(y - touchStart.y)) { - // 横向滑动 - if (self.scrollX) { - if (main.scrollLeft === 0 && x > touchStart.x) { - needStop = false; - return; - } else if (main.scrollWidth === main.offsetWidth + main.scrollLeft && x < touchStart.x) { - needStop = false; - return; - } +function converPx(value) { + if (/\d+[ur]px$/i.test(value)) { + value.replace(/\d+[ur]px$/i, function (text) { + return "".concat(uni.upx2px(parseFloat(text)), "px"); + }); // eslint-disable-next-line no-useless-escape + } else if (/^-?[\d\.]+$/.test(value)) { + return "".concat(value, "px"); + } - needStop = true; - } else { - needStop = false; - } - } else { - // 纵向滑动 - if (self.scrollY) { - if (main.scrollTop === 0 && y > touchStart.y) { - needStop = false; - return; - } else if (main.scrollHeight === main.offsetHeight + main.scrollTop && y < touchStart.y) { - needStop = false; - return; - } + return value || ''; +} - needStop = true; - } else { - needStop = false; - } - } - } +function converType(type) { + return type.replace(/[A-Z]/g, function (text) { + return "-".concat(text.toLowerCase()); + }).replace('webkit', '-webkit'); +} + +function getStyle(action) { + var animateTypes1 = ['matrix', 'matrix3d', 'scale', 'scale3d', 'rotate3d', 'skew', 'translate', 'translate3d']; + var animateTypes2 = ['scaleX', 'scaleY', 'scaleZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'skewX', 'skewY', 'translateX', 'translateY', 'translateZ']; + var animateTypes3 = ['opacity', 'backgroundColor']; + var animateTypes4 = ['width', 'height', 'left', 'right', 'top', 'bottom']; + var animates = action.animates; + var option = action.option; + var transition = option.transition; + var style = {}; + var transform = []; + animates.forEach(function (animate) { + var type = animate.type; - if (needStop) { - event.stopPropagation(); - } - }; + var args = _toConsumableArray(animate.args); - this.__handleTouchStart = function (event) { - if (event.touches.length === 1) { - needStop = null; - touchStart = { - x: event.touches[0].pageX, - y: event.touches[0].pageY - }; + 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); } - }; - - this.$refs.main.addEventListener('touchstart', this.__handleTouchStart, passiveOptions); - this.$refs.main.addEventListener('touchmove', this.__handleTouchMove, passiveOptions); - this.$refs.main.addEventListener('scroll', this.__handleScroll, shared["f" /* supportsPassive */] ? { - passive: false - } : false); - }, - activated: function activated() { - // 还原 scroll-view 滚动位置 - this.scrollY && (this.$refs.main.scrollTop = this.lastScrollTop); - this.scrollX && (this.$refs.main.scrollLeft = this.lastScrollLeft); - }, - beforeDestroy: function beforeDestroy() { - this.$refs.main.removeEventListener('touchstart', this.__handleTouchStart, passiveOptions); - this.$refs.main.removeEventListener('touchmove', this.__handleTouchMove, passiveOptions); - this.$refs.main.removeEventListener('scroll', this.__handleScroll, shared["f" /* supportsPassive */] ? { - passive: false - } : false); - }, - methods: { - scrollTo: function scrollTo(t, n) { - var i = this.$refs.main; - t < 0 ? t = 0 : n === 'x' && t > i.scrollWidth - i.offsetWidth ? t = i.scrollWidth - i.offsetWidth : n === 'y' && t > i.scrollHeight - i.offsetHeight && (t = i.scrollHeight - i.offsetHeight); - var r = 0; - var o = ''; - n === 'x' ? r = i.scrollLeft - t : n === 'y' && (r = i.scrollTop - t); - if (r !== 0) { - this.$refs.content.style.transition = 'transform .3s ease-out'; - this.$refs.content.style.webkitTransition = '-webkit-transform .3s ease-out'; + if (animateTypes2.indexOf(type)) { + args.length = 1; + } - if (n === 'x') { - o = 'translateX(' + r + 'px) translateZ(0)'; - } else { - n === 'y' && (o = 'translateY(' + r + 'px) translateZ(0)'); - } + 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; +} - this.$refs.content.removeEventListener('transitionend', this.__transitionEnd); - this.$refs.content.removeEventListener('webkitTransitionEnd', this.__transitionEnd); - this.__transitionEnd = this._transitionEnd.bind(this, t, n); - this.$refs.content.addEventListener('transitionend', this.__transitionEnd); - this.$refs.content.addEventListener('webkitTransitionEnd', this.__transitionEnd); +function startAnimation(context) { + var animation = context.animation; - if (n === 'x') { - // if (e !== 'ios') { - i.style.overflowX = 'hidden'; // } - } else if (n === 'y') { - i.style.overflowY = 'hidden'; - } + if (!animation || !animation.actions || !animation.actions.length) { + return; + } - this.$refs.content.style.transform = o; - this.$refs.content.style.webkitTransform = o; - } - }, - _handleTrack: function _handleTrack($event) { - if ($event.detail.state === 'start') { - this._x = $event.detail.x; - this._y = $event.detail.y; - this._noBubble = null; - return; - } + var index = 0; + var actions = animation.actions; + var length = animation.actions.length; - if ($event.detail.state === 'end') { - this._noBubble = false; - } + 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 (this._noBubble === null && this.scrollY) { - if (Math.abs(this._y - $event.detail.y) / Math.abs(this._x - $event.detail.x) > 1) { - this._noBubble = true; - } else { - this._noBubble = false; - } - } + if (index < length) { + setTimeout(animate, transition.duration + transition.delay); + } + } - if (this._noBubble === null && this.scrollX) { - if (Math.abs(this._x - $event.detail.x) / Math.abs(this._y - $event.detail.y) > 1) { - this._noBubble = true; - } else { - this._noBubble = false; - } - } + animate(); +} - this._x = $event.detail.x; - this._y = $event.detail.y; +/* 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 - if (this._noBubble) { - $event.stopPropagation(); - } - }, - _handleScroll: function _handleScroll($event) { - if (!($event.timeStamp - this._lastScrollTime < 20)) { - this._lastScrollTime = $event.timeStamp; - var target = $event.target; - this.$trigger('scroll', $event, { - scrollLeft: target.scrollLeft, - scrollTop: target.scrollTop, - scrollHeight: target.scrollHeight, - scrollWidth: target.scrollWidth, - deltaX: this.lastScrollLeft - target.scrollLeft, - deltaY: this.lastScrollTop - target.scrollTop - }); - if (this.scrollY) { - if (target.scrollTop <= this.upperThresholdNumber && this.lastScrollTop - target.scrollTop > 0 && $event.timeStamp - this.lastScrollToUpperTime > 200) { - this.$trigger('scrolltoupper', $event, { - direction: 'top' - }); - this.lastScrollToUpperTime = $event.timeStamp; - } - if (target.scrollTop + target.offsetHeight + this.lowerThresholdNumber >= target.scrollHeight && this.lastScrollTop - target.scrollTop < 0 && $event.timeStamp - this.lastScrollToLowerTime > 200) { - this.$trigger('scrolltolower', $event, { - direction: 'bottom' - }); - this.lastScrollToLowerTime = $event.timeStamp; - } - } +var requireComponents = [// baseComponents +__webpack_require__(64), __webpack_require__(89)]; +requireComponents.forEach(function (components, index) { + components.keys().forEach(function (fileName) { + // 获取组件配置 + var componentModule = components(fileName); + var componentConfig = componentModule.default || componentModule; + componentConfig.mixins = componentConfig.mixins ? [].concat(base, componentConfig.mixins) : [base]; + componentConfig.mixins.push(animation); + componentConfig.name = 'VUni' + componentConfig.name; + componentConfig.isReserved = true; // 全局注册组件 - if (this.scrollX) { - if (target.scrollLeft <= this.upperThresholdNumber && this.lastScrollLeft - target.scrollLeft > 0 && $event.timeStamp - this.lastScrollToUpperTime > 200) { - this.$trigger('scrolltoupper', $event, { - direction: 'left' - }); - this.lastScrollToUpperTime = $event.timeStamp; - } + view_runtime_esm["a" /* default */].component(componentConfig.name, componentConfig); + }); +}); - if (target.scrollLeft + target.offsetWidth + this.lowerThresholdNumber >= target.scrollWidth && this.lastScrollLeft - target.scrollLeft < 0 && $event.timeStamp - this.lastScrollToLowerTime > 200) { - this.$trigger('scrolltolower', $event, { - direction: 'right' - }); - this.lastScrollToLowerTime = $event.timeStamp; - } - } +/***/ }), +/* 101 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - this.lastScrollTop = target.scrollTop; - this.lastScrollLeft = target.scrollLeft; - } - }, - _scrollTopChanged: function _scrollTopChanged(val) { - if (this.scrollY) { - if (this._innerSetScrollTop) { - this._innerSetScrollTop = false; - } else { - if (this.scrollWithAnimation) { - this.scrollTo(val, 'y'); - } else { - this.$refs.main.scrollTop = val; - } - } - } - }, - _scrollLeftChanged: function _scrollLeftChanged(val) { - if (this.scrollX) { - if (this._innerSetScrollLeft) { - this._innerSetScrollLeft = false; - } else { - if (this.scrollWithAnimation) { - this.scrollTo(val, 'x'); - } else { - this.$refs.main.scrollLeft = val; - } - } - } - }, - _scrollIntoViewChanged: function _scrollIntoViewChanged(val) { - if (val) { - if (!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(val)) { - console.group('scroll-into-view="' + val + '" 有误'); - console.error('id 属性值格式错误。如不能以数字开头。'); - console.groupEnd(); - return; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); - var element = this.$el.querySelector('#' + val); +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/form/index.vue?vue&type=template&id=7735a91d& +var render = function() { + var _vm = this + var _h = _vm.$createElement + var _c = _vm._self._c || _h + return _c("uni-form", _vm._g({}, _vm.$listeners), [ + _c("span", [_vm._t("default")], 2) + ]) +} +var staticRenderFns = [] +render._withStripped = true - if (element) { - var mainRect = this.$refs.main.getBoundingClientRect(); - var elRect = element.getBoundingClientRect(); - if (this.scrollX) { - var left = elRect.left - mainRect.left; - var scrollLeft = this.$refs.main.scrollLeft; - var x = scrollLeft + left; +// CONCATENATED MODULE: ./src/core/view/components/form/index.vue?vue&type=template&id=7735a91d& - if (this.scrollWithAnimation) { - this.scrollTo(x, 'x'); - } else { - this.$refs.main.scrollLeft = x; - } - } +// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules +var mixins = __webpack_require__(2); - if (this.scrollY) { - var top = elRect.top - mainRect.top; - var scrollTop = this.$refs.main.scrollTop; - var y = scrollTop + top; +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/form/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// +// - if (this.scrollWithAnimation) { - this.scrollTo(y, 'y'); - } else { - this.$refs.main.scrollTop = y; - } - } +/* harmony default export */ var formvue_type_script_lang_js_ = ({ + name: 'Form', + mixins: [mixins["c" /* listeners */]], + data: function data() { + return { + childrenList: [] + }; + }, + listeners: { + '@form-submit': '_onSubmit', + '@form-reset': '_onReset', + '@form-group-update': '_formGroupUpdateHandler' + }, + methods: { + _onSubmit: function _onSubmit($event) { + var data = {}; + this.childrenList.forEach(function (vm) { + if (vm._getFormData && vm._getFormData().key) { + data[vm._getFormData().key] = vm._getFormData().value; } - } + }); + this.$trigger('submit', $event, { + value: data + }); }, - _transitionEnd: function _transitionEnd(val, type) { - this.$refs.content.style.transition = ''; - this.$refs.content.style.webkitTransition = ''; - this.$refs.content.style.transform = ''; - this.$refs.content.style.webkitTransform = ''; - var main = this.$refs.main; - - if (type === 'x') { - main.style.overflowX = this.scrollX ? 'auto' : 'hidden'; - main.scrollLeft = val; - } else if (type === 'y') { - main.style.overflowY = this.scrollY ? 'auto' : 'hidden'; - main.scrollTop = val; - } - - this.$refs.content.removeEventListener('transitionend', this.__transitionEnd); - this.$refs.content.removeEventListener('webkitTransitionEnd', this.__transitionEnd); + _onReset: function _onReset($event) { + this.$trigger('reset', $event, {}); + this.childrenList.forEach(function (vm) { + vm._resetFormData && vm._resetFormData(); + }); }, - getScrollPosition: function getScrollPosition() { - var main = this.$refs.main; - return { - scrollLeft: main.scrollLeft, - scrollTop: main.scrollTop - }; + _formGroupUpdateHandler: function _formGroupUpdateHandler($event) { + if ($event.type === 'add') { + this.childrenList.push($event.vm); + } else { + var index = this.childrenList.indexOf($event.vm); + this.childrenList.splice(index, 1); + } } } }); -// CONCATENATED MODULE: ./src/core/view/components/scroll-view/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_scroll_viewvue_type_script_lang_js_ = (scroll_viewvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/scroll-view/index.vue?vue&type=style&index=0&lang=css& -var scroll_viewvue_type_style_index_0_lang_css_ = __webpack_require__(84); - +// CONCATENATED MODULE: ./src/core/view/components/form/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_formvue_type_script_lang_js_ = (formvue_type_script_lang_js_); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/scroll-view/index.vue - +// CONCATENATED MODULE: ./src/core/view/components/form/index.vue @@ -18651,7 +18346,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_scroll_viewvue_type_script_lang_js_, + components_formvue_type_script_lang_js_, render, staticRenderFns, false, @@ -18663,54 +18358,36 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/scroll-view/index.vue" -/* harmony default export */ var scroll_view = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/form/index.vue" +/* harmony default export */ var components_form = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 105 */ +/* 102 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio/index.vue?vue&type=template&id=4b562a50& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/icon/index.vue?vue&type=template&id=6c7a7a92& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h - return _c( - "uni-radio", - _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), - [ - _c( - "div", - { staticClass: "uni-radio-wrapper" }, - [ - _c("div", { - staticClass: "uni-radio-input", - class: _vm.radioChecked ? "uni-radio-input-checked" : "", - style: _vm.radioChecked ? _vm.checkedStyle : "" - }), - _vm._t("default") - ], - 2 - ) - ] - ) + return _c("uni-icon", [ + _c("i", { + class: "uni-icon-" + _vm.type, + style: { "font-size": _vm._converPx(_vm.size), color: _vm.color }, + attrs: { role: "img" } + }) + ]) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/radio/index.vue?vue&type=template&id=4b562a50& - -// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +// CONCATENATED MODULE: ./src/core/view/components/icon/index.vue?vue&type=template&id=6c7a7a92& -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio/index.vue?vue&type=script&lang=js& -// -// -// +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/icon/index.vue?vue&type=script&lang=js& // // // @@ -18721,98 +18398,46 @@ var mixins = __webpack_require__(1); // // // - -/* harmony default export */ var radiovue_type_script_lang_js_ = ({ - name: 'Radio', - mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], +/* harmony default export */ var iconvue_type_script_lang_js_ = ({ + name: 'Icon', props: { - checked: { - type: [Boolean, String], - default: false - }, - id: { + type: { type: String, + required: true, default: '' }, - disabled: { - type: [Boolean, String], - default: false + size: { + type: [String, Number], + default: 23 }, color: { - type: String, - default: '#007AFF' - }, - value: { type: String, default: '' } }, - data: function data() { - return { - radioChecked: this.checked, - radioValue: this.value - }; - }, - computed: { - checkedStyle: function checkedStyle() { - 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; + _converPx: function _converPx(value) { + if (/\d+[ur]px$/i.test(value)) { + value.replace(/\d+[ur]px$/i, function (text) { + return "".concat(uni.upx2px(parseFloat(text)), "px"); + }); // eslint-disable-next-line no-useless-escape + } else if (/^-?[\d\.]+$/.test(value)) { + return "".concat(value, "px"); } - this.radioChecked = true; - this.$dispatch('RadioGroup', 'uni-radio-change', $event, this); - }, - _resetFormData: function _resetFormData() { - this.radioChecked = this.min; + return value || ''; } } }); -// 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__(82); +// CONCATENATED MODULE: ./src/core/view/components/icon/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_iconvue_type_script_lang_js_ = (iconvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/icon/index.vue?vue&type=style&index=0&lang=css& +var iconvue_type_style_index_0_lang_css_ = __webpack_require__(69); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/radio/index.vue +// CONCATENATED MODULE: ./src/core/view/components/icon/index.vue @@ -18822,7 +18447,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_radiovue_type_script_lang_js_, + components_iconvue_type_script_lang_js_, render, staticRenderFns, false, @@ -18834,38 +18459,68 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/radio/index.vue" -/* harmony default export */ var components_radio = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/icon/index.vue" +/* harmony default export */ var icon = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 106 */ +/* 103 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox-group/index.vue?vue&type=template&id=37cde58e& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/navigator/index.vue?vue&type=template&id=c893a598& 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 - ) + return _vm.hoverClass && _vm.hoverClass !== "none" + ? _c( + "uni-navigator", + _vm._g( + { + class: [_vm.hovering ? _vm.hoverClass : ""], + on: { + touchstart: _vm._hoverTouchStart, + touchend: _vm._hoverTouchEnd, + touchcancel: _vm._hoverTouchCancel, + click: _vm._onClick + } + }, + _vm.$listeners + ), + [_vm._t("default")], + 2 + ) + : _c( + "uni-navigator", + _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), + [_vm._t("default")], + 2 + ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue?vue&type=template&id=37cde58e& +// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue?vue&type=template&id=c893a598& // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +var mixins = __webpack_require__(2); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox-group/index.vue?vue&type=script&lang=js& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/navigator/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// +// +// +// +// +// +// // // // @@ -18873,83 +18528,92 @@ var mixins = __webpack_require__(1); // // -/* harmony default export */ var checkbox_groupvue_type_script_lang_js_ = ({ - name: 'CheckboxGroup', - mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], +var OPEN_TYPES = ['navigate', 'redirect', 'switchTab', 'reLaunch', 'navigateBack']; +/* harmony default export */ var navigatorvue_type_script_lang_js_ = ({ + name: 'Navigator', + mixins: [mixins["b" /* hover */]], props: { - name: { + hoverClass: { + type: String, + default: 'navigator-hover' + }, + url: { type: String, default: '' + }, + openType: { + type: String, + default: 'navigate', + validator: function validator(value) { + return ~OPEN_TYPES.indexOf(value); + } + }, + delta: { + type: Number, + default: 1 + }, + hoverStartTime: { + type: Number, + default: 20 + }, + hoverStayTime: { + type: Number, + default: 600 } }, - 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); + _onClick: function _onClick($event) { + if (this.openType !== 'navigateBack' && !this.url) { + console.error(" should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab"); + return; } - }, - _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; - } + switch (this.openType) { + case 'navigate': + uni.navigateTo({ + url: this.url + }); + break; - return data; + case 'redirect': + uni.redirectTo({ + url: this.url + }); + break; + + case 'switchTab': + uni.switchTab({ + url: this.url + }); + break; + + case 'reLaunch': + uni.reLaunch({ + url: this.url + }); + break; + + case 'navigateBack': + uni.navigateBack({ + delta: this.delta + }); + break; + + default: + break; + } } } }); -// 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__(69); +// 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_); +// 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__(74); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/checkbox-group/index.vue +// CONCATENATED MODULE: ./src/core/view/components/navigator/index.vue @@ -18959,7 +18623,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_checkbox_groupvue_type_script_lang_js_, + components_navigatorvue_type_script_lang_js_, render, staticRenderFns, false, @@ -18971,38 +18635,232 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/checkbox-group/index.vue" -/* harmony default export */ var checkbox_group = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/navigator/index.vue" +/* harmony default export */ var components_navigator = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 107 */ +/* 104 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio-group/index.vue?vue&type=template&id=17be8d0a& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/input/index.vue?vue&type=template&id=c65e1032& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( - "uni-radio-group", - _vm._g({}, _vm.$listeners), - [_vm._t("default")], - 2 + "uni-input", + _vm._g( + { + on: { + change: function($event) { + $event.stopPropagation() + } + } + }, + _vm.$listeners + ), + [ + _c("div", { ref: "wrapper", staticClass: "uni-input-wrapper" }, [ + _c( + "div", + { + directives: [ + { + name: "show", + rawName: "v-show", + value: !(_vm.composing || _vm.inputValue.length), + expression: "!(composing || inputValue.length)" + } + ], + ref: "placeholder", + staticClass: "uni-input-placeholder", + class: _vm.placeholderClass, + style: _vm.placeholderStyle + }, + [_vm._v(_vm._s(_vm.placeholder))] + ), + _vm.inputType === "checkbox" + ? _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.inputValue, + expression: "inputValue" + } + ], + ref: "input", + staticClass: "uni-input-input", + attrs: { + disabled: _vm.disabled, + maxlength: _vm.maxlength, + step: _vm.step, + autocomplete: "off", + type: "checkbox" + }, + domProps: { + checked: Array.isArray(_vm.inputValue) + ? _vm._i(_vm.inputValue, null) > -1 + : _vm.inputValue + }, + on: { + focus: _vm._onFocus, + blur: _vm._onBlur, + input: function($event) { + $event.stopPropagation() + return _vm._onInput($event) + }, + compositionstart: _vm._onComposition, + compositionend: _vm._onComposition, + keyup: function($event) { + $event.stopPropagation() + return _vm._onKeyup($event) + }, + change: function($event) { + var $$a = _vm.inputValue, + $$el = $event.target, + $$c = $$el.checked ? true : false + if (Array.isArray($$a)) { + var $$v = null, + $$i = _vm._i($$a, $$v) + if ($$el.checked) { + $$i < 0 && (_vm.inputValue = $$a.concat([$$v])) + } else { + $$i > -1 && + (_vm.inputValue = $$a + .slice(0, $$i) + .concat($$a.slice($$i + 1))) + } + } else { + _vm.inputValue = $$c + } + } + } + }) + : _vm.inputType === "radio" + ? _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.inputValue, + expression: "inputValue" + } + ], + ref: "input", + staticClass: "uni-input-input", + attrs: { + disabled: _vm.disabled, + maxlength: _vm.maxlength, + step: _vm.step, + autocomplete: "off", + type: "radio" + }, + domProps: { checked: _vm._q(_vm.inputValue, null) }, + on: { + focus: _vm._onFocus, + blur: _vm._onBlur, + input: function($event) { + $event.stopPropagation() + return _vm._onInput($event) + }, + compositionstart: _vm._onComposition, + compositionend: _vm._onComposition, + keyup: function($event) { + $event.stopPropagation() + return _vm._onKeyup($event) + }, + change: function($event) { + _vm.inputValue = null + } + } + }) + : _c("input", { + directives: [ + { + name: "model", + rawName: "v-model", + value: _vm.inputValue, + expression: "inputValue" + } + ], + ref: "input", + staticClass: "uni-input-input", + attrs: { + disabled: _vm.disabled, + maxlength: _vm.maxlength, + step: _vm.step, + autocomplete: "off", + type: _vm.inputType + }, + domProps: { value: _vm.inputValue }, + on: { + focus: _vm._onFocus, + blur: _vm._onBlur, + input: [ + function($event) { + if ($event.target.composing) { + return + } + _vm.inputValue = $event.target.value + }, + function($event) { + $event.stopPropagation() + return _vm._onInput($event) + } + ], + compositionstart: _vm._onComposition, + compositionend: _vm._onComposition, + keyup: function($event) { + $event.stopPropagation() + return _vm._onKeyup($event) + } + } + }) + ]) + ] ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/radio-group/index.vue?vue&type=template&id=17be8d0a& +// CONCATENATED MODULE: ./src/core/view/components/input/index.vue?vue&type=template&id=c65e1032& // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +var mixins = __webpack_require__(2); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/radio-group/index.vue?vue&type=script&lang=js& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/input/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// // // // @@ -19010,26 +18868,113 @@ var mixins = __webpack_require__(1); // // -/* harmony default export */ var radio_groupvue_type_script_lang_js_ = ({ - name: 'RadioGroup', - mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], +var INPUT_TYPES = ['text', 'number', 'idcard', 'digit', 'password']; +var NUMBER_TYPES = ['number', 'digit']; +/* harmony default export */ var inputvue_type_script_lang_js_ = ({ + name: 'Input', + mixins: [mixins["a" /* emitter */]], + model: { + prop: 'value', + event: 'update:value' + }, props: { name: { type: String, default: '' + }, + value: { + type: [String, Number], + default: '' + }, + type: { + type: String, + default: 'text' + }, + password: { + type: [Boolean, String], + default: false + }, + placeholder: { + type: String, + default: '' + }, + placeholderStyle: { + type: String, + default: '' + }, + placeholderClass: { + type: String, + default: '' + }, + disabled: { + type: [Boolean, String], + default: false + }, + maxlength: { + type: [Number, String], + default: 140 + }, + focus: { + type: [Boolean, String], + default: false + }, + confirmType: { + type: String, + default: 'done' } }, data: function data() { return { - radioList: [] + inputValue: this.value + '', + composing: false, + wrapperHeight: 0, + cachedValue: '' }; }, - listeners: { - '@radio-change': '_changeHandler', - '@radio-group-update': '_radioGroupUpdateHandler' + computed: { + inputType: function inputType() { + var type = ''; + + switch (this.type) { + case 'text': + this.confirmType === 'search' && (type = 'search'); + break; + + case 'idcard': + // TODO 可能要根据不同平台进行区分处理 + type = 'text'; + break; + + case 'digit': + type = 'number'; + break; + + default: + type = ~INPUT_TYPES.indexOf(this.type) ? this.type : 'text'; + break; + } + + return this.password ? 'password' : type; + }, + step: function step() { + // 处理部分设备中无法输入小数点的问题 + return ~NUMBER_TYPES.indexOf(this.type) ? '0.000000000000000001' : ''; + } }, - mounted: function mounted() { - this._resetRadioGroupValue(this.radioList.length - 1); + watch: { + focus: function focus(value) { + value && this._focusInput(); + }, + value: function value(_value) { + this.inputValue = _value + ''; + }, + inputValue: function inputValue(value) { + this.$emit('update:value', value); + }, + maxlength: function maxlength(value) { + var realValue = this.inputValue.slice(0, parseInt(value, 10)); + realValue !== this.inputValue && (this.inputValue = realValue); + } }, created: function created() { this.$dispatch('Form', 'uni-form-group-update', { @@ -19037,6 +18982,34 @@ var mixins = __webpack_require__(1); vm: this }); }, + mounted: function mounted() { + if (this.confirmType === 'search') { + var formElem = document.createElement('form'); + formElem.action = ''; + + formElem.onsubmit = function () { + return false; + }; + + formElem.className = 'uni-input-form'; + formElem.appendChild(this.$refs.input); + this.$refs.wrapper.appendChild(formElem); + } + + var $vm = this; + + while ($vm) { + var scopeId = $vm.$options._scopeId; + + if (scopeId) { + this.$refs.placeholder.setAttribute(scopeId, ''); + } + + $vm = $vm.$parent; + } + + this.focus && this._focusInput(); + }, beforeDestroy: function beforeDestroy() { this.$dispatch('Form', 'uni-form-group-update', { type: 'remove', @@ -19044,73 +19017,97 @@ var mixins = __webpack_require__(1); }); }, methods: { - _changeHandler: function _changeHandler($event, vm) { - var index = this.radioList.indexOf(vm); - - this._resetRadioGroupValue(index, true); - - this.$trigger('change', $event, { - value: vm.radioValue - }); - }, - _radioGroupUpdateHandler: function _radioGroupUpdateHandler($event) { - if ($event.type === 'add') { - this.radioList.push($event.vm); - } else { - var index = this.radioList.indexOf($event.vm); - this.radioList.splice(index, 1); + _onKeyup: function _onKeyup($event) { + if ($event.keyCode === 13) { + this.$trigger('confirm', $event, { + value: $event.target.value + }); } }, - _resetRadioGroupValue: function _resetRadioGroupValue(key, change) { - var _this = this; + _onInput: function _onInput($event) { + if (this.composing) { + return; + } // 处理部分输入法可以输入其它字符的情况 + + + if (~NUMBER_TYPES.indexOf(this.type)) { + if (this.$refs.input.validity && !this.$refs.input.validity.valid) { + $event.target.value = this.cachedValue; + this.inputValue = $event.target.value; // 输入非法字符不触发 input 事件 - this.radioList.forEach(function (value, index) { - if (index === key) { return; + } else { + this.cachedValue = this.inputValue; } + } // type="number" 不支持 maxlength 属性,因此需要主动限制长度。 - if (change) { - _this.radioList[index].radioChecked = false; - } else { - _this.radioList.forEach(function (v, i) { - if (index >= i) { - return; - } - if (_this.radioList[i].radioChecked) { - _this.radioList[index].radioChecked = false; - } - }); + if (this.inputType === 'number') { + var maxlength = parseInt(this.maxlength, 10); + + if (maxlength > 0 && $event.target.value.length > maxlength) { + $event.target.value = $event.target.value.slice(0, maxlength); + this.inputValue = $event.target.value; // 字符长度超出范围不触发 input 事件 + + return; } + } + + this.$trigger('input', $event, { + value: this.inputValue }); }, - _getFormData: function _getFormData() { - var data = {}; + _onFocus: function _onFocus($event) { + this.$trigger('focus', $event, { + value: $event.target.value + }); + }, + _onBlur: function _onBlur($event) { + this.$trigger('blur', $event, { + value: $event.target.value + }); + }, + _focusInput: function _focusInput() { + var _this = this; - if (this.name !== '') { - var value = ''; - this.radioList.forEach(function (vm) { - if (vm.radioChecked) { - value = vm.value; - } - }); - data['value'] = value; - data['key'] = this.name; - } + setTimeout(function () { + _this.$refs.input.focus(); + }, 350); + }, + _blurInput: function _blurInput() { + var _this2 = this; - return data; + setTimeout(function () { + _this2.$refs.input.blur(); + }, 350); + }, + _onComposition: function _onComposition($event) { + if ($event.type === 'compositionstart') { + this.composing = true; + } else { + this.composing = false; + } + }, + _resetFormData: function _resetFormData() { + this.inputValue = ''; + }, + _getFormData: function _getFormData() { + return this.name ? { + value: this.inputValue, + key: this.name + } : {}; } } }); -// CONCATENATED MODULE: ./src/core/view/components/radio-group/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_radio_groupvue_type_script_lang_js_ = (radio_groupvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/radio-group/index.vue?vue&type=style&index=0&lang=css& -var radio_groupvue_type_style_index_0_lang_css_ = __webpack_require__(81); +// 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__(71); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/radio-group/index.vue +// CONCATENATED MODULE: ./src/core/view/components/input/index.vue @@ -19120,7 +19117,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_radio_groupvue_type_script_lang_js_, + components_inputvue_type_script_lang_js_, render, staticRenderFns, false, @@ -19132,39 +19129,25 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/radio-group/index.vue" -/* harmony default export */ var radio_group = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/input/index.vue" +/* harmony default export */ var input = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 108 */ +/* 105 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/progress/index.vue?vue&type=template&id=34f62046& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/swiper-item/index.vue?vue&type=template&id=3883b065& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( - "uni-progress", - _vm._g({ staticClass: "uni-progress" }, _vm.$listeners), - [ - _c("div", { staticClass: "uni-progress-bar", style: _vm.outerBarStyle }, [ - _c("div", { - staticClass: "uni-progress-inner-bar", - style: _vm.innerBarStyle - }) - ]), - _vm.showInfo - ? [ - _c("p", { staticClass: "uni-progress-info" }, [ - _vm._v(_vm._s(_vm.currentPercent) + "%") - ]) - ] - : _vm._e() - ], + "uni-swiper-item", + _vm._g({}, _vm.$listeners), + [_vm._t("default")], 2 ) } @@ -19172,143 +19155,45 @@ var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/progress/index.vue?vue&type=template&id=34f62046& - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/progress/index.vue?vue&type=script&lang=js& -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -var VALUES = { - activeColor: '#007AFF', - backgroundColor: '#EBEBEB', - activeMode: 'backwards' -}; -/* harmony default export */ var progressvue_type_script_lang_js_ = ({ - name: 'Progress', - props: { - percent: { - type: [Number, String], - default: 0, - validator: function validator(value) { - return !isNaN(parseFloat(value, 10)); - } - }, - showInfo: { - type: [Boolean, String], - default: false - }, - strokeWidth: { - type: [Number, String], - default: 6, - validator: function validator(value) { - return !isNaN(parseFloat(value, 10)); - } - }, - color: { - type: String, - default: VALUES.activeColor - }, - activeColor: { - type: String, - default: VALUES.activeColor - }, - backgroundColor: { - type: String, - default: VALUES.backgroundColor - }, - active: { - type: [Boolean, String], - default: false - }, - activeMode: { - type: String, - default: VALUES.activeMode - } - }, - data: function data() { - return { - currentPercent: 0, - strokeTimer: 0, - lastPercent: 0 - }; - }, - computed: { - outerBarStyle: function outerBarStyle() { - return "background-color: ".concat(this.backgroundColor, "; height: ").concat(this.strokeWidth, "px;"); - }, - innerBarStyle: function innerBarStyle() { - // 兼容下不推荐的属性,activeColor 优先级高于 color。 - var backgroundColor = ''; - - if (this.color !== VALUES.activeColor && this.activeColor === VALUES.activeColor) { - backgroundColor = this.color; - } else { - backgroundColor = this.activeColor; - } - - return "width: ".concat(this.currentPercent, "%;background-color: ").concat(backgroundColor); - }, - realPercent: function realPercent() { - // 确保最终计算时使用的是 Number 类型的值,并且在有效范围内。 - var realValue = parseFloat(this.percent, 10); - realValue < 0 && (realValue = 0); - realValue > 100 && (realValue = 100); - return realValue; - } - }, - watch: { - realPercent: function realPercent(newValue, oldValue) { - this.strokeTimer && clearInterval(this.strokeTimer); - this.lastPercent = oldValue || 0; +// CONCATENATED MODULE: ./src/core/view/components/swiper-item/index.vue?vue&type=template&id=3883b065& - this._activeAnimation(); +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/swiper-item/index.vue?vue&type=script&lang=js& +// +// +// +// +// +/* harmony default export */ var swiper_itemvue_type_script_lang_js_ = ({ + name: 'SwiperItem', + props: { + itemId: { + type: String, + default: '' } }, - created: function created() { - this._activeAnimation(); - }, - methods: { - _activeAnimation: function _activeAnimation() { - var _this = this; + mounted: function mounted() { + var $el = this.$el; + $el.style.position = 'absolute'; + $el.style.width = '100%'; + $el.style.height = '100%'; + var callbacks = this.$vnode._callbacks; - if (this.active) { - this.currentPercent = this.activeMode === VALUES.activeMode ? 0 : this.lastPercent; - this.strokeTimer = setInterval(function () { - if (_this.currentPercent + 1 > _this.realPercent) { - _this.currentPercent = _this.realPercent; - _this.strokeTimer && clearInterval(_this.strokeTimer); - } else { - _this.currentPercent += 1; - } - }, 30); - } else { - this.currentPercent = this.realPercent; - } + if (callbacks) { + callbacks.forEach(function (callback) { + callback(); + }); } } }); -// CONCATENATED MODULE: ./src/core/view/components/progress/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_progressvue_type_script_lang_js_ = (progressvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/progress/index.vue?vue&type=style&index=0&lang=css& -var progressvue_type_style_index_0_lang_css_ = __webpack_require__(80); +// CONCATENATED MODULE: ./src/core/view/components/swiper-item/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_swiper_itemvue_type_script_lang_js_ = (swiper_itemvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/swiper-item/index.vue?vue&type=style&index=0&lang=css& +var swiper_itemvue_type_style_index_0_lang_css_ = __webpack_require__(83); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/progress/index.vue +// CONCATENATED MODULE: ./src/core/view/components/swiper-item/index.vue @@ -19318,7 +19203,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_progressvue_type_script_lang_js_, + components_swiper_itemvue_type_script_lang_js_, render, staticRenderFns, false, @@ -19330,51 +19215,97 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/progress/index.vue" -/* harmony default export */ var progress = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/swiper-item/index.vue" +/* harmony default export */ var swiper_item = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 109 */ +/* 106 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox/index.vue?vue&type=template&id=a63c1348& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/slider/index.vue?vue&type=template&id=1969bd7a& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( - "uni-checkbox", - _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), + "uni-slider", + _vm._g({ ref: "uni-slider", on: { click: _vm._onClick } }, _vm.$listeners), [ - _c( - "div", - { staticClass: "uni-checkbox-wrapper" }, - [ - _c("div", { - staticClass: "uni-checkbox-input", - class: [_vm.checkboxChecked ? "uni-checkbox-input-checked" : ""], - style: { color: _vm.color } - }), - _vm._t("default") - ], - 2 - ) - ] + _c("div", { staticClass: "uni-slider-wrapper" }, [ + _c("div", { staticClass: "uni-slider-tap-area" }, [ + _c( + "div", + { staticClass: "uni-slider-handle-wrapper", style: _vm.setBgColor }, + [ + _c("div", { + ref: "uni-slider-handle", + staticClass: "uni-slider-handle", + style: _vm.setBlockBg + }), + _c("div", { + staticClass: "uni-slider-thumb", + style: _vm.setBlockStyle + }), + _c("div", { + staticClass: "uni-slider-track", + style: _vm.setActiveColor + }) + ] + ) + ]), + _c( + "span", + { + directives: [ + { + name: "show", + rawName: "v-show", + value: _vm.showValue, + expression: "showValue" + } + ], + staticClass: "uni-slider-value" + }, + [_vm._v(_vm._s(_vm.sliderValue))] + ) + ]), + _vm._t("default") + ], + 2 ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/checkbox/index.vue?vue&type=template&id=a63c1348& +// CONCATENATED MODULE: ./src/core/view/components/slider/index.vue?vue&type=template&id=1969bd7a& // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +var mixins = __webpack_require__(2); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox/index.vue?vue&type=script&lang=js& +// EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js +var touchtrack = __webpack_require__(8); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/slider/index.vue?vue&type=script&lang=js& +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// +// // // // @@ -19389,92 +19320,184 @@ var mixins = __webpack_require__(1); // // -/* harmony default export */ var checkboxvue_type_script_lang_js_ = ({ - name: 'Checkbox', - mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], + +/* harmony default export */ var slidervue_type_script_lang_js_ = ({ + name: 'Slider', + mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */], touchtrack["a" /* default */]], props: { - checked: { - type: [Boolean, String], - default: false - }, - id: { + name: { type: String, default: '' }, + min: { + type: [Number, String], + default: 0 + }, + max: { + type: [Number, String], + default: 100 + }, + value: { + type: [Number, String], + default: 0 + }, + step: { + type: [Number, String], + default: 1 + }, disabled: { type: [Boolean, String], default: false }, color: { + type: String, + default: '#e9e9e9' + }, + backgroundColor: { + type: String, + default: '#e9e9e9' + }, + activeColor: { type: String, default: '#007aff' }, - value: { + selectedColor: { type: String, - default: '' + default: '#007aff' + }, + blockColor: { + type: String, + default: '#ffffff' + }, + blockSize: { + type: [Number, String], + default: 28 + }, + showValue: { + type: [Boolean, String], + default: false } }, data: function data() { return { - checkboxChecked: this.checked, - checkboxValue: this.value + sliderValue: Number(this.value) }; }, - watch: { - checked: function checked(val) { - this.checkboxChecked = val; + computed: { + setBlockStyle: function setBlockStyle() { + return { + width: this.blockSize + 'px', + height: this.blockSize + 'px', + marginLeft: -this.blockSize / 2 + 'px', + marginTop: -this.blockSize / 2 + 'px', + left: this._getValueWidth(), + backgroundColor: this.blockColor + }; + }, + setBgColor: function setBgColor() { + return { + backgroundColor: this._getBgColor() + }; + }, + setBlockBg: function setBlockBg() { + return { + left: this._getValueWidth() + }; }, + setActiveColor: function setActiveColor() { + // 有问题,设置最大值最小值是有问题 + return { + backgroundColor: this._getActiveColor(), + width: this._getValueWidth() + }; + } + }, + watch: { value: function value(val) { - this.checkboxValue = val; + this.sliderValue = Number(val); } }, - listeners: { - 'label-click': '_onClick', - '@label-click': '_onClick' + mounted: function mounted() { + this.touchtrack(this.$refs['uni-slider-handle'], '_onTrack'); }, 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: { + _onUserChangedValue: function _onUserChangedValue(e) { + var slider = this.$refs['uni-slider']; + var offsetWidth = slider.offsetWidth; + var boxLeft = slider.getBoundingClientRect().left; + var value = (e.x - boxLeft) * (this.max - this.min) / offsetWidth + Number(this.min); + this.sliderValue = this._filterValue(value); + }, + _filterValue: function _filterValue(e) { + return e < this.min ? this.min : e > this.max ? this.max : Math.round((e - this.min) / this.step) * this.step + Number(this.min); + }, + _getValueWidth: function _getValueWidth() { + return 100 * (this.sliderValue - this.min) / (this.max - this.min) + '%'; + }, + _getBgColor: function _getBgColor() { + return this.backgroundColor !== '#e9e9e9' ? this.backgroundColor : this.color !== '#007aff' ? this.color : '#007aff'; + }, + _getActiveColor: function _getActiveColor() { + return this.activeColor !== '#007aff' ? this.activeColor : this.selectedColor !== '#e9e9e9' ? this.selectedColor : '#e9e9e9'; + }, + _onTrack: function _onTrack(e) { + if (!this.disabled) { + return e.detail.state === 'move' ? (this._onUserChangedValue({ + x: e.detail.x0 + }), this.$trigger('changing', e, { + value: this.sliderValue + }), !1) : void (e.detail.state === 'end' && this.$trigger('change', e, { + value: this.sliderValue + })); + } + }, _onClick: function _onClick($event) { if (this.disabled) { return; } - this.checkboxChecked = !this.checkboxChecked; - this.$dispatch('CheckboxGroup', 'uni-checkbox-change', $event); + this._onUserChangedValue($event); + + this.$trigger('change', $event, { + value: this.sliderValue + }); }, _resetFormData: function _resetFormData() { - this.checkboxChecked = false; + this.sliderValue = this.min; + }, + _getFormData: function _getFormData() { + var data = {}; + + if (this.name !== '') { + data['value'] = this.sliderValue; + data['key'] = this.name; + } + + return data; } } }); -// 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__(70); +// CONCATENATED MODULE: ./src/core/view/components/slider/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_slidervue_type_script_lang_js_ = (slidervue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/slider/index.vue?vue&type=style&index=0&lang=css& +var slidervue_type_style_index_0_lang_css_ = __webpack_require__(82); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/checkbox/index.vue +// CONCATENATED MODULE: ./src/core/view/components/slider/index.vue @@ -19484,7 +19507,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_checkboxvue_type_script_lang_js_, + components_slidervue_type_script_lang_js_, render, staticRenderFns, false, @@ -19496,35 +19519,46 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/checkbox/index.vue" -/* harmony default export */ var components_checkbox = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/slider/index.vue" +/* harmony default export */ var slider = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 110 */ +/* 107 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/form/index.vue?vue&type=template&id=7735a91d& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/image/index.vue?vue&type=template&id=c7af6f90& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h - return _c("uni-form", _vm._g({}, _vm.$listeners), [ - _c("span", [_vm._t("default")], 2) - ]) + return _c( + "uni-image", + _vm._g({}, _vm.$listeners), + [ + _c("div", { ref: "content", style: _vm.modeStyle }), + _c("img", { attrs: { src: _vm.realImagePath } }), + _vm.mode === "widthFix" + ? _c("v-uni-resize-sensor", { + ref: "sensor", + on: { resize: _vm._resize } + }) + : _vm._e() + ], + 1 + ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/form/index.vue?vue&type=template&id=7735a91d& +// CONCATENATED MODULE: ./src/core/view/components/image/index.vue?vue&type=template&id=c7af6f90& -// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/image/index.vue?vue&type=script&lang=js& +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/form/index.vue?vue&type=script&lang=js& // // // @@ -19532,54 +19566,195 @@ var mixins = __webpack_require__(1); // // // - -/* harmony default export */ var formvue_type_script_lang_js_ = ({ - name: 'Form', - mixins: [mixins["c" /* listeners */]], +// +// +// +// +// +/* harmony default export */ var imagevue_type_script_lang_js_ = ({ + name: 'Image', + props: { + src: { + type: String, + default: '' + }, + mode: { + type: String, + default: 'scaleToFill' + }, + // TODO 懒加载 + lazyLoad: { + type: [Boolean, String], + default: false + } + }, data: function data() { return { - childrenList: [] + originalWidth: 0, + originalHeight: 0, + availHeight: '', + sizeFixed: false }; }, - listeners: { - '@form-submit': '_onSubmit', - '@form-reset': '_onReset', - '@form-group-update': '_formGroupUpdateHandler' + computed: { + ratio: function ratio() { + return this.originalWidth && this.originalHeight ? this.originalWidth / this.originalHeight : 0; + }, + realImagePath: function realImagePath() { + return this.src && this.$getRealPath(this.src); + }, + modeStyle: function modeStyle() { + var size = 'auto'; + var position = ''; + var repeat = 'no-repeat'; + + switch (this.mode) { + case 'aspectFit': + size = 'contain'; + position = 'center center'; + break; + + case 'aspectFill': + size = 'cover'; + position = 'center center'; + break; + + case 'widthFix': + size = '100% 100%'; + break; + + case 'top': + position = 'center top'; + break; + + case 'bottom': + position = 'center bottom'; + break; + + case 'center': + position = 'center center'; + break; + + case 'left': + position = 'left center'; + break; + + case 'right': + position = 'right center'; + break; + + case 'top left': + position = 'left top'; + break; + + case 'top right': + position = 'right top'; + break; + + case 'bottom left': + position = 'left bottom'; + break; + + case 'bottom right': + position = 'right bottom'; + break; + + default: + size = '100% 100%'; + position = '0% 0%'; + break; + } + + return "background-position:".concat(position, ";background-size:").concat(size, ";background-repeat:").concat(repeat, ";"); + } + }, + watch: { + src: function src(newValue, oldValue) { + this._loadImage(); + }, + mode: function mode(newValue, oldValue) { + if (oldValue === 'widthFix') { + this.$el.style.height = this.availHeight; + this.sizeFixed = false; + } + + if (newValue === 'widthFix' && this.ratio) { + this._fixSize(); + } + } + }, + mounted: function mounted() { + this.availHeight = this.$el.style.height || ''; + + this._loadImage(); }, methods: { - _onSubmit: function _onSubmit($event) { - var data = {}; - this.childrenList.forEach(function (vm) { - if (vm._getFormData && vm._getFormData().key) { - data[vm._getFormData().key] = vm._getFormData().value; + _resize: function _resize() { + if (this.mode === 'widthFix' && !this.sizeFixed) { + this._fixSize(); + } + }, + _fixSize: function _fixSize() { + var elWidth = this._getWidth(); + + if (elWidth) { + var height = elWidth / this.ratio; // fix: 解决 Chrome 浏览器上某些情况下导致 1px 缝隙的问题 + + if ((typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) && navigator.vendor === 'Google Inc.' && height > 10) { + height = Math.round(height / 2) * 2; } - }); - this.$trigger('submit', $event, { - value: data - }); + + this.$el.style.height = height + 'px'; + this.sizeFixed = true; + } }, - _onReset: function _onReset($event) { - this.$trigger('reset', $event, {}); - this.childrenList.forEach(function (vm) { - vm._resetFormData && vm._resetFormData(); - }); + _loadImage: function _loadImage() { + this.$refs.content.style.backgroundImage = this.src ? "url(".concat(this.realImagePath, ")") : 'none'; + + var _self = this; + + var img = new Image(); + + img.onload = function ($event) { + _self.originalWidth = this.width; + _self.originalHeight = this.height; + + if (_self.mode === 'widthFix') { + _self._fixSize(); + } + + _self.$trigger('load', $event, { + width: this.width, + height: this.height + }); + }; + + img.onerror = function ($event) { + _self.$trigger('error', $event, { + errMsg: "GET ".concat(_self.src, " 404 (Not Found)") + }); + }; + + img.src = this.realImagePath; }, - _formGroupUpdateHandler: function _formGroupUpdateHandler($event) { - if ($event.type === 'add') { - this.childrenList.push($event.vm); - } else { - var index = this.childrenList.indexOf($event.vm); - this.childrenList.splice(index, 1); - } + _getWidth: function _getWidth() { + var computedStyle = window.getComputedStyle(this.$el); + var borderWidth = (parseFloat(computedStyle.borderLeftWidth, 10) || 0) + (parseFloat(computedStyle.borderRightWidth, 10) || 0); + var paddingWidth = (parseFloat(computedStyle.paddingLeft, 10) || 0) + (parseFloat(computedStyle.paddingRight, 10) || 0); + return this.$el.offsetWidth - borderWidth - paddingWidth; } } }); -// CONCATENATED MODULE: ./src/core/view/components/form/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_formvue_type_script_lang_js_ = (formvue_type_script_lang_js_); +// 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__(70); + // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/form/index.vue +// CONCATENATED MODULE: ./src/core/view/components/image/index.vue + @@ -19588,7 +19763,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_formvue_type_script_lang_js_, + components_imagevue_type_script_lang_js_, render, staticRenderFns, false, @@ -19600,97 +19775,51 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/form/index.vue" -/* harmony default export */ var components_form = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/image/index.vue" +/* harmony default export */ var components_image = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 111 */ +/* 108 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/slider/index.vue?vue&type=template&id=1969bd7a& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"70784d34-vue-loader-template"}!./node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox/index.vue?vue&type=template&id=a63c1348& var render = function() { var _vm = this var _h = _vm.$createElement var _c = _vm._self._c || _h return _c( - "uni-slider", - _vm._g({ ref: "uni-slider", on: { click: _vm._onClick } }, _vm.$listeners), + "uni-checkbox", + _vm._g({ on: { click: _vm._onClick } }, _vm.$listeners), [ - _c("div", { staticClass: "uni-slider-wrapper" }, [ - _c("div", { staticClass: "uni-slider-tap-area" }, [ - _c( - "div", - { staticClass: "uni-slider-handle-wrapper", style: _vm.setBgColor }, - [ - _c("div", { - ref: "uni-slider-handle", - staticClass: "uni-slider-handle", - style: _vm.setBlockBg - }), - _c("div", { - staticClass: "uni-slider-thumb", - style: _vm.setBlockStyle - }), - _c("div", { - staticClass: "uni-slider-track", - style: _vm.setActiveColor - }) - ] - ) - ]), - _c( - "span", - { - directives: [ - { - name: "show", - rawName: "v-show", - value: _vm.showValue, - expression: "showValue" - } - ], - staticClass: "uni-slider-value" - }, - [_vm._v(_vm._s(_vm.sliderValue))] - ) - ]), - _vm._t("default") - ], - 2 + _c( + "div", + { staticClass: "uni-checkbox-wrapper" }, + [ + _c("div", { + staticClass: "uni-checkbox-input", + class: [_vm.checkboxChecked ? "uni-checkbox-input-checked" : ""], + style: { color: _vm.color } + }), + _vm._t("default") + ], + 2 + ) + ] ) } var staticRenderFns = [] render._withStripped = true -// CONCATENATED MODULE: ./src/core/view/components/slider/index.vue?vue&type=template&id=1969bd7a& +// CONCATENATED MODULE: ./src/core/view/components/checkbox/index.vue?vue&type=template&id=a63c1348& // EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); - -// EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js -var touchtrack = __webpack_require__(7); +var mixins = __webpack_require__(2); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/slider/index.vue?vue&type=script&lang=js& -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/checkbox/index.vue?vue&type=script&lang=js& // // // @@ -19705,184 +19834,92 @@ var touchtrack = __webpack_require__(7); // // - -/* harmony default export */ var slidervue_type_script_lang_js_ = ({ - name: 'Slider', - mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */], touchtrack["a" /* default */]], +/* harmony default export */ var checkboxvue_type_script_lang_js_ = ({ + name: 'Checkbox', + mixins: [mixins["a" /* emitter */], mixins["c" /* listeners */]], props: { - name: { + checked: { + type: [Boolean, String], + default: false + }, + id: { type: String, default: '' }, - min: { - type: [Number, String], - default: 0 - }, - max: { - type: [Number, String], - default: 100 - }, - value: { - type: [Number, String], - default: 0 - }, - step: { - type: [Number, String], - default: 1 - }, disabled: { type: [Boolean, String], default: false }, color: { - type: String, - default: '#e9e9e9' - }, - backgroundColor: { - type: String, - default: '#e9e9e9' - }, - activeColor: { - type: String, - default: '#007aff' - }, - selectedColor: { type: String, default: '#007aff' }, - blockColor: { + value: { type: String, - default: '#ffffff' - }, - blockSize: { - type: [Number, String], - default: 28 - }, - showValue: { - type: [Boolean, String], - default: false + default: '' } }, data: function data() { return { - sliderValue: Number(this.value) + checkboxChecked: this.checked, + checkboxValue: this.value }; }, - computed: { - setBlockStyle: function setBlockStyle() { - return { - width: this.blockSize + 'px', - height: this.blockSize + 'px', - marginLeft: -this.blockSize / 2 + 'px', - marginTop: -this.blockSize / 2 + 'px', - left: this._getValueWidth(), - backgroundColor: this.blockColor - }; - }, - setBgColor: function setBgColor() { - return { - backgroundColor: this._getBgColor() - }; - }, - setBlockBg: function setBlockBg() { - return { - left: this._getValueWidth() - }; - }, - setActiveColor: function setActiveColor() { - // 有问题,设置最大值最小值是有问题 - return { - backgroundColor: this._getActiveColor(), - width: this._getValueWidth() - }; - } - }, watch: { + checked: function checked(val) { + this.checkboxChecked = val; + }, value: function value(val) { - this.sliderValue = Number(val); + this.checkboxValue = val; } }, - mounted: function mounted() { - this.touchtrack(this.$refs['uni-slider-handle'], '_onTrack'); + listeners: { + 'label-click': '_onClick', + '@label-click': '_onClick' }, created: function created() { - this.$dispatch('Form', 'uni-form-group-update', { + this.$dispatch('CheckboxGroup', 'uni-checkbox-group-update', { type: 'add', - vm: this - }); - }, - beforeDestroy: function beforeDestroy() { - this.$dispatch('Form', 'uni-form-group-update', { - type: 'remove', - vm: this - }); - }, - methods: { - _onUserChangedValue: function _onUserChangedValue(e) { - var slider = this.$refs['uni-slider']; - var offsetWidth = slider.offsetWidth; - var boxLeft = slider.getBoundingClientRect().left; - var value = (e.x - boxLeft) * (this.max - this.min) / offsetWidth + Number(this.min); - this.sliderValue = this._filterValue(value); - }, - _filterValue: function _filterValue(e) { - return e < this.min ? this.min : e > this.max ? this.max : Math.round((e - this.min) / this.step) * this.step + Number(this.min); - }, - _getValueWidth: function _getValueWidth() { - return 100 * (this.sliderValue - this.min) / (this.max - this.min) + '%'; - }, - _getBgColor: function _getBgColor() { - return this.backgroundColor !== '#e9e9e9' ? this.backgroundColor : this.color !== '#007aff' ? this.color : '#007aff'; - }, - _getActiveColor: function _getActiveColor() { - return this.activeColor !== '#007aff' ? this.activeColor : this.selectedColor !== '#e9e9e9' ? this.selectedColor : '#e9e9e9'; - }, - _onTrack: function _onTrack(e) { - if (!this.disabled) { - return e.detail.state === 'move' ? (this._onUserChangedValue({ - x: e.detail.x0 - }), this.$trigger('changing', e, { - value: this.sliderValue - }), !1) : void (e.detail.state === 'end' && this.$trigger('change', e, { - value: this.sliderValue - })); - } - }, + 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._onUserChangedValue($event); - - this.$trigger('change', $event, { - value: this.sliderValue - }); + this.checkboxChecked = !this.checkboxChecked; + this.$dispatch('CheckboxGroup', 'uni-checkbox-change', $event); }, _resetFormData: function _resetFormData() { - this.sliderValue = this.min; - }, - _getFormData: function _getFormData() { - var data = {}; - - if (this.name !== '') { - data['value'] = this.sliderValue; - data['key'] = this.name; - } - - return data; + this.checkboxChecked = false; } } }); -// CONCATENATED MODULE: ./src/core/view/components/slider/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_slidervue_type_script_lang_js_ = (slidervue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/slider/index.vue?vue&type=style&index=0&lang=css& -var slidervue_type_style_index_0_lang_css_ = __webpack_require__(85); +// 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__(68); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/slider/index.vue +// CONCATENATED MODULE: ./src/core/view/components/checkbox/index.vue @@ -19892,7 +19929,7 @@ var componentNormalizer = __webpack_require__(0); /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_slidervue_type_script_lang_js_, + components_checkboxvue_type_script_lang_js_, render, staticRenderFns, false, @@ -19904,11 +19941,11 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/slider/index.vue" -/* harmony default export */ var slider = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/checkbox/index.vue" +/* harmony default export */ var components_checkbox = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 112 */ +/* 109 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -19965,8 +20002,7 @@ component.options.__file = "src/core/view/components/label/index.vue" /* harmony default export */ var label = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 113 */, -/* 114 */ +/* 110 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -20022,7 +20058,7 @@ var canvasvue_type_script_lang_js_ = __webpack_require__(14); // CONCATENATED MODULE: ./src/core/view/components/canvas/index.vue?vue&type=script&lang=js& /* harmony default export */ var components_canvasvue_type_script_lang_js_ = (canvasvue_type_script_lang_js_["a" /* default */]); // EXTERNAL MODULE: ./src/core/view/components/canvas/index.vue?vue&type=style&index=0&lang=css& -var canvasvue_type_style_index_0_lang_css_ = __webpack_require__(68); +var canvasvue_type_style_index_0_lang_css_ = __webpack_require__(66); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); @@ -20053,142 +20089,201 @@ component.options.__file = "src/core/view/components/canvas/index.vue" /* harmony default export */ var canvas = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 115 */ +/* 111 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules -var mixins = __webpack_require__(1); - -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/button/index.vue?vue&type=script&lang=js& +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/movable-area/index.vue?vue&type=script&lang=js& +function calc(e) { + return Math.sqrt(e.x * e.x + e.y * e.y); +} -/* harmony default export */ var buttonvue_type_script_lang_js_ = ({ - name: 'Button', - mixins: [mixins["b" /* hover */], mixins["a" /* emitter */], mixins["c" /* listeners */]], +/* harmony default export */ var movable_areavue_type_script_lang_js_ = ({ + name: 'MovableArea', props: { - hoverClass: { - type: String, - default: 'button-hover' - }, - disabled: { - type: [Boolean, String], - default: false - }, - id: { - type: String, - default: '' - }, - hoverStopPropagation: { + scaleArea: { type: Boolean, default: false - }, - hoverStartTime: { - type: Number, - default: 20 - }, - hoverStayTime: { - type: Number, - default: 70 - }, - formType: { - type: String, - default: '', - validator: function validator(value) { - // 只有这几个可取值,其它都是非法的。 - return ~['', 'submit', 'reset'].indexOf(value); - } } }, data: function data() { return { - clickFunction: null + width: 0, + height: 0, + items: [] + }; + }, + created: function created() { + this.gapV = { + x: null, + y: null }; + this.pinchStartLen = null; + }, + mounted: function mounted() { + this._resize(); }, methods: { - _onClick: function _onClick($event, isLabelClick) { - if (this.disabled) { - return; - } + _resize: function _resize() { + this._getWH(); - if (isLabelClick) { - this.$el.click(); - } // TODO 通知父表单执行相应的行为 + this.items.forEach(function (item, index) { + item.componentInstance.setParent(); + }); + }, + _find: function _find(target) { + var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.items; + var root = this.$el; + function get(node) { + for (var i = 0; i < items.length; i++) { + var item = items[i]; - if (this.formType) { - this.$dispatch('Form', this.formType === 'submit' ? 'uni-form-submit' : 'uni-form-reset', { - type: this.formType - }); + if (node === item.componentInstance.$el) { + return item; + } + } + + if (node === root || node === document.body || node === document) { + return null; + } + + return get(node.parentNode); } + + return get(target); }, - _bindObjectListeners: function _bindObjectListeners(data, value) { - if (value) { - for (var key in value) { - var existing = data.on[key]; - var ours = value[key]; - data.on[key] = existing ? [].concat(existing, ours) : ours; + _touchstart: function _touchstart(t) { + var i = t.touches; + + if (i) { + if (i.length > 1) { + var r = { + x: i[1].pageX - i[0].pageX, + y: i[1].pageY - i[0].pageY + }; + this.pinchStartLen = calc(r); + this.gapV = r; + + if (!this.scaleArea) { + var touch0 = this._find(i[0].target); + + var touch1 = this._find(i[1].target); + + this._scaleMovableView = touch0 && touch0 === touch1 ? touch0 : null; + } } } + }, + _touchmove: function _touchmove(t) { + var n = t.touches; - return data; - } - }, - render: function render(createElement) { - var _this = this; + if (n) { + if (n.length > 1) { + t.preventDefault(); + var i = { + x: n[1].pageX - n[0].pageX, + y: n[1].pageY - n[0].pageY + }; - var $listeners = Object.create(null); + if (this.gapV.x !== null && this.pinchStartLen > 0) { + var r = calc(i) / this.pinchStartLen; - if (this.$listeners) { - Object.keys(this.$listeners).forEach(function (e) { - if (_this.disabled && (e === 'click' || e === 'tap')) { - return; + this._updateScale(r); + } + + this.gapV = i; } + } + }, + _touchend: function _touchend(e) { + var t = e.touches; - $listeners[e] = _this.$listeners[e]; - }); - } + if (!(t && t.length)) { + if (e.changedTouches) { + this.gapV.x = 0; + this.gapV.y = 0; + this.pinchStartLen = null; - if (this.hoverClass && this.hoverClass !== 'none') { - return createElement('uni-button', this._bindObjectListeners({ - class: [this.hovering ? this.hoverClass : ''], - attrs: { - 'disabled': this.disabled - }, - on: { - touchstart: this._hoverTouchStart, - touchend: this._hoverTouchEnd, - touchcancel: this._hoverTouchCancel, - click: this._onClick + if (this.scaleArea) { + this.items.forEach(function (item) { + item.componentInstance._endScale(); + }); + } else { + if (this._scaleMovableView) { + this._scaleMovableView.componentInstance._endScale(); + } + } } - }, $listeners), this.$slots.default); - } else { - return createElement('uni-button', this._bindObjectListeners({ - class: [this.hovering ? this.hoverClass : ''], - attrs: { - 'disabled': this.disabled - }, - on: { - click: this._onClick + } + }, + _updateScale: function _updateScale(e) { + if (e && e !== 1) { + if (this.scaleArea) { + this.items.forEach(function (item) { + item.componentInstance._setScale(e); + }); + } else { + if (this._scaleMovableView) { + this._scaleMovableView.componentInstance._setScale(e); + } } - }, $listeners), this.$slots.default); + } + }, + _getWH: function _getWH() { + var style = window.getComputedStyle(this.$el); + var rect = this.$el.getBoundingClientRect(); + this.width = rect.width - ['Left', 'Right'].reduce(function (all, item) { + return all + parseFloat(style['border' + item + 'Width']) + parseFloat(style['padding' + item]); + }, 0); + this.height = rect.height - ['Top', 'Bottom'].reduce(function (all, item) { + return all + parseFloat(style['border' + item + 'Width']) + parseFloat(style['padding' + item]); + }, 0); } }, - listeners: { - 'label-click': '_onClick', - '@label-click': '_onClick' + render: function render(createElement) { + var _this = this; + + var items = []; + + if (this.$slots.default) { + this.$slots.default.forEach(function (vnode) { + if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-movable-view') { + items.push(vnode); + } + }); + } + + this.items = items; + var $listeners = Object.assign({}, this.$listeners); + var events = ['touchstart', 'touchmove', 'touchend']; + events.forEach(function (event) { + var existing = $listeners[event]; + + var ours = _this["_".concat(event)]; + + $listeners[event] = existing ? [].concat(existing, ours) : ours; + }); + return createElement('uni-movable-area', { + on: $listeners + }, [createElement('v-uni-resize-sensor', { + on: { + resize: this._resize + } + })].concat(items)); } }); -// CONCATENATED MODULE: ./src/core/view/components/button/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_buttonvue_type_script_lang_js_ = (buttonvue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/button/index.vue?vue&type=style&index=0&lang=css& -var buttonvue_type_style_index_0_lang_css_ = __webpack_require__(67); +// CONCATENATED MODULE: ./src/core/view/components/movable-area/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_movable_areavue_type_script_lang_js_ = (movable_areavue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/movable-area/index.vue?vue&type=style&index=0&lang=css& +var movable_areavue_type_style_index_0_lang_css_ = __webpack_require__(72); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/button/index.vue +// CONCATENATED MODULE: ./src/core/view/components/movable-area/index.vue var render, staticRenderFns @@ -20198,7 +20293,7 @@ var render, staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_buttonvue_type_script_lang_js_, + components_movable_areavue_type_script_lang_js_, render, staticRenderFns, false, @@ -20210,18 +20305,18 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/button/index.vue" -/* harmony default export */ var components_button = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/movable-area/index.vue" +/* harmony default export */ var movable_area = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 116 */ +/* 112 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js -var touchtrack = __webpack_require__(7); +var touchtrack = __webpack_require__(8); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/swiper/index.vue?vue&type=script&lang=js& // @@ -20952,7 +21047,7 @@ var touchtrack = __webpack_require__(7); // 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__(87); +var swipervue_type_style_index_0_lang_css_ = __webpack_require__(84); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); @@ -20983,152 +21078,88 @@ component.options.__file = "src/core/view/components/swiper/index.vue" /* harmony default export */ var swiper = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 117 */ +/* 113 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/picker-view/index.vue?vue&type=script&lang=js& -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -/* harmony default export */ var picker_viewvue_type_script_lang_js_ = ({ - name: 'PickerView', +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/text/index.vue?vue&type=script&lang=js& +var SPACE_UNICODE = { + 'ensp': "\u2002", + 'emsp': "\u2003", + 'nbsp': "\xA0" +}; +/* harmony default export */ var textvue_type_script_lang_js_ = ({ + name: 'Text', 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: '' + selectable: { + type: [Boolean, String], + default: false }, - maskClass: { + space: { type: String, default: '' - } - }, - data: function data() { - return { - valueSync: _toConsumableArray(this.value), - height: 34, - items: [], - changeSource: '' - }; - }, - watch: { - value: function value(val) { - var _this = this; - - this.valueSync.length = val.length; - val.forEach(function (val, index) { - if (val !== _this.valueSync[index]) { - _this.$set(_this.valueSync, index, val); - } - }); }, - valueSync: { - deep: true, - handler: function handler(val, oldVal) { - if (this.changeSource === '') { - this._valueChanged(val); - } else { - this.changeSource = ''; // 避免外部直接对此值进行修改 - - var value = val.map(function (val) { - return val; - }); - this.$emit('update:value', value); - this.$trigger('change', {}, { - value: value - }); - } - } + decode: { + type: [Boolean, String], + default: false } }, 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]; + _decodeHtml: function _decodeHtml(htmlString) { + if (this.space && SPACE_UNICODE[this.space]) { + htmlString = htmlString.replace(/ /g, SPACE_UNICODE[this.space]); + } - if (oldVal !== val) { - this.changeSource = 'touch'; - this.$set(this.valueSync, index, val); + 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, "'"); } - }, - _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; + + return htmlString; } }, render: function render(createElement) { - var items = []; + var _this = this; - if (this.$slots.default) { - this.$slots.default.forEach(function (vnode) { - if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-picker-view-column') { - items.push(vnode); + 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(' 组件内只支持嵌套 ,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。'); } - }); - } - this.items = items; - return createElement('uni-picker-view', { - on: this.$listeners - }, [createElement('v-uni-resize-sensor', { + nodeList.push(vnode); + } + }); + return createElement('uni-text', { + on: this.$listeners, attrs: { - initial: true - }, - on: { - resize: this._resize + selectable: !!this.selectable } - }), createElement('div', { - ref: 'wrapper', - 'class': 'uni-picker-view-wrapper' - }, items)]); + }, [createElement('span', {}, nodeList)]); } }); -// 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__(78); +// 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_); +// 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__(86); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/picker-view/index.vue +// CONCATENATED MODULE: ./src/core/view/components/text/index.vue var render, staticRenderFns @@ -21138,7 +21169,7 @@ var render, staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_picker_viewvue_type_script_lang_js_, + components_textvue_type_script_lang_js_, render, staticRenderFns, false, @@ -21150,94 +21181,146 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/picker-view/index.vue" -/* harmony default export */ var picker_view = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/text/index.vue" +/* harmony default export */ var components_text = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 118 */ +/* 114 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/resize-sensor/index.vue?vue&type=script&lang=js& -/* harmony default export */ var resize_sensorvue_type_script_lang_js_ = ({ - name: 'ResizeSensor', +// EXTERNAL MODULE: ./src/core/view/mixins/index.js + 1 modules +var mixins = __webpack_require__(2); + +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/button/index.vue?vue&type=script&lang=js& + +/* harmony default export */ var buttonvue_type_script_lang_js_ = ({ + name: 'Button', + mixins: [mixins["b" /* hover */], mixins["a" /* emitter */], mixins["c" /* listeners */]], props: { - initial: { + hoverClass: { + type: String, + default: 'button-hover' + }, + disabled: { type: [Boolean, String], default: false + }, + id: { + type: String, + default: '' + }, + hoverStopPropagation: { + type: Boolean, + default: false + }, + hoverStartTime: { + type: Number, + default: 20 + }, + hoverStayTime: { + type: Number, + default: 70 + }, + formType: { + type: String, + default: '', + validator: function validator(value) { + // 只有这几个可取值,其它都是非法的。 + return ~['', 'submit', 'reset'].indexOf(value); + } } }, data: function data() { return { - size: { - width: -1, - height: -1 - } + clickFunction: null }; }, - watch: { - size: { - deep: true, - handler: function handler(size) { - this.$emit('resize', Object.assign({}, size)); + methods: { + _onClick: function _onClick($event, isLabelClick) { + if (this.disabled) { + return; + } + + if (isLabelClick) { + this.$el.click(); + } // TODO 通知父表单执行相应的行为 + + + if (this.formType) { + this.$dispatch('Form', this.formType === 'submit' ? 'uni-form-submit' : 'uni-form-reset', { + type: this.formType + }); + } + }, + _bindObjectListeners: function _bindObjectListeners(data, value) { + if (value) { + for (var key in value) { + var existing = data.on[key]; + var ours = value[key]; + data.on[key] = existing ? [].concat(existing, ours) : ours; + } } + + return data; } }, - mounted: function mounted() { - if (this.initial === true) { - this.$nextTick(this.update); - } + render: function render(createElement) { + var _this = this; - if (this.$el.offsetParent !== this.$el.parentNode) { - this.$el.parentNode.style.position = 'relative'; - } + var $listeners = Object.create(null); - if (!('AnimationEvent' in window)) { - this.reset(); + if (this.$listeners) { + Object.keys(this.$listeners).forEach(function (e) { + if (_this.disabled && (e === 'click' || e === 'tap')) { + return; + } + + $listeners[e] = _this.$listeners[e]; + }); } - }, - methods: { - reset: function reset() { - var expand = this.$el.firstChild; - var shrink = this.$el.lastChild; - expand.scrollLeft = 100000; - expand.scrollTop = 100000; - shrink.scrollLeft = 100000; - shrink.scrollTop = 100000; - }, - update: function update() { - this.size.width = this.$el.offsetWidth; - this.size.height = this.$el.offsetHeight; - this.reset(); + + if (this.hoverClass && this.hoverClass !== 'none') { + return createElement('uni-button', this._bindObjectListeners({ + class: [this.hovering ? this.hoverClass : ''], + attrs: { + 'disabled': this.disabled + }, + on: { + touchstart: this._hoverTouchStart, + touchend: this._hoverTouchEnd, + touchcancel: this._hoverTouchCancel, + click: this._onClick + } + }, $listeners), this.$slots.default); + } else { + return createElement('uni-button', this._bindObjectListeners({ + class: [this.hovering ? this.hoverClass : ''], + attrs: { + 'disabled': this.disabled + }, + on: { + click: this._onClick + } + }, $listeners), this.$slots.default); } }, - render: function render(create) { - return create('uni-resize-sensor', { - on: { - '~animationstart': this.update - } - }, [create('div', { - on: { - scroll: this.update - } - }, [create('div')]), create('div', { - on: { - scroll: this.update - } - }, [create('div')])]); + listeners: { + 'label-click': '_onClick', + '@label-click': '_onClick' } }); -// 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__(83); +// CONCATENATED MODULE: ./src/core/view/components/button/index.vue?vue&type=script&lang=js& + /* harmony default export */ var components_buttonvue_type_script_lang_js_ = (buttonvue_type_script_lang_js_); +// EXTERNAL MODULE: ./src/core/view/components/button/index.vue?vue&type=style&index=0&lang=css& +var buttonvue_type_style_index_0_lang_css_ = __webpack_require__(65); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/resize-sensor/index.vue +// CONCATENATED MODULE: ./src/core/view/components/button/index.vue var render, staticRenderFns @@ -21247,7 +21330,7 @@ var render, staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_resize_sensorvue_type_script_lang_js_, + components_buttonvue_type_script_lang_js_, render, staticRenderFns, false, @@ -21259,27 +21342,27 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/resize-sensor/index.vue" -/* harmony default export */ var resize_sensor = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/button/index.vue" +/* harmony default export */ var components_button = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 119 */ +/* 115 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./src/core/view/mixins/touchtrack.js -var touchtrack = __webpack_require__(7); +var touchtrack = __webpack_require__(8); // EXTERNAL MODULE: ./src/core/view/mixins/scroller/index.js + 2 modules -var scroller = __webpack_require__(45); +var scroller = __webpack_require__(43); // EXTERNAL MODULE: ./src/core/view/mixins/scroller/Friction.js -var Friction = __webpack_require__(43); +var Friction = __webpack_require__(41); // EXTERNAL MODULE: ./src/core/view/mixins/scroller/Spring.js -var Spring = __webpack_require__(44); +var Spring = __webpack_require__(42); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/picker-view-column/index.vue?vue&type=script&lang=js& @@ -21467,7 +21550,7 @@ var Spring = __webpack_require__(44); // 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__(77); +var picker_view_columnvue_type_style_index_0_lang_css_ = __webpack_require__(75); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); @@ -21498,88 +21581,90 @@ component.options.__file = "src/core/view/components/picker-view-column/index.vu /* harmony default export */ var picker_view_column = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 120 */ +/* 116 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/text/index.vue?vue&type=script&lang=js& -var SPACE_UNICODE = { - 'ensp': "\u2002", - 'emsp': "\u2003", - 'nbsp': "\xA0" -}; -/* harmony default export */ var textvue_type_script_lang_js_ = ({ - name: 'Text', +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/resize-sensor/index.vue?vue&type=script&lang=js& +/* harmony default export */ var resize_sensorvue_type_script_lang_js_ = ({ + name: 'ResizeSensor', props: { - selectable: { - type: [Boolean, String], - default: false - }, - space: { - type: String, - default: '' - }, - decode: { + initial: { 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]); + data: function data() { + return { + size: { + width: -1, + height: -1 } - - 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, "'"); + }; + }, + watch: { + size: { + deep: true, + handler: function handler(size) { + this.$emit('resize', Object.assign({}, size)); } - - 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)); + mounted: function mounted() { + if (this.initial === true) { + this.$nextTick(this.update); + } - if (index !== texts.length - 1) { - nodeList.push(createElement('br')); - } - }); - } else { - if (vnode.componentOptions && vnode.componentOptions.tag !== 'v-uni-text') { - console.warn(' 组件内只支持嵌套 ,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。'); - } + if (this.$el.offsetParent !== this.$el.parentNode) { + this.$el.parentNode.style.position = 'relative'; + } - nodeList.push(vnode); + if (!('AnimationEvent' in window)) { + this.reset(); + } + }, + methods: { + reset: function reset() { + var expand = this.$el.firstChild; + var shrink = this.$el.lastChild; + expand.scrollLeft = 100000; + expand.scrollTop = 100000; + shrink.scrollLeft = 100000; + shrink.scrollTop = 100000; + }, + update: function update() { + this.size.width = this.$el.offsetWidth; + this.size.height = this.$el.offsetHeight; + this.reset(); + } + }, + render: function render(create) { + return create('uni-resize-sensor', { + on: { + '~animationstart': this.update } - }); - return createElement('uni-text', { - on: this.$listeners, - attrs: { - selectable: !!this.selectable + }, [create('div', { + on: { + scroll: this.update } - }, [createElement('span', {}, nodeList)]); + }, [create('div')]), create('div', { + on: { + scroll: this.update + } + }, [create('div')])]); } }); -// 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_); -// 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__(89); +// 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__(80); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/text/index.vue +// CONCATENATED MODULE: ./src/core/view/components/resize-sensor/index.vue var render, staticRenderFns @@ -21589,7 +21674,7 @@ var render, staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_textvue_type_script_lang_js_, + components_resize_sensorvue_type_script_lang_js_, render, staticRenderFns, false, @@ -21601,205 +21686,156 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/text/index.vue" -/* harmony default export */ var components_text = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/resize-sensor/index.vue" +/* harmony default export */ var resize_sensor = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 121 */ +/* 117 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/movable-area/index.vue?vue&type=script&lang=js& -function calc(e) { - return Math.sqrt(e.x * e.x + e.y * e.y); -} +// CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/@vue/cli-service/node_modules/vue-loader/lib??vue-loader-options!./src/core/view/components/picker-view/index.vue?vue&type=script&lang=js& +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } -/* harmony default export */ var movable_areavue_type_script_lang_js_ = ({ - name: 'MovableArea', +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } + +function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } + +/* harmony default export */ var picker_viewvue_type_script_lang_js_ = ({ + name: 'PickerView', props: { - scaleArea: { - type: Boolean, - default: false + 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 { - width: 0, - height: 0, - items: [] - }; - }, - created: function created() { - this.gapV = { - x: null, - y: null + valueSync: _toConsumableArray(this.value), + height: 34, + items: [], + changeSource: '' }; - this.pinchStartLen = null; - }, - mounted: function mounted() { - this._resize(); }, - methods: { - _resize: function _resize() { - this._getWH(); - - this.items.forEach(function (item, index) { - item.componentInstance.setParent(); - }); - }, - _find: function _find(target) { - var items = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.items; - var root = this.$el; - - function get(node) { - for (var i = 0; i < items.length; i++) { - var item = items[i]; - - if (node === item.componentInstance.$el) { - return item; - } - } + watch: { + value: function value(val) { + var _this = this; - if (node === root || node === document.body || node === document) { - return null; + this.valueSync.length = val.length; + val.forEach(function (val, index) { + if (val !== _this.valueSync[index]) { + _this.$set(_this.valueSync, index, val); } - - return get(node.parentNode); - } - - return get(target); + }); }, - _touchstart: function _touchstart(t) { - var i = t.touches; - - if (i) { - if (i.length > 1) { - var r = { - x: i[1].pageX - i[0].pageX, - y: i[1].pageY - i[0].pageY - }; - this.pinchStartLen = calc(r); - this.gapV = r; - - if (!this.scaleArea) { - var touch0 = this._find(i[0].target); - - var touch1 = this._find(i[1].target); + valueSync: { + deep: true, + handler: function handler(val, oldVal) { + if (this.changeSource === '') { + this._valueChanged(val); + } else { + this.changeSource = ''; // 避免外部直接对此值进行修改 - this._scaleMovableView = touch0 && touch0 === touch1 ? touch0 : null; - } + 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); }, - _touchmove: function _touchmove(t) { - var n = t.touches; - - if (n) { - if (n.length > 1) { - t.preventDefault(); - var i = { - x: n[1].pageX - n[0].pageX, - y: n[1].pageY - n[0].pageY - }; - - if (this.gapV.x !== null && this.pinchStartLen > 0) { - var r = calc(i) / this.pinchStartLen; - - this._updateScale(r); - } - - this.gapV = i; - } - } + getItemValue: function getItemValue(vm) { + return this.valueSync[this.getItemIndex(vm.$vnode)] || 0; }, - _touchend: function _touchend(e) { - var t = e.touches; - - if (!(t && t.length)) { - if (e.changedTouches) { - this.gapV.x = 0; - this.gapV.y = 0; - this.pinchStartLen = null; + setItemValue: function setItemValue(vm, val) { + var index = this.getItemIndex(vm.$vnode); + var oldVal = this.valueSync[index]; - if (this.scaleArea) { - this.items.forEach(function (item) { - item.componentInstance._endScale(); - }); - } else { - if (this._scaleMovableView) { - this._scaleMovableView.componentInstance._endScale(); - } - } - } + if (oldVal !== val) { + this.changeSource = 'touch'; + this.$set(this.valueSync, index, val); } }, - _updateScale: function _updateScale(e) { - if (e && e !== 1) { - if (this.scaleArea) { - this.items.forEach(function (item) { - item.componentInstance._setScale(e); - }); - } else { - if (this._scaleMovableView) { - this._scaleMovableView.componentInstance._setScale(e); - } - } - } + _valueChanged: function _valueChanged(val) { + this.items.forEach(function (item, index) { + item.componentInstance.setCurrent(val[index] || 0); + }); }, - _getWH: function _getWH() { - var style = window.getComputedStyle(this.$el); - var rect = this.$el.getBoundingClientRect(); - this.width = rect.width - ['Left', 'Right'].reduce(function (all, item) { - return all + parseFloat(style['border' + item + 'Width']) + parseFloat(style['padding' + item]); - }, 0); - this.height = rect.height - ['Top', 'Bottom'].reduce(function (all, item) { - return all + parseFloat(style['border' + item + 'Width']) + parseFloat(style['padding' + item]); - }, 0); + _resize: function _resize(_ref) { + var height = _ref.height; + this.height = height; } }, render: function render(createElement) { - var _this = this; - var items = []; if (this.$slots.default) { this.$slots.default.forEach(function (vnode) { - if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-movable-view') { + if (vnode.componentOptions && vnode.componentOptions.tag === 'v-uni-picker-view-column') { items.push(vnode); } }); } this.items = items; - var $listeners = Object.assign({}, this.$listeners); - var events = ['touchstart', 'touchmove', 'touchend']; - events.forEach(function (event) { - var existing = $listeners[event]; - - var ours = _this["_".concat(event)]; - - $listeners[event] = existing ? [].concat(existing, ours) : ours; - }); - return createElement('uni-movable-area', { - on: $listeners + return createElement('uni-picker-view', { + on: this.$listeners }, [createElement('v-uni-resize-sensor', { + attrs: { + initial: true + }, on: { resize: this._resize } - })].concat(items)); + }), createElement('div', { + ref: 'wrapper', + 'class': 'uni-picker-view-wrapper' + }, items)]); } }); -// CONCATENATED MODULE: ./src/core/view/components/movable-area/index.vue?vue&type=script&lang=js& - /* harmony default export */ var components_movable_areavue_type_script_lang_js_ = (movable_areavue_type_script_lang_js_); -// EXTERNAL MODULE: ./src/core/view/components/movable-area/index.vue?vue&type=style&index=0&lang=css& -var movable_areavue_type_style_index_0_lang_css_ = __webpack_require__(74); +// 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__(76); // EXTERNAL MODULE: ./node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(0); -// CONCATENATED MODULE: ./src/core/view/components/movable-area/index.vue +// CONCATENATED MODULE: ./src/core/view/components/picker-view/index.vue var render, staticRenderFns @@ -21809,7 +21845,7 @@ var render, staticRenderFns /* normalize component */ var component = Object(componentNormalizer["a" /* default */])( - components_movable_areavue_type_script_lang_js_, + components_picker_viewvue_type_script_lang_js_, render, staticRenderFns, false, @@ -21821,11 +21857,11 @@ var component = Object(componentNormalizer["a" /* default */])( /* hot reload */ if (false) { var api; } -component.options.__file = "src/core/view/components/movable-area/index.vue" -/* harmony default export */ var movable_area = __webpack_exports__["default"] = (component.exports); +component.options.__file = "src/core/view/components/picker-view/index.vue" +/* harmony default export */ var picker_view = __webpack_exports__["default"] = (component.exports); /***/ }), -/* 122 */ +/* 118 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -21836,7 +21872,7 @@ __webpack_require__.r(__webpack_exports__); if (typeof window !== 'undefined') { if (true) { - __webpack_require__(63) + __webpack_require__(61) } var i @@ -21849,7 +21885,7 @@ if (typeof window !== 'undefined') { /* harmony default export */ var setPublicPath = (null); // EXTERNAL MODULE: ./lib/app-plus/view.js -var view = __webpack_require__(50); +var view = __webpack_require__(48); // CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib-no-default.js /* concated harmony reexport upx2px */__webpack_require__.d(__webpack_exports__, "upx2px", function() { return view["c" /* upx2px */]; }); diff --git a/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js b/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js index 32f9d61cca5861a01c9081f87e2b8b587217aab4..025748c19331602e367b2ea7b9744608b87d6f48 100644 --- a/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.service.spec.js @@ -11,7 +11,21 @@ function assertCodegen (template, generatedCode, ...args) { } /* eslint-disable quotes */ -describe('codegen', () => { +describe('codegen', () => { + it('generate block', () => { + assertCodegen( + '', + `with(this){return (_$i(0,show))?void 0:_e()}` + ) + assertCodegen( + '
', + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$10,$20,$30){return [_c('div',{key:_$f(1,{forIndex:$20,keyIndex:0,key:1+'-0-'+$30}),attrs:{"_i":("2-"+$30)}}),_c('div',{key:_$f(1,{forIndex:$20,keyIndex:1,key:1+'-1-'+$30}),attrs:{"_i":("3-"+$30)}})]})],2)}` + ) + assertCodegen( + '
', + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$10,$20,$30){return [_c('div',{key:_$f(1,{forIndex:$20,keyIndex:0,key:item.id+'_0'}),attrs:{"_i":("2-"+$30)}}),_c('div',{key:_$f(1,{forIndex:$20,keyIndex:1,key:item.id+'_1'}),attrs:{"_i":("3-"+$30)}})]})],2)}` + ) + }) it('generate directive', () => { assertCodegen( '

', @@ -21,23 +35,27 @@ describe('codegen', () => { it('generate v-for directive', () => { assertCodegen( '
', - `with(this){return _c('div',{attrs:{"_i":0}},[_l((items),function(item,$i){return [_c('div',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),attrs:{"_i":("2-"+$i)}}),_c('div',{key:_$f(1,{forIndex:$i,keyIndex:1,key:'1-1-'+$i}),attrs:{"_i":("3-"+$i)}})]})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$10,$20,$30){return [_c('div',{key:_$f(1,{forIndex:$20,keyIndex:0,key:1+'-0-'+$30}),attrs:{"_i":("2-"+$30)}}),_c('div',{key:_$f(1,{forIndex:$20,keyIndex:1,key:1+'-1-'+$30}),attrs:{"_i":("3-"+$30)}})]})],2)}` ) assertCodegen( '
', - `with(this){return _c('div',{attrs:{"_i":0}},[_l((items),function(item,$i){return [_c('text',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),attrs:{"_i":("1-"+$i)}})]})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$10,$20,$30){return [_c('text',{key:_$f(1,{forIndex:$20,keyIndex:0,key:1+'-0-'+$30}),attrs:{"_i":("1-"+$30)}})]})],2)}` ) assertCodegen( '
', - `with(this){return _c('div',{attrs:{"_i":0}},[_l((items),function(item,$i){return [_c('text',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),extras:{t0:_s(text)},attrs:{"_i":("1-"+$i)}})]})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$i){return [_c('text',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),extras:{t0:_s(text)},attrs:{"_i":("1-"+$i)}})]})],2)}` ) assertCodegen( '
', - `with(this){return _c('div',{attrs:{"_i":0}},[_l((items),function(item,$i){return [_c('span',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),attrs:{"_i":("2-"+$i)}}),_c('text',{extras:{t0:_s(text)},attrs:{"_i":("1-"+$i)}})]})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$i){return [_c('span',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),attrs:{"_i":("2-"+$i)}}),_c('text',{extras:{t0:_s(text)},attrs:{"_i":("1-"+$i)}})]})],2)}` ) assertCodegen( '
', - `with(this){return _c('div',{attrs:{"_i":0}},[_l((items),function(item,$i){return [_c('text',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),extras:{t0:_s(text1),t1:_s(text2)},attrs:{"_i":("1-"+$i)}})]})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$i){return [_c('text',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),extras:{t0:_s(text1),t1:_s(text2)},attrs:{"_i":("1-"+$i)}})]})],2)}` + ) + assertCodegen( + '
', + `with(this){return _c('div',{attrs:{"_i":0}},[_l((_$f(1,{forItems:items})),function(item,$i){return [(_$i(("2-"+$i),item.sub))?_c('span',{key:_$f(1,{forIndex:$i,keyIndex:0,key:'1-0-'+$i}),attrs:{"_i":("2-"+$i)}}):_e()]})],2)}` ) }) it('generate text with multiple statements', () => { diff --git a/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.view.spec.js b/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.view.spec.js index f8d79afd40cc5aa7d23434e62257470d7c244c87..886501156940c05fc5eb83d476aff2440ce08186 100644 --- a/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.view.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler-app-plus-extra.view.spec.js @@ -23,6 +23,10 @@ describe('codegen', () => { '
', `with(this){return _c('v-uni-view',{attrs:{"_i":0}},[_l(($r['1']['v-for']),function(item,$i){return [_c('v-uni-view',{key:item['k0'],attrs:{"_i":("2-"+$i)}}),_c('v-uni-view',{key:item['k1'],attrs:{"_i":("3-"+$i)}})]})],2)}` ) + assertCodegen( + '
', + `with(this){return _c('v-uni-view',{attrs:{"_i":0}},[_l(($r['1']['v-for']),function(item,$i){return [($r[("2-"+$i)]['v-if'])?_c('v-uni-label',{key:item['k0'],attrs:{"_i":("2-"+$i)}}):_e()]})],2)}` + ) }) it('generate events with multiple statements', () => { assertCodegen( diff --git a/packages/uni-template-compiler/__tests__/compiler-app-plus.service.spec.js b/packages/uni-template-compiler/__tests__/compiler-app-plus.service.spec.js index 5ab5a4341f800a210edbbba437711879216ba157..c5c10c53eaf47c0c6e1ad6180e48bb243cf65035 100644 --- a/packages/uni-template-compiler/__tests__/compiler-app-plus.service.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler-app-plus.service.spec.js @@ -41,30 +41,30 @@ describe('codegen', () => { it('generate v-for directive', () => { assertCodegen( '
  • ', - `with(this){return _c('div',{attrs:{"_i":0}},_l((items),function(item,$i){return _c('li',{key:_$f(1,{forIndex:$i,key:item.uid}),attrs:{"_i":("1-"+$i)}})}),0)}` + `with(this){return _c('div',{attrs:{"_i":0}},_l((_$f(1,{forItems:items})),function(item,$10,$20,$30){return _c('li',{key:_$f(1,{forIndex:$20,key:item.uid}),attrs:{"_i":("1-"+$30)}})}),0)}` ) // iterator syntax assertCodegen( '
  • ', - `with(this){return _c('div',{attrs:{"_i":0}},_l((items),function(item,i){return _c('li',{key:_$f(1,{forIndex:i,key:'1-'+i}),attrs:{"_i":("1-"+i)}})}),0)}` + `with(this){return _c('div',{attrs:{"_i":0}},_l((_$f(1,{forItems:items})),function(item,i,$20,$30){return _c('li',{key:_$f(1,{forIndex:$20,key:1+'-'+$30}),attrs:{"_i":("1-"+$30)}})}),0)}` ) assertCodegen( '
  • ', - `with(this){return _c('div',{attrs:{"_i":0}},_l((items),function(item,key,index){return _c('li',{key:_$f(1,{forIndex:index,key:'1-'+index}),attrs:{"_i":("1-"+index)}})}),0)}` + `with(this){return _c('div',{attrs:{"_i":0}},_l((_$f(1,{forItems:items})),function(item,key,index,$30){return _c('li',{key:_$f(1,{forIndex:index,key:1+'-'+$30}),attrs:{"_i":("1-"+$30)}})}),0)}` ) // destructuring assertCodegen( '
  • ', - `with(this){return _c('div',{attrs:{"_i":0}},_l((items),function({ a, b },$i){return _c('li',{key:_$f(1,{forIndex:$i,key:'1-'+$i}),attrs:{"_i":("1-"+$i)}})}),0)}` + `with(this){return _c('div',{attrs:{"_i":0}},_l((_$f(1,{forItems:items})),function({ a, b },$10,$20,$30){return _c('li',{key:_$f(1,{forIndex:$20,key:1+'-'+$30}),attrs:{"_i":("1-"+$30)}})}),0)}` ) assertCodegen( '
  • ', - `with(this){return _c('div',{attrs:{"_i":0}},_l((items),function({ a, b },key,index){return _c('li',{key:_$f(1,{forIndex:index,key:'1-'+index}),attrs:{"_i":("1-"+index)}})}),0)}` + `with(this){return _c('div',{attrs:{"_i":0}},_l((_$f(1,{forItems:items})),function({ a, b },key,index,$30){return _c('li',{key:_$f(1,{forIndex:index,key:1+'-'+$30}),attrs:{"_i":("1-"+$30)}})}),0)}` ) // v-for with extra element assertCodegen( '

  • ', - `with(this){return _c('div',{attrs:{"_i":0}},[_c('p',{attrs:{"_i":1}}),_l((items),function(item,$i){return _c('li',{key:_$f(2,{forIndex:$i,key:'2-'+$i}),attrs:{"_i":("2-"+$i)}})})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_c('p',{attrs:{"_i":1}}),_l((_$f(2,{forItems:items})),function(item,$10,$20,$30){return _c('li',{key:_$f(2,{forIndex:$20,key:2+'-'+$30}),attrs:{"_i":("2-"+$30)}})})],2)}` ) }) @@ -113,7 +113,7 @@ describe('codegen', () => { it('generate ref on v-for', () => { assertCodegen( '
    ', - `with(this){return _c('ul',{attrs:{"_i":0}},_l((items),function(item,$i){return _c('li',{key:_$f(1,{forIndex:$i,key:'1-'+$i}),ref:"component1",refInFor:true,attrs:{"_i":("1-"+$i)}})}),0)}` + `with(this){return _c('ul',{attrs:{"_i":0}},_l((_$f(1,{forItems:items})),function(item,$10,$20,$30){return _c('li',{key:_$f(1,{forIndex:$20,key:1+'-'+$30}),ref:"component1",refInFor:true,attrs:{"_i":("1-"+$30)}})}),0)}` ) }) @@ -625,7 +625,7 @@ describe('codegen', () => { // normalize type: 2 assertCodegen( '
    ', - `with(this){return _c('div',{attrs:{"_i":0}},[_c('child',{attrs:{"_i":1}}),_l((list),function(item,$i){return [_c('text',{key:_$f(2,{forIndex:$i,keyIndex:0,key:'2-0-'+$i}),extras:{t0:_s(item)},attrs:{"_i":("2-"+$i)}})]})],2)}` + `with(this){return _c('div',{attrs:{"_i":0}},[_c('child',{attrs:{"_i":1}}),_l((_$f(2,{forItems:list})),function(item,$i){return [_c('text',{key:_$f(2,{forIndex:$i,keyIndex:0,key:'2-0-'+$i}),extras:{t0:_s(item)},attrs:{"_i":("2-"+$i)}})]})],2)}` ) }) diff --git a/packages/uni-template-compiler/__tests__/compiler-app-plus.view.spec.js b/packages/uni-template-compiler/__tests__/compiler-app-plus.view.spec.js index 71ab97f6f075f4dfa399968a661f930baec437ee..dde7fd142aca6c41304ca85fa77142ff3c22f32c 100644 --- a/packages/uni-template-compiler/__tests__/compiler-app-plus.view.spec.js +++ b/packages/uni-template-compiler/__tests__/compiler-app-plus.view.spec.js @@ -41,7 +41,7 @@ describe('codegen', () => { it('generate v-for directive', () => { assertCodegen( '
  • ', - `with(this){return _c('v-uni-view',{attrs:{"_i":0}},_l(($r['1']['v-for']),function(item,$i){return _c('v-uni-view',{key:item,attrs:{"_i":("1-"+$i)}})}),1)}` + `with(this){return _c('v-uni-view',{attrs:{"_i":0}},_l(($r['1']['v-for']),function(item,$10,$20,$30){return _c('v-uni-view',{key:item,attrs:{"_i":("1-"+$30)}})}),0)}` ) // iterator syntax assertCodegen( @@ -272,7 +272,7 @@ describe('codegen', () => { // input + value assertCodegen( '', - `with(this){return _c('v-uni-input',{attrs:{"_i":0},domProps:{"value":$r['0']['a-value']}})}` + `with(this){return _c('v-uni-input',{attrs:{"value":$r['0']['a-value'],"_i":0}})}` ) // non input assertCodegen( diff --git a/packages/uni-template-compiler/__tests__/demo.js b/packages/uni-template-compiler/__tests__/demo.js index 213b3df1c45dd8b127959c207bb21a322fe3ba05..402a7af1c8c28be86b3f011bb0c25c1f895ed5dc 100644 --- a/packages/uni-template-compiler/__tests__/demo.js +++ b/packages/uni-template-compiler/__tests__/demo.js @@ -1,7 +1,14 @@ const compiler = require('../lib') const res = compiler.compile( ` -

    {{hello}}

    +
    + + + + + + +
    `, { resourcePath: '/User/fxy/Documents/test.wxml', isReservedTag: function (tag) { @@ -13,7 +20,7 @@ const res = compiler.compile( mp: { platform: 'app-plus' }, - // service: true + // service: true, view: true }) console.log(require('util').inspect(res, { diff --git a/packages/uni-template-compiler/lib/app/component-parser.js b/packages/uni-template-compiler/lib/app/component-parser.js deleted file mode 100644 index 2898681f9e191bb72421b2a9a05f45949ad65ed2..0000000000000000000000000000000000000000 --- a/packages/uni-template-compiler/lib/app/component-parser.js +++ /dev/null @@ -1,20 +0,0 @@ -const { - ID, - hasOwn -} = require('./util') - -const tags = require('../../../uni-cli-shared/lib/tags') - -const { - getTagName -} = require('../h5') - -// 仅限 view 层 -module.exports = function parseComponent (el) { - // TODO 需要把自定义组件的 attrs, props 全干掉 - el.tag = getTagName(el.tag) - if (!hasOwn(tags, el.tag)) { - // 仅保留 ID - el.attrs = el.attrs.filter(attr => attr.name === ID) - } -} diff --git a/packages/uni-template-compiler/lib/app/parser/block-parser.js b/packages/uni-template-compiler/lib/app/parser/block-parser.js new file mode 100644 index 0000000000000000000000000000000000000000..993f997fc4f8f52f134af7356d68b70457da2d1b --- /dev/null +++ b/packages/uni-template-compiler/lib/app/parser/block-parser.js @@ -0,0 +1,17 @@ +module.exports = function parseBlock (el) { + 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}'` + } + }) + } + } +} diff --git a/packages/uni-template-compiler/lib/app/parser/component-parser.js b/packages/uni-template-compiler/lib/app/parser/component-parser.js new file mode 100644 index 0000000000000000000000000000000000000000..97f07cbde884e56dfaf5bd2c5e963c00ab2135be --- /dev/null +++ b/packages/uni-template-compiler/lib/app/parser/component-parser.js @@ -0,0 +1,15 @@ +const { + ID, + hasOwn +} = require('../util') + +const tags = require('../../../../uni-cli-shared/lib/tags') + +// 仅限 view 层 +module.exports = function parseComponent (el) { + // 需要把自定义组件的 attrs, props 全干掉 + if (el.tag && !hasOwn(tags, el.tag.replace('v-uni-', ''))) { + // 仅保留 ID + el.attrs = el.attrs.filter(attr => attr.name === ID) + } +} diff --git a/packages/uni-template-compiler/lib/app/event-parser.js b/packages/uni-template-compiler/lib/app/parser/event-parser.js similarity index 100% rename from packages/uni-template-compiler/lib/app/event-parser.js rename to packages/uni-template-compiler/lib/app/parser/event-parser.js diff --git a/packages/uni-template-compiler/lib/app/filter-parser.js b/packages/uni-template-compiler/lib/app/parser/filter-parser.js similarity index 100% rename from packages/uni-template-compiler/lib/app/filter-parser.js rename to packages/uni-template-compiler/lib/app/parser/filter-parser.js diff --git a/packages/uni-template-compiler/lib/app/tag-parser.js b/packages/uni-template-compiler/lib/app/parser/tag-parser.js similarity index 50% rename from packages/uni-template-compiler/lib/app/tag-parser.js rename to packages/uni-template-compiler/lib/app/parser/tag-parser.js index 21cd42226bf9841aacc77a004db61acdf9cba74f..60afecf073e7679d05aa1c5f698bb64943fbe53b 100644 --- a/packages/uni-template-compiler/lib/app/tag-parser.js +++ b/packages/uni-template-compiler/lib/app/parser/tag-parser.js @@ -1,10 +1,16 @@ const { hasOwn -} = require('./util') +} = require('../util') + +const { + getTagName +} = require('../../h5') + +const tags = require('../../../../uni-cli-shared/lib/tags') -const tags = require('../../../uni-cli-shared/lib/tags') // 仅限 view 层 module.exports = function parseTag (el) { + el.tag = getTagName(el.tag) if (el.tag.indexOf('v-uni-') !== 0 && hasOwn(tags, el.tag)) { el.tag = 'v-uni-' + el.tag } diff --git a/packages/uni-template-compiler/lib/app/text-parser.js b/packages/uni-template-compiler/lib/app/parser/text-parser.js similarity index 100% rename from packages/uni-template-compiler/lib/app/text-parser.js rename to packages/uni-template-compiler/lib/app/parser/text-parser.js diff --git a/packages/uni-template-compiler/lib/app/service.js b/packages/uni-template-compiler/lib/app/service.js index 8c40b7cf4222e1cb15b63d58eca42f4f19e216e4..f8bffc32a72344c09156666cbc63d3a0c72fc396 100644 --- a/packages/uni-template-compiler/lib/app/service.js +++ b/packages/uni-template-compiler/lib/app/service.js @@ -4,19 +4,23 @@ const { isVar, getForEl, processForKey, - updateForEleId + updateForEleId, + traverseNode } = require('./util') const { isComponent } = require('../util') -const parseText = require('./text-parser') -const parseEvent = require('./event-parser') +const parseText = require('./parser/text-parser') +const parseEvent = require('./parser/event-parser') +const parseBlock = require('./parser/block-parser') const preTransformNode = require('./pre-transform-node') -function genData (el) { +function genData (el) { + delete el.$parentIterator3 + const { events, dynamicClass, @@ -130,14 +134,6 @@ function processIfConditions (el) { }) el.if = `_$i(${el.attrsMap[ID]},${el.if})` } - - el.children && el.children.forEach(child => { - processIfConditions(child) - }) - - el.scopedSlots && Object.values(el.scopedSlots).forEach(child => { - processIfConditions(child) - }) } function removeStatic (el) { @@ -162,8 +158,10 @@ function processKey (el) { if (processForKey(el)) { el = el.children[0] // 当 template 下仅文本时,处理第一个动态文本 } - - if (el.key) { // renderList key + if (el.key && ( + el.key.indexOf('_$f') !== 0 && + el.key.indexOf('_$s') !== 0 + )) { // renderList key const forEl = getForEl(el) if (forEl) { if (!isVar(forEl.for)) { @@ -184,8 +182,7 @@ function processKey (el) { } function processIf (el) { - // 因为时机问题,在最后处理根节点时,遍历处理 ifConditions - !el.parent && processIfConditions(el) + processIfConditions(el) } function processDirs (el) { @@ -225,8 +222,9 @@ function processDynamicText (el, state) { }] el.hasBindings = true - if (el.text) { - const ret = parseText(el.text, false, state) + if (el.text) { + // fixed by xxxxxx 注意:保持平台一致性,trim 一下 + const ret = parseText(el.text.trim(), false, state) if (ret && ret.dynamicTexts.length) { el.dynamicTexts = ret.dynamicTexts } @@ -274,7 +272,14 @@ function processAttrs (el) { } } -function postTransformNode (el) { +function processFor (el) { + if (el.for && isVar(el.for)) { + el.for = `_$f(${el.forId},{forItems:${el.for}})` + } +} + +function transformNode (el, parent, state) { + parseBlock(el) parseEvent(el) removeStatic(el) @@ -283,13 +288,22 @@ function postTransformNode (el) { processAttrs(el) processText(el) - updateForEleId(el) + updateForEleId(el, state) + processFor(el) processKey(el) processIf(el) processDirs(el) } +function postTransformNode (el) { + if (!el.parent) { // 从根节点开始递归处理 + traverseNode(el, false, { + forIteratorId: 0, + transformNode + }) + } +} module.exports = { preTransformNode, postTransformNode, diff --git a/packages/uni-template-compiler/lib/app/util.js b/packages/uni-template-compiler/lib/app/util.js index 130617115403aa80365c8bc477ee31e78d18085e..ccb8a00ea9b55f7e34f2514f782b568d1c115f5c 100644 --- a/packages/uni-template-compiler/lib/app/util.js +++ b/packages/uni-template-compiler/lib/app/util.js @@ -2,8 +2,10 @@ const VARS = ['true', 'false', 'null'] const NUMBER_RE = /^-?\d*(\.\d+)?$/ const ID = '_i' -const ITERATOR = '$i' -const DATA_ROOT = '$r' +const ITERATOR1 = '$1' +const ITERATOR2 = '$2' +const ITERATOR3 = '$3' +const DATA_ROOT = '_$g' function isVar (str) { if (!str) { @@ -29,7 +31,7 @@ function addAttr (el, name, value) { }) } -function updateEleId (el, it) { +function updateEleId (el, it, state) { if (el.type !== 1) { return } @@ -39,7 +41,12 @@ function updateEleId (el, it) { const attr = el.attrs.find(attr => attr.name === ID) attr.value = newId el.children.forEach(child => { - updateEleId(child, it) + if (!child.for) { // 忽略嵌套 for + updateEleId(child, it) + } else { + child.$parentIterator3 = (child.$parentIterator3 ? (child.$parentIterator3 + '+') : '') + it + child.forId = `${child.forId}+'-'+${it}` + } }) } @@ -63,12 +70,28 @@ function getAndRemoveAttr (el, name) { return val } -function updateForEleId (el) { +function updateForIterator (el, state) { + if (!el.for) { + return + } + // 简单处理,确保所有 for 循环,均包含 1,2,3 + const forIteratorId = state.forIteratorId++ + if (!el.iterator1) { + el.iterator1 = ITERATOR1 + forIteratorId + } + if (!el.iterator2) { + el.iterator2 = ITERATOR2 + forIteratorId + } + if (!el.iterator3) { + el.iterator3 = ITERATOR3 + forIteratorId + } +} + +function updateForEleId (el, state) { + updateForIterator(el, state) if (el.for) { - if (!el.iterator1) { - el.iterator1 = ITERATOR - } - updateEleId(el, el.iterator2 || el.iterator1) + const it = el.$parentIterator3 ? (el.$parentIterator3 + '+' + el.iterator3) : el.iterator3 + updateEleId(el, it, state) } } @@ -76,30 +99,30 @@ function getForEl (el) { if (el.for) { return el } - if (el.parent && el.parent.for && el.parent.tag === 'template') { + if (el.parent && el.parent.for && (el.parent.tag === 'template' || el.parent.tag === 'block')) { return el.parent } } function processForKey (el) { const forEl = getForEl(el) - if (forEl && !el.key) { + if (forEl && !el.key && !el.dynamicTexts) { // 占位的 text 标签也无需添加 key if (!isVar(forEl.for)) { // return } - const it = forEl.iterator2 || forEl.iterator1 || ITERATOR - if (forEl.tag === 'template') { + const it = forEl.iterator3 + if (forEl.tag === 'template' || forEl.tag === 'block') { if (forEl !== el) { const keyIndex = forEl.children.indexOf(el) - el.key = `'${forEl.forId}-${keyIndex}-'+${it}` + el.key = `${forEl.forId}+'-${keyIndex}'+${it}` } else { // 当 template 下只有文本节点 if (el.children && el.children.length && !el.children.find(child => child.key)) { - el.children[0].key = `'${forEl.forId}-0-'+${it}` + el.children[0].key = `${forEl.forId}+'-0'+${it}` return true } } } else { - el.key = `'${forEl.forId}-'+${it}` + el.key = `${forEl.forId}+${it}` } } } @@ -108,10 +131,18 @@ function hasOwn (obj, key) { return hasOwnProperty.call(obj, key) } +function traverseNode (el, parent, state) { + state.transformNode(el, parent, state) + el.children && el.children.forEach(child => traverseNode(child, el, state)) + el.ifConditions && el.ifConditions.forEach((con, index) => { + index !== 0 && traverseNode(con.block, el, state) + }) + el.scopedSlots && Object.values(el.scopedSlots).forEach(slot => traverseNode(slot, el, state)) +} + module.exports = { ID, DATA_ROOT, - ITERATOR, isVar, hasOwn, addAttr, @@ -119,5 +150,6 @@ module.exports = { processForKey, updateForEleId, getBindingAttr, - getAndRemoveAttr + getAndRemoveAttr, + traverseNode } diff --git a/packages/uni-template-compiler/lib/app/view.js b/packages/uni-template-compiler/lib/app/view.js index eb7b1c7d6ebef2b11d006c5fa46ee06eb3bbf1fa..08b451f7322219d04bf6c24bac8b44e727495e73 100644 --- a/packages/uni-template-compiler/lib/app/view.js +++ b/packages/uni-template-compiler/lib/app/view.js @@ -4,22 +4,22 @@ const { isVar, getForEl, updateForEleId, - processForKey + processForKey, + traverseNode } = require('./util') -const parseTag = require('./tag-parser') -const parseText = require('./text-parser') -const parseEvent = require('./event-parser') -const parseComponent = require('./component-parser') +const parseTag = require('./parser/tag-parser') +const parseText = require('./parser/text-parser') +const parseEvent = require('./parser/event-parser') +const parseBlock = require('./parser/block-parser') +const parseComponent = require('./parser/component-parser') -const preTransformNode = require('./pre-transform-node') +const basePreTransformNode = require('./pre-transform-node') function createGenVar (id) { return function genVar (name, extra = '') { - if (/^\d+$/.test(id)) { - return `${DATA_ROOT}['${id}']['${name}']${extra}` - } - return `${DATA_ROOT}[${id}]['${name}']${extra}` + extra = extra ? (',' + extra) : '' + return `${DATA_ROOT}(${id},'${name}'${extra})` } } @@ -34,14 +34,6 @@ function processIfConditions (el) { el.if = createGenVar(el.attrsMap[ID])('v-if') } - - el.children && el.children.forEach(child => { - processIfConditions(child) - }) - - el.scopedSlots && Object.values(el.scopedSlots).forEach(child => { - processIfConditions(child) - }) } function processBinding (el, genVar) { @@ -63,14 +55,6 @@ function processFor (el, genVal) { if (el.alias[0] === '{') { el.alias = '$item' } - // items 只有两种格式 [1,2,3],[{k0:'1-0',k1:'1-1'}] - //
  • - // => - //
  • - if (el.iterator2) { - el.iterator1 = el.iterator2 - delete el.iterator2 - } } } @@ -97,8 +81,7 @@ function processKey (el) { } function processIf (el) { - // 因为时机问题,在最后处理根节点时,遍历处理 ifConditions - !el.parent && processIfConditions(el) + processIfConditions(el) } function processDirs (el, genVar) { @@ -127,13 +110,17 @@ function processText (el, parent) { index: 0, view: true, genVar: createGenVar(parent.attrsMap[ID]) - } - el.expression = parseText(el.text, false, state).expression + } + // fixed by xxxxxx 注意:保持平台一致性,trim 一下 + el.expression = parseText(el.text.trim(), false, state).expression } -function transformNode (el, parent) { +function transformNode (el, parent, state) { + parseBlock(el) + parseComponent(el) + parseEvent(el) // 更新 id - updateForEleId(el) + updateForEleId(el, state) if (el.type !== 1) { return (el.type === 2 && processText(el, parent)) @@ -151,20 +138,12 @@ function transformNode (el, parent) { processProps(el, genVar) } -function traverseNode (el, parent) { - transformNode(el, parent) - el.children && el.children.forEach(child => traverseNode(child, el)) - el.scopedSlots && Object.values(el.scopedSlots).forEach(slot => traverseNode(slot, el)) -} - function postTransformNode (el) { - // 需要提前处理的内容 - parseComponent(el) - parseTag(el) - parseEvent(el) - if (!el.parent) { // 从根节点开始递归处理 - traverseNode(el) + traverseNode(el, false, { + forIteratorId: 0, + transformNode + }) } } @@ -207,6 +186,8 @@ function processEvents (events) { } function genData (el) { + delete el.$parentIterator3 + if (el.model) { el.model.callback = `function ($$v) {}` } @@ -219,7 +200,10 @@ function genData (el) { } module.exports = { - preTransformNode, + preTransformNode: function (el, options) { + parseTag(el) + return basePreTransformNode(el, options) + }, postTransformNode, genData } diff --git a/packages/uni-template-compiler/lib/index.js b/packages/uni-template-compiler/lib/index.js index a8c0389f7f4343e92a1dcdee7277cac573f28113..20e2714d67c7505a304d8c20ffa1c07ec146a632 100644 --- a/packages/uni-template-compiler/lib/index.js +++ b/packages/uni-template-compiler/lib/index.js @@ -8,7 +8,7 @@ const { compileToFunctions, ssrCompile, ssrCompileToFunctions -} = require('vue-template-compiler') +} = require('../../vue-cli-plugin-uni/packages/vue-template-compiler') const platforms = require('./platforms') const traverseScript = require('./script/traverse') diff --git a/packages/vue-cli-plugin-uni/lib/app-plus/index.js b/packages/vue-cli-plugin-uni/lib/app-plus/index.js index 5711364c762543245ff80c97129b289bd393a469..4c6d58559a79509e171c209a2b6bda007d00a2cb 100644 --- a/packages/vue-cli-plugin-uni/lib/app-plus/index.js +++ b/packages/vue-cli-plugin-uni/lib/app-plus/index.js @@ -34,13 +34,11 @@ const v3 = { // disable noEmitOnErrors webpackConfig.optimization.noEmitOnErrors = false - const externals = {} - if (isAppService) { // service 层需要编译时注入 vue 内核 + if (isAppService) { webpackConfig.optimization.runtimeChunk = { name: 'app-config' } } else if (isAppView) { - externals['vue'] = 'Vue' webpackConfig.optimization.runtimeChunk = false } @@ -48,6 +46,18 @@ const v3 = { let devtool = false + const rules = [] + + if (isAppView) { + rules.push({ // 解析组件,css 等 + resourceQuery: /vue&type=script/, + use: [{ + loader: path.resolve(__dirname, + '../../packages/webpack-uni-app-loader/view/script') + }] + }) + } + return { devtool, mode: process.env.NODE_ENV, @@ -65,7 +75,7 @@ const v3 = { }, output: { filename: '[name].js', - chunkFilename: '[id].js', + chunkFilename: '[id].js', globalObject: 'this' }, performance: { @@ -84,7 +94,7 @@ const v3 = { test: path.resolve(process.env.UNI_INPUT_DIR, getMainEntry()), use: [{ loader: isAppService ? 'wrap-loader' : path.resolve(__dirname, - '../../packages/webpack-uni-view-main-loader'), + '../../packages/webpack-uni-app-loader/view/main.js'), options: { compiler: getPlatformCompiler(), before: [ @@ -92,7 +102,9 @@ const v3 = { ] } }] - }] + }, + ...rules + ] }, plugins: [ new webpack.ProvidePlugin(getProvides()) @@ -114,9 +126,10 @@ const v3 = { webpackConfig.module .rule('vue') .test([/\.vue$/, /\.nvue$/]) - .use('vue-loader')// service 层移除 style 节点,view 层返回固定 script + .use('vue-loader') // service 层移除 style 节点,view 层返回固定 script .loader(path.resolve(__dirname, '../../packages/vue-loader/lib')) .tap(options => Object.assign(options, { + isAppService, isAppView, compiler: getPlatformCompiler(), compilerOptions, @@ -132,6 +145,11 @@ const v3 = { // .options({ // compiler: getPlatformCompiler() // }) + if (isAppView) { + if (process.env.NODE_ENV === 'production') { + require('../h5/cssnano-options')(webpackConfig) + } + } webpackConfig.plugins.delete('hmr') webpackConfig.plugins.delete('html') diff --git a/packages/vue-cli-plugin-uni/lib/h5/cssnano-options.js b/packages/vue-cli-plugin-uni/lib/h5/cssnano-options.js new file mode 100644 index 0000000000000000000000000000000000000000..5428a35896d8db2801ad35d8d65b6f9bb0eb6fe8 --- /dev/null +++ b/packages/vue-cli-plugin-uni/lib/h5/cssnano-options.js @@ -0,0 +1,52 @@ +const { + getPlatformCssnano +} = require('@dcloudio/uni-cli-shared') + +module.exports = function initCssnanoOptions (webpackConfig) { + const module = webpackConfig.module + // TODO 临时 hack calc:false 看看 vue cli 后续是否开放 cssnano 的配置 + const cssnanoOptions = { + sourceMap: false, + plugins: [require('cssnano')({ + preset: ['default', getPlatformCssnano()] + })] + } + + 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/h5/index.js b/packages/vue-cli-plugin-uni/lib/h5/index.js index 1f33b207d495589a49a892406869102af84a157e..c9d89cb8090a9b436aa726e79ec46fe4881bee41 100644 --- a/packages/vue-cli-plugin-uni/lib/h5/index.js +++ b/packages/vue-cli-plugin-uni/lib/h5/index.js @@ -4,8 +4,7 @@ const path = require('path') const { getMainEntry, getH5Options, - getPlatformCompiler, - getPlatformCssnano + getPlatformCompiler } = require('@dcloudio/uni-cli-shared') const WebpackHtmlAppendPlugin = require('../../packages/webpack-html-append-plugin') @@ -61,7 +60,7 @@ if (devServer && Object.keys(devServer).length) { module.exports = { vueConfig, - webpackConfig (webpackConfig) { + webpackConfig (webpackConfig) { let useBuiltIns = 'usage' const statCode = process.env.UNI_USING_STAT ? `import '@dcloudio/uni-stat';` : '' @@ -72,7 +71,7 @@ module.exports = { } catch (e) {} const beforeCode = (useBuiltIns === 'entry' ? `import '@babel/polyfill';` : '') + - `import 'uni-pages';import 'uni-${process.env.UNI_PLATFORM}';` + `import 'uni-pages';import 'uni-${process.env.UNI_PLATFORM}';` return { devtool: process.env.NODE_ENV === 'production' ? false : 'source-map', @@ -156,52 +155,7 @@ module.exports = { .delete('cache-loader') if (process.env.NODE_ENV === 'production') { - const module = webpackConfig.module - // TODO 临时 hack calc:false 看看 vue cli 后续是否开放 cssnano 的配置 - const cssnanoOptions = { - sourceMap: false, - plugins: [require('cssnano')({ - preset: ['default', getPlatformCssnano()] - })] - } - - 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) + require('./cssnano-options')(webpackConfig) } } } diff --git a/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js b/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js index 27e9fd2d6b34e6b5ee0441807d3f126aa84ad34d..a2f3603b689cc0be1ca82289fefb276b0c9f83b9 100644 --- a/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js +++ b/packages/vue-cli-plugin-uni/packages/h5-vue-template-loader/index.js @@ -1,8 +1,6 @@ -const path = require('path') - const loaderUtils = require('loader-utils') -module.exports = function(content) { +module.exports = function (content) { this.cacheable && this.cacheable() const vueLoaderOptions = this.loaders[0] diff --git a/packages/vue-cli-plugin-uni/packages/postcss/index.js b/packages/vue-cli-plugin-uni/packages/postcss/index.js index 8e8537a2d2fdc704ff33d9f97d27d7b9c900ea25..a5880f7cb5f26557c7ada292c19560396b55cf7a 100644 --- a/packages/vue-cli-plugin-uni/packages/postcss/index.js +++ b/packages/vue-cli-plugin-uni/packages/postcss/index.js @@ -25,7 +25,7 @@ if (process.env.UNI_USING_V3) { return selectorParser(transformer).processSync(complexSelector) } - const parseWord = function(node, opts) { + const parseWord = function (node, opts) { const pair = unit(node.value) if (pair) { const num = Number(pair.number) @@ -51,13 +51,13 @@ if (process.env.UNI_USING_V3) { } } - const isInsideKeyframes = function(rule) { + const isInsideKeyframes = function (rule) { return ( rule.parent && rule.parent.type === 'atrule' && /^(-\w+-)?keyframes$/.test(rule.parent.name) ) } - const tranformValue = function(decl, opts) { + const tranformValue = function (decl, opts) { return valueParser(decl.value) .walk(node => { if (node.type === 'word') { @@ -154,12 +154,12 @@ if (process.env.UNI_USING_V3) { * 转换 upx * 转换 px */ - module.exports = postcss.plugin('postcss-uniapp-plugin', function(opts) { + module.exports = postcss.plugin('postcss-uniapp-plugin', function (opts) { opts = { ...defaultOpts, ...opts } - return function(root, result) { + return function (root, result) { if (process.env.UNI_PLATFORM === 'h5') { // Transform CSS AST here @@ -181,7 +181,7 @@ if (process.env.UNI_USING_V3) { tag.value = 'uni-page-body' hasPage = true } else if (~TAGS.indexOf(tag.value) && tag.value.substring( - 0, 4) !== 'uni-') { + 0, 4) !== 'uni-') { tag.value = 'uni-' + tag.value } }) @@ -209,7 +209,7 @@ if (process.env.UNI_USING_V3) { } } else { root.walkRules(rule => { - const selectors = transformSelector(rule.selectors.join(','), function(selectors) { + const selectors = transformSelector(rule.selectors.join(','), function (selectors) { selectors.walkUniversals(node => { node.parent.remove() }) @@ -240,8 +240,8 @@ if (process.env.UNI_USING_V3) { const k = tag.value const v = CSS_TAGS[k] if (v) { - tag.value = v === 'r' ? - `._${k}` : v + tag.value = v === 'r' + ? `._${k}` : v } }) }) diff --git a/packages/vue-cli-plugin-uni/packages/postcss/index.v3.js b/packages/vue-cli-plugin-uni/packages/postcss/index.v3.js index 5a24eaf72eecde9a724b5417ac9ca5d351b00bf5..5e1b9d7693e87f511089b05ffea6eee5f633e879 100644 --- a/packages/vue-cli-plugin-uni/packages/postcss/index.v3.js +++ b/packages/vue-cli-plugin-uni/packages/postcss/index.v3.js @@ -6,13 +6,13 @@ const TAGS = Object.keys(require('@dcloudio/uni-cli-shared').tags) const transformSelector = (complexSelector, transformer) => { return selectorParser(transformer).processSync(complexSelector) } -const isInsideKeyframes = function(rule) { +const isInsideKeyframes = function (rule) { return ( rule.parent && rule.parent.type === 'atrule' && /^(-\w+-)?keyframes$/.test(rule.parent.name) ) } -module.exports = postcss.plugin('postcss-uniapp-plugin', function(opts) { - return function(root, result) { +module.exports = postcss.plugin('postcss-uniapp-plugin', function (opts) { + return function (root, result) { root.walkRules(rule => { // Transform each rule here if (!isInsideKeyframes(rule)) { @@ -27,7 +27,7 @@ module.exports = postcss.plugin('postcss-uniapp-plugin', function(opts) { if (tag.value === 'page') { tag.value = 'body' } else if (~TAGS.indexOf(tag.value) && tag.value.substring( - 0, 4) !== 'uni-') { + 0, 4) !== 'uni-') { tag.value = 'uni-' + tag.value } }) diff --git a/packages/vue-cli-plugin-uni/packages/vue-loader/lib/index.js b/packages/vue-cli-plugin-uni/packages/vue-loader/lib/index.js index 19455e39f09a9f10e693f26335826079e7512a55..8023f68eb46540d73221c4c4fe10ebf631718220 100644 --- a/packages/vue-cli-plugin-uni/packages/vue-loader/lib/index.js +++ b/packages/vue-cli-plugin-uni/packages/vue-loader/lib/index.js @@ -122,7 +122,7 @@ module.exports = function (source) { // script let scriptImport = `var script = {}` - if (descriptor.script) { + if (descriptor.script) {// fixed by xxxxxx view 层的 script 在 script-loader 中提取自定义组件信息 const src = descriptor.script.src || resourcePath const attrsQuery = attrsToQuery(descriptor.script.attrs, 'js') const query = `?vue&type=script${attrsQuery}${inheritQuery}` @@ -135,7 +135,7 @@ module.exports = function (source) { // styles let stylesCode = `` - if (options.isAppView && descriptor.styles.length) { + if (options.isAppView && descriptor.styles.length) {// fixed by xxxxxx 仅限 view 层 stylesCode = genStylesCode( loaderContext, descriptor.styles, 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 8b9b33fa6c4dfeafc61caf5ac88328eeece673fb..83dd5cd15122959b3bb5be12b3b52b6b83f0457c 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 @@ -255,8 +255,8 @@ /* */ - var isUnaryTag = makeMap( - 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + + var isUnaryTag = makeMap(// fixed by xxxxxx add image + 'image,area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + 'link,meta,param,source,track,wbr' ); @@ -1036,7 +1036,13 @@ * directives subscribing to it. */ var Dep = function Dep () { - this.id = uid++; + // fixed by xxxxxx (nvue vuex) + /* eslint-disable no-undef */ + if(typeof SharedObject !== 'undefined'){ + this.id = SharedObject.uid++; + } else { + this.id = uid++; + } this.subs = []; }; @@ -1763,36 +1769,6 @@ /* */ - /* */ - - function transformNode(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(el) { - var data = ''; - if (el.wxsPropBindings) { - data += "wxsProps:" + (JSON.stringify(el.wxsPropBindings)) + ","; - } - return data - } - - var wxs = { - transformNode: transformNode, - genData: genData - }; - /* */ var validDivisionCharRE = /[\w).+\-_$\]]/; @@ -2170,7 +2146,7 @@ /* */ - function transformNode$1 (el, options) { + function transformNode (el, options) { var warn = options.warn || baseWarn; var staticClass = getAndRemoveAttr(el, 'class'); if (staticClass) { @@ -2194,7 +2170,7 @@ } } - function genData$1 (el) { + function genData (el) { var data = ''; if (el.staticClass) { data += "staticClass:" + (el.staticClass) + ","; @@ -2207,8 +2183,8 @@ var klass = { staticKeys: ['staticClass'], - transformNode: transformNode$1, - genData: genData$1 + transformNode: transformNode, + genData: genData }; /* */ @@ -2228,7 +2204,7 @@ /* */ - function transformNode$2 (el, options) { + function transformNode$1 (el, options) { var warn = options.warn || baseWarn; var staticStyle = getAndRemoveAttr(el, 'style'); if (staticStyle) { @@ -2254,7 +2230,7 @@ } } - function genData$2 (el) { + function genData$1 (el) { var data = ''; if (el.staticStyle) { data += "staticStyle:" + (el.staticStyle) + ","; @@ -2267,8 +2243,8 @@ var style = { staticKeys: ['staticStyle'], - transformNode: transformNode$2, - genData: genData$2 + transformNode: transformNode$1, + genData: genData$1 }; var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; @@ -3783,6 +3759,36 @@ 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 + }; + var modules = [ wxs,// fixed by xxxxxx klass, @@ -4470,7 +4476,7 @@ var alias = el.alias; var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : ''; var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : ''; - + var iterator3 = el.iterator3 ? ("," + (el.iterator3)) : ''; // fixed by xxxxxx if (state.maybeComponent(el) && el.tag !== 'slot' && el.tag !== 'template' && @@ -4487,7 +4493,7 @@ el.forProcessed = true; // avoid recursion return (altHelper || '_l') + "((" + exp + ")," + - "function(" + alias + iterator1 + iterator2 + "){" + + "function(" + alias + iterator1 + iterator2 + iterator3 + "){" + // fixed by xxxxxx "return " + ((altGen || genElement)(el, state)) + '})' } 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 4791721ac4900c6f651d0cba9ae50521a113aa49..3e98e934cc17a883ace5b98f13e94e8784915054 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 @@ -212,8 +212,8 @@ function genStaticKeys (modules) { /* */ -var isUnaryTag = makeMap( - 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + +var isUnaryTag = makeMap(// fixed by xxxxxx add image + 'image,area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' + 'link,meta,param,source,track,wbr' ); @@ -994,7 +994,13 @@ var uid = 0; * directives subscribing to it. */ var Dep = function Dep () { - this.id = uid++; + // fixed by xxxxxx (nvue vuex) + /* eslint-disable no-undef */ + if(typeof SharedObject !== 'undefined'){ + this.id = SharedObject.uid++; + } else { + this.id = uid++; + } this.subs = []; }; @@ -1728,36 +1734,6 @@ var isTextInputType = makeMap('text,number,password,search,email,tel,url'); /* */ -/* */ - -function transformNode(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(el) { - var data = ''; - if (el.wxsPropBindings) { - data += "wxsProps:" + (JSON.stringify(el.wxsPropBindings)) + ","; - } - return data -} - -var wxs = { - transformNode: transformNode, - genData: genData -}; - /* */ var validDivisionCharRE = /[\w).+\-_$\]]/; @@ -2135,7 +2111,7 @@ function rangeSetItem ( /* */ -function transformNode$1 (el, options) { +function transformNode (el, options) { var warn = options.warn || baseWarn; var staticClass = getAndRemoveAttr(el, 'class'); if (process.env.NODE_ENV !== 'production' && staticClass) { @@ -2159,7 +2135,7 @@ function transformNode$1 (el, options) { } } -function genData$1 (el) { +function genData (el) { var data = ''; if (el.staticClass) { data += "staticClass:" + (el.staticClass) + ","; @@ -2172,8 +2148,8 @@ function genData$1 (el) { var klass = { staticKeys: ['staticClass'], - transformNode: transformNode$1, - genData: genData$1 + transformNode: transformNode, + genData: genData }; /* */ @@ -2193,7 +2169,7 @@ var parseStyleText = cached(function (cssText) { /* */ -function transformNode$2 (el, options) { +function transformNode$1 (el, options) { var warn = options.warn || baseWarn; var staticStyle = getAndRemoveAttr(el, 'style'); if (staticStyle) { @@ -2219,7 +2195,7 @@ function transformNode$2 (el, options) { } } -function genData$2 (el) { +function genData$1 (el) { var data = ''; if (el.staticStyle) { data += "staticStyle:" + (el.staticStyle) + ","; @@ -2232,8 +2208,8 @@ function genData$2 (el) { var style = { staticKeys: ['staticStyle'], - transformNode: transformNode$2, - genData: genData$2 + transformNode: transformNode$1, + genData: genData$1 }; /* */ @@ -3405,6 +3381,36 @@ 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 +}; + var modules = [ wxs,// fixed by xxxxxx klass, @@ -4100,7 +4106,7 @@ function genFor ( var alias = el.alias; var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : ''; var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : ''; - + var iterator3 = el.iterator3 ? ("," + (el.iterator3)) : ''; // fixed by xxxxxx if (process.env.NODE_ENV !== 'production' && state.maybeComponent(el) && el.tag !== 'slot' && @@ -4118,7 +4124,7 @@ function genFor ( el.forProcessed = true; // avoid recursion return (altHelper || '_l') + "((" + exp + ")," + - "function(" + alias + iterator1 + iterator2 + "){" + + "function(" + alias + iterator1 + iterator2 + iterator3 + "){" + // fixed by xxxxxx "return " + ((altGen || genElement)(el, state)) + '})' } diff --git a/packages/vue-cli-plugin-uni/packages/webpack-custom-block-loader/index.js b/packages/vue-cli-plugin-uni/packages/webpack-custom-block-loader/index.js index a3777dbc8efd77592fdd4cd22ec390ca899f091a..e6936b694f3339eb636005dd42d8d430284b3447 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-custom-block-loader/index.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-custom-block-loader/index.js @@ -14,8 +14,7 @@ const { const FILTER_TAG = getPlatformFilterTag() -module.exports = function(source) { - +module.exports = function (source) { const loaderContext = this const { @@ -38,11 +37,6 @@ module.exports = function(source) { needMap: sourceMap }) - if (options.isAppService) { // 移除 styles - descriptor.styles.length = 0 - return source - } - if (!descriptor.template || !FILTER_TAG) { // delete customBlocks descriptor.customBlocks.length = 0 diff --git a/packages/vue-cli-plugin-uni/packages/webpack-html-append-plugin/index.js b/packages/vue-cli-plugin-uni/packages/webpack-html-append-plugin/index.js index 237852c279c4573276aeab7d6d9126ff910bb50a..686c7e9f4c5608ae8882e19600d4676593bc234e 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-html-append-plugin/index.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-html-append-plugin/index.js @@ -1,20 +1,20 @@ -const HtmlWebpackPlugin = require('html-webpack-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin') class WebpackHtmlAppendPlugin { - constructor(content) { - this.content = content || '' - } - apply(compiler) { - compiler.hooks.compilation.tap('WebpackHtmlAppendPlugin', (compilation) => { - const beforeEmit = compilation.hooks.htmlWebpackPluginAfterHtmlProcessing || + constructor (content) { + this.content = content || '' + } + apply (compiler) { + compiler.hooks.compilation.tap('WebpackHtmlAppendPlugin', (compilation) => { + const beforeEmit = compilation.hooks.htmlWebpackPluginAfterHtmlProcessing || HtmlWebpackPlugin.getHooks(compilation).beforeEmit - beforeEmit.tapAsync('WebpackHtmlAppendPlugin', (data, cb) => { - data.html += this.content - cb(null, data) - }) - }) - } + beforeEmit.tapAsync('WebpackHtmlAppendPlugin', (data, cb) => { + data.html += this.content + cb(null, data) + }) + }) + } } module.exports = WebpackHtmlAppendPlugin diff --git a/packages/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js b/packages/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js index d343b69d2f1bea0462df74e7e14496449e6b3a7c..4aeb4cb1b04b466e08d0c2bd5a4bc696e7b48b0a 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js @@ -2,23 +2,23 @@ const path = require('path') const utils = require('loader-utils') const { - normalizePath + normalizePath } = require('@dcloudio/uni-cli-shared') const preprocessor = require('./preprocess/lib/preprocess') const ERRORS = { - 'html': `条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用): + 'html': `条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用): 模板代码 `, - 'js': `条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用): + 'js': `条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用): // #ifdef %PLATFORM% js代码 // #endif `, - 'css': `条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用): + 'css': `条件编译失败,参考示例(注意 ifdef 与 endif 必须配对使用): /* #ifdef %PLATFORM% */ css代码 /* #endif */ @@ -26,36 +26,36 @@ css代码 } const TAGS = { - 'html': 'template', - 'js': 'script', - 'css': 'style' + 'html': 'template', + 'js': 'script', + 'css': 'style' } -module.exports = function(content, map) { - this.cacheable && this.cacheable() - - let types = utils.getOptions(this).type || 'js' - - const context = utils.getOptions(this).context || {} - - if (!Array.isArray(types)) { - types = [types] +module.exports = function (content, map) { + this.cacheable && this.cacheable() + + let types = utils.getOptions(this).type || 'js' + + const context = utils.getOptions(this).context || {} + + if (!Array.isArray(types)) { + types = [types] + } + const resourcePath = this.resourcePath + types.forEach(type => { + try { + content = preprocessor.preprocess(content, context, { + type + }) + } catch (e) { + if (~['.nvue', '.vue'].indexOf(path.extname(resourcePath))) { + console.error(`${TAGS[type]}节点 ${ERRORS[type]} at ` + normalizePath(path.relative(process.env.UNI_INPUT_DIR, + resourcePath)) + ':1') + } else { + console.error(`${ERRORS[type]} at ` + normalizePath(path.relative(process.env.UNI_INPUT_DIR, + resourcePath)) + ':1') + } } - const resourcePath = this.resourcePath - types.forEach(type => { - try { - content = preprocessor.preprocess(content, context, { - type - }) - } catch (e) { - if (~['.nvue', '.vue'].indexOf(path.extname(resourcePath))) { - console.error(`${TAGS[type]}节点 ${ERRORS[type]} at ` + normalizePath(path.relative(process.env.UNI_INPUT_DIR, - resourcePath)) + ':1') - } else { - console.error(`${ERRORS[type]} at ` + normalizePath(path.relative(process.env.UNI_INPUT_DIR, - resourcePath)) + ':1') - } - } - }) - this.callback(null, content, map) + }) + this.callback(null, content, map) } diff --git a/packages/vue-cli-plugin-uni/packages/webpack-scoped-loader/index.js b/packages/vue-cli-plugin-uni/packages/webpack-scoped-loader/index.js index b2439856443dad4ceb4e9d3bd3730359bfa65a14..53f17d8b0c0d9335bcaf70ddbacaec02160819e7 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-scoped-loader/index.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-scoped-loader/index.js @@ -4,12 +4,11 @@ const isWin = /^win/.test(process.platform) const normalizePath = path => (isWin ? path.replace(/\\/g, '/') : path) -module.exports = function(content) { - this.cacheable && this.cacheable() - const resourcePath = normalizePath(this.resourcePath) - const inputPath = normalizePath(process.env.UNI_INPUT_DIR) - if (resourcePath !== normalizePath(path.resolve(process.env.UNI_INPUT_DIR, 'App.vue'))) { - return content.replace(/(<]*)>/ig, '$1 scoped>') - } - return content +module.exports = function (content) { + this.cacheable && this.cacheable() + const resourcePath = normalizePath(this.resourcePath) + if (resourcePath !== normalizePath(path.resolve(process.env.UNI_INPUT_DIR, 'App.vue'))) { + return content.replace(/(<]*)>/ig, '$1 scoped>') + } + return content } diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-view-main-loader/index.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js similarity index 70% rename from packages/vue-cli-plugin-uni/packages/webpack-uni-view-main-loader/index.js rename to packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js index 7abb3ca3af5d56f391906f13473fc26df97141e2..e60a56a506d8c85f2c96bcc9a4defb84c0ee8bfb 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-uni-view-main-loader/index.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js @@ -3,8 +3,6 @@ const path = require('path') const hash = require('hash-sum') const loaderUtils = require('loader-utils') -const parser = require('@babel/parser') - const { parse } = require(require.resolve('@vue/component-compiler-utils', { @@ -13,29 +11,13 @@ const { const traverse = require('@dcloudio/webpack-uni-mp-loader/lib/babel/global-component-traverse') -const genStylesCode = require('../vue-loader/lib/codegen/styleInjection') +const genStylesCode = require('../../vue-loader/lib/codegen/styleInjection') -function parseComponents(content) { - const { - state: { - components - } - } = traverse(parser.parse(content, { - sourceType: 'module', - plugins: [ - 'typescript', - ['decorators', { - decoratorsBeforeExport: true - }], - 'classProperties' - ] - }), { - components: [] - }) - return components -} +const { + parseComponents +} = require('./util') -function getDefineComponents(components) { +function getDefineComponents (components) { return components.map(({ name, source @@ -44,7 +26,7 @@ function getDefineComponents(components) { const appVueFilePath = path.resolve(process.env.UNI_INPUT_DIR, 'app.vue') -function getStylesCode(loaderContext) { +function getStylesCode (loaderContext) { if (!fs.existsSync(appVueFilePath)) { return } @@ -89,9 +71,9 @@ function getStylesCode(loaderContext) { const needsHotReload = false const id = hash( - isProduction ? - (shortFilePath + '\n' + source) : - shortFilePath + isProduction + ? (shortFilePath + '\n' + source) + : shortFilePath ) stylesCode = genStylesCode( @@ -104,14 +86,14 @@ function getStylesCode(loaderContext) { isServer || isShadow // needs explicit injection? ) } - return stylesCode.replace(/main\.js/g,'App.vue') + return stylesCode.replace(/main\.js/g, 'App.vue') } -module.exports = function(source, map) { +module.exports = function (source, map) { // 解析自定义组件,及 App 样式 return `import 'uni-pages' ${getStylesCode(this)} -${getDefineComponents(parseComponents(source)).join('\n')} +${getDefineComponents(parseComponents(source, traverse)).join('\n')} UniViewJSBridge.publishHandler('webviewReady') ` } diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js new file mode 100644 index 0000000000000000000000000000000000000000..9036d20edd840e05c71fc92ba16f15e6884e6cfb --- /dev/null +++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/script.js @@ -0,0 +1,51 @@ +const { + jsPreprocessOptions +} = require('@dcloudio/uni-cli-shared') + +const preprocessor = require('@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/preprocess') + +const traverse = require('@dcloudio/webpack-uni-mp-loader/lib/babel/scoped-component-traverse') + +const { + parseComponents +} = require('./util') + +function genComponentCode (components) { + const importCode = [] + const componentsCode = [] + components.forEach(({ + name, + value, + source + }) => { + importCode.push(`import ${value} from '${source}'`) + componentsCode.push(`${name}: ${value}`) + }) + return [importCode.join('\n'), componentsCode.join(',\n')] +} + +function genCode (components, css = []) { + const [importComponentCode, componentsCode] = genComponentCode(components) + // TODO js 内引用 css + return ` +${importComponentCode} +export default { + data(){ + return {} + }, + components:{ + ${componentsCode} + } +} +` +} + +module.exports = function (content, map) { + this.cacheable && this.cacheable() + + content = preprocessor.preprocess(content, jsPreprocessOptions.context, { + type: jsPreprocessOptions.type + }) + + return genCode(parseComponents(content, traverse)) +} diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/util.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/util.js new file mode 100644 index 0000000000000000000000000000000000000000..1e4edac659a1ab0f00fe6d9027678d6886ea29c8 --- /dev/null +++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/util.js @@ -0,0 +1,25 @@ +const parser = require('@babel/parser') + +function parseComponents (content, traverse) { + const { + state: { + components + } + } = traverse(parser.parse(content, { + sourceType: 'module', + plugins: [ + 'typescript', + ['decorators', { + decoratorsBeforeExport: true + }], + 'classProperties' + ] + }), { + components: [] + }) + return components +} + +module.exports = { + parseComponents +} diff --git a/src/core/service/api/media/recorder.js b/src/core/service/api/media/recorder.js index 4ecc2ffad2a2ef5a5bcd794e1d0261dc9e9e1556..36ed1fb58c368798949b39eaa064419310032ed7 100644 --- a/src/core/service/api/media/recorder.js +++ b/src/core/service/api/media/recorder.js @@ -7,7 +7,8 @@ const callbacks = { pause: [], resume: [], start: [], - stop: [] + stop: [], + error: [] } class RecorderManager { diff --git a/src/platforms/app-plus/constants.js b/src/platforms/app-plus/constants.js index 88a3eee67f973f54d89dbd576679cda8f264cf86..19dde2cef7ca4992256b7555ffc9858feb91c446 100644 --- a/src/platforms/app-plus/constants.js +++ b/src/platforms/app-plus/constants.js @@ -7,4 +7,5 @@ export const LAYOUT_READY = 30 export const APP_SERVICE_ID = '__uniapp__service' export const WEBVIEW_READY = 'webviewReady' -export const WEBVIEW_UI_EVENT = 'webviewUIEvent' +export const WEBVIEW_UI_EVENT = 'webviewUIEvent' +export const VD_SYNC_CALLBACK = 'vdSyncCallback' diff --git a/src/platforms/app-plus/page-factory.js b/src/platforms/app-plus/page-factory.js index 23189cfd175dfe23560ad1e0292055f835f49132..8a67a34acde299b2b4b0ba49f015fe86a1c9b9b4 100644 --- a/src/platforms/app-plus/page-factory.js +++ b/src/platforms/app-plus/page-factory.js @@ -10,9 +10,9 @@ export function definePage (name, createPageVueComponent) { export const getPageVueComponent = cached(function (pagePath) { return pageFactory[pagePath]() -}) - -export function createPage (pagePath, pageId) { +}) + +export function createPage (pagePath, pageId, pageQuery, pageInstance) { if (!pageFactory[pagePath]) { console.error(`${pagePath} not found`) } @@ -20,7 +20,9 @@ export function createPage (pagePath, pageId) { const pageVm = new (getPageVueComponent(pagePath))({ mpType: 'page', pageId, - pagePath + pagePath, + pageQuery, + pageInstance }) if (process.env.NODE_ENV !== 'production') { console.log(`new ${pagePath}`, Date.now() - startTime) diff --git a/src/platforms/app-plus/service/api/plugin/restore-global.js b/src/platforms/app-plus/service/api/plugin/restore-global.js index 122e5487a227962cf4170c9e7e64a48921fe0808..fa0902c6ad2269084cf71f07a05ed8f24155bf97 100644 --- a/src/platforms/app-plus/service/api/plugin/restore-global.js +++ b/src/platforms/app-plus/service/api/plugin/restore-global.js @@ -1,4 +1,4 @@ -export function restoreGlobal( +export function restoreGlobal ( newWeex, newPlus, newSetTimeout, diff --git a/src/platforms/app-plus/service/framework/page.js b/src/platforms/app-plus/service/framework/page.js index 3f5372c98fcc9cc573f7dc9b09de4618d46dd54f..12ba92571e76a6803f5508e56aba2a9854aeaf06 100644 --- a/src/platforms/app-plus/service/framework/page.js +++ b/src/platforms/app-plus/service/framework/page.js @@ -84,6 +84,9 @@ export function registerPage ({ const index = pages.findIndex(page => page === this) if (index !== -1) { pages.splice(index, 1) + if (!webview.nvue) { + this.$vm.$destroy() + } if (process.env.NODE_ENV !== 'production') { console.log(`[uni-app] removePage`, path, webview.id) } @@ -115,9 +118,7 @@ export function registerPage ({ } }, [pageId]) - pageInstance.$vm = createPage(route, pageId) - pageInstance.$vm.$scope = pageInstance - pageInstance.$vm.$mount() + createPage(route, pageId, query, pageInstance).$mount() } } diff --git a/src/platforms/app-plus/service/framework/plugins/data.js b/src/platforms/app-plus/service/framework/plugins/data.js index 55cd4dad2cbc119b09ca4a4f1731e9b5c7dea733..e7212938da9a98864b1f4069f5ebe9af488f9bac 100644 --- a/src/platforms/app-plus/service/framework/plugins/data.js +++ b/src/platforms/app-plus/service/framework/plugins/data.js @@ -16,25 +16,47 @@ import { diff } from './diff' -export function initData (Vue) { +export function initData(Vue) { Vue.prototype._$s = setData Vue.prototype._$i = setIfData Vue.prototype._$f = setForData Vue.prototype._$e = setElseIfData - Vue.prototype._$setData = function setData (type, data) { + Vue.prototype._$setData = function setData(type, data) { this._$vd.push(type, this._$id, data) + } + + Vue.prototype._$mounted = function mounted() { + if (!this._$vd) { + return + } + diff(this._$newData, this._$data, this._$vdMountedData) + this._$data = JSON.parse(JSON.stringify(this._$newData)) + console.log(`[${this._$id}] mounted ` + Date.now()) + if (this.mpType === 'page') { + // 页面 mounted 之后,第一次同步数据 + this._$vd.flush() + } + } + + Vue.prototype._$updated = function updated() { + if (!this._$vd) { + return + } + diff(this._$newData, this._$data, this._$vdUpdatedData) + this._$data = JSON.parse(JSON.stringify(this._$newData)) + console.log(`[${this._$id}] updated ` + Date.now()) this._$vd.initialized && this.$nextTick(this._$vd.flush.bind(this._$vd)) } Object.defineProperty(Vue.prototype, '_$vd', { - get () { + get() { return this.$root._$vdomSync } }) Vue.mixin({ - beforeCreate () { + beforeCreate() { if (this.$options.mpType) { this.mpType = this.$options.mpType } @@ -47,52 +69,34 @@ export function initData (Vue) { if (this._$vd) { this._$id = guid() this._$vd.addVm(this) + this._$vdMountedData = Object.create(null) + this._$setData(MOUNTED_DATA, this._$vdMountedData) console.log(`[${this._$id}] beforeCreate ` + Date.now()) // 目前全量采集做 diff(iOS 需要保留全量状态做 restore),理论上可以差量采集 this._$data = Object.create(null) this._$newData = Object.create(null) } }, - mounted () { - if (!this._$vd) { - return - } - const diffData = diff(this._$newData, this._$data) - this._$data = JSON.parse(JSON.stringify(this._$newData)) - console.log(`[${this._$id}] mounted ` + Date.now()) - this._$setData(MOUNTED_DATA, diffData) - if (this.mpType === 'page') { - // 页面 mounted 之后,第一次同步数据 - this._$vd.flush() - } - }, - beforeUpdate () { + beforeUpdate() { if (!this._$vd) { return } + this._$vdUpdatedData = Object.create(null) + this._$setData(UPDATED_DATA, this._$vdUpdatedData) console.log(`[${this._$id}] beforeUpdate ` + Date.now()) this._$newData = Object.create(null) }, - updated () { - if (!this._$vd) { - return - } - const diffData = diff(this._$newData, this._$data) - this._$data = JSON.parse(JSON.stringify(this._$newData)) - console.log(`[${this._$id}] updated ` + Date.now()) - this._$setData(UPDATED_DATA, diffData) - }, - beforeDestroy () { + beforeDestroy() { if (!this._$vd) { return } this._$vd.removeVm(this) - this._$vdomSync && this._$vdomSync.destory() + this._$vdomSync && this._$vdomSync.destroy() } }) } -function setData (id, name, value) { +function setData(id, name, value) { const diffData = this._$newData[id] || (this._$newData[id] = {}) if (typeof name !== 'string') { @@ -108,14 +112,19 @@ function setData (id, name, value) { return (diffData[name] = value) } -function setForData (id, value) { +function setForData(id, value) { + const diffData = this._$newData[id] || (this._$newData[id] = {}) + const vForData = diffData['v-for'] || (diffData['v-for'] = []) + + if (value.forItems) { + return value.forItems + } + const { forIndex, key } = value - const diffData = this._$newData[id] || (this._$newData[id] = {}) - const vForData = diffData['v-for'] || (diffData['v-for'] = []) if (!hasOwn(value, 'keyIndex')) { vForData[forIndex] = key } else { @@ -124,10 +133,10 @@ function setForData (id, value) { return key } -function setIfData (id, value) { +function setIfData(id, value) { return ((this._$newData[id] || (this._$newData[id] = {}))['v-if'] = value) } -function setElseIfData (id, value) { +function setElseIfData(id, value) { return ((this._$newData[id] || (this._$newData[id] = {}))['v-else-if'] = value) } diff --git a/src/platforms/app-plus/service/framework/plugins/diff.js b/src/platforms/app-plus/service/framework/plugins/diff.js index 2386371520e6dbf8dc031fa0cee21fb99e8d0cb8..cf831537a404e9b7f5f578d39d8f77385f1ab908 100644 --- a/src/platforms/app-plus/service/framework/plugins/diff.js +++ b/src/platforms/app-plus/service/framework/plugins/diff.js @@ -13,8 +13,7 @@ function diffObject (id, newObj, oldObj, result) { } } -export function diff (newData, oldData) { - const result = Object.create(null) +export function diff (newData, oldData, result) { let id, cur, old for (id in newData) { cur = newData[id] diff --git a/src/platforms/app-plus/service/framework/plugins/lifecycle.js b/src/platforms/app-plus/service/framework/plugins/lifecycle.js index 70165915709e304d094b02c0a896561821e25e67..a400ff642c37bb448d0a6d370551907227b31c2b 100644 --- a/src/platforms/app-plus/service/framework/plugins/lifecycle.js +++ b/src/platforms/app-plus/service/framework/plugins/lifecycle.js @@ -1,4 +1,38 @@ -export { - lifecycleMixin as initLifecycle +import { + callPageHook +} from 'uni-core/service/plugins/util' + +import { + lifecycleMixin } - from 'uni-core/service/plugins/lifecycle' + from 'uni-core/service/plugins/lifecycle' + +export function initLifecycle (Vue) { + lifecycleMixin(Vue) + + Vue.mixin({ + beforeCreate () { + if (this.mpType === 'page') { + this.$scope = this.$options.pageInstance + this.$scope.$vm = this + delete this.$options.pageInstance + } + }, + created () { + if (this.mpType === 'page') { + callPageHook(this.$scope, 'onLoad', this.$options.pageQuery) + callPageHook(this.$scope, 'onShow') + } + }, + beforeDestroy () { + if (this.mpType === 'page') { + callPageHook(this.$scope, 'onUnload') + } + }, + mounted () { + if (this.mpType === 'page') { + callPageHook(this.$scope, 'onReady') + } + } + }) +} diff --git a/src/platforms/app-plus/service/framework/plugins/vdom-sync.js b/src/platforms/app-plus/service/framework/plugins/vdom-sync.js index f71f6cf8411ac9991ef77d709383a283f410fb1b..54ec6d2fdb5ef59251940789d54fc13e2d534373 100644 --- a/src/platforms/app-plus/service/framework/plugins/vdom-sync.js +++ b/src/platforms/app-plus/service/framework/plugins/vdom-sync.js @@ -1,5 +1,10 @@ import { - PAGE_CREATED + isFn +} from 'uni-shared' + +import { + PAGE_CREATED, + VD_SYNC_CALLBACK } from '../../../constants' import { @@ -7,8 +12,12 @@ import { registerWebviewUIEvent } from '../subscribe-handlers' +function noop() {} + +const callbacks = [] // 数据同步 callback + export class VDomSync { - constructor (pageId, pagePath) { + constructor(pageId, pagePath) { this.pageId = pageId this.pagePath = pagePath this.batchData = [] @@ -20,9 +29,19 @@ export class VDomSync { this._init() } - _init () { + _init() { + UniServiceJSBridge.subscribe(VD_SYNC_CALLBACK, () => { + const copies = callbacks.slice(0) + callbacks.length = 0 + for (let i = 0; i < copies.length; i++) { + copies[i]() + } + }) + registerWebviewUIEvent(this.pageId, (cid, nid, event) => { console.log(`[EVENT]`, cid, nid, event) + event.preventDefault = noop + event.stopPropagation = noop if ( this.handlers[cid] && this.handlers[cid][nid] && @@ -31,29 +50,49 @@ export class VDomSync { this.handlers[cid][nid][event.type].forEach(handler => { handler(event) }) + } else { + console.error(`event handler[${cid}][${nid}][${event.type}] not found`) } }) } - getVm (id) { + addMountedVm(vm) { + vm._$mounted() // 触发vd数据同步 + this.addCallback(function mounted() { + vm.__call_hook('mounted') + }) + } + + addUpdatedVm(vm) { + vm._$updated() // 触发vd数据同步 + this.addCallback(function mounted() { + vm.__call_hook('updated') + }) + } + + addCallback(callback) { + isFn(callback) && callbacks.push(callback) + } + + getVm(id) { return this.vms[id] } - addVm (vm) { + addVm(vm) { this.vms[vm._$id] = vm } - removeVm (vm) { + removeVm(vm) { delete this.vms[vm._$id] } - addEvent (cid, nid, name, handler) { + addEvent(cid, nid, name, handler) { const cHandlers = this.handlers[cid] || (this.handlers[cid] = Object.create(null)) const nHandlers = cHandlers[nid] || (cHandlers[nid] = Object.create(null)); (nHandlers[name] || (nHandlers[name] = [])).push(handler) } - removeEvent (cid, nid, name, handler) { + removeEvent(cid, nid, name, handler) { const cHandlers = this.handlers[cid] || (this.handlers[cid] = Object.create(null)) const nHandlers = cHandlers[nid] || (cHandlers[nid] = Object.create(null)) const eHandlers = nHandlers[name] @@ -65,11 +104,11 @@ export class VDomSync { } } - push (type, nodeId, data) { + push(type, nodeId, data) { this.batchData.push([type, [nodeId, data]]) } - flush () { + flush() { if (!this.initialized) { this.initialized = true this.batchData.push([PAGE_CREATED, [this.pageId, this.pagePath]]) @@ -85,7 +124,7 @@ export class VDomSync { } } - destroy () { + destroy() { this.batchData.length = 0 this.vms = Object.create(null) this.initialized = false diff --git a/src/platforms/app-plus/view/framework/plugins/data.js b/src/platforms/app-plus/view/framework/plugins/data.js index 94fcfaddaf3c2e1a16ef617aa71167502cbd0bcb..ae72003bee4c9e22ece76117f40f9cdd2d7b5706 100644 --- a/src/platforms/app-plus/view/framework/plugins/data.js +++ b/src/platforms/app-plus/view/framework/plugins/data.js @@ -1,8 +1,16 @@ +import Vue from 'vue' + +import { + hasOwn +} + from 'uni-shared' + import { PAGE_CREATE, MOUNTED_DATA, UPDATED_DATA, - PAGE_CREATED + PAGE_CREATED, + VD_SYNC_CALLBACK } from '../../../constants' import { @@ -24,6 +32,7 @@ let PageVueComponent const handleData = { [PAGE_CREATE]: function onPageCreate (data) { const [pageId, pagePath] = data + document.title = `${pagePath}[${pageId}]` // 设置当前页面伪对象,方便其他地方使用 getCurrentPages 获取当前页面 id,route setCurrentPage(pageId, pagePath) // 初始化当前页面 VueComponent(生成页面样式代码) @@ -51,13 +60,36 @@ function vdSync ({ data, options }) { + let isVdCallback = true data.forEach(data => { + if (data[0] === PAGE_CREATE) { // 页面创建无需触发 callback + isVdCallback = false + } handleData[data[0]](data[1]) }) vd.flush() + isVdCallback && Vue.nextTick(() => { + UniViewJSBridge.publishHandler(VD_SYNC_CALLBACK) + }) +} + +function getData (id, name, isFallbackContent = false) { + const root = this.$r + if (hasOwn(root, id)) { + const vNodeData = root[id] + if (hasOwn(vNodeData, name)) { + return vNodeData[name] + } else { + !isFallbackContent && console.error(this.$options.__file + `:[${this._$id}]$r[${id}][${name}] is undefined`) + } + } else { + !isFallbackContent && console.error(this.$options.__file + `:[${this._$id}]$r[${id}] is undefined`) + } } export function initData (Vue) { + Vue.prototype._$g = getData + UniViewJSBridge.subscribe('vdSync', vdSync) Object.defineProperty(Vue.prototype, '_$vd', { diff --git a/src/platforms/app-plus/view/framework/plugins/event.js b/src/platforms/app-plus/view/framework/plugins/event.js index ddb5ae6d014565d7b7599c45699312a537a1f4bf..6dceea1fda558c25fd6ed335a7434ab2d88e871f 100644 --- a/src/platforms/app-plus/view/framework/plugins/event.js +++ b/src/platforms/app-plus/view/framework/plugins/event.js @@ -5,13 +5,10 @@ import { export function initEvent (Vue) { Vue.prototype.$handleViewEvent = function ($vueEvent, options) { const $event = this.$handleEvent($vueEvent) - const cid = this._$id - - const { - nid - } = $event.options - if (!nid) { + // 当自定义组件根节点触发事件时,nid 始终为 0 + const nid = $vueEvent.currentTarget === this.$el ? 0 : $event.options.nid + if (typeof nid === 'undefined') { return console.error(`[${cid}] nid not found`) } diff --git a/src/platforms/app-plus/view/framework/plugins/vdom-sync.js b/src/platforms/app-plus/view/framework/plugins/vdom-sync.js index 5e5125045beb995c785267647c02c4a06bdd35f7..9afb5aee6f83eda66f13f048a34a841397909834 100644 --- a/src/platforms/app-plus/view/framework/plugins/vdom-sync.js +++ b/src/platforms/app-plus/view/framework/plugins/vdom-sync.js @@ -19,7 +19,7 @@ export class VDomSync { } initVm (vm) { - const [nodeId, data] = this.addVDatas.pop() + const [nodeId, data] = this.addVDatas.shift() if (!nodeId) { vm._$id = guid() console.error('nodeId unmatched', vm) @@ -37,7 +37,10 @@ export class VDomSync { if (!vm) { return console.error(`Not found ${nodeId}`) } - Object.assign(vm.$r, data) + Object.keys(data).forEach(nodeId => { + Object.assign((vm.$r[nodeId] || (vm.$r[nodeId] = Object.create(null))), data[nodeId]) + }) + vm.$forceUpdate() }) this.updateVDatas.length = 0