{"version":3,"sources":["jsdelivr-header.js","webpack://AwesomeVueGallery/webpack/bootstrap","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://AwesomeVueGallery/src/components/Gallery.vue?eec8","webpack://AwesomeVueGallery/node_modules/core-js/internals/ie8-dom-define.js","webpack://AwesomeVueGallery/src/components/Gallery.vue?d10a","webpack://AwesomeVueGallery/node_modules/core-js/internals/html.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/a-function.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/require-object-coercible.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/array-method-has-species-support.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/to-absolute-index.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/export.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-get-own-property-names.js","webpack://AwesomeVueGallery/node_modules/css-loader/dist/runtime/api.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-define-properties.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/a-possible-prototype.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/path.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/indexed-object.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/native-symbol.js","webpack://AwesomeVueGallery/node_modules/vue-style-loader/lib/listToStyles.js","webpack://AwesomeVueGallery/node_modules/vue-style-loader/lib/addStylesClient.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/array-includes.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/to-length.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/has.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/shared.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/own-keys.js","webpack://AwesomeVueGallery/src/components/Gallery.vue?3ab1","webpack://AwesomeVueGallery/node_modules/core-js/internals/whitespaces.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/string-trim.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/create-property-descriptor.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/array-species-create.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/internal-state.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/redefine.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/inherit-if-required.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/enum-bug-keys.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/to-object.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-create.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/native-weak-map.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/an-object.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/descriptors.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/is-object.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/uid.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/is-forced.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-define-property.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/function-to-string.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/to-integer.js","webpack://AwesomeVueGallery/node_modules/core-js/modules/es.number.constructor.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/well-known-symbol.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/array-iteration.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/to-primitive.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/is-pure.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/classof-raw.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/shared-store.js","webpack://AwesomeVueGallery/node_modules/hammerjs/hammer.js","webpack://AwesomeVueGallery/(webpack)/buildin/global.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-keys-internal.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/document-create-element.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/set-global.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/hidden-keys.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/fails.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/get-built-in.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-set-prototype-of.js","webpack://AwesomeVueGallery/node_modules/core-js/modules/es.array.map.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/global.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/object-keys.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/copy-constructor-properties.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/is-array.js","webpack://AwesomeVueGallery/node_modules/current-script-polyfill/currentScript.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/shared-key.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/bind-context.js","webpack://AwesomeVueGallery/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://AwesomeVueGallery/src/components/Gallery.vue?bc64","webpack://AwesomeVueGallery/src/components/Gallery.vue","webpack://AwesomeVueGallery/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://AwesomeVueGallery/src/components/Gallery.vue?749d","webpack://AwesomeVueGallery/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://AwesomeVueGallery/node_modules/core-js/internals/to-indexed-object.js"],"names":[],"mappings":"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","file":"/npm/awesome_vue_gallery@1.0.2/dist/AwesomeVueGallery.common.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/awesome_vue_gallery@1.0.2/dist/AwesomeVueGallery.common.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n  O = toIndexedObject(O);\n  P = toPrimitive(P, true);\n  if (IE8_DOM_DEFINE) try {\n    return nativeGetOwnPropertyDescriptor(O, P);\n  } catch (error) { /* empty */ }\n  if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","exports = module.exports = require(\"../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".vue-lb-box[data-v-5f8d9e95]{width:100%}.vue-lb-container[data-v-5f8d9e95]{align-items:center;background-color:rgba(0,0,0,.8);-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:-webkit-box;display:flex;height:100%;justify-content:center;left:0;padding:10px;position:fixed;top:0;width:100%;z-index:2000;-webkit-align-items:center;-moz-box-sizing:border-box;-webkit-justify-content:center;-ms-flex-align:center;-webkit-box-align:center;-ms-flex-pack:center;-webkit-box-pack:center}.vue-lb-content[data-v-5f8d9e95]{margin-bottom:60px;max-width:1024px;position:relative}.vue-lb-header[data-v-5f8d9e95]{display:-ms-flexbox;display:-webkit-box;display:flex;justify-content:space-between;height:40px;-webkit-justify-content:space-between;-ms-flex-pack:justify;-webkit-box-pack:justify}.vue-lb-button-close[data-v-5f8d9e95]{background:none;border:none;cursor:pointer;outline:none;position:relative;top:0;vertical-align:bottom;height:40px;margin-right:-10px;padding:10px;width:40px}.vue-lb-figure[data-v-5f8d9e95]{margin:0;display:block;position:relative}img.vue-lb-modal-image[data-v-5f8d9e95]{max-height:calc(100vh - 140px);cursor:pointer;display:block;height:auto;margin:0 auto;max-width:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.vue-lb-info[data-v-5f8d9e95]{visibility:initial;position:absolute;bottom:25px;color:#fff;background-color:rgba(0,0,0,.7);height:40px;width:100%;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;text-align:center}.vue-lb-info h4[data-v-5f8d9e95]{margin:10px 0}.vue-lb-footer[data-v-5f8d9e95]{-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;cursor:auto;display:-ms-flexbox;display:-webkit-box;display:flex;justify-content:space-between;left:0;line-height:1.3;padding-bottom:5px;padding-left:0;padding-right:0;padding-top:5px;-moz-box-sizing:border-box;-webkit-justify-content:space-between;-ms-flex-pack:justify;-webkit-box-pack:justify}.vue-lb-footer-info[data-v-5f8d9e95]{display:block;-webkit-box-flex:1;flex:1 1 0;-webkit-flex:1 1 0;-ms-flex:1 1 0}.vue-lb-footer-count[data-v-5f8d9e95]{color:hsla(0,0%,100%,.75);font-size:.85em;padding-left:1em}.vue-lb-thumbnail[data-v-5f8d9e95]{bottom:10px;height:50px;padding:0 50px;text-align:center;white-space:nowrap;display:inline-block;position:relative}.vue-lb-modal-thumbnail[data-v-5f8d9e95]{-webkit-box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2)}.vue-lb-modal-thumbnail[data-v-5f8d9e95],.vue-lb-modal-thumbnail-active[data-v-5f8d9e95]{background-position:50%;background-size:cover;border-radius:2px;cursor:pointer;display:inline-block;height:50px;margin:2px;overflow:hidden;width:50px}.vue-lb-modal-thumbnail-active[data-v-5f8d9e95]{-webkit-box-shadow:inset 0 0 0 2px #fff;box-shadow:inset 0 0 0 2px #fff}.vue-lb-thumbnail-arrow[data-v-5f8d9e95]{height:54px;width:40px;background:none;border:none;border-radius:4px;cursor:pointer;outline:none;padding:10px;position:absolute;top:50%;-webkit-touch-callout:none;user-select:none;height:50px;margin-top:-25px;width:30px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.vue-lb-thumbnail-left[data-v-5f8d9e95]{left:10px}.vue-lb-thumbnail-right[data-v-5f8d9e95]{right:10px}.vue-lb-arrow[data-v-5f8d9e95]{background:none;border:none;border-radius:4px;cursor:pointer;outline:none;padding:10px;position:absolute;top:50%;-webkit-touch-callout:none;user-select:none;height:120px;margin-top:-60px;width:40px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.vue-lb-left[data-v-5f8d9e95]{left:10px}.vue-lb-right[data-v-5f8d9e95]{right:10px}.vue-lb-open[data-v-5f8d9e95]{overflow:hidden}.vue-lb-thumbnail-wrapper[data-v-5f8d9e95]{bottom:10px;height:50px;left:0;margin:0 auto;position:absolute;right:0;text-align:center;top:auto}@media (min-width:500px){.vue-lb-thumbnail-arrow[data-v-5f8d9e95]{width:40px}}@media (min-width:768px){.vue-lb-arrow[data-v-5f8d9e95]{width:70px}}.fade-enter-active[data-v-5f8d9e95],.fade-leave-active[data-v-5f8d9e95]{-webkit-transition:opacity .2s ease;transition:opacity .2s ease}.fade-enter[data-v-5f8d9e95],.fade-leave-to[data-v-5f8d9e95]{opacity:0}.no-scroll[data-v-5f8d9e95]{overflow-y:hidden}.videoWrapper[data-v-5f8d9e95]{position:relative;padding-bottom:56.25%;padding-top:25px;height:0}.videoWrapper iframe[data-v-5f8d9e95]{position:absolute;top:0;left:0;width:100%;height:100%}\", \"\"]);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n  return Object.defineProperty(createElement('div'), 'a', {\n    get: function () { return 7; }\n  }).a != 7;\n});\n","import mod from \"-!../../node_modules/vue-style-loader/index.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gallery.vue?vue&type=style&index=0&id=5f8d9e95&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/vue-style-loader/index.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gallery.vue?vue&type=style&index=0&id=5f8d9e95&scoped=true&lang=css&\"","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","module.exports = function (it) {\n  if (typeof it != 'function') {\n    throw TypeError(String(it) + ' is not a function');\n  } return it;\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n  if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n  return it;\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n  return !fails(function () {\n    var array = [];\n    var constructor = array.constructor = {};\n    constructor[SPECIES] = function () {\n      return { foo: 1 };\n    };\n    return array[METHOD_NAME](Boolean).foo !== 1;\n  });\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).\nmodule.exports = function (index, length) {\n  var integer = toInteger(index);\n  return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n  options.target      - name of the target object\n  options.global      - target is the global object\n  options.stat        - export as static methods of target\n  options.proto       - export as prototype methods of target\n  options.real        - real prototype method for the `pure` version\n  options.forced      - export even if the native feature is available\n  options.bind        - bind methods to the target, required for the `pure` version\n  options.wrap        - wrap constructors to preventing global pollution, required for the `pure` version\n  options.unsafe      - use the simple assignment of property instead of delete + defineProperty\n  options.sham        - add a flag to not completely full polyfills\n  options.enumerable  - export as enumerable property\n  options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n  var TARGET = options.target;\n  var GLOBAL = options.global;\n  var STATIC = options.stat;\n  var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n  if (GLOBAL) {\n    target = global;\n  } else if (STATIC) {\n    target = global[TARGET] || setGlobal(TARGET, {});\n  } else {\n    target = (global[TARGET] || {}).prototype;\n  }\n  if (target) for (key in source) {\n    sourceProperty = source[key];\n    if (options.noTargetGet) {\n      descriptor = getOwnPropertyDescriptor(target, key);\n      targetProperty = descriptor && descriptor.value;\n    } else targetProperty = target[key];\n    FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n    // contained in target\n    if (!FORCED && targetProperty !== undefined) {\n      if (typeof sourceProperty === typeof targetProperty) continue;\n      copyConstructorProperties(sourceProperty, targetProperty);\n    }\n    // add a flag to not completely full polyfills\n    if (options.sham || (targetProperty && targetProperty.sham)) {\n      createNonEnumerableProperty(sourceProperty, 'sham', true);\n    }\n    // extend global\n    redefine(target, key, sourceProperty, options);\n  }\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n  return internalObjectKeys(O, hiddenKeys);\n};\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = cssWithMappingToString(item, useSourceMap);\n\n      if (item[2]) {\n        return \"@media \".concat(item[2], \"{\").concat(content, \"}\");\n      }\n\n      return content;\n    }).join('');\n  }; // import a list of modules into the list\n  // eslint-disable-next-line func-names\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      // eslint-disable-next-line no-param-reassign\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      // eslint-disable-next-line prefer-destructuring\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (var _i = 0; _i < modules.length; _i++) {\n      var item = modules[_i]; // skip already imported module\n      // this implementation is not 100% perfect for weird media query combinations\n      // when a module is imported multiple times with different media queries.\n      // I hope this will never occur (Hey this way we have smaller bundles)\n\n      if (item[0] == null || !alreadyImportedModules[item[0]]) {\n        if (mediaQuery && !item[2]) {\n          item[2] = mediaQuery;\n        } else if (mediaQuery) {\n          item[2] = \"(\".concat(item[2], \") and (\").concat(mediaQuery, \")\");\n        }\n\n        list.push(item);\n      }\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n  var cssMapping = item[3];\n\n  if (!cssMapping) {\n    return content;\n  }\n\n  if (useSourceMap && typeof btoa === 'function') {\n    var sourceMapping = toComment(cssMapping);\n    var sourceURLs = cssMapping.sources.map(function (source) {\n      return \"/*# sourceURL=\".concat(cssMapping.sourceRoot).concat(source, \" */\");\n    });\n    return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n  }\n\n  return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n  // eslint-disable-next-line no-undef\n  var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n  var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n  return \"/*# \".concat(data, \" */\");\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n  anObject(O);\n  var keys = objectKeys(Properties);\n  var length = keys.length;\n  var index = 0;\n  var key;\n  while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n  return O;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it) && it !== null) {\n    throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n  } return it;\n};\n","module.exports = require('../internals/global');\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n  // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n  // eslint-disable-next-line no-prototype-builtins\n  return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n  return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n  // Chrome 38 Symbol has incorrect toString conversion\n  // eslint-disable-next-line no-undef\n  return !String(Symbol());\n});\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n  var styles = []\n  var newStyles = {}\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i]\n    var id = item[0]\n    var css = item[1]\n    var media = item[2]\n    var sourceMap = item[3]\n    var part = {\n      id: parentId + ':' + i,\n      css: css,\n      media: media,\n      sourceMap: sourceMap\n    }\n    if (!newStyles[id]) {\n      styles.push(newStyles[id] = { id: id, parts: [part] })\n    } else {\n      newStyles[id].parts.push(part)\n    }\n  }\n  return styles\n}\n","/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n  Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n  if (!hasDocument) {\n    throw new Error(\n    'vue-style-loader cannot be used in a non-browser environment. ' +\n    \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n  ) }\n}\n\n/*\ntype StyleObject = {\n  id: number;\n  parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n  css: string;\n  media: string;\n  sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n  [id: number]: {\n    id: number,\n    refs: number,\n    parts: Array<(obj?: StyleObjectPart) => void>\n  }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n  isProduction = _isProduction\n\n  options = _options || {}\n\n  var styles = listToStyles(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = listToStyles(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n  if (styleElement) {\n    if (isProduction) {\n      // has SSR styles and in production mode.\n      // simply do nothing.\n      return noop\n    } else {\n      // has SSR styles but in dev mode.\n      // for some reason Chrome can't handle source map in server-rendered\n      // style tags - source maps in <style> only works if the style tag is\n      // created and inserted dynamically. So we remove the server rendered\n      // styles and inject new ones.\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  update(obj)\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n  if (options.ssrId) {\n    styleElement.setAttribute(ssrIdKey, obj.id)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n  return function ($this, el, fromIndex) {\n    var O = toIndexedObject($this);\n    var length = toLength(O.length);\n    var index = toAbsoluteIndex(fromIndex, length);\n    var value;\n    // Array#includes uses SameValueZero equality algorithm\n    // eslint-disable-next-line no-self-compare\n    if (IS_INCLUDES && el != el) while (length > index) {\n      value = O[index++];\n      // eslint-disable-next-line no-self-compare\n      if (value != value) return true;\n    // Array#indexOf ignores holes, Array#includes - not\n    } else for (;length > index; index++) {\n      if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n    } return !IS_INCLUDES && -1;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.includes` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n  includes: createMethod(true),\n  // `Array.prototype.indexOf` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n  indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n  return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n  return hasOwnProperty.call(it, key);\n};\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n  return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n  version: '3.3.2',\n  mode: IS_PURE ? 'pure' : 'global',\n  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n  var keys = getOwnPropertyNamesModule.f(anObject(it));\n  var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n  return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gallery.vue?vue&type=style&index=0&id=5f8d9e95&scoped=true&lang=css&\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"22fe44d4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n  return function ($this) {\n    var string = String(requireObjectCoercible($this));\n    if (TYPE & 1) string = string.replace(ltrim, '');\n    if (TYPE & 2) string = string.replace(rtrim, '');\n    return string;\n  };\n};\n\nmodule.exports = {\n  // `String.prototype.{ trimLeft, trimStart }` methods\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n  start: createMethod(1),\n  // `String.prototype.{ trimRight, trimEnd }` methods\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n  end: createMethod(2),\n  // `String.prototype.trim` method\n  // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n  trim: createMethod(3)\n};\n","module.exports = function (bitmap, value) {\n  return {\n    enumerable: !(bitmap & 1),\n    configurable: !(bitmap & 2),\n    writable: !(bitmap & 4),\n    value: value\n  };\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n  var C;\n  if (isArray(originalArray)) {\n    C = originalArray.constructor;\n    // cross-realm fallback\n    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n    else if (isObject(C)) {\n      C = C[SPECIES];\n      if (C === null) C = undefined;\n    }\n  } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n  return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n  return function (it) {\n    var state;\n    if (!isObject(it) || (state = get(it)).type !== TYPE) {\n      throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n    } return state;\n  };\n};\n\nif (NATIVE_WEAK_MAP) {\n  var store = new WeakMap();\n  var wmget = store.get;\n  var wmhas = store.has;\n  var wmset = store.set;\n  set = function (it, metadata) {\n    wmset.call(store, it, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return wmget.call(store, it) || {};\n  };\n  has = function (it) {\n    return wmhas.call(store, it);\n  };\n} else {\n  var STATE = sharedKey('state');\n  hiddenKeys[STATE] = true;\n  set = function (it, metadata) {\n    createNonEnumerableProperty(it, STATE, metadata);\n    return metadata;\n  };\n  get = function (it) {\n    return objectHas(it, STATE) ? it[STATE] : {};\n  };\n  has = function (it) {\n    return objectHas(it, STATE);\n  };\n}\n\nmodule.exports = {\n  set: set,\n  get: get,\n  has: has,\n  enforce: enforce,\n  getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar nativeFunctionToString = require('../internals/function-to-string');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(nativeFunctionToString).split('toString');\n\nshared('inspectSource', function (it) {\n  return nativeFunctionToString.call(it);\n});\n\n(module.exports = function (O, key, value, options) {\n  var unsafe = options ? !!options.unsafe : false;\n  var simple = options ? !!options.enumerable : false;\n  var noTargetGet = options ? !!options.noTargetGet : false;\n  if (typeof value == 'function') {\n    if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n    enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n  }\n  if (O === global) {\n    if (simple) O[key] = value;\n    else setGlobal(key, value);\n    return;\n  } else if (!unsafe) {\n    delete O[key];\n  } else if (!noTargetGet && O[key]) {\n    simple = true;\n  }\n  if (simple) O[key] = value;\n  else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n  return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this);\n});\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n  var NewTarget, NewTargetPrototype;\n  if (\n    // it can work only with native `setPrototypeOf`\n    setPrototypeOf &&\n    // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n    typeof (NewTarget = dummy.constructor) == 'function' &&\n    NewTarget !== Wrapper &&\n    isObject(NewTargetPrototype = NewTarget.prototype) &&\n    NewTargetPrototype !== Wrapper.prototype\n  ) setPrototypeOf($this, NewTargetPrototype);\n  return $this;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// IE8- don't enum bug keys\nmodule.exports = [\n  'constructor',\n  'hasOwnProperty',\n  'isPrototypeOf',\n  'propertyIsEnumerable',\n  'toLocaleString',\n  'toString',\n  'valueOf'\n];\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n  return Object(requireObjectCoercible(argument));\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n  // Thrash, waste and sodomy: IE GC bug\n  var iframe = documentCreateElement('iframe');\n  var length = enumBugKeys.length;\n  var lt = '<';\n  var script = 'script';\n  var gt = '>';\n  var js = 'java' + script + ':';\n  var iframeDocument;\n  iframe.style.display = 'none';\n  html.appendChild(iframe);\n  iframe.src = String(js);\n  iframeDocument = iframe.contentWindow.document;\n  iframeDocument.open();\n  iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n  iframeDocument.close();\n  createDict = iframeDocument.F;\n  while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n  return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n  var result;\n  if (O !== null) {\n    Empty[PROTOTYPE] = anObject(O);\n    result = new Empty();\n    Empty[PROTOTYPE] = null;\n    // add \"__proto__\" for Object.getPrototypeOf polyfill\n    result[IE_PROTO] = O;\n  } else result = createDict();\n  return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","var global = require('../internals/global');\nvar nativeFunctionToString = require('../internals/function-to-string');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap));\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n  if (!isObject(it)) {\n    throw TypeError(String(it) + ' is not an object');\n  } return it;\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (it) {\n  return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n  return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n  return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n  object[key] = value;\n  return object;\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n  var value = data[normalize(feature)];\n  return value == POLYFILL ? true\n    : value == NATIVE ? false\n    : typeof detection == 'function' ? fails(detection)\n    : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n  return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n  anObject(O);\n  P = toPrimitive(P, true);\n  anObject(Attributes);\n  if (IE8_DOM_DEFINE) try {\n    return nativeDefineProperty(O, P, Attributes);\n  } catch (error) { /* empty */ }\n  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n  if ('value' in Attributes) O[P] = Attributes.value;\n  return O;\n};\n","var shared = require('../internals/shared');\n\nmodule.exports = shared('native-function-to-string', Function.toString);\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n  return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof-raw');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\n\n// Opera ~12 has broken Object#toString\nvar BROKEN_CLASSOF = classof(create(NumberPrototype)) == NUMBER;\n\n// `ToNumber` abstract operation\n// https://tc39.github.io/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n  var it = toPrimitive(argument, false);\n  var first, third, radix, maxCode, digits, length, index, code;\n  if (typeof it == 'string' && it.length > 2) {\n    it = trim(it);\n    first = it.charCodeAt(0);\n    if (first === 43 || first === 45) {\n      third = it.charCodeAt(2);\n      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n    } else if (first === 48) {\n      switch (it.charCodeAt(1)) {\n        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n        default: return +it;\n      }\n      digits = it.slice(2);\n      length = digits.length;\n      for (index = 0; index < length; index++) {\n        code = digits.charCodeAt(index);\n        // parseInt parses a string to a first unavailable symbol\n        // but ToNumber should return NaN if a string contains unavailable symbols\n        if (code < 48 || code > maxCode) return NaN;\n      } return parseInt(digits, radix);\n    }\n  } return +it;\n};\n\n// `Number` constructor\n// https://tc39.github.io/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n  var NumberWrapper = function Number(value) {\n    var it = arguments.length < 1 ? 0 : value;\n    var dummy = this;\n    return dummy instanceof NumberWrapper\n      // check on 1..constructor(foo) case\n      && (BROKEN_CLASSOF ? fails(function () { NumberPrototype.valueOf.call(dummy); }) : classof(dummy) != NUMBER)\n        ? inheritIfRequired(new NativeNumber(toNumber(it)), dummy, NumberWrapper) : toNumber(it);\n  };\n  for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n    // ES3:\n    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n    // ES2015 (in case, if modules with ES2015 Number statics required before):\n    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n  ).split(','), j = 0, key; keys.length > j; j++) {\n    if (has(NativeNumber, key = keys[j]) && !has(NumberWrapper, key)) {\n      defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n    }\n  }\n  NumberWrapper.prototype = NumberPrototype;\n  NumberPrototype.constructor = NumberWrapper;\n  redefine(global, NUMBER, NumberWrapper);\n}\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nvar Symbol = global.Symbol;\nvar store = shared('wks');\n\nmodule.exports = function (name) {\n  return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name]\n    || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n","var bind = require('../internals/bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex }` methods implementation\nvar createMethod = function (TYPE) {\n  var IS_MAP = TYPE == 1;\n  var IS_FILTER = TYPE == 2;\n  var IS_SOME = TYPE == 3;\n  var IS_EVERY = TYPE == 4;\n  var IS_FIND_INDEX = TYPE == 6;\n  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n  return function ($this, callbackfn, that, specificCreate) {\n    var O = toObject($this);\n    var self = IndexedObject(O);\n    var boundFunction = bind(callbackfn, that, 3);\n    var length = toLength(self.length);\n    var index = 0;\n    var create = specificCreate || arraySpeciesCreate;\n    var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n    var value, result;\n    for (;length > index; index++) if (NO_HOLES || index in self) {\n      value = self[index];\n      result = boundFunction(value, index, O);\n      if (TYPE) {\n        if (IS_MAP) target[index] = result; // map\n        else if (result) switch (TYPE) {\n          case 3: return true;              // some\n          case 5: return value;             // find\n          case 6: return index;             // findIndex\n          case 2: push.call(target, value); // filter\n        } else if (IS_EVERY) return false;  // every\n      }\n    }\n    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n  };\n};\n\nmodule.exports = {\n  // `Array.prototype.forEach` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n  forEach: createMethod(0),\n  // `Array.prototype.map` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.map\n  map: createMethod(1),\n  // `Array.prototype.filter` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.filter\n  filter: createMethod(2),\n  // `Array.prototype.some` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.some\n  some: createMethod(3),\n  // `Array.prototype.every` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.every\n  every: createMethod(4),\n  // `Array.prototype.find` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.find\n  find: createMethod(5),\n  // `Array.prototype.findIndex` method\n  // https://tc39.github.io/ecma262/#sec-array.prototype.findIndex\n  findIndex: createMethod(6)\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n  if (!isObject(input)) return input;\n  var fn, val;\n  if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n  if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n  throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = false;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n  return toString.call(it).slice(8, -1);\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n  'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n    return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n    if (Array.isArray(arg)) {\n        each(arg, context[fn], context);\n        return true;\n    }\n    return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n    var i;\n\n    if (!obj) {\n        return;\n    }\n\n    if (obj.forEach) {\n        obj.forEach(iterator, context);\n    } else if (obj.length !== undefined) {\n        i = 0;\n        while (i < obj.length) {\n            iterator.call(context, obj[i], i, obj);\n            i++;\n        }\n    } else {\n        for (i in obj) {\n            obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n        }\n    }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n    var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n    return function() {\n        var e = new Error('get-stack-trace');\n        var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n            .replace(/^\\s+at\\s+/gm, '')\n            .replace(/^Object.<anonymous>\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n        var log = window.console && (window.console.warn || window.console.log);\n        if (log) {\n            log.call(window.console, deprecationMessage, stack);\n        }\n        return method.apply(this, arguments);\n    };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n    assign = function assign(target) {\n        if (target === undefined || target === null) {\n            throw new TypeError('Cannot convert undefined or null to object');\n        }\n\n        var output = Object(target);\n        for (var index = 1; index < arguments.length; index++) {\n            var source = arguments[index];\n            if (source !== undefined && source !== null) {\n                for (var nextKey in source) {\n                    if (source.hasOwnProperty(nextKey)) {\n                        output[nextKey] = source[nextKey];\n                    }\n                }\n            }\n        }\n        return output;\n    };\n} else {\n    assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n    var keys = Object.keys(src);\n    var i = 0;\n    while (i < keys.length) {\n        if (!merge || (merge && dest[keys[i]] === undefined)) {\n            dest[keys[i]] = src[keys[i]];\n        }\n        i++;\n    }\n    return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n    return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n    var baseP = base.prototype,\n        childP;\n\n    childP = child.prototype = Object.create(baseP);\n    childP.constructor = child;\n    childP._super = baseP;\n\n    if (properties) {\n        assign(childP, properties);\n    }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n    return function boundFn() {\n        return fn.apply(context, arguments);\n    };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n    if (typeof val == TYPE_FUNCTION) {\n        return val.apply(args ? args[0] || undefined : undefined, args);\n    }\n    return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n    return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n    each(splitStr(types), function(type) {\n        target.addEventListener(type, handler, false);\n    });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n    each(splitStr(types), function(type) {\n        target.removeEventListener(type, handler, false);\n    });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n    while (node) {\n        if (node == parent) {\n            return true;\n        }\n        node = node.parentNode;\n    }\n    return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n    return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n    return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n    if (src.indexOf && !findByKey) {\n        return src.indexOf(find);\n    } else {\n        var i = 0;\n        while (i < src.length) {\n            if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n                return i;\n            }\n            i++;\n        }\n        return -1;\n    }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n    return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n    var results = [];\n    var values = [];\n    var i = 0;\n\n    while (i < src.length) {\n        var val = key ? src[i][key] : src[i];\n        if (inArray(values, val) < 0) {\n            results.push(src[i]);\n        }\n        values[i] = val;\n        i++;\n    }\n\n    if (sort) {\n        if (!key) {\n            results = results.sort();\n        } else {\n            results = results.sort(function sortUniqueArray(a, b) {\n                return a[key] > b[key];\n            });\n        }\n    }\n\n    return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n    var prefix, prop;\n    var camelProp = property[0].toUpperCase() + property.slice(1);\n\n    var i = 0;\n    while (i < VENDOR_PREFIXES.length) {\n        prefix = VENDOR_PREFIXES[i];\n        prop = (prefix) ? prefix + camelProp : property;\n\n        if (prop in obj) {\n            return prop;\n        }\n        i++;\n    }\n    return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n    return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n    var doc = element.ownerDocument || element;\n    return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n    var self = this;\n    this.manager = manager;\n    this.callback = callback;\n    this.element = manager.element;\n    this.target = manager.options.inputTarget;\n\n    // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n    // so when disabled the input events are completely bypassed.\n    this.domHandler = function(ev) {\n        if (boolOrFn(manager.options.enable, [manager])) {\n            self.handler(ev);\n        }\n    };\n\n    this.init();\n\n}\n\nInput.prototype = {\n    /**\n     * should handle the inputEvent data and trigger the callback\n     * @virtual\n     */\n    handler: function() { },\n\n    /**\n     * bind the events\n     */\n    init: function() {\n        this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n        this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n        this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n    },\n\n    /**\n     * unbind the events\n     */\n    destroy: function() {\n        this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n        this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n        this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n    }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n    var Type;\n    var inputClass = manager.options.inputClass;\n\n    if (inputClass) {\n        Type = inputClass;\n    } else if (SUPPORT_POINTER_EVENTS) {\n        Type = PointerEventInput;\n    } else if (SUPPORT_ONLY_TOUCH) {\n        Type = TouchInput;\n    } else if (!SUPPORT_TOUCH) {\n        Type = MouseInput;\n    } else {\n        Type = TouchMouseInput;\n    }\n    return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n    var pointersLen = input.pointers.length;\n    var changedPointersLen = input.changedPointers.length;\n    var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n    var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n    input.isFirst = !!isFirst;\n    input.isFinal = !!isFinal;\n\n    if (isFirst) {\n        manager.session = {};\n    }\n\n    // source event is the normalized value of the domEvents\n    // like 'touchstart, mouseup, pointerdown'\n    input.eventType = eventType;\n\n    // compute scale, rotation etc\n    computeInputData(manager, input);\n\n    // emit secret event\n    manager.emit('hammer.input', input);\n\n    manager.recognize(input);\n    manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n    var session = manager.session;\n    var pointers = input.pointers;\n    var pointersLength = pointers.length;\n\n    // store the first input to calculate the distance and direction\n    if (!session.firstInput) {\n        session.firstInput = simpleCloneInputData(input);\n    }\n\n    // to compute scale and rotation we need to store the multiple touches\n    if (pointersLength > 1 && !session.firstMultiple) {\n        session.firstMultiple = simpleCloneInputData(input);\n    } else if (pointersLength === 1) {\n        session.firstMultiple = false;\n    }\n\n    var firstInput = session.firstInput;\n    var firstMultiple = session.firstMultiple;\n    var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n    var center = input.center = getCenter(pointers);\n    input.timeStamp = now();\n    input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n    input.angle = getAngle(offsetCenter, center);\n    input.distance = getDistance(offsetCenter, center);\n\n    computeDeltaXY(session, input);\n    input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n    var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n    input.overallVelocityX = overallVelocity.x;\n    input.overallVelocityY = overallVelocity.y;\n    input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n    input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n    input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n    input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n        session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n    computeIntervalInputData(session, input);\n\n    // find the correct target\n    var target = manager.element;\n    if (hasParent(input.srcEvent.target, target)) {\n        target = input.srcEvent.target;\n    }\n    input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n    var center = input.center;\n    var offset = session.offsetDelta || {};\n    var prevDelta = session.prevDelta || {};\n    var prevInput = session.prevInput || {};\n\n    if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n        prevDelta = session.prevDelta = {\n            x: prevInput.deltaX || 0,\n            y: prevInput.deltaY || 0\n        };\n\n        offset = session.offsetDelta = {\n            x: center.x,\n            y: center.y\n        };\n    }\n\n    input.deltaX = prevDelta.x + (center.x - offset.x);\n    input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n    var last = session.lastInterval || input,\n        deltaTime = input.timeStamp - last.timeStamp,\n        velocity, velocityX, velocityY, direction;\n\n    if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n        var deltaX = input.deltaX - last.deltaX;\n        var deltaY = input.deltaY - last.deltaY;\n\n        var v = getVelocity(deltaTime, deltaX, deltaY);\n        velocityX = v.x;\n        velocityY = v.y;\n        velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n        direction = getDirection(deltaX, deltaY);\n\n        session.lastInterval = input;\n    } else {\n        // use latest velocity info if it doesn't overtake a minimum period\n        velocity = last.velocity;\n        velocityX = last.velocityX;\n        velocityY = last.velocityY;\n        direction = last.direction;\n    }\n\n    input.velocity = velocity;\n    input.velocityX = velocityX;\n    input.velocityY = velocityY;\n    input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n    // make a simple copy of the pointers because we will get a reference if we don't\n    // we only need clientXY for the calculations\n    var pointers = [];\n    var i = 0;\n    while (i < input.pointers.length) {\n        pointers[i] = {\n            clientX: round(input.pointers[i].clientX),\n            clientY: round(input.pointers[i].clientY)\n        };\n        i++;\n    }\n\n    return {\n        timeStamp: now(),\n        pointers: pointers,\n        center: getCenter(pointers),\n        deltaX: input.deltaX,\n        deltaY: input.deltaY\n    };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n    var pointersLength = pointers.length;\n\n    // no need to loop when only one touch\n    if (pointersLength === 1) {\n        return {\n            x: round(pointers[0].clientX),\n            y: round(pointers[0].clientY)\n        };\n    }\n\n    var x = 0, y = 0, i = 0;\n    while (i < pointersLength) {\n        x += pointers[i].clientX;\n        y += pointers[i].clientY;\n        i++;\n    }\n\n    return {\n        x: round(x / pointersLength),\n        y: round(y / pointersLength)\n    };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n    return {\n        x: x / deltaTime || 0,\n        y: y / deltaTime || 0\n    };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n    if (x === y) {\n        return DIRECTION_NONE;\n    }\n\n    if (abs(x) >= abs(y)) {\n        return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n    }\n    return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n    if (!props) {\n        props = PROPS_XY;\n    }\n    var x = p2[props[0]] - p1[props[0]],\n        y = p2[props[1]] - p1[props[1]];\n\n    return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n    if (!props) {\n        props = PROPS_XY;\n    }\n    var x = p2[props[0]] - p1[props[0]],\n        y = p2[props[1]] - p1[props[1]];\n    return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n    return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n    return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n    mousedown: INPUT_START,\n    mousemove: INPUT_MOVE,\n    mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n    this.evEl = MOUSE_ELEMENT_EVENTS;\n    this.evWin = MOUSE_WINDOW_EVENTS;\n\n    this.pressed = false; // mousedown state\n\n    Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n    /**\n     * handle mouse events\n     * @param {Object} ev\n     */\n    handler: function MEhandler(ev) {\n        var eventType = MOUSE_INPUT_MAP[ev.type];\n\n        // on start we want to have the left mouse button down\n        if (eventType & INPUT_START && ev.button === 0) {\n            this.pressed = true;\n        }\n\n        if (eventType & INPUT_MOVE && ev.which !== 1) {\n            eventType = INPUT_END;\n        }\n\n        // mouse must be down\n        if (!this.pressed) {\n            return;\n        }\n\n        if (eventType & INPUT_END) {\n            this.pressed = false;\n        }\n\n        this.callback(this.manager, eventType, {\n            pointers: [ev],\n            changedPointers: [ev],\n            pointerType: INPUT_TYPE_MOUSE,\n            srcEvent: ev\n        });\n    }\n});\n\nvar POINTER_INPUT_MAP = {\n    pointerdown: INPUT_START,\n    pointermove: INPUT_MOVE,\n    pointerup: INPUT_END,\n    pointercancel: INPUT_CANCEL,\n    pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n    2: INPUT_TYPE_TOUCH,\n    3: INPUT_TYPE_PEN,\n    4: INPUT_TYPE_MOUSE,\n    5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n    POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n    POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n    this.evEl = POINTER_ELEMENT_EVENTS;\n    this.evWin = POINTER_WINDOW_EVENTS;\n\n    Input.apply(this, arguments);\n\n    this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n    /**\n     * handle mouse events\n     * @param {Object} ev\n     */\n    handler: function PEhandler(ev) {\n        var store = this.store;\n        var removePointer = false;\n\n        var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n        var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n        var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n        var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n        // get index of the event in the store\n        var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n        // start and mouse must be down\n        if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n            if (storeIndex < 0) {\n                store.push(ev);\n                storeIndex = store.length - 1;\n            }\n        } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n            removePointer = true;\n        }\n\n        // it not found, so the pointer hasn't been down (so it's probably a hover)\n        if (storeIndex < 0) {\n            return;\n        }\n\n        // update the event in the store\n        store[storeIndex] = ev;\n\n        this.callback(this.manager, eventType, {\n            pointers: store,\n            changedPointers: [ev],\n            pointerType: pointerType,\n            srcEvent: ev\n        });\n\n        if (removePointer) {\n            // remove from the store\n            store.splice(storeIndex, 1);\n        }\n    }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n    touchstart: INPUT_START,\n    touchmove: INPUT_MOVE,\n    touchend: INPUT_END,\n    touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n    this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n    this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n    this.started = false;\n\n    Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n    handler: function TEhandler(ev) {\n        var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n        // should we handle the touch events?\n        if (type === INPUT_START) {\n            this.started = true;\n        }\n\n        if (!this.started) {\n            return;\n        }\n\n        var touches = normalizeSingleTouches.call(this, ev, type);\n\n        // when done, reset the started state\n        if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n            this.started = false;\n        }\n\n        this.callback(this.manager, type, {\n            pointers: touches[0],\n            changedPointers: touches[1],\n            pointerType: INPUT_TYPE_TOUCH,\n            srcEvent: ev\n        });\n    }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n    var all = toArray(ev.touches);\n    var changed = toArray(ev.changedTouches);\n\n    if (type & (INPUT_END | INPUT_CANCEL)) {\n        all = uniqueArray(all.concat(changed), 'identifier', true);\n    }\n\n    return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n    touchstart: INPUT_START,\n    touchmove: INPUT_MOVE,\n    touchend: INPUT_END,\n    touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n    this.evTarget = TOUCH_TARGET_EVENTS;\n    this.targetIds = {};\n\n    Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n    handler: function MTEhandler(ev) {\n        var type = TOUCH_INPUT_MAP[ev.type];\n        var touches = getTouches.call(this, ev, type);\n        if (!touches) {\n            return;\n        }\n\n        this.callback(this.manager, type, {\n            pointers: touches[0],\n            changedPointers: touches[1],\n            pointerType: INPUT_TYPE_TOUCH,\n            srcEvent: ev\n        });\n    }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n    var allTouches = toArray(ev.touches);\n    var targetIds = this.targetIds;\n\n    // when there is only one touch, the process can be simplified\n    if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n        targetIds[allTouches[0].identifier] = true;\n        return [allTouches, allTouches];\n    }\n\n    var i,\n        targetTouches,\n        changedTouches = toArray(ev.changedTouches),\n        changedTargetTouches = [],\n        target = this.target;\n\n    // get target touches from touches\n    targetTouches = allTouches.filter(function(touch) {\n        return hasParent(touch.target, target);\n    });\n\n    // collect touches\n    if (type === INPUT_START) {\n        i = 0;\n        while (i < targetTouches.length) {\n            targetIds[targetTouches[i].identifier] = true;\n            i++;\n        }\n    }\n\n    // filter changed touches to only contain touches that exist in the collected target ids\n    i = 0;\n    while (i < changedTouches.length) {\n        if (targetIds[changedTouches[i].identifier]) {\n            changedTargetTouches.push(changedTouches[i]);\n        }\n\n        // cleanup removed touches\n        if (type & (INPUT_END | INPUT_CANCEL)) {\n            delete targetIds[changedTouches[i].identifier];\n        }\n        i++;\n    }\n\n    if (!changedTargetTouches.length) {\n        return;\n    }\n\n    return [\n        // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n        uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n        changedTargetTouches\n    ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n    Input.apply(this, arguments);\n\n    var handler = bindFn(this.handler, this);\n    this.touch = new TouchInput(this.manager, handler);\n    this.mouse = new MouseInput(this.manager, handler);\n\n    this.primaryTouch = null;\n    this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n    /**\n     * handle mouse and touch events\n     * @param {Hammer} manager\n     * @param {String} inputEvent\n     * @param {Object} inputData\n     */\n    handler: function TMEhandler(manager, inputEvent, inputData) {\n        var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n            isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n        if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n            return;\n        }\n\n        // when we're in a touch event, record touches to  de-dupe synthetic mouse event\n        if (isTouch) {\n            recordTouches.call(this, inputEvent, inputData);\n        } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n            return;\n        }\n\n        this.callback(manager, inputEvent, inputData);\n    },\n\n    /**\n     * remove the event listeners\n     */\n    destroy: function destroy() {\n        this.touch.destroy();\n        this.mouse.destroy();\n    }\n});\n\nfunction recordTouches(eventType, eventData) {\n    if (eventType & INPUT_START) {\n        this.primaryTouch = eventData.changedPointers[0].identifier;\n        setLastTouch.call(this, eventData);\n    } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n        setLastTouch.call(this, eventData);\n    }\n}\n\nfunction setLastTouch(eventData) {\n    var touch = eventData.changedPointers[0];\n\n    if (touch.identifier === this.primaryTouch) {\n        var lastTouch = {x: touch.clientX, y: touch.clientY};\n        this.lastTouches.push(lastTouch);\n        var lts = this.lastTouches;\n        var removeLastTouch = function() {\n            var i = lts.indexOf(lastTouch);\n            if (i > -1) {\n                lts.splice(i, 1);\n            }\n        };\n        setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n    }\n}\n\nfunction isSyntheticEvent(eventData) {\n    var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n    for (var i = 0; i < this.lastTouches.length; i++) {\n        var t = this.lastTouches[i];\n        var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n        if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n            return true;\n        }\n    }\n    return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n    this.manager = manager;\n    this.set(value);\n}\n\nTouchAction.prototype = {\n    /**\n     * set the touchAction value on the element or enable the polyfill\n     * @param {String} value\n     */\n    set: function(value) {\n        // find out the touch-action by the event handlers\n        if (value == TOUCH_ACTION_COMPUTE) {\n            value = this.compute();\n        }\n\n        if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n            this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n        }\n        this.actions = value.toLowerCase().trim();\n    },\n\n    /**\n     * just re-set the touchAction value\n     */\n    update: function() {\n        this.set(this.manager.options.touchAction);\n    },\n\n    /**\n     * compute the value for the touchAction property based on the recognizer's settings\n     * @returns {String} value\n     */\n    compute: function() {\n        var actions = [];\n        each(this.manager.recognizers, function(recognizer) {\n            if (boolOrFn(recognizer.options.enable, [recognizer])) {\n                actions = actions.concat(recognizer.getTouchAction());\n            }\n        });\n        return cleanTouchActions(actions.join(' '));\n    },\n\n    /**\n     * this method is called on each input cycle and provides the preventing of the browser behavior\n     * @param {Object} input\n     */\n    preventDefaults: function(input) {\n        var srcEvent = input.srcEvent;\n        var direction = input.offsetDirection;\n\n        // if the touch action did prevented once this session\n        if (this.manager.session.prevented) {\n            srcEvent.preventDefault();\n            return;\n        }\n\n        var actions = this.actions;\n        var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n        var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n        var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n        if (hasNone) {\n            //do not prevent defaults if this is a tap gesture\n\n            var isTapPointer = input.pointers.length === 1;\n            var isTapMovement = input.distance < 2;\n            var isTapTouchTime = input.deltaTime < 250;\n\n            if (isTapPointer && isTapMovement && isTapTouchTime) {\n                return;\n            }\n        }\n\n        if (hasPanX && hasPanY) {\n            // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n            return;\n        }\n\n        if (hasNone ||\n            (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n            (hasPanX && direction & DIRECTION_VERTICAL)) {\n            return this.preventSrc(srcEvent);\n        }\n    },\n\n    /**\n     * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n     * @param {Object} srcEvent\n     */\n    preventSrc: function(srcEvent) {\n        this.manager.session.prevented = true;\n        srcEvent.preventDefault();\n    }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n    // none\n    if (inStr(actions, TOUCH_ACTION_NONE)) {\n        return TOUCH_ACTION_NONE;\n    }\n\n    var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n    var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n    // if both pan-x and pan-y are set (different recognizers\n    // for different directions, e.g. horizontal pan but vertical swipe?)\n    // we need none (as otherwise with pan-x pan-y combined none of these\n    // recognizers will work, since the browser would handle all panning\n    if (hasPanX && hasPanY) {\n        return TOUCH_ACTION_NONE;\n    }\n\n    // pan-x OR pan-y\n    if (hasPanX || hasPanY) {\n        return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n    }\n\n    // manipulation\n    if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n        return TOUCH_ACTION_MANIPULATION;\n    }\n\n    return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n    if (!NATIVE_TOUCH_ACTION) {\n        return false;\n    }\n    var touchMap = {};\n    var cssSupports = window.CSS && window.CSS.supports;\n    ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n        // If css.supports is not supported but there is native touch-action assume it supports\n        // all values. This is the case for IE 10 and 11.\n        touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n    });\n    return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n *               Possible\n *                  |\n *            +-----+---------------+\n *            |                     |\n *      +-----+-----+               |\n *      |           |               |\n *   Failed      Cancelled          |\n *                          +-------+------+\n *                          |              |\n *                      Recognized       Began\n *                                         |\n *                                      Changed\n *                                         |\n *                                  Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n    this.options = assign({}, this.defaults, options || {});\n\n    this.id = uniqueId();\n\n    this.manager = null;\n\n    // default is enable true\n    this.options.enable = ifUndefined(this.options.enable, true);\n\n    this.state = STATE_POSSIBLE;\n\n    this.simultaneous = {};\n    this.requireFail = [];\n}\n\nRecognizer.prototype = {\n    /**\n     * @virtual\n     * @type {Object}\n     */\n    defaults: {},\n\n    /**\n     * set options\n     * @param {Object} options\n     * @return {Recognizer}\n     */\n    set: function(options) {\n        assign(this.options, options);\n\n        // also update the touchAction, in case something changed about the directions/enabled state\n        this.manager && this.manager.touchAction.update();\n        return this;\n    },\n\n    /**\n     * recognize simultaneous with an other recognizer.\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    recognizeWith: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n            return this;\n        }\n\n        var simultaneous = this.simultaneous;\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        if (!simultaneous[otherRecognizer.id]) {\n            simultaneous[otherRecognizer.id] = otherRecognizer;\n            otherRecognizer.recognizeWith(this);\n        }\n        return this;\n    },\n\n    /**\n     * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    dropRecognizeWith: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n            return this;\n        }\n\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        delete this.simultaneous[otherRecognizer.id];\n        return this;\n    },\n\n    /**\n     * recognizer can only run when an other is failing\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    requireFailure: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n            return this;\n        }\n\n        var requireFail = this.requireFail;\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        if (inArray(requireFail, otherRecognizer) === -1) {\n            requireFail.push(otherRecognizer);\n            otherRecognizer.requireFailure(this);\n        }\n        return this;\n    },\n\n    /**\n     * drop the requireFailure link. it does not remove the link on the other recognizer.\n     * @param {Recognizer} otherRecognizer\n     * @returns {Recognizer} this\n     */\n    dropRequireFailure: function(otherRecognizer) {\n        if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n            return this;\n        }\n\n        otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n        var index = inArray(this.requireFail, otherRecognizer);\n        if (index > -1) {\n            this.requireFail.splice(index, 1);\n        }\n        return this;\n    },\n\n    /**\n     * has require failures boolean\n     * @returns {boolean}\n     */\n    hasRequireFailures: function() {\n        return this.requireFail.length > 0;\n    },\n\n    /**\n     * if the recognizer can recognize simultaneous with an other recognizer\n     * @param {Recognizer} otherRecognizer\n     * @returns {Boolean}\n     */\n    canRecognizeWith: function(otherRecognizer) {\n        return !!this.simultaneous[otherRecognizer.id];\n    },\n\n    /**\n     * You should use `tryEmit` instead of `emit` directly to check\n     * that all the needed recognizers has failed before emitting.\n     * @param {Object} input\n     */\n    emit: function(input) {\n        var self = this;\n        var state = this.state;\n\n        function emit(event) {\n            self.manager.emit(event, input);\n        }\n\n        // 'panstart' and 'panmove'\n        if (state < STATE_ENDED) {\n            emit(self.options.event + stateStr(state));\n        }\n\n        emit(self.options.event); // simple 'eventName' events\n\n        if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n            emit(input.additionalEvent);\n        }\n\n        // panend and pancancel\n        if (state >= STATE_ENDED) {\n            emit(self.options.event + stateStr(state));\n        }\n    },\n\n    /**\n     * Check that all the require failure recognizers has failed,\n     * if true, it emits a gesture event,\n     * otherwise, setup the state to FAILED.\n     * @param {Object} input\n     */\n    tryEmit: function(input) {\n        if (this.canEmit()) {\n            return this.emit(input);\n        }\n        // it's failing anyway\n        this.state = STATE_FAILED;\n    },\n\n    /**\n     * can we emit?\n     * @returns {boolean}\n     */\n    canEmit: function() {\n        var i = 0;\n        while (i < this.requireFail.length) {\n            if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n                return false;\n            }\n            i++;\n        }\n        return true;\n    },\n\n    /**\n     * update the recognizer\n     * @param {Object} inputData\n     */\n    recognize: function(inputData) {\n        // make a new copy of the inputData\n        // so we can change the inputData without messing up the other recognizers\n        var inputDataClone = assign({}, inputData);\n\n        // is is enabled and allow recognizing?\n        if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n            this.reset();\n            this.state = STATE_FAILED;\n            return;\n        }\n\n        // reset when we've reached the end\n        if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n            this.state = STATE_POSSIBLE;\n        }\n\n        this.state = this.process(inputDataClone);\n\n        // the recognizer has recognized a gesture\n        // so trigger an event\n        if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n            this.tryEmit(inputDataClone);\n        }\n    },\n\n    /**\n     * return the state of the recognizer\n     * the actual recognizing happens in this method\n     * @virtual\n     * @param {Object} inputData\n     * @returns {Const} STATE\n     */\n    process: function(inputData) { }, // jshint ignore:line\n\n    /**\n     * return the preferred touch-action\n     * @virtual\n     * @returns {Array}\n     */\n    getTouchAction: function() { },\n\n    /**\n     * called when the gesture isn't allowed to recognize\n     * like when another is being recognized or it is disabled\n     * @virtual\n     */\n    reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n    if (state & STATE_CANCELLED) {\n        return 'cancel';\n    } else if (state & STATE_ENDED) {\n        return 'end';\n    } else if (state & STATE_CHANGED) {\n        return 'move';\n    } else if (state & STATE_BEGAN) {\n        return 'start';\n    }\n    return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n    if (direction == DIRECTION_DOWN) {\n        return 'down';\n    } else if (direction == DIRECTION_UP) {\n        return 'up';\n    } else if (direction == DIRECTION_LEFT) {\n        return 'left';\n    } else if (direction == DIRECTION_RIGHT) {\n        return 'right';\n    }\n    return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n    var manager = recognizer.manager;\n    if (manager) {\n        return manager.get(otherRecognizer);\n    }\n    return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n    Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n    /**\n     * @namespace\n     * @memberof AttrRecognizer\n     */\n    defaults: {\n        /**\n         * @type {Number}\n         * @default 1\n         */\n        pointers: 1\n    },\n\n    /**\n     * Used to check if it the recognizer receives valid input, like input.distance > 10.\n     * @memberof AttrRecognizer\n     * @param {Object} input\n     * @returns {Boolean} recognized\n     */\n    attrTest: function(input) {\n        var optionPointers = this.options.pointers;\n        return optionPointers === 0 || input.pointers.length === optionPointers;\n    },\n\n    /**\n     * Process the input and return the state for the recognizer\n     * @memberof AttrRecognizer\n     * @param {Object} input\n     * @returns {*} State\n     */\n    process: function(input) {\n        var state = this.state;\n        var eventType = input.eventType;\n\n        var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n        var isValid = this.attrTest(input);\n\n        // on cancel input and we've recognized before, return STATE_CANCELLED\n        if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n            return state | STATE_CANCELLED;\n        } else if (isRecognized || isValid) {\n            if (eventType & INPUT_END) {\n                return state | STATE_ENDED;\n            } else if (!(state & STATE_BEGAN)) {\n                return STATE_BEGAN;\n            }\n            return state | STATE_CHANGED;\n        }\n        return STATE_FAILED;\n    }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n\n    this.pX = null;\n    this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof PanRecognizer\n     */\n    defaults: {\n        event: 'pan',\n        threshold: 10,\n        pointers: 1,\n        direction: DIRECTION_ALL\n    },\n\n    getTouchAction: function() {\n        var direction = this.options.direction;\n        var actions = [];\n        if (direction & DIRECTION_HORIZONTAL) {\n            actions.push(TOUCH_ACTION_PAN_Y);\n        }\n        if (direction & DIRECTION_VERTICAL) {\n            actions.push(TOUCH_ACTION_PAN_X);\n        }\n        return actions;\n    },\n\n    directionTest: function(input) {\n        var options = this.options;\n        var hasMoved = true;\n        var distance = input.distance;\n        var direction = input.direction;\n        var x = input.deltaX;\n        var y = input.deltaY;\n\n        // lock to axis?\n        if (!(direction & options.direction)) {\n            if (options.direction & DIRECTION_HORIZONTAL) {\n                direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n                hasMoved = x != this.pX;\n                distance = Math.abs(input.deltaX);\n            } else {\n                direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n                hasMoved = y != this.pY;\n                distance = Math.abs(input.deltaY);\n            }\n        }\n        input.direction = direction;\n        return hasMoved && distance > options.threshold && direction & options.direction;\n    },\n\n    attrTest: function(input) {\n        return AttrRecognizer.prototype.attrTest.call(this, input) &&\n            (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n    },\n\n    emit: function(input) {\n\n        this.pX = input.deltaX;\n        this.pY = input.deltaY;\n\n        var direction = directionStr(input.direction);\n\n        if (direction) {\n            input.additionalEvent = this.options.event + direction;\n        }\n        this._super.emit.call(this, input);\n    }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof PinchRecognizer\n     */\n    defaults: {\n        event: 'pinch',\n        threshold: 0,\n        pointers: 2\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_NONE];\n    },\n\n    attrTest: function(input) {\n        return this._super.attrTest.call(this, input) &&\n            (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n    },\n\n    emit: function(input) {\n        if (input.scale !== 1) {\n            var inOut = input.scale < 1 ? 'in' : 'out';\n            input.additionalEvent = this.options.event + inOut;\n        }\n        this._super.emit.call(this, input);\n    }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n    Recognizer.apply(this, arguments);\n\n    this._timer = null;\n    this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n    /**\n     * @namespace\n     * @memberof PressRecognizer\n     */\n    defaults: {\n        event: 'press',\n        pointers: 1,\n        time: 251, // minimal time of the pointer to be pressed\n        threshold: 9 // a minimal movement is ok, but keep it low\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_AUTO];\n    },\n\n    process: function(input) {\n        var options = this.options;\n        var validPointers = input.pointers.length === options.pointers;\n        var validMovement = input.distance < options.threshold;\n        var validTime = input.deltaTime > options.time;\n\n        this._input = input;\n\n        // we only allow little movement\n        // and we've reached an end event, so a tap is possible\n        if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n            this.reset();\n        } else if (input.eventType & INPUT_START) {\n            this.reset();\n            this._timer = setTimeoutContext(function() {\n                this.state = STATE_RECOGNIZED;\n                this.tryEmit();\n            }, options.time, this);\n        } else if (input.eventType & INPUT_END) {\n            return STATE_RECOGNIZED;\n        }\n        return STATE_FAILED;\n    },\n\n    reset: function() {\n        clearTimeout(this._timer);\n    },\n\n    emit: function(input) {\n        if (this.state !== STATE_RECOGNIZED) {\n            return;\n        }\n\n        if (input && (input.eventType & INPUT_END)) {\n            this.manager.emit(this.options.event + 'up', input);\n        } else {\n            this._input.timeStamp = now();\n            this.manager.emit(this.options.event, this._input);\n        }\n    }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof RotateRecognizer\n     */\n    defaults: {\n        event: 'rotate',\n        threshold: 0,\n        pointers: 2\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_NONE];\n    },\n\n    attrTest: function(input) {\n        return this._super.attrTest.call(this, input) &&\n            (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n    }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n    AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n    /**\n     * @namespace\n     * @memberof SwipeRecognizer\n     */\n    defaults: {\n        event: 'swipe',\n        threshold: 10,\n        velocity: 0.3,\n        direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n        pointers: 1\n    },\n\n    getTouchAction: function() {\n        return PanRecognizer.prototype.getTouchAction.call(this);\n    },\n\n    attrTest: function(input) {\n        var direction = this.options.direction;\n        var velocity;\n\n        if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n            velocity = input.overallVelocity;\n        } else if (direction & DIRECTION_HORIZONTAL) {\n            velocity = input.overallVelocityX;\n        } else if (direction & DIRECTION_VERTICAL) {\n            velocity = input.overallVelocityY;\n        }\n\n        return this._super.attrTest.call(this, input) &&\n            direction & input.offsetDirection &&\n            input.distance > this.options.threshold &&\n            input.maxPointers == this.options.pointers &&\n            abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n    },\n\n    emit: function(input) {\n        var direction = directionStr(input.offsetDirection);\n        if (direction) {\n            this.manager.emit(this.options.event + direction, input);\n        }\n\n        this.manager.emit(this.options.event, input);\n    }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n    Recognizer.apply(this, arguments);\n\n    // previous time and center,\n    // used for tap counting\n    this.pTime = false;\n    this.pCenter = false;\n\n    this._timer = null;\n    this._input = null;\n    this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n    /**\n     * @namespace\n     * @memberof PinchRecognizer\n     */\n    defaults: {\n        event: 'tap',\n        pointers: 1,\n        taps: 1,\n        interval: 300, // max time between the multi-tap taps\n        time: 250, // max time of the pointer to be down (like finger on the screen)\n        threshold: 9, // a minimal movement is ok, but keep it low\n        posThreshold: 10 // a multi-tap can be a bit off the initial position\n    },\n\n    getTouchAction: function() {\n        return [TOUCH_ACTION_MANIPULATION];\n    },\n\n    process: function(input) {\n        var options = this.options;\n\n        var validPointers = input.pointers.length === options.pointers;\n        var validMovement = input.distance < options.threshold;\n        var validTouchTime = input.deltaTime < options.time;\n\n        this.reset();\n\n        if ((input.eventType & INPUT_START) && (this.count === 0)) {\n            return this.failTimeout();\n        }\n\n        // we only allow little movement\n        // and we've reached an end event, so a tap is possible\n        if (validMovement && validTouchTime && validPointers) {\n            if (input.eventType != INPUT_END) {\n                return this.failTimeout();\n            }\n\n            var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n            var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n            this.pTime = input.timeStamp;\n            this.pCenter = input.center;\n\n            if (!validMultiTap || !validInterval) {\n                this.count = 1;\n            } else {\n                this.count += 1;\n            }\n\n            this._input = input;\n\n            // if tap count matches we have recognized it,\n            // else it has began recognizing...\n            var tapCount = this.count % options.taps;\n            if (tapCount === 0) {\n                // no failing requirements, immediately trigger the tap event\n                // or wait as long as the multitap interval to trigger\n                if (!this.hasRequireFailures()) {\n                    return STATE_RECOGNIZED;\n                } else {\n                    this._timer = setTimeoutContext(function() {\n                        this.state = STATE_RECOGNIZED;\n                        this.tryEmit();\n                    }, options.interval, this);\n                    return STATE_BEGAN;\n                }\n            }\n        }\n        return STATE_FAILED;\n    },\n\n    failTimeout: function() {\n        this._timer = setTimeoutContext(function() {\n            this.state = STATE_FAILED;\n        }, this.options.interval, this);\n        return STATE_FAILED;\n    },\n\n    reset: function() {\n        clearTimeout(this._timer);\n    },\n\n    emit: function() {\n        if (this.state == STATE_RECOGNIZED) {\n            this._input.tapCount = this.count;\n            this.manager.emit(this.options.event, this._input);\n        }\n    }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n    options = options || {};\n    options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n    return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n    /**\n     * set if DOM events are being triggered.\n     * But this is slower and unused by simple implementations, so disabled by default.\n     * @type {Boolean}\n     * @default false\n     */\n    domEvents: false,\n\n    /**\n     * The value for the touchAction property/fallback.\n     * When set to `compute` it will magically set the correct value based on the added recognizers.\n     * @type {String}\n     * @default compute\n     */\n    touchAction: TOUCH_ACTION_COMPUTE,\n\n    /**\n     * @type {Boolean}\n     * @default true\n     */\n    enable: true,\n\n    /**\n     * EXPERIMENTAL FEATURE -- can be removed/changed\n     * Change the parent input target element.\n     * If Null, then it is being set the to main element.\n     * @type {Null|EventTarget}\n     * @default null\n     */\n    inputTarget: null,\n\n    /**\n     * force an input class\n     * @type {Null|Function}\n     * @default null\n     */\n    inputClass: null,\n\n    /**\n     * Default recognizer setup when calling `Hammer()`\n     * When creating a new Manager these will be skipped.\n     * @type {Array}\n     */\n    preset: [\n        // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n        [RotateRecognizer, {enable: false}],\n        [PinchRecognizer, {enable: false}, ['rotate']],\n        [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n        [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n        [TapRecognizer],\n        [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n        [PressRecognizer]\n    ],\n\n    /**\n     * Some CSS properties can be used to improve the working of Hammer.\n     * Add them to this method and they will be set when creating a new Manager.\n     * @namespace\n     */\n    cssProps: {\n        /**\n         * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n         * @type {String}\n         * @default 'none'\n         */\n        userSelect: 'none',\n\n        /**\n         * Disable the Windows Phone grippers when pressing an element.\n         * @type {String}\n         * @default 'none'\n         */\n        touchSelect: 'none',\n\n        /**\n         * Disables the default callout shown when you touch and hold a touch target.\n         * On iOS, when you touch and hold a touch target such as a link, Safari displays\n         * a callout containing information about the link. This property allows you to disable that callout.\n         * @type {String}\n         * @default 'none'\n         */\n        touchCallout: 'none',\n\n        /**\n         * Specifies whether zooming is enabled. Used by IE10>\n         * @type {String}\n         * @default 'none'\n         */\n        contentZooming: 'none',\n\n        /**\n         * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n         * @type {String}\n         * @default 'none'\n         */\n        userDrag: 'none',\n\n        /**\n         * Overrides the highlight color shown when the user taps a link or a JavaScript\n         * clickable element in iOS. This property obeys the alpha value, if specified.\n         * @type {String}\n         * @default 'rgba(0,0,0,0)'\n         */\n        tapHighlightColor: 'rgba(0,0,0,0)'\n    }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n    this.options = assign({}, Hammer.defaults, options || {});\n\n    this.options.inputTarget = this.options.inputTarget || element;\n\n    this.handlers = {};\n    this.session = {};\n    this.recognizers = [];\n    this.oldCssProps = {};\n\n    this.element = element;\n    this.input = createInputInstance(this);\n    this.touchAction = new TouchAction(this, this.options.touchAction);\n\n    toggleCssProps(this, true);\n\n    each(this.options.recognizers, function(item) {\n        var recognizer = this.add(new (item[0])(item[1]));\n        item[2] && recognizer.recognizeWith(item[2]);\n        item[3] && recognizer.requireFailure(item[3]);\n    }, this);\n}\n\nManager.prototype = {\n    /**\n     * set options\n     * @param {Object} options\n     * @returns {Manager}\n     */\n    set: function(options) {\n        assign(this.options, options);\n\n        // Options that need a little more setup\n        if (options.touchAction) {\n            this.touchAction.update();\n        }\n        if (options.inputTarget) {\n            // Clean up existing event listeners and reinitialize\n            this.input.destroy();\n            this.input.target = options.inputTarget;\n            this.input.init();\n        }\n        return this;\n    },\n\n    /**\n     * stop recognizing for this session.\n     * This session will be discarded, when a new [input]start event is fired.\n     * When forced, the recognizer cycle is stopped immediately.\n     * @param {Boolean} [force]\n     */\n    stop: function(force) {\n        this.session.stopped = force ? FORCED_STOP : STOP;\n    },\n\n    /**\n     * run the recognizers!\n     * called by the inputHandler function on every movement of the pointers (touches)\n     * it walks through all the recognizers and tries to detect the gesture that is being made\n     * @param {Object} inputData\n     */\n    recognize: function(inputData) {\n        var session = this.session;\n        if (session.stopped) {\n            return;\n        }\n\n        // run the touch-action polyfill\n        this.touchAction.preventDefaults(inputData);\n\n        var recognizer;\n        var recognizers = this.recognizers;\n\n        // this holds the recognizer that is being recognized.\n        // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n        // if no recognizer is detecting a thing, it is set to `null`\n        var curRecognizer = session.curRecognizer;\n\n        // reset when the last recognizer is recognized\n        // or when we're in a new session\n        if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n            curRecognizer = session.curRecognizer = null;\n        }\n\n        var i = 0;\n        while (i < recognizers.length) {\n            recognizer = recognizers[i];\n\n            // find out if we are allowed try to recognize the input for this one.\n            // 1.   allow if the session is NOT forced stopped (see the .stop() method)\n            // 2.   allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n            //      that is being recognized.\n            // 3.   allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n            //      this can be setup with the `recognizeWith()` method on the recognizer.\n            if (session.stopped !== FORCED_STOP && ( // 1\n                    !curRecognizer || recognizer == curRecognizer || // 2\n                    recognizer.canRecognizeWith(curRecognizer))) { // 3\n                recognizer.recognize(inputData);\n            } else {\n                recognizer.reset();\n            }\n\n            // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n            // current active recognizer. but only if we don't already have an active recognizer\n            if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n                curRecognizer = session.curRecognizer = recognizer;\n            }\n            i++;\n        }\n    },\n\n    /**\n     * get a recognizer by its event name.\n     * @param {Recognizer|String} recognizer\n     * @returns {Recognizer|Null}\n     */\n    get: function(recognizer) {\n        if (recognizer instanceof Recognizer) {\n            return recognizer;\n        }\n\n        var recognizers = this.recognizers;\n        for (var i = 0; i < recognizers.length; i++) {\n            if (recognizers[i].options.event == recognizer) {\n                return recognizers[i];\n            }\n        }\n        return null;\n    },\n\n    /**\n     * add a recognizer to the manager\n     * existing recognizers with the same event name will be removed\n     * @param {Recognizer} recognizer\n     * @returns {Recognizer|Manager}\n     */\n    add: function(recognizer) {\n        if (invokeArrayArg(recognizer, 'add', this)) {\n            return this;\n        }\n\n        // remove existing\n        var existing = this.get(recognizer.options.event);\n        if (existing) {\n            this.remove(existing);\n        }\n\n        this.recognizers.push(recognizer);\n        recognizer.manager = this;\n\n        this.touchAction.update();\n        return recognizer;\n    },\n\n    /**\n     * remove a recognizer by name or instance\n     * @param {Recognizer|String} recognizer\n     * @returns {Manager}\n     */\n    remove: function(recognizer) {\n        if (invokeArrayArg(recognizer, 'remove', this)) {\n            return this;\n        }\n\n        recognizer = this.get(recognizer);\n\n        // let's make sure this recognizer exists\n        if (recognizer) {\n            var recognizers = this.recognizers;\n            var index = inArray(recognizers, recognizer);\n\n            if (index !== -1) {\n                recognizers.splice(index, 1);\n                this.touchAction.update();\n            }\n        }\n\n        return this;\n    },\n\n    /**\n     * bind event\n     * @param {String} events\n     * @param {Function} handler\n     * @returns {EventEmitter} this\n     */\n    on: function(events, handler) {\n        if (events === undefined) {\n            return;\n        }\n        if (handler === undefined) {\n            return;\n        }\n\n        var handlers = this.handlers;\n        each(splitStr(events), function(event) {\n            handlers[event] = handlers[event] || [];\n            handlers[event].push(handler);\n        });\n        return this;\n    },\n\n    /**\n     * unbind event, leave emit blank to remove all handlers\n     * @param {String} events\n     * @param {Function} [handler]\n     * @returns {EventEmitter} this\n     */\n    off: function(events, handler) {\n        if (events === undefined) {\n            return;\n        }\n\n        var handlers = this.handlers;\n        each(splitStr(events), function(event) {\n            if (!handler) {\n                delete handlers[event];\n            } else {\n                handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n            }\n        });\n        return this;\n    },\n\n    /**\n     * emit event to the listeners\n     * @param {String} event\n     * @param {Object} data\n     */\n    emit: function(event, data) {\n        // we also want to trigger dom events\n        if (this.options.domEvents) {\n            triggerDomEvent(event, data);\n        }\n\n        // no handlers, so skip it all\n        var handlers = this.handlers[event] && this.handlers[event].slice();\n        if (!handlers || !handlers.length) {\n            return;\n        }\n\n        data.type = event;\n        data.preventDefault = function() {\n            data.srcEvent.preventDefault();\n        };\n\n        var i = 0;\n        while (i < handlers.length) {\n            handlers[i](data);\n            i++;\n        }\n    },\n\n    /**\n     * destroy the manager and unbinds all events\n     * it doesn't unbind dom events, that is the user own responsibility\n     */\n    destroy: function() {\n        this.element && toggleCssProps(this, false);\n\n        this.handlers = {};\n        this.session = {};\n        this.input.destroy();\n        this.element = null;\n    }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n    var element = manager.element;\n    if (!element.style) {\n        return;\n    }\n    var prop;\n    each(manager.options.cssProps, function(value, name) {\n        prop = prefixed(element.style, name);\n        if (add) {\n            manager.oldCssProps[prop] = element.style[prop];\n            element.style[prop] = value;\n        } else {\n            element.style[prop] = manager.oldCssProps[prop] || '';\n        }\n    });\n    if (!add) {\n        manager.oldCssProps = {};\n    }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n    var gestureEvent = document.createEvent('Event');\n    gestureEvent.initEvent(event, true, true);\n    gestureEvent.gesture = data;\n    data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n    INPUT_START: INPUT_START,\n    INPUT_MOVE: INPUT_MOVE,\n    INPUT_END: INPUT_END,\n    INPUT_CANCEL: INPUT_CANCEL,\n\n    STATE_POSSIBLE: STATE_POSSIBLE,\n    STATE_BEGAN: STATE_BEGAN,\n    STATE_CHANGED: STATE_CHANGED,\n    STATE_ENDED: STATE_ENDED,\n    STATE_RECOGNIZED: STATE_RECOGNIZED,\n    STATE_CANCELLED: STATE_CANCELLED,\n    STATE_FAILED: STATE_FAILED,\n\n    DIRECTION_NONE: DIRECTION_NONE,\n    DIRECTION_LEFT: DIRECTION_LEFT,\n    DIRECTION_RIGHT: DIRECTION_RIGHT,\n    DIRECTION_UP: DIRECTION_UP,\n    DIRECTION_DOWN: DIRECTION_DOWN,\n    DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n    DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n    DIRECTION_ALL: DIRECTION_ALL,\n\n    Manager: Manager,\n    Input: Input,\n    TouchAction: TouchAction,\n\n    TouchInput: TouchInput,\n    MouseInput: MouseInput,\n    PointerEventInput: PointerEventInput,\n    TouchMouseInput: TouchMouseInput,\n    SingleTouchInput: SingleTouchInput,\n\n    Recognizer: Recognizer,\n    AttrRecognizer: AttrRecognizer,\n    Tap: TapRecognizer,\n    Pan: PanRecognizer,\n    Swipe: SwipeRecognizer,\n    Pinch: PinchRecognizer,\n    Rotate: RotateRecognizer,\n    Press: PressRecognizer,\n\n    on: addEventListeners,\n    off: removeEventListeners,\n    each: each,\n    merge: merge,\n    extend: extend,\n    assign: assign,\n    inherit: inherit,\n    bindFn: bindFn,\n    prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n//  style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n    define(function() {\n        return Hammer;\n    });\n} else if (typeof module != 'undefined' && module.exports) {\n    module.exports = Hammer;\n} else {\n    window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n  var O = toIndexedObject(object);\n  var i = 0;\n  var result = [];\n  var key;\n  for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n  // Don't enum bug & hidden keys\n  while (names.length > i) if (has(O, key = names[i++])) {\n    ~indexOf(result, key) || result.push(key);\n  }\n  return result;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n  return EXISTS ? document.createElement(it) : {};\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n  try {\n    createNonEnumerableProperty(global, key, value);\n  } catch (error) {\n    global[key] = value;\n  } return value;\n};\n","module.exports = {};\n","module.exports = function (exec) {\n  try {\n    return !!exec();\n  } catch (error) {\n    return true;\n  }\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n  return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n  return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n    : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n  var descriptor = getOwnPropertyDescriptor(this, V);\n  return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n  var CORRECT_SETTER = false;\n  var test = {};\n  var setter;\n  try {\n    setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n    setter.call(test, []);\n    CORRECT_SETTER = test instanceof Array;\n  } catch (error) { /* empty */ }\n  return function setPrototypeOf(O, proto) {\n    anObject(O);\n    aPossiblePrototype(proto);\n    if (CORRECT_SETTER) setter.call(O, proto);\n    else O.__proto__ = proto;\n    return O;\n  };\n}() : undefined);\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\n// `Array.prototype.map` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('map') }, {\n  map: function map(callbackfn /* , thisArg */) {\n    return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n  }\n});\n","var check = function (it) {\n  return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n  // eslint-disable-next-line no-undef\n  check(typeof globalThis == 'object' && globalThis) ||\n  check(typeof window == 'object' && window) ||\n  check(typeof self == 'object' && self) ||\n  check(typeof global == 'object' && global) ||\n  // eslint-disable-next-line no-new-func\n  Function('return this')();\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n  return internalObjectKeys(O, enumBugKeys);\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n  var keys = ownKeys(source);\n  var defineProperty = definePropertyModule.f;\n  var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n  }\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.github.io/ecma262/#sec-isarray\nmodule.exports = Array.isArray || function isArray(arg) {\n  return classof(arg) == 'Array';\n};\n","// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n  var currentScript = \"currentScript\",\n      scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n  // If browser needs currentScript polyfill, add get currentScript() to the document object\n  if (!(currentScript in document)) {\n    Object.defineProperty(document, currentScript, {\n      get: function(){\n\n        // IE 6-10 supports script readyState\n        // IE 10+ support stack trace\n        try { throw new Error(); }\n        catch (err) {\n\n          // Find the second match for the \"at\" string to get file src url from stack.\n          // Specifically works with the format of stack traces in IE.\n          var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n          // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n          for(i in scripts){\n            if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n              return scripts[i];\n            }\n          }\n\n          // If no match, return null\n          return null;\n        }\n      }\n    });\n  }\n})(document);\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n  return keys[key] || (keys[key] = uid(key));\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n  aFunction(fn);\n  if (that === undefined) return fn;\n  switch (length) {\n    case 0: return function () {\n      return fn.call(that);\n    };\n    case 1: return function (a) {\n      return fn.call(that, a);\n    };\n    case 2: return function (a, b) {\n      return fn.call(that, a, b);\n    };\n    case 3: return function (a, b, c) {\n      return fn.call(that, a, b, c);\n    };\n  }\n  return function (/* ...args */) {\n    return fn.apply(that, arguments);\n  };\n};\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n  if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n    require('current-script-polyfill')\n  }\n\n  var i\n  if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n    __webpack_public_path__ = i[1] // eslint-disable-line\n  }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gallery.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gallery.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Gallery.vue?vue&type=template&id=5f8d9e95&scoped=true&\"\nimport script from \"./Gallery.vue?vue&type=script&lang=js&\"\nexport * from \"./Gallery.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Gallery.vue?vue&type=style&index=0&id=5f8d9e95&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5f8d9e95\",\n  null\n  \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n  scriptExports,\n  render,\n  staticRenderFns,\n  functionalTemplate,\n  injectStyles,\n  scopeId,\n  moduleIdentifier, /* server only */\n  shadowMode /* vue-cli only */\n) {\n  // Vue.extend constructor export interop\n  var options = typeof scriptExports === 'function'\n    ? scriptExports.options\n    : scriptExports\n\n  // render functions\n  if (render) {\n    options.render = render\n    options.staticRenderFns = staticRenderFns\n    options._compiled = true\n  }\n\n  // functional template\n  if (functionalTemplate) {\n    options.functional = true\n  }\n\n  // scopedId\n  if (scopeId) {\n    options._scopeId = 'data-v-' + scopeId\n  }\n\n  var hook\n  if (moduleIdentifier) { // server build\n    hook = function (context) {\n      // 2.3 injection\n      context =\n        context || // cached call\n        (this.$vnode && this.$vnode.ssrContext) || // stateful\n        (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n      // 2.2 with runInNewContext: true\n      if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n        context = __VUE_SSR_CONTEXT__\n      }\n      // inject component styles\n      if (injectStyles) {\n        injectStyles.call(this, context)\n      }\n      // register component module identifier for async chunk inferrence\n      if (context && context._registeredComponents) {\n        context._registeredComponents.add(moduleIdentifier)\n      }\n    }\n    // used by ssr in case component is cached and beforeCreate\n    // never gets called\n    options._ssrRegister = hook\n  } else if (injectStyles) {\n    hook = shadowMode\n      ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n      : injectStyles\n  }\n\n  if (hook) {\n    if (options.functional) {\n      // for template-only hot-reload because in that case the render fn doesn't\n      // go through the normalizer\n      options._injectStyles = hook\n      // register for functioal component in vue file\n      var originalRender = options.render\n      options.render = function renderWithStyleInjection (h, context) {\n        hook.call(context)\n        return originalRender(h, context)\n      }\n    } else {\n      // inject component registration as beforeCreate hook\n      var existing = options.beforeCreate\n      options.beforeCreate = existing\n        ? [].concat(existing, hook)\n        : [hook]\n    }\n  }\n\n  return {\n    exports: scriptExports,\n    options: options\n  }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"click\":function($event){$event.stopPropagation();return _vm.closeLightBox($event)}}},[(_vm.images && _vm.images.length > 0)?_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.lightBoxOn),expression:\"lightBoxOn\"}],ref:\"container\",staticClass:\"vue-lb-container\"},[_c('div',{staticClass:\"vue-lb-content\"},[_c('div',{staticClass:\"vue-lb-header\"},[_c('span'),(_vm.closable)?_c('button',{staticClass:\"vue-lb-button-close\",attrs:{\"type\":\"button\",\"title\":_vm.closeText}},[_vm._t(\"close\",[_c('span',[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 512 512\"},attrs:{\"fill\":\"white\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"d\":\"M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4 L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1 c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1 c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z\"}})])])])],2):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"vue-lb-figure\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('transition',{attrs:{\"mode\":\"out-in\",\"name\":\"fade\"}},[(_vm.images[_vm.select].galleryType == 'image')?_c('img',{key:_vm.images[_vm.select].src,staticClass:\"vue-lb-modal-image\",attrs:{\"src\":_vm.images[_vm.select].src,\"srcset\":_vm.images[_vm.select].srcset || '',\"alt\":_vm.images[_vm.select].caption}}):_vm._e(),(_vm.images[_vm.select].galleryType == 'video')?_c('iframe',{attrs:{\"src\":_vm.images[_vm.select].videoURL,\"height\":\"349\",\"width\":\"560\",\"frameborder\":\"0\",\"allow\":\"autoplay; fullscreen\",\"allowfullscreen\":\"\"}}):_vm._e()]),_vm._t(\"customCaption\",[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showCaption),expression:\"showCaption\"}],staticClass:\"vue-lb-info\"},[_c('h4',{domProps:{\"innerHTML\":_vm._s(_vm.images[_vm.select].caption)}})])]),_c('div',{staticClass:\"vue-lb-footer\"},[_c('div',{staticClass:\"vue-lb-footer-info\"}),_c('div',{staticClass:\"vue-lb-footer-count\"},[_vm._t(\"footer\",[_vm._v(\" \"+_vm._s(_vm.select + 1)+\" / \"+_vm._s(_vm.images.length)+\" \")],{\"current\":_vm.select + 1,\"total\":_vm.images.length})],2)])],2)]),_vm._v(\" \"),_c('div',{staticClass:\"vue-lb-thumbnail-wrapper\"},[(_vm.showThumbs)?_c('div',{staticClass:\"vue-lb-thumbnail\"},[(_vm.images.length > 1)?_c('button',{staticClass:\"vue-lb-thumbnail-arrow vue-lb-thumbnail-left\",attrs:{\"type\":\"button\",\"title\":_vm.previousThumbText},on:{\"click\":function($event){$event.stopPropagation();return _vm.previousImage()}}},[_vm._t(\"previousThumb\",[_c('span',[_c('svg',{attrs:{\"fill\":\"white\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"d\":\"M213.7,256L213.7,256L213.7,256L380.9,81.9c4.2-4.3,4.1-11.4-0.2-15.8l-29.9-30.6c-4.3-4.4-11.3-4.5-15.5-0.2L131.1,247.9 c-2.2,2.2-3.2,5.2-3,8.1c-0.1,3,0.9,5.9,3,8.1l204.2,212.7c4.2,4.3,11.2,4.2,15.5-0.2l29.9-30.6c4.3-4.4,4.4-11.5,0.2-15.8 L213.7,256z\"}})])])])],2):_vm._e(),_vm._l((_vm.imagesThumb),function(image,index){return _c('div',{directives:[{name:\"lazy\",rawName:\"v-lazy:background-image\",value:(image),expression:\"image\",arg:\"background-image\"},{name:\"show\",rawName:\"v-show\",value:(index >= _vm.thumbIndex.begin && index <= _vm.thumbIndex.end),expression:\"index >= thumbIndex.begin && index <= thumbIndex.end\"}],key:typeof image === 'string' ? (\"\" + image + index) : index,class:'vue-lb-modal-thumbnail' + (_vm.select === index ? '-active' : ''),on:{\"click\":function($event){$event.stopPropagation();return _vm.showImage(index)}}})}),(_vm.images.length > 1)?_c('button',{staticClass:\"vue-lb-thumbnail-arrow vue-lb-thumbnail-right\",attrs:{\"type\":\"button\",\"title\":_vm.nextThumbText},on:{\"click\":function($event){$event.stopPropagation();return _vm.nextImage()}}},[_vm._t(\"nextThumb\",[_c('span',[_c('svg',{attrs:{\"fill\":\"white\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"d\":\"M298.3,256L298.3,256L298.3,256L131.1,81.9c-4.2-4.3-4.1-11.4,0.2-15.8l29.9-30.6c4.3-4.4,11.3-4.5,15.5-0.2l204.2,212.7 c2.2,2.2,3.2,5.2,3,8.1c0.1,3-0.9,5.9-3,8.1L176.7,476.8c-4.2,4.3-11.2,4.2-15.5-0.2L131.3,446c-4.3-4.4-4.4-11.5-0.2-15.8 L298.3,256z\"}})])])])],2):_vm._e()],2):_vm._e()]),(_vm.images.length > 1)?_c('button',{staticClass:\"vue-lb-arrow vue-lb-left\",attrs:{\"type\":\"button\",\"title\":_vm.previousText},on:{\"click\":function($event){$event.stopPropagation();return _vm.previousImage()}}},[_vm._t(\"previous\",[_c('span',[_c('svg',{attrs:{\"fill\":\"white\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"viewBox\":\"0 0 512 512\"}},[_c('path',{attrs:{\"d\":\"M213.7,256L213.7,256L213.7,256L380.9,81.9c4.2-4.3,4.1-11.4-0.2-15.8l-29.9-30.6c-4.3-4.4-11.3-4.5-15.5-0.2L131.1,247.9 c-2.2,2.2-3.2,5.2-3,8.1c-0.1,3,0.9,5.9,3,8.1l204.2,212.7c4.2,4.3,11.2,4.2,15.5-0.2l29.9-30.6c4.3-4.4,4.4-11.5,0.2-15.8 L213.7,256z\"}})])])])],2):_vm._e(),(_vm.images.length > 1)?_c('button',{staticClass:\"vue-lb-arrow vue-lb-right\",attrs:{\"type\":\"button\",\"title\":_vm.nextText},on:{\"click\":function($event){$event.stopPropagation();return _vm.nextImage()}}},[_vm._t(\"next\",[_c('span',[_c('svg',{attrs:{\"fill\":\"white\",\"x\":\"0px\",\"y\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"viewBox\":\"0 0 512 512\",\"xml:space\":\"preserve\"}},[_c('path',{attrs:{\"d\":\"M298.3,256L298.3,256L298.3,256L131.1,81.9c-4.2-4.3-4.1-11.4,0.2-15.8l29.9-30.6c4.3-4.4,11.3-4.5,15.5-0.2l204.2,212.7 c2.2,2.2,3.2,5.2,3,8.1c0.1,3-0.9,5.9-3,8.1L176.7,476.8c-4.2,4.3-11.2,4.2-15.5-0.2L131.3,446c-4.3-4.4-4.4-11.5-0.2-15.8 L298.3,256z\"}})])])])],2):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n  return IndexedObject(requireObjectCoercible(it));\n};\n"]}