Welcome to mirror list, hosted at ThFree Co, Russian Federation.

vendors~files-modal.js.map « js - github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c47835cb09c2569e5bb5bec39415ade093f2fc63 (plain)
1
{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.function.name.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/internals/forced-string-trim-method.js","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///./node_modules/core-js/modules/es.array.splice.js","webpack:///./node_modules/@nextcloud/vue/dist/Components/Modal.js","webpack:///./node_modules/hammerjs/hammer.js"],"names":["DESCRIPTORS","defineProperty","f","FunctionPrototype","Function","prototype","FunctionPrototypeToString","toString","nameRE","configurable","get","call","this","match","error","$","$trim","trim","target","proto","forced","forcedStringTrimMethod","fails","whitespaces","module","exports","METHOD_NAME","name","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","create","getOwnPropertyNames","getOwnPropertyDescriptor","NativeNumber","NumberPrototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","length","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","arguments","dummy","valueOf","keys","split","j","constructor","toAbsoluteIndex","toInteger","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","max","Math","min","splice","start","deleteCount","insertCount","actualDeleteCount","A","k","from","to","O","len","actualStart","argumentsLength","TypeError","t","window","e","o","n","i","l","m","c","d","Object","enumerable","r","Symbol","toStringTag","__esModule","bind","default","hasOwnProperty","p","s","0","a","options","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","beforeCreate","concat","1","map","btoa","unescape","encodeURIComponent","JSON","stringify","sources","sourceRoot","join","push","10","103","locals","11","111","112","12","VTooltip","defaultTemplate","defaultHtml","125","13","before","$slots","text","util","warn","$destroy","$el","remove","beforeUpdate","getText","data","computed","isLongText","methods","14","149","Date","setTimeout","pause","clearTimeout","clear","getTimeLeft","getStateRunning","components","Actions","ActionButton","directives","tooltip","props","title","type","String","hasPrevious","Boolean","hasNext","outTransition","enableSlideshow","clearViewDelay","Number","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","size","validator","indexOf","canClose","dark","mc","showModal","clearView","clearViewTimeout","playing","slideshowTimeout","modalTransitionName","playPauseTitle","watch","beforeMount","addEventListener","handleKeydown","beforeDestroy","removeEventListener","mounted","handleMouseMove","$refs","mask","on","handleSwipe","document","body","insertBefore","lastChild","unmounted","off","destroy","previous","resetSlideshow","$emit","next","close","keyCode","togglePlayPause","handleSlideshow","clearSlideshowTimeout","$nextTick","u","g","$createElement","_self","_c","attrs","ref","staticClass","class","click","mousemove","touchmove","rawName","expression","invisible","_v","_s","_e","modifiers","auto","height","width","stroke","fill","cx","cy","_t","icon","currentTarget","15","16","17","18","19","2","id","css","media","sourceMap","parts","DEBUG","Error","head","getElementsByTagName","navigator","test","userAgent","toLowerCase","refs","b","createElement","appendChild","querySelector","parentNode","removeChild","w","setAttribute","ssrId","styleSheet","cssText","firstChild","createTextNode","h","v","filter","childNodes","20","21","random","replace","substr","218","219","22","23","24","$parent","mixins","closeAfterClick","isIconUrl","URL","onClick","closeMenu","25","29","3","30","33","Array","isArray","34","getBoundingClientRect","documentElement","clientHeight","clientWidth","assign","top","left","bottom","right","any","all","offsetY","offsetX","forEach","componentOptions","tag","ClickOutside","directive","open","menuAlign","defaultIcon","actions","opened","focusIndex","randomId","offsetYArrow","rotateArrow","children","$children","hasMultipleActions","isValidSingleAction","firstActionElement","firstActionVNode","firstAction","firstActionBinding","is","href","exact","firstActionEvent","listeners","firstActionEventBinding","firstActionClass","onOpen","initActions","toggleMenu","focusFirstAction","menu","round","onMouseFocusAction","activeElement","closest","querySelectorAll","focusAction","removeCurrentActive","classList","focus","focusPreviousAction","focusNextAction","focusLastAction","execFirstAction","_b","rel","_d","hidden","keydown","_k","ctrlKey","shiftKey","altKey","metaKey","preventDefault","style","marginRight","marginTop","tabindex","transform","36","37","38","4","41","48","disabled","isFocusable","focusable","backgroundImage","domProps","textContent","49","5","50","55","6","7","hash","needQuotes","71","72","73","74","75","76","8","80","9","exportName","undefined","VENDOR_PREFIXES","TEST_ELEMENT","TYPE_FUNCTION","abs","now","setTimeoutContext","fn","timeout","context","bindFn","invokeArrayArg","arg","each","obj","iterator","deprecate","method","message","deprecationMessage","stack","log","console","apply","output","source","nextKey","extend","dest","src","merge","inherit","child","base","properties","childP","baseP","_super","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","removeEventListeners","hasParent","node","inStr","str","find","inArray","findByKey","toArray","uniqueArray","sort","results","values","prefixed","property","prefix","prop","camelProp","toUpperCase","_uniqueId","getWindowForElement","element","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","COMPUTE_INTERVAL","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","PROPS_XY","PROPS_CLIENT_XY","Input","manager","callback","self","inputTarget","domHandler","ev","enable","init","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","angle","getAngle","distance","getDistance","offset","offsetDelta","prevDelta","prevInput","x","deltaX","y","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","scale","end","rotation","getRotation","maxPointers","velocity","velocityX","velocityY","direction","last","lastInterval","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","sqrt","atan2","PI","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mouseup","MOUSE_ELEMENT_EVENTS","MOUSE_WINDOW_EVENTS","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchend","touchcancel","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TOUCH_TARGET_EVENTS","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","DEDUP_TIMEOUT","DEDUP_DISTANCE","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_AUTO","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_NONE","TOUCH_ACTION_PAN_X","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","set","compute","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","Recognizer","defaults","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","isValid","threshold","directionTest","hasMoved","inOut","time","validPointers","validMovement","validTime","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","toggleCssProps","item","stop","force","stopped","curRecognizer","existing","events","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press"],"mappings":"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","file":"vendors~files-modal.js?v=9e148d3e246154966b4e","sourcesContent":["var DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar FunctionPrototypeToString = FunctionPrototype.toString;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.github.io/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !(NAME in FunctionPrototype)) {\n  defineProperty(FunctionPrototype, NAME, {\n    configurable: true,\n    get: function () {\n      try {\n        return FunctionPrototypeToString.call(this).match(nameRE)[1];\n      } catch (error) {\n        return '';\n      }\n    }\n  });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/forced-string-trim-method');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n  trim: function trim() {\n    return $trim(this);\n  }\n});\n","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n  return fails(function () {\n    return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n  });\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","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !arrayMethodHasSpeciesSupport('splice') }, {\n  splice: function splice(start, deleteCount /* , ...items */) {\n    var O = toObject(this);\n    var len = toLength(O.length);\n    var actualStart = toAbsoluteIndex(start, len);\n    var argumentsLength = arguments.length;\n    var insertCount, actualDeleteCount, A, k, from, to;\n    if (argumentsLength === 0) {\n      insertCount = actualDeleteCount = 0;\n    } else if (argumentsLength === 1) {\n      insertCount = 0;\n      actualDeleteCount = len - actualStart;\n    } else {\n      insertCount = argumentsLength - 2;\n      actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n    }\n    if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n      throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n    }\n    A = arraySpeciesCreate(O, actualDeleteCount);\n    for (k = 0; k < actualDeleteCount; k++) {\n      from = actualStart + k;\n      if (from in O) createProperty(A, k, O[from]);\n    }\n    A.length = actualDeleteCount;\n    if (insertCount < actualDeleteCount) {\n      for (k = actualStart; k < len - actualDeleteCount; k++) {\n        from = k + actualDeleteCount;\n        to = k + insertCount;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n      for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n    } else if (insertCount > actualDeleteCount) {\n      for (k = len - actualDeleteCount; k > actualStart; k--) {\n        from = k + actualDeleteCount - 1;\n        to = k + insertCount - 1;\n        if (from in O) O[to] = O[from];\n        else delete O[to];\n      }\n    }\n    for (k = 0; k < insertCount; k++) {\n      O[k + actualStart] = arguments[k + 2];\n    }\n    O.length = len - actualDeleteCount + insertCount;\n    return A;\n  }\n});\n","!function(A,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Components/Modal\",[],t):\"object\"==typeof exports?exports[\"Components/Modal\"]=t():(A.NextcloudVue=A.NextcloudVue||{},A.NextcloudVue[\"Components/Modal\"]=t())}(window,function(){return function(A){var t={};function e(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return A[o].call(n.exports,n,n.exports,e),n.l=!0,n.exports}return e.m=A,e.c=t,e.d=function(A,t,o){e.o(A,t)||Object.defineProperty(A,t,{enumerable:!0,get:o})},e.r=function(A){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(A,\"__esModule\",{value:!0})},e.t=function(A,t){if(1&t&&(A=e(A)),8&t)return A;if(4&t&&\"object\"==typeof A&&A&&A.__esModule)return A;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:A}),2&t&&\"string\"!=typeof A)for(var n in A)e.d(o,n,function(t){return A[t]}.bind(null,n));return o},e.n=function(A){var t=A&&A.__esModule?function(){return A.default}:function(){return A};return e.d(t,\"a\",t),t},e.o=function(A,t){return Object.prototype.hasOwnProperty.call(A,t)},e.p=\"/dist/\",e(e.s=149)}({0:function(A,t,e){\"use strict\";function o(A,t,e,o,n,i,a,r){var s,c=\"function\"==typeof A?A.options:A;if(t&&(c.render=t,c.staticRenderFns=e,c._compiled=!0),o&&(c.functional=!0),i&&(c._scopeId=\"data-v-\"+i),a?(s=function(A){(A=A||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(A=__VUE_SSR_CONTEXT__),n&&n.call(this,A),A&&A._registeredComponents&&A._registeredComponents.add(a)},c._ssrRegister=s):n&&(s=r?function(){n.call(this,this.$root.$options.shadowRoot)}:n),s)if(c.functional){c._injectStyles=s;var l=c.render;c.render=function(A,t){return s.call(t),l(A,t)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,s):[s]}return{exports:A,options:c}}e.d(t,\"a\",function(){return o})},1:function(A,t,e){\"use strict\";A.exports=function(A){var t=[];return t.toString=function(){return this.map(function(t){var e=function(A,t){var e=A[1]||\"\",o=A[3];if(!o)return e;if(t&&\"function\"==typeof btoa){var n=(a=o,r=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),s=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(r),\"/*# \".concat(s,\" */\")),i=o.sources.map(function(A){return\"/*# sourceURL=\".concat(o.sourceRoot).concat(A,\" */\")});return[e].concat(i).concat([n]).join(\"\\n\")}var a,r,s;return[e].join(\"\\n\")}(t,A);return t[2]?\"@media \".concat(t[2],\" {\").concat(e,\"}\"):e}).join(\"\")},t.i=function(A,e){\"string\"==typeof A&&(A=[[null,A,\"\"]]);for(var o=0;o<A.length;o++){var n=[].concat(A[o]);e&&(n[2]?n[2]=\"\".concat(e,\" and \").concat(n[2]):n[2]=e),t.push(n)}},t}},10:function(A,t,e){\"use strict\";e.r(t),t.default=\"data:font/ttf;base64,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\"},103:function(A,t,e){var o=e(219);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"614ce5e5\",o,!0,{})},11:function(A,t,e){\"use strict\";e.r(t),t.default=\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlLTIxYzM1MmEiIGhvcml6LWFkdi14PSI1MDAwIj48Zm9udC1mYWNlIGZvbnQtZmFtaWx5PSJpY29uZm9udC12dWUtMjFjMzUyYSIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iNTAwMCIgcGFub3NlLTE9IjIgMCA1IDMgMCAwIDAgMCAwIDAiIGFzY2VudD0iNTAwMCIgZGVzY2VudD0iMCIgeC1oZWlnaHQ9IjAiIGJib3g9Ii0xIDAgNTAxMSA0ODQ0IiB1bmRlcmxpbmUtdGhpY2tuZXNzPSIwIiB1bmRlcmxpbmUtcG9zaXRpb249IjUwIiB1bmljb2RlLXJhbmdlPSJVK2VhMDEtZWEwYyIgLz48bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMCIgIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LWxlZnQtZG91YmxlIiB1bmljb2RlPSImI3hlYTAxOyIgZD0iTTM3NTAgMzkwNiBsLTE0MDYgLTE0MDYgbDE0MDYgLTE0MDYgbDAgMzEyIGwtMTA5NCAxMDk0IGwxMDk0IDEwOTQgbDAgMzEyIFpNMjM0NCAzOTA2IGwtMTQwNiAtMTQwNiBsMTQwNiAtMTQwNiBsMCAzMTIgbC0xMDk0IDEwOTQgbDEwOTQgMTA5NCBsMCAzMTIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctbGVmdCIgdW5pY29kZT0iJiN4ZWEwMjsiIGQ9Ik0xNTYzIDI1MDAgbDE4NzUgLTE4NzUgbDAgLTMxMiBsLTIxODggMjE4NyBsMjE4OCAyMTg4IGwwIC0zMTMgbC0xODc1IC0xODc1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LXJpZ2h0LWRvdWJsZSIgdW5pY29kZT0iJiN4ZWEwMzsiIGQ9Ik0xMjUwIDEwOTQgbDE0MDYgMTQwNiBsLTE0MDYgMTQwNiBsMCAtMzEyIGwxMDk0IC0xMDk0IGwtMTA5NCAtMTA5NCBsMCAtMzEyIFpNMjY1NiAxMDk0IGwxNDA3IDE0MDYgbC0xNDA3IDE0MDYgbDAgLTMxMiBsMTA5NCAtMTA5NCBsLTEwOTQgLTEwOTQgbDAgLTMxMiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yaWdodCIgdW5pY29kZT0iJiN4ZWEwNDsiIGQ9Ik0zNDM4IDI1MDAgbC0xODc1IDE4NzUgbDAgMzEzIGwyMTg3IC0yMTg4IGwtMjE4NyAtMjE4NyBsMCAzMTIgbDE4NzUgMTg3NSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjaGVja21hcmsiIHVuaWNvZGU9IiYjeGVhMDU7IiBkPSJNNDA0NSAzOTcxIGwtMjA2MSAtMjA2MSBsLTEwMjkgMTAyOSBsLTQ0MiAtNDQxIGwxNDcxIC0xNDcxIGwyNTAzIDI1MDIgbC00NDIgNDQyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNsb3NlIiB1bmljb2RlPSImI3hlYTA2OyIgZD0iTTQzNzUgMTE1NiBsLTUzMSAtNTMxIGwtMTM0NCAxMzQ0IGwtMTM0NCAtMTM0NCBsLTUzMSA1MzEgbDEzNDQgMTM0NCBsLTEzNDQgMTM0NCBsNTMxIDUzMSBsMTM0NCAtMTM0NCBsMTM0NCAxMzQ0IGw1MzEgLTUzMSBsLTEzNDQgLTEzNDQgbDEzNDQgLTEzNDQgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY29uZmlybSIgdW5pY29kZT0iJiN4ZWEwNzsiIGQ9Ik0yNjU2IDQ4NDQgcS0xMDEgMCAtMTgwIC01NyBxLTc0IC01MiAtMTA5IC0xMzggcS0zNSAtODYgLTE5IC0xNzUgcTE4IC05NiA5MCAtMTY3IGwxNDk1IC0xNDk0IGwtMzYxNiAwIHEtNzcgMSAtMTM5IC0yNiBxLTU4IC0yNCAtOTkgLTcwIHEtMzkgLTQ0IC01OSAtMTAxIHEtMjAgLTU2IC0yMCAtMTE2IHEwIC02MCAyMCAtMTE2IHEyMCAtNTcgNTkgLTEwMSBxNDEgLTQ2IDk5IC03MCBxNjIgLTI3IDEzOSAtMjUgbDM2MTYgMCBsLTE0OTUgLTE0OTUgcS01NSAtNTMgLTgxIC0xMTYgcS0yNCAtNTkgLTIxIC0xMjEgcTMgLTU4IDMwIC0xMTMgcTI1IC01NCA2OCAtOTcgcTQzIC00MyA5NiAtNjggcTU1IC0yNiAxMTQgLTI5IHE2MiAtMyAxMjAgMjEgcTYzIDI1IDExNiA4MSBsMjAyOSAyMDI4IHE1OSA2MCA4MCAxNDEgcTIxIDgwIDEgMTU5IHEtMjEgODIgLTgxIDE0MiBsLTIwMjkgMjAyOCBxLTQ0IDQ1IC0xMDIgNzAgcS01OCAyNSAtMTIyIDI1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9Im1lbnUiIHVuaWNvZGU9IiYjeGVhMDg7IiBkPSJNNjI1IDQzNzUgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaTTYyNSAyODEzIGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWk02MjUgMTI1MCBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9Im1vcmUiIHVuaWNvZGU9IiYjeGVhMDk7IiBkPSJNOTM4IDMxMjUgcS0xMjggMCAtMjQ0IC00OSBxLTExMiAtNDggLTE5OC41IC0xMzQuNSBxLTg2LjUgLTg2LjUgLTEzMy41IC0xOTguNSBxLTUwIC0xMTYgLTQ5LjUgLTI0MyBxMC41IC0xMjcgNDkuNSAtMjQzIHE0NyAtMTEyIDEzMy41IC0xOTguNSBxODYuNSAtODYuNSAxOTguNSAtMTM0LjUgcTExNiAtNDkgMjQzLjUgLTQ5IHExMjcuNSAwIDI0My41IDQ5IHExMTIgNDggMTk4LjUgMTM0LjUgcTg2LjUgODYuNSAxMzMuNSAxOTguNSBxNTAgMTE2IDUwIDI0MyBxMCAxMjcgLTUwIDI0MyBxLTQ3IDExMiAtMTMzLjUgMTk4LjUgcS04Ni41IDg2LjUgLTE5OC41IDEzNC41IHEtMTE2IDQ5IC0yNDMgNDkgWk0yNTAwIDMxMjUgcS0xMjcgMCAtMjQzIC00OSBxLTExMiAtNDggLTE5OC41IC0xMzQuNSBxLTg2LjUgLTg2LjUgLTEzNC41IC0xOTguNSBxLTQ5IC0xMTYgLTQ5IC0yNDMgcTAgLTEyNyA0OSAtMjQzIHE0OCAtMTEyIDEzNC41IC0xOTguNSBxODYuNSAtODYuNSAxOTguNSAtMTM0LjUgcTExNiAtNDkgMjQzIC00OSBxMTI3IDAgMjQzIDQ5IHExMTIgNDggMTk4LjUgMTM0LjUgcTg2LjUgODYuNSAxMzQuNSAxOTguNSBxNDkgMTE2IDQ5IDI0MyBxMCAxMjcgLTQ5IDI0MyBxLTQ4IDExMiAtMTM0LjUgMTk4LjUgcS04Ni41IDg2LjUgLTE5OC41IDEzNC41IHEtMTE2IDQ5IC0yNDMgNDkgWk00MDYzIDMxMjUgcS0xMjggMCAtMjQ0IC00OSBxLTExMiAtNDggLTE5OC41IC0xMzQuNSBxLTg2LjUgLTg2LjUgLTEzMy41IC0xOTguNSBxLTQ5IC0xMTYgLTQ5IC0yNDMgcTAgLTEyNyA0OSAtMjQzIHE0NyAtMTEyIDEzMy41IC0xOTguNSBxODYuNSAtODYuNSAxOTguNSAtMTM0LjUgcTExNiAtNDkgMjQzLjUgLTQ5IHExMjcuNSAwIDI0My41IDQ5IHExMTIgNDggMTk4LjUgMTM0LjUgcTg2LjUgODYuNSAxMzMuNSAxOTguNSBxNTAgMTE2IDUwIDI0MyBxMCAxMjcgLTUwIDI0MyBxLTQ3IDExMiAtMTMzLjUgMTk4LjUgcS04Ni41IDg2LjUgLTE5OC41IDEzNC41IHEtMTE2IDQ5IC0yNDMgNDkgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0icGF1c2UiIHVuaWNvZGU9IiYjeGVhMGE7IiBkPSJNOTM4IDQwNjMgbDAgLTMxMjUgbDEyNTAgMCBsMCAzMTI1IGwtMTI1MCAwIFpNMjgxMyA0MDYzIGwwIC0zMTI1IGwxMjUwIDAgbDAgMzEyNSBsLTEyNTAgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJwbGF5IiB1bmljb2RlPSImI3hlYTBiOyIgZD0iTTYyNSA0Mzc1IGwzNzUwIC0xODc1IGwtMzc1MCAtMTg3NSBsMCAzNzUwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InRyaWFuZ2xlLXMiIHVuaWNvZGU9IiYjeGVhMGM7IiBkPSJNMTI1MCAzMTI1IGwxMjUwIC0xMjUwIGwxMjUwIDEyNDggbC0yNTAwIDIgWiIgLz48L2ZvbnQ+PC9kZWZzPjwvc3ZnPg==\"},111:function(A,t,e){\"use strict\";var o=e(38);e.n(o).a},112:function(A,t,e){var o=e(1);(A.exports=o(!1)).push([A.i,\"li.active[data-v-42604de1]{box-shadow:inset 4px 0 var(--color-primary)}.action--disabled[data-v-42604de1]{pointer-events:none;opacity:.5}.action--disabled[data-v-42604de1]:hover,.action--disabled[data-v-42604de1]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-42604de1]{opacity:1 !important}.action-button[data-v-42604de1]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:normal;line-height:44px}.action-button[data-v-42604de1]:hover,.action-button[data-v-42604de1]:focus{opacity:1}.action-button>span[data-v-42604de1]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-42604de1]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px}.action-button p[data-v-42604de1]{width:150px;padding:7px 0;margin:auto;cursor:pointer;text-align:left;line-height:1.6em}.action-button__longtext[data-v-42604de1]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-42604de1]{font-weight:bold}\\n\",\"\"])},12:function(A,t,e){\"use strict\";e.r(t);var o=e(4);e(36);\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\no.VTooltip.options.defaultTemplate='<div class=\"vue-tooltip\" role=\"tooltip\" data-v-'.concat(\"21c352a\",'><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>'),o.VTooltip.options.defaultHtml=!1,t.default=o.VTooltip},125:function(A,t){},13:function(A,t,e){\"use strict\";e(6),e(23);var o=e(5),n=e.n(o);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.a={before:function(){this.$slots.default&&\"\"!==this.text.trim()||(n.a.util.warn(\"\".concat(this.$options.name,\" cannot be empty and requires a meaningful text content\"),this),this.$destroy(),this.$el.remove())},beforeUpdate:function(){this.text=this.getText()},data:function(){return{text:this.getText()}},computed:{isLongText:function(){return this.text&&this.text.trim().length>20}},methods:{getText:function(){return this.$slots.default?this.$slots.default[0].text.trim():\"\"}}}},14:function(A,t){A.exports=require(\"v-click-outside\")},149:function(A,e,o){\"use strict\";o.r(e);var n=o(33),i=(o(18),o(29),o(72)),a=o.n(i),r=o(55),s=o(80),c=o(12);\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nfunction l(A,t){var e,o,n,i=t;this.start=function(){n=!0,o=new Date,e=setTimeout(A,i)},this.pause=function(){n=!1,clearTimeout(e),i-=new Date-o},this.clear=function(){n=!1,clearTimeout(e),i=0},this.getTimeLeft=function(){return n&&(this.pause(),this.start()),i},this.getStateRunning=function(){return n},this.start()}var d={name:\"Modal\",components:{Actions:r.default,ActionButton:s.default},directives:{tooltip:c.default},props:{title:{type:String,default:\"\"},hasPrevious:{type:Boolean,default:!1},hasNext:{type:Boolean,default:!1},outTransition:{type:Boolean,default:!1},enableSlideshow:{type:Boolean,default:!1},clearViewDelay:{type:Number,default:5e3},slideshowDelay:{type:Number,default:3e3},slideshowPaused:{type:Boolean,default:!1},enableSwipe:{type:Boolean,default:!0},spreadNavigation:{type:Boolean,default:!1},size:{type:String,default:\"normal\",validator:function(A){return-1!==[\"normal\",\"large\",\"full\"].indexOf(A)}},canClose:{type:Boolean,default:!0},dark:{type:Boolean,default:!1}},data:function(){return{mc:null,showModal:!1,clearView:!1,clearViewTimeout:null,playing:!1,slideshowTimeout:null}},computed:{modalTransitionName:function(){return\"modal-\".concat(this.outTransition?\"out\":\"in\")},playPauseTitle:function(){return this.playing?t(\"core\",\"Pause slideshow\"):t(\"core\",\"Start slideshow\")}},watch:{slideshowPaused:function(A){this.slideshowTimeout&&(A?this.slideshowTimeout.pause():this.slideshowTimeout.start())}},beforeMount:function(){window.addEventListener(\"keydown\",this.handleKeydown)},beforeDestroy:function(){window.removeEventListener(\"keydown\",this.handleKeydown)},mounted:function(){var A=this;this.showModal=!0,this.handleMouseMove(),this.mc=new a.a(this.$refs.mask),this.mc.on(\"swipeleft swiperight\",function(t){A.handleSwipe(t)}),document.body.insertBefore(this.$el,document.body.lastChild)},unmounted:function(){this.mc.off(\"swipeleft swiperight\"),this.mc.destroy()},methods:{previous:function(A){this.hasPrevious&&(A&&this.resetSlideshow(),this.$emit(\"previous\",A))},next:function(A){this.hasNext&&(A&&this.resetSlideshow(),this.$emit(\"next\",A))},close:function(A){var t=this;this.canClose&&(this.showModal=!1,setTimeout(function(){t.$emit(\"close\",A)},300))},handleKeydown:function(A){switch(A.keyCode){case 37:this.previous(A);break;case 13:case 39:this.next(A);break;case 27:this.close(A)}},handleSwipe:function(A){this.enableSwipe&&(\"swipeleft\"===A.type?this.next(A):\"swiperight\"===A.type&&this.previous(A))},handleMouseMove:function(){var A=this;this.clearViewDelay>0&&(this.clearView=!1,clearTimeout(this.clearViewTimeout),this.clearViewTimeout=setTimeout(function(){A.clearView=!0},this.clearViewDelay))},togglePlayPause:function(){this.playing=!this.playing,this.playing?this.handleSlideshow():this.clearSlideshowTimeout()},resetSlideshow:function(){this.playing=!this.playing,this.clearSlideshowTimeout(),this.$nextTick(function(){this.togglePlayPause()})},handleSlideshow:function(){var A=this;this.playing=!0,this.hasNext?this.slideshowTimeout=new l(function(){A.next(),A.handleSlideshow()},this.slideshowDelay):(this.playing=!1,this.clearSlideshowTimeout())},clearSlideshowTimeout:function(){this.slideshowTimeout&&this.slideshowTimeout.clear()}}},u=(o(218),o(0)),g=o(125),f=o.n(g),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"transition\",{attrs:{name:\"fade\"}},[e(\"div\",{ref:\"mask\",staticClass:\"modal-mask\",class:{\"modal-mask--dark\":A.dark},on:{click:A.handleMouseMove,mousemove:A.handleMouseMove,touchmove:A.handleMouseMove}},[e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:!A.clearView,expression:\"!clearView\"}],staticClass:\"modal-header\",class:{invisible:A.clearView}},[\"\"!==A.title.trim()?e(\"div\",{staticClass:\"modal-title\"},[A._v(\"\\n\\t\\t\\t\\t\\t\"+A._s(A.title)+\"\\n\\t\\t\\t\\t\")]):A._e(),A._v(\" \"),e(\"div\",{staticClass:\"icons-menu\"},[A.hasNext&&A.enableSlideshow?e(\"button\",{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:A.playPauseTitle,expression:\"playPauseTitle\",modifiers:{auto:!0}}],staticClass:\"play-pause\",class:{\"play-pause--paused\":A.slideshowPaused},on:{click:A.togglePlayPause}},[e(\"div\",{class:[A.playing?\"icon-pause\":\"icon-play\"]},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]),A._v(\" \"),A.playing?e(\"svg\",{staticClass:\"progress-ring\",attrs:{height:\"50\",width:\"50\"}},[e(\"circle\",{staticClass:\"progress-ring__circle\",attrs:{stroke:\"white\",\"stroke-width\":\"2\",fill:\"transparent\",r:\"15\",cx:\"25\",cy:\"25\"}})]):A._e()]):A._e(),A._v(\" \"),e(\"Actions\",{staticClass:\"header-actions\"},[A._t(\"actions\")],2),A._v(\" \"),A.canClose?e(\"Actions\",{staticClass:\"header-close\"},[e(\"ActionButton\",{attrs:{icon:\"icon-close\"},on:{click:A.close}},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Close\"))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):A._e()],1)])]),A._v(\" \"),e(\"transition\",{attrs:{name:A.modalTransitionName}},[e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.showModal,expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\"modal-wrapper--\"+A.size,A.spreadNavigation?\"modal-wrapper--spread-navigation\":\"\"],on:{click:function(t){return t.target!==t.currentTarget?null:A.close(t)}}},[e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"a\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasPrevious&&!A.clearView,expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{invisible:A.clearView||!A.hasPrevious},on:{click:A.previous}},[e(\"div\",{staticClass:\"icon icon-previous\"},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Previous\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])]),A._v(\" \"),e(\"div\",{staticClass:\"modal-container\"},[A._t(\"default\")],2),A._v(\" \"),e(\"transition\",{attrs:{name:\"fade-visibility\"}},[e(\"a\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasNext&&!A.clearView,expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{invisible:A.clearView||!A.hasNext},on:{click:A.next}},[e(\"div\",{staticClass:\"icon icon-next\"},[e(\"span\",{staticClass:\"hidden-visually\"},[A._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+A._s(A.t(\"core\",\"Next\"))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])])],1)])],1)])},[],!1,null,\"2a99be04\",null);\"function\"==typeof f.a&&f()(p);var m=p.exports;o.d(e,\"Modal\",function(){return m}),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nObject(n.a)(m);e.default=m},15:function(A,t){A.exports=require(\"core-js/modules/es.array.iterator\")},16:function(A,t){A.exports=require(\"core-js/modules/es.string.iterator\")},17:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.iterator\")},18:function(A,t){A.exports=require(\"core-js/modules/es.array.index-of\")},19:function(A,t){A.exports=require(\"core-js/modules/es.regexp.to-string\")},2:function(A,t,e){\"use strict\";function o(A,t){for(var e=[],o={},n=0;n<t.length;n++){var i=t[n],a=i[0],r={id:A+\":\"+n,css:i[1],media:i[2],sourceMap:i[3]};o[a]?o[a].parts.push(r):e.push(o[a]={id:a,parts:[r]})}return e}e.r(t),e.d(t,\"default\",function(){return f});var n=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!n)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var i={},a=n&&(document.head||document.getElementsByTagName(\"head\")[0]),r=null,s=0,c=!1,l=function(){},d=null,u=\"data-vue-ssr-id\",g=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function f(A,t,e,n){c=e,d=n||{};var a=o(A,t);return p(a),function(t){for(var e=[],n=0;n<a.length;n++){var r=a[n];(s=i[r.id]).refs--,e.push(s)}t?p(a=o(A,t)):a=[];for(n=0;n<e.length;n++){var s;if(0===(s=e[n]).refs){for(var c=0;c<s.parts.length;c++)s.parts[c]();delete i[s.id]}}}}function p(A){for(var t=0;t<A.length;t++){var e=A[t],o=i[e.id];if(o){o.refs++;for(var n=0;n<o.parts.length;n++)o.parts[n](e.parts[n]);for(;n<e.parts.length;n++)o.parts.push(b(e.parts[n]));o.parts.length>e.parts.length&&(o.parts.length=e.parts.length)}else{var a=[];for(n=0;n<e.parts.length;n++)a.push(b(e.parts[n]));i[e.id]={id:e.id,refs:1,parts:a}}}}function m(){var A=document.createElement(\"style\");return A.type=\"text/css\",a.appendChild(A),A}function b(A){var t,e,o=document.querySelector(\"style[\"+u+'~=\"'+A.id+'\"]');if(o){if(c)return l;o.parentNode.removeChild(o)}if(g){var n=s++;o=r||(r=m()),t=w.bind(null,o,n,!1),e=w.bind(null,o,n,!0)}else o=m(),t=function(A,t){var e=t.css,o=t.media,n=t.sourceMap;o&&A.setAttribute(\"media\",o);d.ssrId&&A.setAttribute(u,t.id);n&&(e+=\"\\n/*# sourceURL=\"+n.sources[0]+\" */\",e+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+\" */\");if(A.styleSheet)A.styleSheet.cssText=e;else{for(;A.firstChild;)A.removeChild(A.firstChild);A.appendChild(document.createTextNode(e))}}.bind(null,o),e=function(){o.parentNode.removeChild(o)};return t(A),function(o){if(o){if(o.css===A.css&&o.media===A.media&&o.sourceMap===A.sourceMap)return;t(A=o)}else e()}}var h,v=(h=[],function(A,t){return h[A]=t,h.filter(Boolean).join(\"\\n\")});function w(A,t,e,o){var n=e?\"\":o.css;if(A.styleSheet)A.styleSheet.cssText=v(t,n);else{var i=document.createTextNode(n),a=A.childNodes;a[t]&&A.removeChild(a[t]),a.length?A.insertBefore(i,a[t]):A.appendChild(i)}}},20:function(A,t){A.exports=require(\"core-js/modules/es.string.replace\")},21:function(A,t,e){\"use strict\";e(3),e(19),e(20);t.a=function(A){return Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,A||5)}},218:function(A,t,e){\"use strict\";var o=e(103);e.n(o).a},219:function(A,t,e){var o=e(1),n=e(7),i=e(8),a=e(9),r=e(10),s=e(11);t=A.exports=o(!1);var c=n(i),l=n(a),d=n(r),u=n(s);t.push([A.i,'@font-face{font-family:\"iconfont-vue-21c352a\";src:url('+c+\");src:url(\"+c+') format(\"embedded-opentype\"),url('+l+') format(\"woff\"),url('+d+') format(\"truetype\"),url('+u+') format(\"svg\")}.icon[data-v-2a99be04]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.arrow-left[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.arrow-right-double[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.arrow-right[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.checkmark[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.close[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.confirm[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.menu[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.more[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.pause[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.play[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.triangle-s[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.modal-mask[data-v-2a99be04]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,0.5)}.modal-mask--dark[data-v-2a99be04]{background-color:rgba(0,0,0,0.92)}.modal-header[data-v-2a99be04]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;transition:opacity 250ms, visibility 250ms}.modal-header.invisible[style*=\\'display:none\\'][data-v-2a99be04],.modal-header.invisible[style*=\\'display: none\\'][data-v-2a99be04]{visibility:hidden}.modal-header .modal-title[data-v-2a99be04]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px}@media only screen and (min-width: 512px){.modal-header .modal-title[data-v-2a99be04]{text-align:center;padding-left:132px}}.modal-header .icons-menu[data-v-2a99be04]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .icon-close[data-v-2a99be04]{box-sizing:border-box;margin:3px;padding:10px 11px;color:#fff;background-image:none;font-size:23px}.modal-header .icons-menu .icon-close[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .play-pause[data-v-2a99be04]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;color:white;border:none;background-color:transparent;font-size:22px}.modal-header .icons-menu .play-pause:hover .icon-play[data-v-2a99be04],.modal-header .icons-menu .play-pause:hover .icon-pause[data-v-2a99be04],.modal-header .icons-menu .play-pause:focus .icon-play[data-v-2a99be04],.modal-header .icons-menu .play-pause:focus .icon-pause[data-v-2a99be04]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.modal-header .icons-menu .play-pause .icon-play[data-v-2a99be04],.modal-header .icons-menu .play-pause .icon-pause[data-v-2a99be04]{box-sizing:border-box;width:44px;height:44px;margin:3px;opacity:.7;background-image:none;cursor:pointer}.modal-header .icons-menu .play-pause .icon-play[data-v-2a99be04]{padding:11px 13px}.modal-header .icons-menu .play-pause .icon-play[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .play-pause .icon-pause[data-v-2a99be04]{padding:12px;font-size:19.5px}.modal-header .icons-menu .play-pause .icon-pause[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";font-style:normal;font-weight:400;content:\"\"}.modal-header .icons-menu .header-actions[data-v-2a99be04]{margin:3px;color:white}.modal-header .icons-menu .action-item--single[data-v-2a99be04]{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-2a99be04] .action-item__menutoggle{padding:13px 11px;color:#fff;font-size:22px}.modal-wrapper[data-v-2a99be04]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-2a99be04],.modal-wrapper .next[data-v-2a99be04]{z-index:10000;display:flex !important;align-items:center;justify-content:center;width:15%;min-width:60px;height:100%;transition:opacity 250ms, visibility 250ms}.modal-wrapper .prev.invisible[style*=\\'display:none\\'][data-v-2a99be04],.modal-wrapper .prev.invisible[style*=\\'display: none\\'][data-v-2a99be04],.modal-wrapper .next.invisible[style*=\\'display:none\\'][data-v-2a99be04],.modal-wrapper .next.invisible[style*=\\'display: none\\'][data-v-2a99be04]{visibility:hidden}.modal-wrapper .icon-next[data-v-2a99be04],.modal-wrapper .icon-previous[data-v-2a99be04]{box-sizing:border-box;width:44px;height:44px;padding:12px 11px;color:white;border-radius:22px;background-image:none;font-size:24px}.modal-wrapper .icon-previous[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .icon-next[data-v-2a99be04]:before{font-family:\"iconfont-vue-21c352a\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .modal-container[data-v-2a99be04]{display:block;overflow:hidden;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,0.2)}.modal-wrapper:not(.modal-wrapper--large):not(.modal-wrapper--full) .modal-container[data-v-2a99be04]{max-width:900px;max-height:80%}.modal-wrapper--full .modal-container[data-v-2a99be04]{max-width:100%;max-height:100%;border-radius:0}.modal-wrapper--full .prev[data-v-2a99be04],.modal-wrapper--full .next[data-v-2a99be04],.modal-wrapper--spread-navigation .prev[data-v-2a99be04],.modal-wrapper--spread-navigation .next[data-v-2a99be04]{position:absolute;width:10%}.modal-wrapper--full .prev[data-v-2a99be04],.modal-wrapper--spread-navigation .prev[data-v-2a99be04]{left:0}.modal-wrapper--full .next[data-v-2a99be04],.modal-wrapper--spread-navigation .next[data-v-2a99be04]{right:0}.modal-wrapper--large .modal-container[data-v-2a99be04]{max-width:70%;max-height:90%}.modal-wrapper--large .prev[data-v-2a99be04],.modal-wrapper--large .next[data-v-2a99be04]{width:10%}.fade-enter-active[data-v-2a99be04],.fade-leave-active[data-v-2a99be04]{transition:opacity 250ms}.fade-enter[data-v-2a99be04],.fade-leave-to[data-v-2a99be04]{opacity:0}.fade-visibility-enter[data-v-2a99be04],.fade-visibility-leave-to[data-v-2a99be04]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-2a99be04],.modal-in-leave-active[data-v-2a99be04],.modal-out-enter-active[data-v-2a99be04],.modal-out-leave-active[data-v-2a99be04]{transition:opacity 250ms}.modal-in-enter[data-v-2a99be04],.modal-in-leave-to[data-v-2a99be04],.modal-out-enter[data-v-2a99be04],.modal-out-leave-to[data-v-2a99be04]{opacity:0}.modal-in-enter .modal-container[data-v-2a99be04],.modal-in-leave-to .modal-container[data-v-2a99be04]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-2a99be04],.modal-out-leave-to .modal-container[data-v-2a99be04]{transform:scale(1.1)}.modal-mask .play-pause .progress-ring[data-v-2a99be04]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause .progress-ring .progress-ring__circle[data-v-2a99be04]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-data-v-2a99be04 linear 3s infinite;stroke-linecap:round;stroke-dashoffset:94.24778;stroke-dasharray:94.24778}.modal-mask .play-pause--paused .icon-pause[data-v-2a99be04]{animation:breath-data-v-2a99be04 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause--paused .progress-ring__circle[data-v-2a99be04]{animation-play-state:paused !important}@keyframes progressring-data-v-2a99be04{from{stroke-dashoffset:94.24778}to{stroke-dashoffset:0}}@keyframes breath-data-v-2a99be04{0%{opacity:1}50%{opacity:0}100%{opacity:1}}\\n',\"\"])},22:function(A,t){A.exports=require(\"core-js/modules/web.url\")},23:function(A,t){A.exports=require(\"core-js/modules/es.string.trim\")},24:function(A,t,e){\"use strict\";e(15),e(3),e(16),e(17),e(22);var o=e(13),n=(e(6),function(A,t){for(var e=A.$parent;e;){if(e.$options.name===t)return e;e=e.$parent}});t.a={mixins:[o.a],props:{icon:{type:String,default:\"\"},title:{type:String,default:\"\"},closeAfterClick:{type:Boolean,default:!1}},computed:{isIconUrl:function(){try{return new URL(this.icon)}catch(A){return!1}}},methods:{onClick:function(A){if(this.$emit(\"click\",A),this.closeAfterClick){var t=n(this,\"Actions\");t&&t.closeMenu&&t.closeMenu()}}}}},25:function(A,t){A.exports=require(\"core-js/modules/es.array.concat\")},29:function(A,t){A.exports=require(\"core-js/modules/es.number.constructor\")},3:function(A,t){A.exports=require(\"core-js/modules/es.object.to-string\")},30:function(A,t,e){var o=e(76);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"aba74858\",o,!0,{})},33:function(A,t,e){\"use strict\";\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.a=function(A){A.mounted?Array.isArray(A.mounted)||(A.mounted=[A.mounted]):A.mounted=[],A.mounted.push(function(){this.$el.setAttribute(\"data-v-\".concat(\"21c352a\"),\"\")})}},34:function(A,t,e){\"use strict\";e(25),e(49),e(18);var o=e(14),n=e(12),i=e(21),a=(e(73),function(A){var t=A.getBoundingClientRect(),e=document.documentElement.clientHeight,o=document.documentElement.clientWidth,n=Object.assign({});return n.top=t.top<0,n.left=t.left<0,n.bottom=t.bottom>e,n.right=t.right>o,n.any=n.top||n.left||n.bottom||n.right,n.all=n.top&&n.left&&n.bottom&&n.right,n.offsetY=n.top?t.top:n.bottom?t.bottom-e:0,n.offsetX=n.left?t.left:n.right?t.right-o:0,n}),r=(e(74),e(6),e(71),e(5)),s=e.n(r),c=function(A,t,e){void 0!==A&&A.forEach(function(o,n){var i=!o.componentOptions&&o.tag&&-1===t.indexOf(o.tag),a=!!o.componentOptions&&\"string\"==typeof o.componentOptions.tag&&-1===t.indexOf(o.componentOptions.tag);(i||a)&&(s.a.util.warn(\"\".concat(i?o.tag:o.componentOptions.tag,\" is not allowed inside the \").concat(e.$options.name,\" component\"),e),A.splice(n,1))})},l=[\"ActionButton\",\"ActionCheckbox\",\"ActionInput\",\"ActionLink\",\"ActionRadio\",\"ActionRouter\",\"ActionSeparator\",\"ActionText\",\"ActionTextEditable\"],d={name:\"Actions\",directives:{ClickOutside:o.directive,tooltip:n.default},props:{open:{type:Boolean,default:!1},menuAlign:{type:String,default:\"center\",validator:function(A){return[\"left\",\"center\",\"right\"].indexOf(A)>-1}},defaultIcon:{type:String,default:\"action-item__menutoggle--default-icon\"}},data:function(){return{actions:[],opened:this.open,focusIndex:0,randomId:\"menu-\"+Object(i.a)(),offsetX:0,offsetY:0,offsetYArrow:0,rotateArrow:!1,children:this.$children}},computed:{hasMultipleActions:function(){return this.actions.length>1},isValidSingleAction:function(){return 1===this.actions.length&&null!==this.firstActionElement},firstActionVNode:function(){return this.actions[0]},firstAction:function(){return this.children[0]?this.children[0]:{}},firstActionBinding:function(){if(this.firstActionVNode&&this.firstActionVNode.componentOptions){var A=this.firstActionVNode.componentOptions.tag;if(\"ActionLink\"===A)return{is:\"a\",href:this.firstAction.href,target:this.firstAction.target};if(\"ActionRouter\"===A)return{is:\"router-link\",to:this.firstAction.to,exact:this.firstAction.exact};if(\"ActionButton\"===A)return{is:\"button\"}}return null},firstActionEvent:function(){return this.firstActionVNode&&this.firstActionVNode.componentOptions&&this.firstActionVNode.componentOptions.listeners&&this.firstActionVNode.componentOptions.listeners.click},firstActionEventBinding:function(){return this.firstActionEvent?\"click\":null},firstActionClass:function(){var A=this.firstActionVNode&&this.firstActionVNode.data.staticClass,t=this.firstActionVNode&&this.firstActionVNode.data.class;return\"\".concat(A,\" \").concat(t)}},watch:{open:function(A){var t=this;this.opened=A,this.opened&&this.$nextTick(function(){t.onOpen()})}},beforeMount:function(){this.initActions(),c(this.$slots.default,l,this)},beforeUpdate:function(){this.initActions(),c(this.$slots.default,l,this)},methods:{toggleMenu:function(){var A=this;this.opened=!this.opened,this.opened?(this.$nextTick(function(){A.onOpen(),A.focusFirstAction()}),this.$emit(\"open\")):(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1),this.$emit(\"update:open\",this.opened)},closeMenu:function(){this.opened&&(this.$emit(\"update:open\",!1),this.$emit(\"close\")),this.opened=!1,this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1},onOpen:function(){if(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1,\"center\"===this.menuAlign){var A=a(this.$refs.menu);(A.left||A.right)&&(this.offsetX=A.offsetX>0?Math.round(A.offsetX)+5:Math.round(A.offsetX)-5),A.bottom&&(this.offsetY=0-Math.round(this.$refs.menu.clientHeight)-42,this.offsetYArrow=Math.round(this.$refs.menu.clientHeight)+18,this.rotateArrow=!0)}},onMouseFocusAction:function(A){if(document.activeElement!==A.target){var t=A.target.closest(\"li\");if(t){var e=t.querySelector(\".focusable\");if(e){var o=this.$refs.menu.querySelectorAll(\".focusable\"),n=Array.prototype.indexOf.call(o,e);n>-1&&(this.focusIndex=n,this.focusAction())}}}},removeCurrentActive:function(){var A=this.$refs.menu.querySelector(\"li.active\");A&&A.classList.remove(\"active\")},focusAction:function(){var A=this.$refs.menu.querySelectorAll(\".focusable\")[this.focusIndex];if(A){var t=A.closest(\"li\");A.focus(),t&&(this.removeCurrentActive(),t.classList.add(\"active\"))}},focusPreviousAction:function(){this.focusIndex=Math.max(this.focusIndex-1,0),this.focusAction()},focusNextAction:function(){this.focusIndex=Math.min(this.focusIndex+1,this.$refs.menu.querySelectorAll(\".focusable\").length-1),this.focusAction()},focusFirstAction:function(){this.focusIndex=0,this.focusAction()},focusLastAction:function(){this.focusIndex=this.$el.querySelectorAll(\".focusable\").length-1,this.focusAction()},execFirstAction:function(A){this.firstActionEvent&&this.firstActionEvent(A)},initActions:function(){this.actions=(this.$slots.default||[]).filter(function(A){return!!A&&!!A.componentOptions})}}},u=(e(75),e(0)),g=e(41),f=e.n(g),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return A.isValidSingleAction?e(\"element\",A._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:A.firstAction.text,expression:\"firstAction.text\",modifiers:{auto:!0}}],staticClass:\"action-item action-item--single\",class:[A.firstAction.icon,A.firstActionClass],attrs:{\"aria-label\":A.firstAction.text,rel:\"noreferrer noopener\"},on:A._d({},[A.firstActionEventBinding,A.execFirstAction])},\"element\",A.firstActionBinding,!1),[e(\"span\",{attrs:{\"aria-hidden\":!0,hidden:\"\"}},[A._t(\"default\")],2)]):e(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:A.hasMultipleActions,expression:\"hasMultipleActions\"}],staticClass:\"action-item\",class:{\"action-item--open\":A.opened},on:{keydown:[function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"up\",38,t.key,[\"Up\",\"ArrowUp\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusPreviousAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"down\",40,t.key,[\"Down\",\"ArrowDown\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusNextAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"tab\",9,t.key,\"Tab\")?null:t.shiftKey?(t.preventDefault(),A.focusPreviousAction(t)):null},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"page-up\",void 0,t.key,void 0)?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusFirstAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"page-down\",void 0,t.key,void 0)?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.focusLastAction(t))},function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"esc\",27,t.key,[\"Esc\",\"Escape\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.closeMenu(t))}]}},[e(\"a\",{staticClass:\"icon action-item__menutoggle\",class:A.defaultIcon,attrs:{href:\"#\",\"aria-haspopup\":\"true\",\"aria-controls\":A.randomId,\"aria-expanded\":A.opened},on:{click:function(t){return t.preventDefault(),A.toggleMenu(t)},keydown:function(t){return!t.type.indexOf(\"key\")&&A._k(t.keyCode,\"space\",32,t.key,[\" \",\"Spacebar\"])?null:t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:(t.preventDefault(),A.toggleMenu(t))}}}),A._v(\" \"),A.opened?e(\"div\",{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:A.closeMenu,expression:\"closeMenu\"}],ref:\"menu\",staticClass:\"action-item__menu\",class:[\"menu-\"+A.menuAlign,{open:A.opened}],style:{marginRight:A.offsetX+\"px\",marginTop:A.offsetY+\"px\"},attrs:{tabindex:\"-1\"},on:{mousemove:A.onMouseFocusAction}},[e(\"div\",{staticClass:\"action-item__menu_arrow\",style:{transform:\"translateX(\"+A.offsetX+\"px) translateY(\"+A.offsetYArrow+\"px) \"+(A.rotateArrow?\" rotate(180deg)\":\"\")}}),A._v(\" \"),e(\"ul\",{attrs:{id:A.randomId,tabindex:\"-1\"}},[A._t(\"default\")],2)]):A._e()])},[],!1,null,\"53cb6bd0\",null);\"function\"==typeof f.a&&f()(p);t.a=p.exports},36:function(A,t,e){var o=e(37);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"941c791e\",o,!0,{})},37:function(A,t,e){var o=e(1);(A.exports=o(!1)).push([A.i,\".vue-tooltip[data-v-21c352a]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;white-space:normal;text-decoration:none;letter-spacing:normal;word-spacing:normal;text-transform:none;word-wrap:normal;word-break:normal;opacity:0;text-shadow:none;font-family:'Nunito', 'Open Sans', Frutiger, Calibri, 'Myriad Pro', Myriad, sans-serif;font-size:12px;font-weight:normal;font-style:normal;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-21c352a][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-21c352a][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-21c352a][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-21c352a][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-21c352a][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-21c352a][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-21c352a] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-21c352a] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\",\"\"])},38:function(A,t,e){var o=e(112);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"4a580912\",o,!0,{})},4:function(A,t){A.exports=require(\"v-tooltip\")},41:function(A,t){},48:function(A,t,e){\"use strict\";var o={name:\"ActionButton\",mixins:[e(24).a],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return!this.disabled}}},n=(e(111),e(0)),i=e(50),a=e.n(i),r=Object(n.a)(o,function(){var A=this,t=A.$createElement,e=A._self._c||t;return e(\"li\",{class:{\"action--disabled\":A.disabled}},[e(\"button\",{staticClass:\"action-button\",class:{focusable:A.isFocusable},on:{click:A.onClick}},[e(\"span\",{staticClass:\"action-button__icon\",class:[A.isIconUrl?\"action-button__icon--url\":A.icon],style:{backgroundImage:A.isIconUrl?\"url(\"+A.icon+\")\":null}}),A._v(\" \"),A.title?e(\"p\",[e(\"strong\",{staticClass:\"action-button__title\"},[A._v(\"\\n\\t\\t\\t\\t\"+A._s(A.title)+\"\\n\\t\\t\\t\")]),A._v(\" \"),e(\"br\"),A._v(\" \"),e(\"span\",{staticClass:\"action-button__longtext\",domProps:{textContent:A._s(A.text)}})]):A.isLongText?e(\"p\",{staticClass:\"action-button__longtext\",domProps:{textContent:A._s(A.text)}}):e(\"span\",{staticClass:\"action-button__text\"},[A._v(A._s(A.text))]),A._v(\" \"),A._e()],2)])},[],!1,null,\"42604de1\",null);\"function\"==typeof a.a&&a()(r);t.a=r.exports},49:function(A,t){A.exports=require(\"core-js/modules/es.array.filter\")},5:function(A,t){A.exports=require(\"vue\")},50:function(A,t){},55:function(A,t,e){\"use strict\";e.r(t);var o=e(34);e.d(t,\"Actions\",function(){return o.a}),\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=o.a},6:function(A,t){A.exports=require(\"core-js/modules/es.function.name\")},7:function(A,t,e){\"use strict\";A.exports=function(A,t){return t||(t={}),\"string\"!=typeof(A=A&&A.__esModule?A.default:A)?A:(/^['\"].*['\"]$/.test(A)&&(A=A.slice(1,-1)),t.hash&&(A+=t.hash),/[\"'() \\t\\n]/.test(A)||t.needQuotes?'\"'.concat(A.replace(/\"/g,'\\\\\"').replace(/\\n/g,\"\\\\n\"),'\"'):A)}},71:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.for-each\")},72:function(A,t){A.exports=require(\"hammerjs\")},73:function(A,t){A.exports=require(\"core-js/modules/es.object.assign\")},74:function(A,t){A.exports=require(\"core-js/modules/es.array.splice\")},75:function(A,t,e){\"use strict\";var o=e(30);e.n(o).a},76:function(A,t,e){var o=e(1),n=e(7),i=e(8),a=e(9),r=e(10),s=e(11);t=A.exports=o(!1);var c=n(i),l=n(a),d=n(r),u=n(s);t.push([A.i,'@font-face{font-family:\"iconfont-vue-21c352a\";src:url('+c+\");src:url(\"+c+') format(\"embedded-opentype\"),url('+l+') format(\"woff\"),url('+d+') format(\"truetype\"),url('+u+') format(\"svg\")}.icon[data-v-53cb6bd0]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.arrow-left[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.arrow-right-double[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.arrow-right[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.checkmark[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.close[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.confirm[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.menu[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.more[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.pause[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.play[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.icon.triangle-s[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";content:\"\"}.action-item[data-v-53cb6bd0]{position:relative;display:inline-block}.action-item--single[data-v-53cb6bd0]:hover,.action-item--single[data-v-53cb6bd0]:focus,.action-item--single[data-v-53cb6bd0]:active,.action-item__menutoggle[data-v-53cb6bd0]:hover,.action-item__menutoggle[data-v-53cb6bd0]:focus,.action-item__menutoggle[data-v-53cb6bd0]:active{border-radius:22px;background-color:rgba(127,127,127,0.25) !important;opacity:1}.action-item.action-item--open .action-item__menutoggle[data-v-53cb6bd0]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.action-item--single[data-v-53cb6bd0],.action-item__menutoggle[data-v-53cb6bd0]{box-sizing:border-box;width:44px;height:44px;margin:0;padding:14px;cursor:pointer;border:none;background-color:transparent}.action-item__menutoggle[data-v-53cb6bd0]{display:flex;align-items:center;justify-content:center;opacity:.7}.action-item__menutoggle[data-v-53cb6bd0]:before{content:\\'\\'}.action-item__menutoggle--default-icon[data-v-53cb6bd0]{font-size:16px}.action-item__menutoggle--default-icon[data-v-53cb6bd0]:before{font-family:\"iconfont-vue-21c352a\";font-style:normal;font-weight:400;content:\"\"}.action-item--single[data-v-53cb6bd0]{opacity:.7}.action-item--single[data-v-53cb6bd0]:hover,.action-item--single[data-v-53cb6bd0]:focus,.action-item--single[data-v-53cb6bd0]:active{opacity:1}.action-item--single>[hidden][data-v-53cb6bd0]{display:none}.action-item--multiple[data-v-53cb6bd0]{position:relative}.action-item__menu[data-v-53cb6bd0]{position:absolute;z-index:110;right:50%;display:none;margin-bottom:10px;margin-top:-5px;transform:translateX(50%);color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background);filter:drop-shadow(0 1px 3px var(--color-box-shadow))}.action-item__menu ul[data-v-53cb6bd0]>:not(li){display:none}.action-item__menu.open[data-v-53cb6bd0]{display:block}.action-item__menu .action-item__menu_arrow[data-v-53cb6bd0]{position:absolute;right:50%;bottom:100%;width:0;height:0;margin-right:-9px;content:\\' \\';pointer-events:none;border:solid transparent;border-width:9px;border-bottom-color:var(--color-main-background)}.action-item__menu.menu-right[data-v-53cb6bd0]{right:0;left:auto;transform:none}.action-item__menu.menu-right .action-item__menu_arrow[data-v-53cb6bd0]{right:13px;margin-right:0}.action-item__menu.menu-left[data-v-53cb6bd0]{right:auto;left:0;transform:none}.action-item__menu.menu-left .action-item__menu_arrow[data-v-53cb6bd0]{right:auto;left:13px;margin-right:0}.ie .action-item__menu[data-v-53cb6bd0],.ie .action-item__menu .action-item__menu_arrow[data-v-53cb6bd0],.edge .action-item__menu[data-v-53cb6bd0],.edge .action-item__menu .action-item__menu_arrow[data-v-53cb6bd0]{border:1px solid var(--color-border)}\\n',\"\"])},8:function(A,t,e){\"use strict\";e.r(t),t.default=\"data:application/vnd.ms-fontobject;base64,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\"},80:function(A,t,e){\"use strict\";e.r(t);var o=e(48);e.d(t,\"ActionButton\",function(){return o.a}),\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */t.default=o.a},9:function(A,t,e){\"use strict\";e.r(t),t.default=\"data:font/woff;base64,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\"}})});\n//# sourceMappingURL=Modal.js.map","/*! 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"],"sourceRoot":""}