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.for-each.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","forEach","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","104","locals","11","112","113","12","VTooltip","defaultTemplate","defaultHtml","126","13","before","$slots","text","util","warn","$destroy","$el","remove","beforeUpdate","getText","data","computed","isLongText","methods","14","15","150","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","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","B","setAttribute","ssrId","styleSheet","cssText","firstChild","createTextNode","h","v","filter","childNodes","20","21","random","replace","substr","218","219","22","23","24","25","$parent","mixins","closeAfterClick","isIconUrl","URL","onClick","closeMenu","26","3","30","31","34","Array","isArray","35","getBoundingClientRect","documentElement","clientHeight","clientWidth","assign","top","left","bottom","right","any","all","offsetY","offsetX","componentOptions","tag","ClickOutside","directive","open","forceMenu","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","37","38","39","4","42","48","disabled","isFocusable","focusable","backgroundImage","domProps","textContent","49","5","50","55","6","7","hash","needQuotes","71","72","73","74","75","76","77","8","81","9","exportName","undefined","VENDOR_PREFIXES","TEST_ELEMENT","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","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","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","SingleTouchInput","started","normalizeSingleTouches","touches","changed","changedTouches","TOUCH_INPUT_MAP","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","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_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","set","compute","update","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","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","DIRECTION_HORIZONTAL","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","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press"],"mappings":"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","file":"vendors~files-modal.js?v=83b5950fd2968872b207","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 forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.foreach\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\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=150)}({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,o){\"string\"==typeof A&&(A=[[null,A,\"\"]]);var n={};if(o)for(var i=0;i<this.length;i++){var a=this[i][0];null!=a&&(n[a]=!0)}for(var r=0;r<A.length;r++){var s=[].concat(A[r]);o&&n[s[0]]||(e&&(s[2]?s[2]=\"\".concat(e,\" and \").concat(s[2]):s[2]=e),t.push(s))}},t}},10:function(A,t,e){\"use strict\";e.r(t),t.default=\"data:font/ttf;base64,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\"},104: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+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlLWM0ODFmMTQiIGhvcml6LWFkdi14PSI1MDAwIj48Zm9udC1mYWNlIGZvbnQtZmFtaWx5PSJpY29uZm9udC12dWUtYzQ4MWYxNCIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iNTAwMCIgcGFub3NlLTE9IjIgMCA1IDMgMCAwIDAgMCAwIDAiIGFzY2VudD0iNTAwMCIgZGVzY2VudD0iMCIgeC1oZWlnaHQ9IjAiIGJib3g9Ii0xIDAgNTAxMSA0ODQ0IiB1bmRlcmxpbmUtdGhpY2tuZXNzPSIwIiB1bmRlcmxpbmUtcG9zaXRpb249IjUwIiB1bmljb2RlLXJhbmdlPSJVK2VhMDEtZWEwYyIgLz48bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMCIgIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LWxlZnQtZG91YmxlIiB1bmljb2RlPSImI3hlYTAxOyIgZD0iTTM3NTAgMzkwNiBsLTE0MDYgLTE0MDYgbDE0MDYgLTE0MDYgbDAgMzEyIGwtMTA5NCAxMDk0IGwxMDk0IDEwOTQgbDAgMzEyIFpNMjM0NCAzOTA2IGwtMTQwNiAtMTQwNiBsMTQwNiAtMTQwNiBsMCAzMTIgbC0xMDk0IDEwOTQgbDEwOTQgMTA5NCBsMCAzMTIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctbGVmdCIgdW5pY29kZT0iJiN4ZWEwMjsiIGQ9Ik0xNTYzIDI1MDAgbDE4NzUgLTE4NzUgbDAgLTMxMiBsLTIxODggMjE4NyBsMjE4OCAyMTg4IGwwIC0zMTMgbC0xODc1IC0xODc1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LXJpZ2h0LWRvdWJsZSIgdW5pY29kZT0iJiN4ZWEwMzsiIGQ9Ik0xMjUwIDEwOTQgbDE0MDYgMTQwNiBsLTE0MDYgMTQwNiBsMCAtMzEyIGwxMDk0IC0xMDk0IGwtMTA5NCAtMTA5NCBsMCAtMzEyIFpNMjY1NiAxMDk0IGwxNDA3IDE0MDYgbC0xNDA3IDE0MDYgbDAgLTMxMiBsMTA5NCAtMTA5NCBsLTEwOTQgLTEwOTQgbDAgLTMxMiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yaWdodCIgdW5pY29kZT0iJiN4ZWEwNDsiIGQ9Ik0zNDM4IDI1MDAgbC0xODc1IDE4NzUgbDAgMzEzIGwyMTg3IC0yMTg4IGwtMjE4NyAtMjE4NyBsMCAzMTIgbDE4NzUgMTg3NSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjaGVja21hcmsiIHVuaWNvZGU9IiYjeGVhMDU7IiBkPSJNNDA0NSAzOTcxIGwtMjA2MSAtMjA2MSBsLTEwMjkgMTAyOSBsLTQ0MiAtNDQxIGwxNDcxIC0xNDcxIGwyNTAzIDI1MDIgbC00NDIgNDQyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNsb3NlIiB1bmljb2RlPSImI3hlYTA2OyIgZD0iTTQzNzUgMTE1NiBsLTUzMSAtNTMxIGwtMTM0NCAxMzQ0IGwtMTM0NCAtMTM0NCBsLTUzMSA1MzEgbDEzNDQgMTM0NCBsLTEzNDQgMTM0NCBsNTMxIDUzMSBsMTM0NCAtMTM0NCBsMTM0NCAxMzQ0IGw1MzEgLTUzMSBsLTEzNDQgLTEzNDQgbDEzNDQgLTEzNDQgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY29uZmlybSIgdW5pY29kZT0iJiN4ZWEwNzsiIGQ9Ik0yNjU2IDQ4NDQgcS0xMDEgMCAtMTgwIC01NyBxLTc0IC01MiAtMTA5IC0xMzggcS0zNSAtODYgLTE5IC0xNzUgcTE4IC05NiA5MCAtMTY3IGwxNDk1IC0xNDk0IGwtMzYxNiAwIHEtNzcgMSAtMTM5IC0yNiBxLTU4IC0yNCAtOTkgLTcwIHEtMzkgLTQ0IC01OSAtMTAxIHEtMjAgLTU2IC0yMCAtMTE2IHEwIC02MCAyMCAtMTE2IHEyMCAtNTcgNTkgLTEwMSBxNDEgLTQ2IDk5IC03MCBxNjIgLTI3IDEzOSAtMjUgbDM2MTYgMCBsLTE0OTUgLTE0OTUgcS01NSAtNTMgLTgxIC0xMTYgcS0yNCAtNTkgLTIxIC0xMjEgcTMgLTU4IDMwIC0xMTMgcTI1IC01NCA2OCAtOTcgcTQzIC00MyA5NiAtNjggcTU1IC0yNiAxMTQgLTI5IHE2MiAtMyAxMjAgMjEgcTYzIDI1IDExNiA4MSBsMjAyOSAyMDI4IHE1OSA2MCA4MCAxNDEgcTIxIDgwIDEgMTU5IHEtMjEgODIgLTgxIDE0MiBsLTIwMjkgMjAyOCBxLTQ0IDQ1IC0xMDIgNzAgcS01OCAyNSAtMTIyIDI1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9Im1lbnUiIHVuaWNvZGU9IiYjeGVhMDg7IiBkPSJNNjI1IDQzNzUgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaTTYyNSAyODEzIGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWk02MjUgMTI1MCBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9Im1vcmUiIHVuaWNvZGU9IiYjeGVhMDk7IiBkPSJNOTM4IDMxMjUgcS0xMjggMCAtMjQ0IC00OSBxLTExMiAtNDggLTE5OC41IC0xMzQuNSBxLTg2LjUgLTg2LjUgLTEzMy41IC0xOTguNSBxLTUwIC0xMTYgLTQ5LjUgLTI0MyBxMC41IC0xMjcgNDkuNSAtMjQzIHE0NyAtMTEyIDEzMy41IC0xOTguNSBxODYuNSAtODYuNSAxOTguNSAtMTM0LjUgcTExNiAtNDkgMjQzLjUgLTQ5IHExMjcuNSAwIDI0My41IDQ5IHExMTIgNDggMTk4LjUgMTM0LjUgcTg2LjUgODYuNSAxMzMuNSAxOTguNSBxNTAgMTE2IDUwIDI0MyBxMCAxMjcgLTUwIDI0MyBxLTQ3IDExMiAtMTMzLjUgMTk4LjUgcS04Ni41IDg2LjUgLTE5OC41IDEzNC41IHEtMTE2IDQ5IC0yNDMgNDkgWk0yNTAwIDMxMjUgcS0xMjcgMCAtMjQzIC00OSBxLTExMiAtNDggLTE5OC41IC0xMzQuNSBxLTg2LjUgLTg2LjUgLTEzNC41IC0xOTguNSBxLTQ5IC0xMTYgLTQ5IC0yNDMgcTAgLTEyNyA0OSAtMjQzIHE0OCAtMTEyIDEzNC41IC0xOTguNSBxODYuNSAtODYuNSAxOTguNSAtMTM0LjUgcTExNiAtNDkgMjQzIC00OSBxMTI3IDAgMjQzIDQ5IHExMTIgNDggMTk4LjUgMTM0LjUgcTg2LjUgODYuNSAxMzQuNSAxOTguNSBxNDkgMTE2IDQ5IDI0MyBxMCAxMjcgLTQ5IDI0MyBxLTQ4IDExMiAtMTM0LjUgMTk4LjUgcS04Ni41IDg2LjUgLTE5OC41IDEzNC41IHEtMTE2IDQ5IC0yNDMgNDkgWk00MDYzIDMxMjUgcS0xMjggMCAtMjQ0IC00OSBxLTExMiAtNDggLTE5OC41IC0xMzQuNSBxLTg2LjUgLTg2LjUgLTEzMy41IC0xOTguNSBxLTQ5IC0xMTYgLTQ5IC0yNDMgcTAgLTEyNyA0OSAtMjQzIHE0NyAtMTEyIDEzMy41IC0xOTguNSBxODYuNSAtODYuNSAxOTguNSAtMTM0LjUgcTExNiAtNDkgMjQzLjUgLTQ5IHExMjcuNSAwIDI0My41IDQ5IHExMTIgNDggMTk4LjUgMTM0LjUgcTg2LjUgODYuNSAxMzMuNSAxOTguNSBxNTAgMTE2IDUwIDI0MyBxMCAxMjcgLTUwIDI0MyBxLTQ3IDExMiAtMTMzLjUgMTk4LjUgcS04Ni41IDg2LjUgLTE5OC41IDEzNC41IHEtMTE2IDQ5IC0yNDMgNDkgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0icGF1c2UiIHVuaWNvZGU9IiYjeGVhMGE7IiBkPSJNOTM4IDQwNjMgbDAgLTMxMjUgbDEyNTAgMCBsMCAzMTI1IGwtMTI1MCAwIFpNMjgxMyA0MDYzIGwwIC0zMTI1IGwxMjUwIDAgbDAgMzEyNSBsLTEyNTAgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJwbGF5IiB1bmljb2RlPSImI3hlYTBiOyIgZD0iTTYyNSA0Mzc1IGwzNzUwIC0xODc1IGwtMzc1MCAtMTg3NSBsMCAzNzUwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InRyaWFuZ2xlLXMiIHVuaWNvZGU9IiYjeGVhMGM7IiBkPSJNMTI1MCAzMTI1IGwxMjUwIC0xMjUwIGwxMjUwIDEyNDggbC0yNTAwIDIgWiIgLz48L2ZvbnQ+PC9kZWZzPjwvc3ZnPg==\"},112:function(A,t,e){\"use strict\";var o=e(39);e.n(o).a},113:function(A,t,e){(t=e(1)(!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\",\"\"]),A.exports=t},12:function(A,t,e){\"use strict\";e.r(t);var o=e(4);e(37);\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(\"c481f14\",'><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>'),o.VTooltip.options.defaultHtml=!1,t.default=o.VTooltip},126: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(\"core-js/modules/es.regexp.exec\")},15:function(A,t){A.exports=require(\"v-click-outside\")},150:function(A,e,o){\"use strict\";o.r(e);var n=o(34),i=(o(19),o(30),o(73)),a=o.n(i),r=o(55),s=o(81),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(126),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},16:function(A,t){A.exports=require(\"core-js/modules/es.array.iterator\")},17:function(A,t){A.exports=require(\"core-js/modules/es.string.iterator\")},18:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.iterator\")},19:function(A,t){A.exports=require(\"core-js/modules/es.array.index-of\")},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=B.bind(null,o,n,!1),e=B.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 B(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.regexp.to-string\")},21:function(A,t,e){\"use strict\";e(3),e(14),e(20),e(24);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(104);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=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-c481f14\";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-c481f14\";content:\"\"}.icon.arrow-left[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.arrow-right-double[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.arrow-right[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.checkmark[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.close[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.confirm[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.menu[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.more[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.pause[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.play[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.triangle-s[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";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-c481f14\";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-c481f14\";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-c481f14\";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-c481f14\";font-style:normal;font-weight:400;content:\"\"}.modal-wrapper .icon-next[data-v-2a99be04]:before{font-family:\"iconfont-vue-c481f14\";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',\"\"]),A.exports=t},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){A.exports=require(\"core-js/modules/es.string.replace\")},25:function(A,t,e){\"use strict\";e(16),e(3),e(17),e(18),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()}}}}},26:function(A,t){A.exports=require(\"core-js/modules/es.array.concat\")},3:function(A,t){A.exports=require(\"core-js/modules/es.object.to-string\")},30:function(A,t){A.exports=require(\"core-js/modules/es.number.constructor\")},31:function(A,t,e){var o=e(77);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"0a304400\",o,!0,{})},34: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(\"c481f14\"),\"\")})}},35:function(A,t,e){\"use strict\";e(26),e(49),e(19);var o=e(15),n=e(12),i=e(21),a=(e(74),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(71),e(75),e(6),e(72),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},forceMenu:{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(A){var t=this;this.opened=!this.opened,this.opened?(this.$nextTick(function(){t.onOpen(),t.focusFirstAction()}),this.$emit(\"open\",A)):(this.offsetX=0,this.offsetY=0,this.offsetYArrow=0,this.rotateArrow=!1),this.$emit(\"update:open\",this.opened)},closeMenu:function(A){this.opened&&(this.$emit(\"update:open\",!1),this.$emit(\"close\",A)),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(76),e(0)),g=e(42),f=e.n(g),p=Object(u.a)(d,function(){var A=this,t=A.$createElement,e=A._self._c||t;return A.isValidSingleAction&&!A.forceMenu?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||A.forceMenu,expression:\"hasMultipleActions || forceMenu\"}],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,\"5acb084b\",null);\"function\"==typeof f.a&&f()(p);t.a=p.exports},37:function(A,t,e){var o=e(38);\"string\"==typeof o&&(o=[[A.i,o,\"\"]]),o.locals&&(A.exports=o.locals);(0,e(2).default)(\"941c791e\",o,!0,{})},38:function(A,t,e){(t=e(1)(!1)).push([A.i,\".vue-tooltip[data-v-c481f14]{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-c481f14][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-c481f14][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-c481f14][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-c481f14][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-c481f14][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-c481f14][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-c481f14] .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-c481f14] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\",\"\"]),A.exports=t},39:function(A,t,e){var o=e(113);\"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\")},42:function(A,t){},48:function(A,t,e){\"use strict\";var o={name:\"ActionButton\",mixins:[e(25).a],props:{disabled:{type:Boolean,default:!1}},computed:{isFocusable:function(){return!this.disabled}}},n=(e(112),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(35);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/es.array.for-each\")},72:function(A,t){A.exports=require(\"core-js/modules/web.dom-collections.for-each\")},73:function(A,t){A.exports=require(\"hammerjs\")},74:function(A,t){A.exports=require(\"core-js/modules/es.object.assign\")},75:function(A,t){A.exports=require(\"core-js/modules/es.array.splice\")},76:function(A,t,e){\"use strict\";var o=e(31);e.n(o).a},77:function(A,t,e){var o=e(1),n=e(7),i=e(8),a=e(9),r=e(10),s=e(11);t=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-c481f14\";src:url('+c+\");src:url(\"+c+') format(\"embedded-opentype\"),url('+l+') format(\"woff\"),url('+d+') format(\"truetype\"),url('+u+') format(\"svg\")}.icon[data-v-5acb084b]{font-style:normal;font-weight:400}.icon.arrow-left-double[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.arrow-left[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.arrow-right-double[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.arrow-right[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.checkmark[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.close[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.confirm[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.menu[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.more[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.pause[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.play[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.icon.triangle-s[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";content:\"\"}.action-item[data-v-5acb084b]{position:relative;display:inline-block}.action-item--single[data-v-5acb084b]:hover,.action-item--single[data-v-5acb084b]:focus,.action-item--single[data-v-5acb084b]:active,.action-item__menutoggle[data-v-5acb084b]:hover,.action-item__menutoggle[data-v-5acb084b]:focus,.action-item__menutoggle[data-v-5acb084b]: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-5acb084b]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.action-item--single[data-v-5acb084b],.action-item__menutoggle[data-v-5acb084b]{box-sizing:border-box;width:44px;height:44px;margin:0;padding:14px;cursor:pointer;border:none;background-color:transparent}.action-item__menutoggle[data-v-5acb084b]{display:flex;align-items:center;justify-content:center;opacity:.7}.action-item__menutoggle[data-v-5acb084b]:before{content:\\'\\'}.action-item__menutoggle--default-icon[data-v-5acb084b]{font-size:16px}.action-item__menutoggle--default-icon[data-v-5acb084b]:before{font-family:\"iconfont-vue-c481f14\";font-style:normal;font-weight:400;content:\"\"}.action-item--single[data-v-5acb084b]{opacity:.7}.action-item--single[data-v-5acb084b]:hover,.action-item--single[data-v-5acb084b]:focus,.action-item--single[data-v-5acb084b]:active{opacity:1}.action-item--single>[hidden][data-v-5acb084b]{display:none}.action-item--multiple[data-v-5acb084b]{position:relative}.action-item__menu[data-v-5acb084b]{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-5acb084b]>:not(li){display:none}.action-item__menu.open[data-v-5acb084b]{display:block}.action-item__menu .action-item__menu_arrow[data-v-5acb084b]{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-5acb084b]{right:0;left:auto;transform:none}.action-item__menu.menu-right .action-item__menu_arrow[data-v-5acb084b]{right:13px;margin-right:0}.action-item__menu.menu-left[data-v-5acb084b]{right:auto;left:0;transform:none}.action-item__menu.menu-left .action-item__menu_arrow[data-v-5acb084b]{right:auto;left:13px;margin-right:0}.ie .action-item__menu[data-v-5acb084b],.ie .action-item__menu .action-item__menu_arrow[data-v-5acb084b],.edge .action-item__menu[data-v-5acb084b],.edge .action-item__menu .action-item__menu_arrow[data-v-5acb084b]{border:1px solid var(--color-border)}\\n',\"\"]),A.exports=t},8:function(A,t,e){\"use strict\";e.r(t),t.default=\"data:application/vnd.ms-fontobject;base64,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\"},81: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,d09GRgABAAAAAAooAAoAAAAACeAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAGAAAABgdOOQiWNtYXAAAAFUAAABQgAAAUIADeuyZ2x5ZgAAApgAAAOAAAADgLP154toZWFkAAAGGAAAADYAAAA2JwugIGhoZWEAAAZQAAAAJAAAACQnHBOAaG10eAAABnQAAAAeAAAAHhOI//9sb2NhAAAGlAAAABwAAAAcBTQFvm1heHAAAAawAAAAIAAAACABGgBXbmFtZQAABtAAAAKmAAACprCzrEhwb3N0AAAJeAAAALAAAACw3hyA4wAEE4gBkAAFAAAMZQ2sAAACvAxlDawAAAlgAPUFCgAAAgAFAwAAAAAAAAAAAAAQAAAAAAAAAAAAAABQZkVkAEDqAeoME4gAAAHCE4gAAAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAAAAAA8AAMAAQAAABwABAAgAAAABAAEAAEAAOoM//8AAOoB//8WAAABAAAAAAAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAA6mD0MABQALAAAJAhEJBBEJAQ6m+oIFfvu6BEb6gvqCBX77ugRGD0L6gvqCATgERgRGATj6gvqCATgERgRGAAEAAAAADW4SUAAFAAAJAREJAREGGwdT93QIjAnE+K3+yAiLCIz+xwACAAAAAA/fD0MABQALAAAJAhEJBBEJAQTiBX76ggRG+7oFfgV/+oEERvu6BEYFfgV+/sj7uvu6/sgFfgV+/sj7uvu6AAEAAAAADqYSUAAFAAAJAREJARENbvitCIv3dQnEB1MBOfd093UBOAABAAAAABGHD4MABQAACQUPzffz+/v+RgW/CccPg/fzBAX+R/pBCcYAAQAAAAARFxEXAAsAAAkLERf97frA+sD97QVA+sACEwVABUACE/rABIT97QVA+sACEwVABUACE/rABUD97frAAAH//wAAE5MS7AAzAAABIgcOARcWFwEhJgcGBwYHBhQXFhcWFxY3IQEGBwYXFhceARcWFxY3NjcBNjc2JyYnAS4BCmBlT0pGEBJIBdfx4E0+OiknFBQUFCcpOj5NDiD6KTcaGAMDGxlWNTc7Pjo/NQftOxUVFBU8+BMsdBLsOTSsWWBH+ioBGxguLDk4eDg5LC4YGwL6KTU/Oz46NzZWGRoDAxgZOAfsPFFQT1I8B+wtMgAAAAMAAAAAERcRFwADAAcACwAAAREhEQERIREBESERAnEOpvFaDqbxWg6mERf9jwJx+eb9jwJx+eX9jwJxAAMAAAAAElAMNQAYADEASgAAASIHDgEHBhYXHgEXFjI3PgE3NjQnLgEnJiEiBw4BBwYUFx4BFxYyNz4BNzY0Jy4BJyYhIgcOAQcGFBceARcWMjc+ATc2NCcuAScmA6qAdHCtLzIBMS+tcHT/dHCtLzIyL61wdAWbf3RwrTAxMTCtcHT+dHCtMDExMK1wdAWcgHRwrS8xMS+tcHT/dHCtLzIyL61wdAw1MTCtcHT+dHCtMDExMK1wdP50cK0wMTEwrXB0/nRwrTAxMTCtcHT+dHCtMDExMK1wdP50cK0wMTEwrXB0/nRwrTAxAAAAAgAAAAAP3w/fAAMABwAAAREhESERIREDqgTiAnEE4g/f88sMNfPLDDUAAAABAAAAABEXERcAAgAACQICcQ6m8VoRF/it+K0AAQAAAAAOpgw1AAIAAAkCBOIE4gTiDDX7HgTgAAEAAAABAABmK9w9Xw889QALE4gAAAAA2lYMVwAAAADaBTBY//8AABOTEuwAAAAIAAIAAAAAAAAAAQAAE4gAAAAAE4j////1E5MAAQAAAAAAAAAAAAAAAAAAAAIAAAAAE4gAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAIgA2AFgAbACAAKAA+gEYAY4BpAGyAcAAAQAAAA0ASwADAAAAAAACAAAACgAKAAAA/wAAAAAAAAAAABAAxgABAAAAAAABABQAAAABAAAAAAACAAcAFAABAAAAAAADABQAGwABAAAAAAAEABQALwABAAAAAAAFAAsAQwABAAAAAAAGABQATgABAAAAAAAKACsAYgABAAAAAAALABMAjQADAAEECQABACgAoAADAAEECQACAA4AyAADAAEECQADACgA1gADAAEECQAEACgA/gADAAEECQAFABYBJgADAAEECQAGACgBPAADAAEECQAKAFYBZAADAAEECQALACYBumljb25mb250LXZ1ZS1jNDgxZjE0UmVndWxhcmljb25mb250LXZ1ZS1jNDgxZjE0aWNvbmZvbnQtdnVlLWM0ODFmMTRWZXJzaW9uIDEuMGljb25mb250LXZ1ZS1jNDgxZjE0R2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBjADQAOAAxAGYAMQA0AFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBjADQAOAAxAGYAMQA0AGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AYwA0ADgAMQBmADEANABWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBjADQAOAAxAGYAMQA0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA0ADQAAAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENEWFycm93LWxlZnQtZG91YmxlCmFycm93LWxlZnQSYXJyb3ctcmlnaHQtZG91YmxlC2Fycm93LXJpZ2h0CWNoZWNrbWFyawVjbG9zZQdjb25maXJtBG1lbnUEbW9yZQVwYXVzZQRwbGF5CnRyaWFuZ2xlLXM=\"}})});\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":""}
|