diff --git a/package.json b/package.json index c6ee86e..a2ee165 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "PLATO", - "version": "2.0.4", + "version": "2.0.5", "description": "a Boilerplate for mobile SPAs use vue, vuex, vue-router", "license": "MIT", "main": "src/index.js", @@ -28,12 +28,12 @@ "nuo": "^1.0.0", "query-string": "^4.2.3", "string-template": "^1.0.0", - "vue": "^2.0.5", - "vue-router": "^2.0.1", + "vue": "^2.0.6", + "vue-router": "^2.0.2", "vuex": "^2.0.0", "vuex-actions": "^1.1.1", "vuex-localstorage": "^0.3.0", - "whatwg-fetch": "^1.0.0" + "whatwg-fetch": "^2.0.0" }, "devDependencies": { "babel-loader": "^6.2.7", @@ -45,12 +45,12 @@ "bundle-loader": "^0.5.4", "chai": "^3.5.0", "chromedriver": "^2.25.1", - "copy-webpack-plugin": "^4.0.0", + "copy-webpack-plugin": "^4.0.1", "core-js": "^2.4.1", "cross-env": "^3.1.3", "cross-spawn": "^5.0.1", "css-loader": "^0.25.0", - "eslint": "^3.9.1", + "eslint": "^3.10.2", "eslint-config-plato": "^0.0.1", "eslint-friendly-formatter": "^2.0.6", "eslint-loader": "^1.6.0", @@ -63,13 +63,13 @@ "karma": "^1.3.0", "karma-coverage": "^1.1.1", "karma-es6-shim": "^1.0.0", - "karma-mocha": "^1.2.0", + "karma-mocha": "^1.3.0", "karma-mocha-reporter": "^2.2.0", "karma-phantomjs-launcher": "^1.0.2", "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "^1.8.0", "mocha": "^3.1.2", - "nightwatch": "^0.9.8", + "nightwatch": "^0.9.9", "nodemon": "^1.11.0", "phantomjs-polyfill": "^0.0.2", "phantomjs-prebuilt": "^2.1.13", @@ -77,7 +77,7 @@ "postcss-cssnext": "^2.8.0", "postcss-flexible": "^0.2.1", "postcss-import": "~8.0.2", - "postcss-loader": "^1.1.0", + "postcss-loader": "^1.1.1", "postcss-reporter": "^1.4.1", "postcss-url": "^5.1.2", "rimraf": "^2.5.4", @@ -91,10 +91,10 @@ "url-loader": "^0.5.7", "vue-hot-reload-api": "^2.0.6", "vue-html-loader": "^1.2.3", - "vue-loader": "^9.8.0", + "vue-loader": "^9.9.5", "vue-style-loader": "^1.0.0", - "webpack": "^2.1.0-beta.25", - "webpack-dev-server": "^2.1.0-beta.10", - "yargs": "^6.3.0" + "webpack": "^2.1.0-beta.27", + "webpack-dev-server": "^2.1.0-beta.11", + "yargs": "^6.4.0" } } diff --git a/src/components/core/directives/drag.js b/src/components/core/directives/drag.js new file mode 100644 index 0000000..985751a --- /dev/null +++ b/src/components/core/directives/drag.js @@ -0,0 +1,53 @@ +/** + * Simple directive for dragging events + */ +export default { + name: 'drag', + bind (el, { value, modifiers }) { + let startPoint = null + el.addEventListener('touchstart', e => { + startPoint = null + if (e.touches && e.touches.length === 1) { + startPoint = { + pageX: e.touches[0].pageX, + pageY: e.touches[0].pageY + } + el.dispatchEvent(createEvent('dragstart', { originalEvent: e })) + } + }) + el.addEventListener('touchmove', e => { + if (startPoint) { + if (modifiers.direction) { + if ((value.horizontal && isHorizontal(e.touches[0], startPoint)) || + (value.vertical && isVertical(e.touches[0], startPoint))) { + el.dispatchEvent(createEvent('drag', { originalEvent: e })) + } else { + startPoint = null + } + } else { + el.dispatchEvent(createEvent('drag', { originalEvent: e })) + } + } + }) + el.addEventListener('touchend', e => { + if (startPoint) { + startPoint = null + el.dispatchEvent(createEvent('dragend', { originalEvent: e })) + } + }) + } +} + +function createEvent (name, mixins = {}) { + const tapEvent = document.createEvent('HTMLEvents') + tapEvent.initEvent(name, true, true) + return Object.assign(tapEvent, mixins) +} + +function isHorizontal (to, from) { + return Math.abs(to.pageX - from.pageX) > Math.abs(to.pageY - from.pageY) +} + +function isVertical (to, from) { + return Math.abs(to.pageX - from.pageX) < Math.abs(to.pageY - from.pageY) +} diff --git a/src/components/core/icon.vue b/src/components/core/icon.vue index 10fffcd..8f655df 100644 --- a/src/components/core/icon.vue +++ b/src/components/core/icon.vue @@ -14,6 +14,10 @@ export default { beforeMount () { this.html = entities[this.$slots.default[0].text] || ' ' + }, + + beforeUpdate () { + this.html = entities[this.$slots.default[0].text] || ' ' } } diff --git a/src/components/core/picker.vue b/src/components/core/picker.vue index 6db7c7b..0eb344a 100644 --- a/src/components/core/picker.vue +++ b/src/components/core/picker.vue @@ -2,9 +2,10 @@