diff --git a/dist/vue-touch.js b/dist/vue-touch.js index 6c9eaec..73d338e 100644 --- a/dist/vue-touch.js +++ b/dist/vue-touch.js @@ -1,11 +1,16 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('hammerjs')) : - typeof define === 'function' && define.amd ? define(['hammerjs'], factory) : - (factory(global.Hammer)); -}(this, (function (Hammer) { 'use strict'; - -Hammer = 'default' in Hammer ? Hammer['default'] : Hammer; + typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof define === 'function' && define.amd ? define(factory) : + (factory()); +}(this, (function () { 'use strict'; +var Hammer$1; +try { + Hammer$1 = require('hammerjs'); +} +catch (err) { + Hammer$1 = {}; +} function assign(target) { var sources = [], len = arguments.length - 1; while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ]; @@ -33,8 +38,8 @@ function guardDirections (options) { var dir = options.direction; if (typeof dir === 'string') { var hammerDirection = 'DIRECTION_' + dir.toUpperCase(); - if (directions.indexOf(dir) > -1 && Hammer.hasOwnProperty(hammerDirection)) { - options.direction = Hammer[hammerDirection]; + if (directions.indexOf(dir) > -1 && Hammer$1.hasOwnProperty(hammerDirection)) { + options.direction = Hammer$1[hammerDirection]; } else { console.warn('[vue-touch] invalid direction: ' + dir); } @@ -85,6 +90,13 @@ var gestureMap = { tap: 'tap' }; +var Hammer; +try { + Hammer = require('hammerjs'); +} +catch (err) { + Hammer = {}; +} var Component = { props: { options: createProp(), diff --git a/dist/vue-touch.js.map b/dist/vue-touch.js.map index 3e9a02e..0148d51 100644 --- a/dist/vue-touch.js.map +++ b/dist/vue-touch.js.map @@ -1 +1 @@ -{"version":3,"file":null,"sources":["../src/utils.js","../src/component.js","../src/index.js"],"sourcesContent":["import Hammer from 'hammerjs' // used by guardDirections\n\n/**\n * Tiny Object.assign replacement\n * @param {Object} target Any type of object\n * @param {Object} sources Any type of object\n * @return {Object} Merged Object\n */\nexport function assign(target, ...sources) {\n for (let i = 0; i < sources.length; i++) {\n const source = sources[i]\n const keys = Object.keys(source)\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n target[key] = source[key]\n }\n }\n return target\n}\n\n/**\n * Small helper method to generate prop options for all the\n * *-options props.\n * @return {[type]} [description]\n */\nexport function createProp() {\n return {\n type: Object,\n default: function() { return {} }\n }\n}\n\nexport function capitalize (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\n/**\n * Directions that VueTouch understands.\n * Will be tanslated to Hammer-style directions by guardDirections()\n * @type {Array}\n */\nexport const directions = ['up', 'down', 'left', 'right', 'horizontal', 'vertical', 'all']\n\n/**\n * Translates VueTouch direction names into Hammer Direction numbers.\n * @param {Objects} options Hammer Options\n * @return {Object} [Hammer Options]\n */\nexport function guardDirections (options) {\n var dir = options.direction\n if (typeof dir === 'string') {\n var hammerDirection = 'DIRECTION_' + dir.toUpperCase()\n if (directions.indexOf(dir) > -1 && Hammer.hasOwnProperty(hammerDirection)) {\n options.direction = Hammer[hammerDirection]\n } else {\n console.warn('[vue-touch] invalid direction: ' + dir)\n }\n }\n return options\n}\n\n/**\n * This pobject will contain global options for recognizers\n * see index.js -> vueTouch.config\n * @type {Object}\n */\nexport const config = {\n\n}\n\n/**\n * This object will contain recognizer options for custom events.\n * see index.js -> registerCustomEvent\n * @type {Object}\n */\nexport const customEvents = {\n\n}\n\n/**\n * Names of all the builtin gestures of Hammer\n * @type {Array}\n */\nexport const gestures = [\n 'pan','panstart','panmove','panend','pancancel','panleft','panright','panup','pandown',\n 'pinch','pinchstart','pinchmove','pinchend','pinchcancel','pinchin','pinchout',\n 'press','pressup',\n 'rotate','rotatestart','rotatemove','rotateend','rotatecancel',\n 'swipe','swipeleft','swiperight','swipeup','swipedown',\n 'tap'\n]\n\n/**\n * Maps the gestures to their \"main gesture\" (the name of the recognizer)\n * @type {Object}\n */\nexport const gestureMap = {\n pan: 'pan',\n panstart: 'pan',\n panmove: 'pan',\n panend: 'pan',\n pancancel: 'pan',\n panleft: 'pan',\n panright: 'pan',\n panup: 'pan',\n pandown: 'pan',\n pinch: 'pinch',\n pinchstart: 'pinch',\n pinchmove: 'pinch',\n pinchend: 'pinch',\n pinchcancel: 'pinch',\n pinchin: 'pinch',\n pinchout: 'pinch',\n press: 'press',\n pressup: 'press',\n rotate: 'rotate',\n rotatestart: 'rotate',\n rotatemove: 'rotate',\n rotateend: 'rotate',\n rotatecancel: 'rotate',\n swipe: 'swipe',\n swipeleft: 'swipe',\n swiperight: 'swipe',\n swipeup: 'swipe',\n swipedown: 'swipe',\n tap: 'tap'\n}\n","import Hammer from 'hammerjs'\n\nimport {\n createProp,\n capitalize,\n guardDirections,\n gestures,\n gestureMap,\n directions,\n assign,\n config,\n customEvents\n} from './utils'\n\nexport default {\n props: {\n options: createProp(),\n tapOptions: createProp(),\n panOptions: createProp(),\n pinchOptions: createProp(),\n pressOptions: createProp(),\n rotateOptions: createProp(),\n swipeOptions: createProp(),\n tag: { type: String, default: 'div' },\n enabled: {\n default: true,\n type: [Boolean, Object],\n\n }\n },\n\n mounted() {\n if (!this.$isServer) {\n this.hammer = new Hammer.Manager(this.$el, this.options)\n this.recognizers = {} // not reactive\n this.setupBuiltinRecognizers()\n this.setupCustomRecognizers()\n this.updateEnabled(this.enabled)\n }\n },\n destroyed() {\n if (!this.$isServer) {\n this.hammer.destroy()\n }\n },\n\n watch: {\n enabled: {\n deep: true,\n handler(...args) {\n this.updateEnabled(...args)\n }\n }\n },\n\n methods: {\n\n setupBuiltinRecognizers() {\n // Built-in Hammer events\n // We check weither any event callbacks are registered\n // for the gesture, and if so, add a Recognizer\n for (let i = 0; i < gestures.length; i++) {\n const gesture = gestures[i]\n if (this._events[gesture]) {\n // get the main gesture (e.g. 'panstart' -> 'pan')\n const mainGesture = gestureMap[gesture]\n //merge global and local options\n const options = assign({}, (config[mainGesture] || {}), this[`${mainGesture}Options`])\n // add recognizer for this main gesture\n this.addRecognizer(mainGesture, options)\n // register Event Emit for the specific gesture\n this.addEvent(gesture)\n }\n }\n },\n\n setupCustomRecognizers() {\n // Custom events\n // We get the customGestures and options from the\n // customEvents object, then basically do the same check\n // as we did for the built-in events.\n const gestures = Object.keys(customEvents)\n\n for (let i = 0; i < gestures.length; i++) {\n\n const gesture = gestures[i]\n\n if (this._events[gesture]) {\n const opts = customEvents[gesture]\n const localCustomOpts = this[`${gesture}Options`] || {}\n const options = assign({}, opts, localCustomOpts)\n this.addRecognizer(gesture, options, {mainGesture: options.type})\n this.addEvent(gesture)\n }\n }\n },\n\n /**\n * Registers a new Recognizer with the manager and saves it on the component\n * instance\n * @param {String} gesture See utils.js -> gestures\n * @param {Object} options Hammer options\n * @param {String} mainGesture if gesture is a custom event name, mapping to utils.js -> gestures\n */\n addRecognizer: function addRecognizer(gesture, options, { mainGesture } = {}) {\n // create recognizer, e.g. new Hammer['Swipe'](options)\n if (!this.recognizers[gesture]) {\n const recognizer = new Hammer[capitalize(mainGesture || gesture)](guardDirections(options))\n this.recognizers[gesture] = recognizer\n this.hammer.add(recognizer)\n recognizer.recognizeWith(this.hammer.recognizers)\n }\n },\n\n addEvent(gesture) {\n this.hammer.on(gesture, (e) => this.$emit(gesture, e))\n },\n\n // Enabling / Disabling certain recognizers.\n\n /**\n * Called when the `enabled` prop changes, and during mounted()\n * It enables/disables values according to the value of the `emabled` prop\n * @param {Boolean|Object} newVal If an object: { recognizer: true|false }\n * @param {Boolean|Object} oldVal The previous value\n * @return {undefined}\n */\n updateEnabled: function updateEnabled(newVal, oldVal) {\n if (newVal === true) {\n this.enableAll()\n\n } else if (newVal === false) {\n this.disableAll()\n\n } else if (typeof newVal === 'object') {\n const keys = Object.keys(newVal)\n\n for (let i = 0; i < keys.length; i++) {\n const event = keys[i]\n\n if (this.recognizers[event]) {\n newVal[event]\n ? this.enable(event)\n : this.disable(event)\n }\n }\n }\n },\n\n enable(r) {\n const recognizer = this.recognizers[r]\n if (!recognizer.options.enable) {\n recognizer.set({ enable: true })\n }\n },\n disable(r) {\n const recognizer = this.recognizers[r]\n if (recognizer.options.enable) {\n recognizer.set({ enable: false })\n }\n },\n toggle(r) {\n const recognizer = this.recognizers[r]\n if (recognizer) {\n recognizer.options.enable\n ? this.disable(r)\n : this.enable(r)\n }\n },\n\n enableAll(r) {\n this.toggleAll({ enable: true })\n },\n disableAll(r) {\n this.toggleAll({ enable: false })\n },\n toggleAll({ enable }) {\n const keys = Object.keys(this.recognizers)\n for (let i = 0; i < keys.length; i++) {\n const r = this.recognizers[keys[i]]\n if (r.options.enable !== enable) {\n r.set({ enable: enable })\n }\n }\n },\n\n isEnabled(r) {\n return this.recognizers[r] && this.recognizers[r].options.enable\n }\n },\n\n render(h) {\n return h(this.tag, {}, this.$slots.default)\n }\n}\n","import Component from './component'\nimport { assign, config, customEvents } from './utils'\n\nlet installed = false\n\nconst vueTouch = { config, customEvents }\n\n// Plugin API\n// *********\nvueTouch.install = function install(Vue, opts = {}) {\n const name = opts.name || 'v-touch'\n Vue.component(name, assign(Component, { name }))\n installed = true\n}.bind(vueTouch)\n\nvueTouch.registerCustomEvent = function registerCustomEvent(event, options = {}) {\n if (installed) {\n console.warn(`\n [vue-touch]: Custom Event '${event}' couldn't be added to vue-touch.\n Custom Events have to be registered before installing the plugin.\n `)\n return\n }\n options.event = event\n customEvents[event] = options\n Component.props[`${event}Options`] = {\n type: Object,\n default() { return {} }\n }\n}.bind(vueTouch)\n\nvueTouch.component = Component\n\n// Utilities\n// ********\n\nif (typeof exports == \"object\") {\n module.exports = vueTouch\n} else if (typeof define == \"function\" && define.amd) {\n define([], function(){ return vueTouch })\n} else if (typeof window !== 'undefined' && window.Vue) {\n window.VueTouch = vueTouch\n Vue.use(vueTouch)\n}\n"],"names":["let","const","i","this","gestures"],"mappings":";;;;;;;;AAQO,SAAS,MAAM,CAAC,MAAM,EAAc;;;EACzC,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACvCC,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACzBA,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAChC,KAAKD,IAAIE,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,IAAI,CAAC,MAAM,EAAEA,GAAC,EAAE,EAAE;MACpCD,IAAM,GAAG,GAAG,IAAI,CAACC,GAAC,CAAC,CAAA;MACnB,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;KAC1B;GACF;EACD,OAAO,MAAM;CACd;AAOD,AAAO,SAAS,UAAU,GAAG;EAC3B,OAAO;IACL,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE;GAClC;CACF;AAED,AAAO,SAAS,UAAU,EAAE,GAAG,EAAE;EAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;CAClD;AAOD,AAAOD,IAAM,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;AAO1F,AAAO,SAAS,eAAe,EAAE,OAAO,EAAE;EACxC,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,CAAA;EAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;IAC3B,IAAI,eAAe,GAAG,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IACtD,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE;MAC1E,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;KAC5C,MAAM;MACL,OAAO,CAAC,IAAI,CAAC,iCAAiC,GAAG,GAAG,CAAC,CAAA;KACtD;GACF;EACD,OAAO,OAAO;CACf;AAOD,AAAOA,IAAM,MAAM,GAAG;CAErB,CAAA;AAOD,AAAOA,IAAM,YAAY,GAAG;CAE3B,CAAA;AAMD,AAAOA,IAAM,QAAQ,GAAG;EACtB,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS;EACtF,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU;EAC9E,OAAO,CAAC,SAAS;EACjB,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc;EAC9D,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,WAAW;EACtD,KAAK;CACN,CAAA;AAMD,AAAOA,IAAM,UAAU,GAAG;EACxB,GAAG,EAAE,KAAK;EACV,QAAQ,EAAE,KAAK;EACf,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,KAAK;EACb,SAAS,EAAE,KAAK;EAChB,OAAO,EAAE,KAAK;EACd,QAAQ,EAAE,KAAK;EACf,KAAK,EAAE,KAAK;EACZ,OAAO,EAAE,KAAK;EACd,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,OAAO;EACnB,SAAS,EAAE,OAAO;EAClB,QAAQ,EAAE,OAAO;EACjB,WAAW,EAAE,OAAO;EACpB,OAAO,EAAE,OAAO;EAChB,QAAQ,EAAE,OAAO;EACjB,KAAK,EAAE,OAAO;EACd,OAAO,EAAE,OAAO;EAChB,MAAM,EAAE,QAAQ;EAChB,WAAW,EAAE,QAAQ;EACrB,UAAU,EAAE,QAAQ;EACpB,SAAS,EAAE,QAAQ;EACnB,YAAY,EAAE,QAAQ;EACtB,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,OAAO;EAClB,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,OAAO;EAChB,SAAS,EAAE,OAAO;EAClB,GAAG,EAAE,KAAK;CACX,CAAA;;AChHD,gBAAe;EACb,KAAK,EAAE;IACL,OAAO,EAAE,UAAU,EAAE;IACrB,UAAU,EAAE,UAAU,EAAE;IACxB,UAAU,EAAE,UAAU,EAAE;IACxB,YAAY,EAAE,UAAU,EAAE;IAC1B,YAAY,EAAE,UAAU,EAAE;IAC1B,aAAa,EAAE,UAAU,EAAE;IAC3B,YAAY,EAAE,UAAU,EAAE;IAC1B,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;IACrC,OAAO,EAAE;MACP,OAAO,EAAE,IAAI;MACb,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;KAExB;GACF;EAED,OAAO,kBAAA,GAAG;IACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;MACnB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;MACxD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;MACrB,IAAI,CAAC,uBAAuB,EAAE,CAAA;MAC9B,IAAI,CAAC,sBAAsB,EAAE,CAAA;MAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACjC;GACF;EACD,SAAS,oBAAA,GAAG;IACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;MACnB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;KACtB;GACF;EAED,KAAK,EAAE;IACL,OAAO,EAAE;MACP,IAAI,EAAE,IAAI;MACV,OAAO,kBAAA,GAAU;;;QACf,OAAA,IAAI,EAAC,aAAa,MAAA,CAAC,KAAA,IAAO,CAAC,CAAA;gBAAA;OAC5B;KACF;GACF;EAED,OAAO,EAAE;IAEP,uBAAuB,kCAAA,IAAI;;MAIzB,KAAKD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxCC,IAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,IAAIE,MAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;UAEzBF,IAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;UAEvCA,IAAM,OAAO,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,GAAGE,MAAI,EAAC,WAAc,YAAQ,EAAE,CAAC,CAAA;UAEtFA,MAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;UAExCA,MAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;SACvB;OACF;KACF;IAED,sBAAsB,iCAAA,GAAG;;MAKvBF,IAAMG,WAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;MAE1C,KAAKJ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAGI,WAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAExCH,IAAM,OAAO,GAAGG,WAAQ,CAAC,CAAC,CAAC,CAAA;QAE3B,IAAID,MAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;UACzBF,IAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA;UAClCA,IAAM,eAAe,GAAGE,MAAI,EAAC,OAAU,YAAQ,EAAE,IAAI,EAAE,CAAA;UACvDF,IAAM,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,CAAA;UACjDE,MAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;UACjEA,MAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;SACvB;OACF;KACF;IASD,aAAa,EAAE,SAAS,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAA,EAAsB;+BAAP,GAAG,EAAE,CAAlB;UAAA,WAAW;MAEnE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;QAC9BF,IAAM,UAAU,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;QAC3F,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,UAAU,CAAA;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC3B,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;OAClD;KACF;IAED,QAAQ,mBAAA,CAAC,OAAO,EAAE;;MAChB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,CAAC,EAAE,SAAGE,MAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAA,CAAC,CAAA;KACvD;IAWD,aAAa,EAAE,SAAS,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE;;MACpD,IAAI,MAAM,KAAK,IAAI,EAAE;QACnB,IAAI,CAAC,SAAS,EAAE,CAAA;OAEjB,MAAM,IAAI,MAAM,KAAK,KAAK,EAAE;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAA;OAElB,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACrCF,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEhC,KAAKD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACpCC,IAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;UAErB,IAAIE,MAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAC3B,MAAM,CAAC,KAAK,CAAC;gBACTA,MAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAClBA,MAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;WACxB;SACF;OACF;KACF;IAED,MAAM,iBAAA,CAAC,CAAC,EAAE;MACRF,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;MACtC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE;QAC9B,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;OACjC;KACF;IACD,OAAO,kBAAA,CAAC,CAAC,EAAE;MACTA,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;MACtC,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE;QAC7B,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;OAClC;KACF;IACD,MAAM,iBAAA,CAAC,CAAC,EAAE;MACRA,IAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;MACtC,IAAI,UAAU,EAAE;QACd,UAAU,CAAC,OAAO,CAAC,MAAM;YACrB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;OACnB;KACF;IAED,SAAS,oBAAA,CAAC,CAAC,EAAE;MACX,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;KACjC;IACD,UAAU,qBAAA,CAAC,CAAC,EAAE;MACZ,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;KAClC;IACD,SAAS,oBAAA,CAAC,GAAA,EAAY;wBAAV;UAAA,MAAM;MAChBA,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;MAC1C,KAAKD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACpCC,IAAM,CAAC,GAAGE,MAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE;UAC/B,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;SAC1B;OACF;KACF;IAED,SAAS,oBAAA,CAAC,CAAC,EAAE;MACX,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;KACjE;GACF;EAED,MAAM,iBAAA,CAAC,CAAC,EAAE;IACR,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;GAC5C;CACF,CAAA;;AC/LDH,IAAI,SAAS,GAAG,KAAK,CAAA;AAErBC,IAAM,QAAQ,GAAG,EAAE,QAAA,MAAM,EAAE,cAAA,YAAY,EAAE,CAAA;AAIzC,QAAQ,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,EAAE,IAAS,EAAE;6BAAP,GAAG,EAAE;EAChDA,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAA;EACnC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,MAAA,IAAI,EAAE,CAAC,CAAC,CAAA;EAChD,SAAS,GAAG,IAAI,CAAA;CACjB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAEhB,QAAQ,CAAC,mBAAmB,GAAG,SAAS,mBAAmB,CAAC,KAAK,EAAE,OAAY,EAAE;mCAAP,GAAG,EAAE;EAC7E,IAAI,SAAS,EAAE;IACb,OAAO,CAAC,IAAI,EAAC,qCACgB,GAAE,KAAK,uHAElC,EAAE,CAAA;IACJ,MAAM;GACP;EACD,OAAO,CAAC,KAAK,GAAG,KAAK,CAAA;EACrB,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;EAC7B,SAAS,CAAC,KAAK,EAAC,KAAQ,YAAQ,EAAE,GAAG;IACnC,IAAI,EAAE,MAAM;IACZ,OAAO,oBAAA,GAAG,EAAE,OAAO,EAAE,EAAE;GACxB,CAAA;CACF,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAEhB,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAA;AAK9B,IAAI,OAAO,OAAO,IAAI,QAAQ,EAAE;EAC9B,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAA;CAC1B,MAAM,IAAI,OAAO,MAAM,IAAI,UAAU,IAAI,MAAM,CAAC,GAAG,EAAE;EACpD,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,QAAQ,EAAE,CAAC,CAAA;CAC1C,MAAM,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,GAAG,EAAE;EACtD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;EAC1B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;CAClB;;"} \ No newline at end of file +{"version":3,"file":null,"sources":["../src/utils.js","../src/component.js","../src/index.js"],"sourcesContent":["let Hammer\r\n// Client-side\r\ntry {\r\n Hammer = require('hammerjs')\r\n}\r\n// SSR, pass empty stub\r\ncatch (err) {\r\n Hammer = {}\r\n}\r\n\r\n/**\r\n * Tiny Object.assign replacement\r\n * @param {Object} target Any type of object\r\n * @param {Object} sources Any type of object\r\n * @return {Object} Merged Object\r\n */\r\nexport function assign(target, ...sources) {\r\n for (let i = 0; i < sources.length; i++) {\r\n const source = sources[i]\r\n const keys = Object.keys(source)\r\n for (let i = 0; i < keys.length; i++) {\r\n const key = keys[i]\r\n target[key] = source[key]\r\n }\r\n }\r\n return target\r\n}\r\n\r\n/**\r\n * Small helper method to generate prop options for all the\r\n * *-options props.\r\n * @return {[type]} [description]\r\n */\r\nexport function createProp() {\r\n return {\r\n type: Object,\r\n default: function() { return {} }\r\n }\r\n}\r\n\r\nexport function capitalize (str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n}\r\n\r\n/**\r\n * Directions that VueTouch understands.\r\n * Will be tanslated to Hammer-style directions by guardDirections()\r\n * @type {Array}\r\n */\r\nexport const directions = ['up', 'down', 'left', 'right', 'horizontal', 'vertical', 'all']\r\n\r\n/**\r\n * Translates VueTouch direction names into Hammer Direction numbers.\r\n * @param {Objects} options Hammer Options\r\n * @return {Object} [Hammer Options]\r\n */\r\nexport function guardDirections (options) {\r\n var dir = options.direction\r\n if (typeof dir === 'string') {\r\n var hammerDirection = 'DIRECTION_' + dir.toUpperCase()\r\n if (directions.indexOf(dir) > -1 && Hammer.hasOwnProperty(hammerDirection)) {\r\n options.direction = Hammer[hammerDirection]\r\n } else {\r\n console.warn('[vue-touch] invalid direction: ' + dir)\r\n }\r\n }\r\n return options\r\n}\r\n\r\n/**\r\n * This pobject will contain global options for recognizers\r\n * see index.js -> vueTouch.config\r\n * @type {Object}\r\n */\r\nexport const config = {\r\n\r\n}\r\n\r\n/**\r\n * This object will contain recognizer options for custom events.\r\n * see index.js -> registerCustomEvent\r\n * @type {Object}\r\n */\r\nexport const customEvents = {\r\n\r\n}\r\n\r\n/**\r\n * Names of all the builtin gestures of Hammer\r\n * @type {Array}\r\n */\r\nexport const gestures = [\r\n 'pan','panstart','panmove','panend','pancancel','panleft','panright','panup','pandown',\r\n 'pinch','pinchstart','pinchmove','pinchend','pinchcancel','pinchin','pinchout',\r\n 'press','pressup',\r\n 'rotate','rotatestart','rotatemove','rotateend','rotatecancel',\r\n 'swipe','swipeleft','swiperight','swipeup','swipedown',\r\n 'tap'\r\n]\r\n\r\n/**\r\n * Maps the gestures to their \"main gesture\" (the name of the recognizer)\r\n * @type {Object}\r\n */\r\nexport const gestureMap = {\r\n pan: 'pan',\r\n panstart: 'pan',\r\n panmove: 'pan',\r\n panend: 'pan',\r\n pancancel: 'pan',\r\n panleft: 'pan',\r\n panright: 'pan',\r\n panup: 'pan',\r\n pandown: 'pan',\r\n pinch: 'pinch',\r\n pinchstart: 'pinch',\r\n pinchmove: 'pinch',\r\n pinchend: 'pinch',\r\n pinchcancel: 'pinch',\r\n pinchin: 'pinch',\r\n pinchout: 'pinch',\r\n press: 'press',\r\n pressup: 'press',\r\n rotate: 'rotate',\r\n rotatestart: 'rotate',\r\n rotatemove: 'rotate',\r\n rotateend: 'rotate',\r\n rotatecancel: 'rotate',\r\n swipe: 'swipe',\r\n swipeleft: 'swipe',\r\n swiperight: 'swipe',\r\n swipeup: 'swipe',\r\n swipedown: 'swipe',\r\n tap: 'tap'\r\n}\r\n","let Hammer\n// Client-side\ntry {\n Hammer = require('hammerjs')\n}\r\n// SSR, pass empty stub\r\ncatch (err) {\r\n Hammer = {}\r\n}\r\n\r\nimport {\r\n createProp,\r\n capitalize,\r\n guardDirections,\r\n gestures,\r\n gestureMap,\r\n directions,\r\n assign,\r\n config,\r\n customEvents\r\n} from './utils'\r\n\r\nexport default {\r\n props: {\r\n options: createProp(),\r\n tapOptions: createProp(),\r\n panOptions: createProp(),\r\n pinchOptions: createProp(),\r\n pressOptions: createProp(),\r\n rotateOptions: createProp(),\r\n swipeOptions: createProp(),\r\n tag: { type: String, default: 'div' },\r\n enabled: {\r\n default: true,\r\n type: [Boolean, Object],\r\n\r\n }\r\n },\r\n\r\n mounted() {\r\n if (!this.$isServer) {\r\n this.hammer = new Hammer.Manager(this.$el, this.options)\r\n this.recognizers = {} // not reactive\r\n this.setupBuiltinRecognizers()\r\n this.setupCustomRecognizers()\r\n this.updateEnabled(this.enabled)\r\n }\r\n },\r\n destroyed() {\r\n if (!this.$isServer) {\r\n this.hammer.destroy()\r\n }\r\n },\r\n\r\n watch: {\r\n enabled: {\r\n deep: true,\r\n handler(...args) {\r\n this.updateEnabled(...args)\r\n }\r\n }\r\n },\r\n\r\n methods: {\r\n\r\n setupBuiltinRecognizers() {\r\n // Built-in Hammer events\r\n // We check weither any event callbacks are registered\r\n // for the gesture, and if so, add a Recognizer\r\n for (let i = 0; i < gestures.length; i++) {\r\n const gesture = gestures[i]\r\n if (this._events[gesture]) {\r\n // get the main gesture (e.g. 'panstart' -> 'pan')\r\n const mainGesture = gestureMap[gesture]\r\n //merge global and local options\r\n const options = assign({}, (config[mainGesture] || {}), this[`${mainGesture}Options`])\r\n // add recognizer for this main gesture\r\n this.addRecognizer(mainGesture, options)\r\n // register Event Emit for the specific gesture\r\n this.addEvent(gesture)\r\n }\r\n }\r\n },\r\n\r\n setupCustomRecognizers() {\r\n // Custom events\r\n // We get the customGestures and options from the\r\n // customEvents object, then basically do the same check\r\n // as we did for the built-in events.\r\n const gestures = Object.keys(customEvents)\r\n\r\n for (let i = 0; i < gestures.length; i++) {\r\n\r\n const gesture = gestures[i]\r\n\r\n if (this._events[gesture]) {\r\n const opts = customEvents[gesture]\r\n const localCustomOpts = this[`${gesture}Options`] || {}\r\n const options = assign({}, opts, localCustomOpts)\r\n this.addRecognizer(gesture, options, {mainGesture: options.type})\r\n this.addEvent(gesture)\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * Registers a new Recognizer with the manager and saves it on the component\r\n * instance\r\n * @param {String} gesture See utils.js -> gestures\r\n * @param {Object} options Hammer options\r\n * @param {String} mainGesture if gesture is a custom event name, mapping to utils.js -> gestures\r\n */\r\n addRecognizer: function addRecognizer(gesture, options, { mainGesture } = {}) {\r\n // create recognizer, e.g. new Hammer['Swipe'](options)\r\n if (!this.recognizers[gesture]) {\r\n const recognizer = new Hammer[capitalize(mainGesture || gesture)](guardDirections(options))\r\n this.recognizers[gesture] = recognizer\r\n this.hammer.add(recognizer)\r\n recognizer.recognizeWith(this.hammer.recognizers)\r\n }\r\n },\r\n\r\n addEvent(gesture) {\r\n this.hammer.on(gesture, (e) => this.$emit(gesture, e))\r\n },\r\n\r\n // Enabling / Disabling certain recognizers.\r\n\r\n /**\r\n * Called when the `enabled` prop changes, and during mounted()\r\n * It enables/disables values according to the value of the `emabled` prop\r\n * @param {Boolean|Object} newVal If an object: { recognizer: true|false }\r\n * @param {Boolean|Object} oldVal The previous value\r\n * @return {undefined}\r\n */\r\n updateEnabled: function updateEnabled(newVal, oldVal) {\r\n if (newVal === true) {\r\n this.enableAll()\r\n\r\n } else if (newVal === false) {\r\n this.disableAll()\r\n\r\n } else if (typeof newVal === 'object') {\r\n const keys = Object.keys(newVal)\r\n\r\n for (let i = 0; i < keys.length; i++) {\r\n const event = keys[i]\r\n\r\n if (this.recognizers[event]) {\r\n newVal[event]\r\n ? this.enable(event)\r\n : this.disable(event)\r\n }\r\n }\r\n }\r\n },\r\n\r\n enable(r) {\r\n const recognizer = this.recognizers[r]\r\n if (!recognizer.options.enable) {\r\n recognizer.set({ enable: true })\r\n }\r\n },\r\n disable(r) {\r\n const recognizer = this.recognizers[r]\r\n if (recognizer.options.enable) {\r\n recognizer.set({ enable: false })\r\n }\r\n },\r\n toggle(r) {\r\n const recognizer = this.recognizers[r]\r\n if (recognizer) {\r\n recognizer.options.enable\r\n ? this.disable(r)\r\n : this.enable(r)\r\n }\r\n },\r\n\r\n enableAll(r) {\r\n this.toggleAll({ enable: true })\r\n },\r\n disableAll(r) {\r\n this.toggleAll({ enable: false })\r\n },\r\n toggleAll({ enable }) {\r\n const keys = Object.keys(this.recognizers)\r\n for (let i = 0; i < keys.length; i++) {\r\n const r = this.recognizers[keys[i]]\r\n if (r.options.enable !== enable) {\r\n r.set({ enable: enable })\r\n }\r\n }\r\n },\r\n\r\n isEnabled(r) {\r\n return this.recognizers[r] && this.recognizers[r].options.enable\r\n }\r\n },\r\n\r\n render(h) {\r\n return h(this.tag, {}, this.$slots.default)\r\n }\r\n}\r\n","import Component from './component'\r\nimport { assign, config, customEvents } from './utils'\r\n\r\nlet installed = false\r\n\r\nconst vueTouch = { config, customEvents }\r\n\r\n// Plugin API\r\n// *********\r\nvueTouch.install = function install(Vue, opts = {}) {\r\n const name = opts.name || 'v-touch'\r\n Vue.component(name, assign(Component, { name }))\r\n installed = true\r\n}.bind(vueTouch)\r\n\r\nvueTouch.registerCustomEvent = function registerCustomEvent(event, options = {}) {\r\n if (installed) {\r\n console.warn(`\r\n [vue-touch]: Custom Event '${event}' couldn't be added to vue-touch.\r\n Custom Events have to be registered before installing the plugin.\r\n `)\r\n return\r\n }\r\n options.event = event\r\n customEvents[event] = options\r\n Component.props[`${event}Options`] = {\r\n type: Object,\r\n default() { return {} }\r\n }\r\n}.bind(vueTouch)\r\n\r\nvueTouch.component = Component\r\n\r\n// Utilities\r\n// ********\r\n\r\nif (typeof exports == \"object\") {\r\n module.exports = vueTouch\r\n} else if (typeof define == \"function\" && define.amd) {\r\n define([], function(){ return vueTouch })\r\n} else if (typeof window !== 'undefined' && window.Vue) {\r\n window.VueTouch = vueTouch\r\n Vue.use(vueTouch)\r\n}\r\n"],"names":["let","Hammer","const","i","this","gestures"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vue-touch.min.js b/dist/vue-touch.min.js index 9be236b..a86dbec 100644 --- a/dist/vue-touch.min.js +++ b/dist/vue-touch.min.js @@ -1 +1 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(require("hammerjs")):"function"==typeof define&&define.amd?define(["hammerjs"],n):n(e.Hammer)}(this,function(e){"use strict";function n(e){for(var n=[],t=arguments.length-1;t-- >0;)n[t]=arguments[t+1];for(var i=0;i-1&&e.hasOwnProperty(i)?n.direction=e[i]:console.warn("[vue-touch] invalid direction: "+t)}return n}e="default"in e?e.default:e;var r=["up","down","left","right","horizontal","vertical","all"],a={},s={},p=["pan","panstart","panmove","panend","pancancel","panleft","panright","panup","pandown","pinch","pinchstart","pinchmove","pinchend","pinchcancel","pinchin","pinchout","press","pressup","rotate","rotatestart","rotatemove","rotateend","rotatecancel","swipe","swipeleft","swiperight","swipeup","swipedown","tap"],c={pan:"pan",panstart:"pan",panmove:"pan",panend:"pan",pancancel:"pan",panleft:"pan",panright:"pan",panup:"pan",pandown:"pan",pinch:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",pinchin:"pinch",pinchout:"pinch",press:"press",pressup:"press",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe",tap:"tap"},l={props:{options:t(),tapOptions:t(),panOptions:t(),pinchOptions:t(),pressOptions:t(),rotateOptions:t(),swipeOptions:t(),tag:{type:String,default:"div"},enabled:{default:!0,type:[Boolean,Object]}},mounted:function(){this.$isServer||(this.hammer=new e.Manager(this.$el,this.options),this.recognizers={},this.setupBuiltinRecognizers(),this.setupCustomRecognizers(),this.updateEnabled(this.enabled))},destroyed:function(){this.$isServer||this.hammer.destroy()},watch:{enabled:{deep:!0,handler:function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];(t=this).updateEnabled.apply(t,e);var t}}},methods:{setupBuiltinRecognizers:function(){for(var e=this,t=0;t0;)n[t]=arguments[t+1];for(var i=0;i-1&&o.hasOwnProperty(t)?e.direction=o[t]:console.warn("[vue-touch] invalid direction: "+n)}return e}var o;try{o=require("hammerjs")}catch(e){o={}}var r,a=["up","down","left","right","horizontal","vertical","all"],s={},p={},c=["pan","panstart","panmove","panend","pancancel","panleft","panright","panup","pandown","pinch","pinchstart","pinchmove","pinchend","pinchcancel","pinchin","pinchout","press","pressup","rotate","rotatestart","rotatemove","rotateend","rotatecancel","swipe","swipeleft","swiperight","swipeup","swipedown","tap"],l={pan:"pan",panstart:"pan",panmove:"pan",panend:"pan",pancancel:"pan",panleft:"pan",panright:"pan",panup:"pan",pandown:"pan",pinch:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",pinchin:"pinch",pinchout:"pinch",press:"press",pressup:"press",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe",tap:"tap"};try{r=require("hammerjs")}catch(e){r={}}var h={props:{options:n(),tapOptions:n(),panOptions:n(),pinchOptions:n(),pressOptions:n(),rotateOptions:n(),swipeOptions:n(),tag:{type:String,default:"div"},enabled:{default:!0,type:[Boolean,Object]}},mounted:function(){this.$isServer||(this.hammer=new r.Manager(this.$el,this.options),this.recognizers={},this.setupBuiltinRecognizers(),this.setupCustomRecognizers(),this.updateEnabled(this.enabled))},destroyed:function(){this.$isServer||this.hammer.destroy()},watch:{enabled:{deep:!0,handler:function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];(t=this).updateEnabled.apply(t,e);var t}}},methods:{setupBuiltinRecognizers:function(){for(var n=this,t=0;t