diff --git a/js/editor-collab.js b/js/editor-collab.js index e0e14cc0cb6..996cee7bd1e 100644 --- a/js/editor-collab.js +++ b/js/editor-collab.js @@ -1,4 +1,4 @@ -(window.textWebpackJsonp=window.textWebpackJsonp||[]).push([[191],{227:function(t,e,n){"use strict";(function(t){var a,i,o,s;function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}window,s=function(){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==r(t)&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(a,i,function(e){return t[e]}.bind(null,i));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=51)}([function(t,e,n){function a(t,e,n,a,i,o,s,r){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),a&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),s?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},c._ssrRegister=l):i&&(l=r?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}n.d(e,"a",(function(){return a}))},function(t,e,n){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n,a,i,o=t[1]||"",s=t[3];if(!s)return o;if(e&&"function"==typeof btoa){var r=(n=s,a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(i," */")),l=s.sources.map((function(t){return"/*# sourceURL=".concat(s.sourceRoot||"").concat(t," */")}));return[o].concat(l).concat([r]).join("\n")}return[o].join("\n")}(e,t);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,a){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(a)for(var o=0;on.parts.length&&(a.parts.length=n.parts.length)}else{var s=[];for(i=0;i-1:t.item.model},on:{change:[function(e){var n=t.item.model,a=e.target,i=!!a.checked;if(Array.isArray(n)){var o=t._i(n,null);a.checked?o<0&&t.$set(t.item,"model",n.concat([null])):o>-1&&t.$set(t.item,"model",n.slice(0,o).concat(n.slice(o+1)))}else t.$set(t.item,"model",i)},t.item.action]}}):"radio"===t.item.input?n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:"radio"},domProps:{checked:t._q(t.item.model,null)},on:{change:[function(e){return t.$set(t.item,"model",null)},t.item.action]}}):n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:t.item.input},domProps:{value:t.item.model},on:{change:t.item.action,input:function(e){e.target.composing||t.$set(t.item,"model",e.target.value)}}}),t._v(" "),n("label",{attrs:{for:t.key},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")])]],2):t.item.action?n("button",{staticClass:"menuitem focusable",class:{active:t.item.active},attrs:{disabled:t.item.disabled},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()]):n("span",{staticClass:"menuitem",class:{active:t.item.active}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()])])}),[],!1,null,"75ab886e",null).exports},props:{menu:{type:Array,default:function(){return[{href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}]},required:!0}}},s=(n(76),n(42)),r=n.n(s),l=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("ul",this._l(this.menu,(function(t,n){return e("PopoverMenuItem",{key:n,attrs:{item:t}})})),1)}),[],!1,null,"81c2afc0",null);"function"==typeof r.a&&r()(l);var c=l.exports; +(window.textWebpackJsonp=window.textWebpackJsonp||[]).push([[191],{228:function(t,e,n){"use strict";(function(t){var a,i,o,s;function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}window,s=function(){return function(t){var e={};function n(a){if(e[a])return e[a].exports;var i=e[a]={i:a,l:!1,exports:{}};return t[a].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,a){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==r(t)&&t&&t.__esModule)return t;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(a,i,function(e){return t[e]}.bind(null,i));return a},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/dist/",n(n.s=51)}([function(t,e,n){function a(t,e,n,a,i,o,s,r){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),a&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),s?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},c._ssrRegister=l):i&&(l=r?function(){i.call(this,this.$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}n.d(e,"a",(function(){return a}))},function(t,e,n){t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n=function(t,e){var n,a,i,o=t[1]||"",s=t[3];if(!s)return o;if(e&&"function"==typeof btoa){var r=(n=s,a=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),"/*# ".concat(i," */")),l=s.sources.map((function(t){return"/*# sourceURL=".concat(s.sourceRoot||"").concat(t," */")}));return[o].concat(l).concat([r]).join("\n")}return[o].join("\n")}(e,t);return e[2]?"@media ".concat(e[2]," {").concat(n,"}"):n})).join("")},e.i=function(t,n,a){"string"==typeof t&&(t=[[null,t,""]]);var i={};if(a)for(var o=0;on.parts.length&&(a.parts.length=n.parts.length)}else{var s=[];for(i=0;i-1:t.item.model},on:{change:[function(e){var n=t.item.model,a=e.target,i=!!a.checked;if(Array.isArray(n)){var o=t._i(n,null);a.checked?o<0&&t.$set(t.item,"model",n.concat([null])):o>-1&&t.$set(t.item,"model",n.slice(0,o).concat(n.slice(o+1)))}else t.$set(t.item,"model",i)},t.item.action]}}):"radio"===t.item.input?n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:"radio"},domProps:{checked:t._q(t.item.model,null)},on:{change:[function(e){return t.$set(t.item,"model",null)},t.item.action]}}):n("input",{directives:[{name:"model",rawName:"v-model",value:t.item.model,expression:"item.model"}],class:t.item.input,attrs:{id:t.key,type:t.item.input},domProps:{value:t.item.model},on:{change:t.item.action,input:function(e){e.target.composing||t.$set(t.item,"model",e.target.value)}}}),t._v(" "),n("label",{attrs:{for:t.key},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")])]],2):t.item.action?n("button",{staticClass:"menuitem focusable",class:{active:t.item.active},attrs:{disabled:t.item.disabled},on:{click:function(e){return e.stopPropagation(),e.preventDefault(),t.item.action(e)}}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()]):n("span",{staticClass:"menuitem",class:{active:t.item.active}},[n("span",{class:t.item.icon}),t._v(" "),t.item.text&&t.item.longtext?n("p",[n("strong",{staticClass:"menuitem-text"},[t._v("\n\t\t\t\t"+t._s(t.item.text)+"\n\t\t\t")]),n("br"),t._v(" "),n("span",{staticClass:"menuitem-text-detail"},[t._v("\n\t\t\t\t"+t._s(t.item.longtext)+"\n\t\t\t")])]):t.item.text?n("span",[t._v("\n\t\t\t"+t._s(t.item.text)+"\n\t\t")]):t.item.longtext?n("p",[t._v("\n\t\t\t"+t._s(t.item.longtext)+"\n\t\t")]):t._e()])])}),[],!1,null,"75ab886e",null).exports},props:{menu:{type:Array,default:function(){return[{href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}]},required:!0}}},s=(n(76),n(42)),r=n.n(s),l=Object(i.a)(o,(function(){var t=this.$createElement,e=this._self._c||t;return e("ul",this._l(this.menu,(function(t,n){return e("PopoverMenuItem",{key:n,attrs:{item:t}})})),1)}),[],!1,null,"81c2afc0",null);"function"==typeof r.a&&r()(l);var c=l.exports; /** * @copyright Copyright (c) 2018 John Molakvoæ * @@ -19,5 +19,5 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * - */e.default=c},,,,,,,,,,,,,,,,,,,,,function(t,e,n){var a=n(34);n.n(a).a},function(t,e,n){(e=n(1)(!1)).push([t.i,"\nbutton.menuitem[data-v-75ab886e] {\n\ttext-align: left;\n}\nbutton.menuitem *[data-v-75ab886e] {\n\tcursor: pointer;\n}\nbutton.menuitem[data-v-75ab886e]:disabled {\n\topacity: 0.5 !important;\n\tcursor: default;\n}\nbutton.menuitem:disabled *[data-v-75ab886e] {\n\tcursor: default;\n}\n.menuitem.active[data-v-75ab886e] {\n\tbox-shadow: inset 2px 0 var(--color-primary);\n\tborder-radius: 0;\n}\n",""]),t.exports=e},function(t,e,n){var a=n(35);n.n(a).a},function(t,e,n){(e=n(1)(!1)).push([t.i,"li[data-v-75ab886e]{display:flex;flex:0 0 auto}li.hidden[data-v-75ab886e]{display:none}li>button[data-v-75ab886e],li>a[data-v-75ab886e],li>.menuitem[data-v-75ab886e]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{padding:0 14px 0 44px}li>button[data-v-75ab886e]:not(:disabled):hover,li>button[data-v-75ab886e]:not(:disabled):focus,li>button:not(:disabled).active[data-v-75ab886e],li>a[data-v-75ab886e]:not(:disabled):hover,li>a[data-v-75ab886e]:not(:disabled):focus,li>a:not(:disabled).active[data-v-75ab886e],li>.menuitem[data-v-75ab886e]:not(:disabled):hover,li>.menuitem[data-v-75ab886e]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-75ab886e]{opacity:1 !important}li>button.action[data-v-75ab886e],li>a.action[data-v-75ab886e],li>.menuitem.action[data-v-75ab886e]{padding:inherit !important}li>button>span[data-v-75ab886e],li>a>span[data-v-75ab886e],li>.menuitem>span[data-v-75ab886e]{cursor:pointer;white-space:nowrap}li>button>p[data-v-75ab886e],li>a>p[data-v-75ab886e],li>.menuitem>p[data-v-75ab886e]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-75ab886e],li>a>select[data-v-75ab886e],li>.menuitem>select[data-v-75ab886e]{margin:0;margin-left:6px}li>button[data-v-75ab886e]:not(:empty),li>a[data-v-75ab886e]:not(:empty),li>.menuitem[data-v-75ab886e]:not(:empty){padding-right:14px !important}li>button>img[data-v-75ab886e],li>a>img[data-v-75ab886e],li>.menuitem>img[data-v-75ab886e]{width:16px;padding:14px}li>button>input.radio+label[data-v-75ab886e],li>button>input.checkbox+label[data-v-75ab886e],li>a>input.radio+label[data-v-75ab886e],li>a>input.checkbox+label[data-v-75ab886e],li>.menuitem>input.radio+label[data-v-75ab886e],li>.menuitem>input.checkbox+label[data-v-75ab886e]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-75ab886e]::before,li>a>input.checkbox+label[data-v-75ab886e]::before,li>.menuitem>input.checkbox+label[data-v-75ab886e]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-75ab886e]::before,li>a>input.radio+label[data-v-75ab886e]::before,li>.menuitem>input.radio+label[data-v-75ab886e]::before{margin:-2px 12px 0}li>button>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-75ab886e],li>a form[data-v-75ab886e],li>.menuitem form[data-v-75ab886e]{display:flex;flex:1 1 auto}li>button form[data-v-75ab886e]:not(:first-child),li>a form[data-v-75ab886e]:not(:first-child),li>.menuitem form[data-v-75ab886e]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-75ab886e],li>button>span[style*='display:none']+form[data-v-75ab886e],li>a>span.hidden+form[data-v-75ab886e],li>a>span[style*='display:none']+form[data-v-75ab886e],li>.menuitem>span.hidden+form[data-v-75ab886e],li>.menuitem>span[style*='display:none']+form[data-v-75ab886e]{margin-left:0}li>button input[data-v-75ab886e],li>a input[data-v-75ab886e],li>.menuitem input[data-v-75ab886e]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-75ab886e]:not(:first-child),li>a input[data-v-75ab886e]:not(:first-child),li>.menuitem input[data-v-75ab886e]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-75ab886e]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-75ab886e]{margin-bottom:12px}li>button[data-v-75ab886e]{padding:0}li>button span[data-v-75ab886e]{opacity:1}\n",""]),t.exports=e},function(t,e,n){var a=n(36);n.n(a).a},function(t,e,n){(e=n(1)(!1)).push([t.i,"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\n",""]),t.exports=e}])},"object"==r(e)&&"object"==r(t)?t.exports=s():(i=[],void 0===(o="function"==typeof(a=s)?a.apply(e,i):a)||(t.exports=o))}).call(this,n(197)(t))},237:function(t,e,n){"use strict";n.r(e);var a=n(238),i=n.n(a);for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);e.default=i.a},238:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(a(269)),o=r(a(227)),s=r(a(199));function r(t){return t&&t.__esModule?t:{default:t}}function l(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n0){var t=this.activeSessions.slice(0,3).map((function(t){return t.guestName?t.guestName:t.displayName})).join(", "),e=this.activeSessions.slice(3).length;return t+" "+n("text","and %n other editor","and %n other editors",e)}return this.activeSessions.slice(0,3).map((function(t){return t.guestName?t.guestName:t.displayName})).join(", ")},avatarUrl:function(){return function(t){var e=t.guestName?t.guestName:t.userId,n=!!t.guestName,a=OC.generateUrl(n?"/avatar/guest/{user}/{size}":"/avatar/{user}/{size}",{user:e,size:32});return window.location.protocol+"//"+window.location.host+a}},activeSessions:function(){return Object.values(this.sessions).filter((function(t){return t.lastContact>Date.now()/1e3-30&&!t.isCurrent&&(null!==t.userId||null!==t.guestName)}))},currentSession:function(){return Object.values(this.sessions).find((function(t){return t.isCurrent}))},sessionStyle:function(){return function(t){return{opacity:t.lastContact>Date.now()/1e3-10?1:.5}}},sessionsVisible:function(){return this.activeSessions.slice(0,3)},sessionsPopover:function(){var t=this;return l(this.activeSessions.slice(3).map((function(e){return{href:"#",icon:t.avatarUrl(e),text:e.guestName?e.guestName:e.displayName}})))}},methods:{}};e.default=u},275:function(t,e,n){var a=n(599);"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,n(50).default)("cbdaa584",a,!0,{})},597:function(t,e,n){"use strict";n.r(e);var a=n(608),i=n(237);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);n(598);var s=n(16),r=Object(s.a)(i.default,a.a,a.b,!1,null,"7e4a5d08",null);e.default=r.exports},598:function(t,e,n){"use strict";n(275)},599:function(t,e,n){(e=n(49)(!1)).push([t.i,".session-list[data-v-7e4a5d08]{position:relative}.session-list[data-v-7e4a5d08] .popovermenu{margin-right:-4px}.session-list[data-v-7e4a5d08] .popovermenu img{padding:0;width:32px !important;height:32px !important;margin:6px;border-radius:50%;filter:none !important}.avatar-list[data-v-7e4a5d08]{display:inline-flex;flex-direction:row-reverse}.avatar-list .avatardiv[data-v-7e4a5d08],.avatar-list[data-v-7e4a5d08] .avatardiv{width:36px;height:36px;margin-right:-8px;border:2px solid var(--color-main-background);box-sizing:content-box !important}.avatar-list .avatardiv.icon-more[data-v-7e4a5d08],.avatar-list[data-v-7e4a5d08] .avatardiv.icon-more{width:32px;height:32px;opacity:.5;cursor:pointer}.popovermenu[data-v-7e4a5d08]{display:block}\n",""]),t.exports=e},608:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return i}));var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"session-list"},[n("div",{directives:[{name:"tooltip",rawName:"v-tooltip.bottom",value:t.editorsTooltip,expression:"editorsTooltip",modifiers:{bottom:!0}}],staticClass:"avatar-list",on:{click:function(e){t.popoverVisible=!t.popoverVisible}}},[t.sessionsPopover.length>0?n("div",{staticClass:"avatardiv icon-more"}):t._e(),t._v(" "),t._l(t.sessionsVisible,(function(e){return n("Avatar",{key:e.id,style:t.sessionStyle(e),attrs:{user:e.userId?e.userId:e.guestName,"is-guest":null===e.userId,"disable-tooltip":!0,size:32}})}))],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.popoverVisible,expression:"popoverVisible"}],staticClass:"popovermenu menu-right"},[n("PopoverMenu",{attrs:{menu:t.sessionsPopover}}),t._v(" "),t._t("default")],2)])},i=[]}}]); -//# sourceMappingURL=editor-collab.js.map?v=d31e1c33999101db6b3d \ No newline at end of file + */e.default=c},,,,,,,,,,,,,,,,,,,,,function(t,e,n){var a=n(34);n.n(a).a},function(t,e,n){(e=n(1)(!1)).push([t.i,"\nbutton.menuitem[data-v-75ab886e] {\n\ttext-align: left;\n}\nbutton.menuitem *[data-v-75ab886e] {\n\tcursor: pointer;\n}\nbutton.menuitem[data-v-75ab886e]:disabled {\n\topacity: 0.5 !important;\n\tcursor: default;\n}\nbutton.menuitem:disabled *[data-v-75ab886e] {\n\tcursor: default;\n}\n.menuitem.active[data-v-75ab886e] {\n\tbox-shadow: inset 2px 0 var(--color-primary);\n\tborder-radius: 0;\n}\n",""]),t.exports=e},function(t,e,n){var a=n(35);n.n(a).a},function(t,e,n){(e=n(1)(!1)).push([t.i,"li[data-v-75ab886e]{display:flex;flex:0 0 auto}li.hidden[data-v-75ab886e]{display:none}li>button[data-v-75ab886e],li>a[data-v-75ab886e],li>.menuitem[data-v-75ab886e]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{padding:0 14px 0 44px}li>button[data-v-75ab886e]:not(:disabled):hover,li>button[data-v-75ab886e]:not(:disabled):focus,li>button:not(:disabled).active[data-v-75ab886e],li>a[data-v-75ab886e]:not(:disabled):hover,li>a[data-v-75ab886e]:not(:disabled):focus,li>a:not(:disabled).active[data-v-75ab886e],li>.menuitem[data-v-75ab886e]:not(:disabled):hover,li>.menuitem[data-v-75ab886e]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-75ab886e]{opacity:1 !important}li>button.action[data-v-75ab886e],li>a.action[data-v-75ab886e],li>.menuitem.action[data-v-75ab886e]{padding:inherit !important}li>button>span[data-v-75ab886e],li>a>span[data-v-75ab886e],li>.menuitem>span[data-v-75ab886e]{cursor:pointer;white-space:nowrap}li>button>p[data-v-75ab886e],li>a>p[data-v-75ab886e],li>.menuitem>p[data-v-75ab886e]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-75ab886e],li>a>select[data-v-75ab886e],li>.menuitem>select[data-v-75ab886e]{margin:0;margin-left:6px}li>button[data-v-75ab886e]:not(:empty),li>a[data-v-75ab886e]:not(:empty),li>.menuitem[data-v-75ab886e]:not(:empty){padding-right:14px !important}li>button>img[data-v-75ab886e],li>a>img[data-v-75ab886e],li>.menuitem>img[data-v-75ab886e]{width:16px;padding:14px}li>button>input.radio+label[data-v-75ab886e],li>button>input.checkbox+label[data-v-75ab886e],li>a>input.radio+label[data-v-75ab886e],li>a>input.checkbox+label[data-v-75ab886e],li>.menuitem>input.radio+label[data-v-75ab886e],li>.menuitem>input.checkbox+label[data-v-75ab886e]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-75ab886e]::before,li>a>input.checkbox+label[data-v-75ab886e]::before,li>.menuitem>input.checkbox+label[data-v-75ab886e]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-75ab886e]::before,li>a>input.radio+label[data-v-75ab886e]::before,li>.menuitem>input.radio+label[data-v-75ab886e]::before{margin:-2px 12px 0}li>button>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-75ab886e],li>a form[data-v-75ab886e],li>.menuitem form[data-v-75ab886e]{display:flex;flex:1 1 auto}li>button form[data-v-75ab886e]:not(:first-child),li>a form[data-v-75ab886e]:not(:first-child),li>.menuitem form[data-v-75ab886e]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-75ab886e],li>button>span[style*='display:none']+form[data-v-75ab886e],li>a>span.hidden+form[data-v-75ab886e],li>a>span[style*='display:none']+form[data-v-75ab886e],li>.menuitem>span.hidden+form[data-v-75ab886e],li>.menuitem>span[style*='display:none']+form[data-v-75ab886e]{margin-left:0}li>button input[data-v-75ab886e],li>a input[data-v-75ab886e],li>.menuitem input[data-v-75ab886e]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-75ab886e]:not(:first-child),li>a input[data-v-75ab886e]:not(:first-child),li>.menuitem input[data-v-75ab886e]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-75ab886e]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-75ab886e]{margin-bottom:12px}li>button[data-v-75ab886e]{padding:0}li>button span[data-v-75ab886e]{opacity:1}\n",""]),t.exports=e},function(t,e,n){var a=n(36);n.n(a).a},function(t,e,n){(e=n(1)(!1)).push([t.i,"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\n",""]),t.exports=e}])},"object"==r(e)&&"object"==r(t)?t.exports=s():(i=[],void 0===(o="function"==typeof(a=s)?a.apply(e,i):a)||(t.exports=o))}).call(this,n(198)(t))},238:function(t,e,n){"use strict";n.r(e);var a=n(239),i=n.n(a);for(var o in a)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return a[t]}))}(o);e.default=i.a},239:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=r(a(270)),o=r(a(228)),s=r(a(200));function r(t){return t&&t.__esModule?t:{default:t}}function l(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(t))return Array.from(t)}(t)||function(t,e){if(!t)return;if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c(t,e)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Array(e);n0){var t=this.activeSessions.slice(0,3).map((function(t){return t.guestName?t.guestName:t.displayName})).join(", "),e=this.activeSessions.slice(3).length;return t+" "+n("text","and %n other editor","and %n other editors",e)}return this.activeSessions.slice(0,3).map((function(t){return t.guestName?t.guestName:t.displayName})).join(", ")},avatarUrl:function(){return function(t){var e=t.guestName?t.guestName:t.userId,n=!!t.guestName,a=OC.generateUrl(n?"/avatar/guest/{user}/{size}":"/avatar/{user}/{size}",{user:e,size:32});return window.location.protocol+"//"+window.location.host+a}},activeSessions:function(){return Object.values(this.sessions).filter((function(t){return t.lastContact>Date.now()/1e3-30&&!t.isCurrent&&(null!==t.userId||null!==t.guestName)}))},currentSession:function(){return Object.values(this.sessions).find((function(t){return t.isCurrent}))},sessionStyle:function(){return function(t){return{opacity:t.lastContact>Date.now()/1e3-10?1:.5}}},sessionsVisible:function(){return this.activeSessions.slice(0,3)},sessionsPopover:function(){var t=this;return l(this.activeSessions.slice(3).map((function(e){return{href:"#",icon:t.avatarUrl(e),text:e.guestName?e.guestName:e.displayName}})))}},methods:{}};e.default=u},276:function(t,e,n){var a=n(600);"string"==typeof a&&(a=[[t.i,a,""]]),a.locals&&(t.exports=a.locals);(0,n(50).default)("cbdaa584",a,!0,{})},598:function(t,e,n){"use strict";n.r(e);var a=n(609),i=n(238);for(var o in i)["default"].indexOf(o)<0&&function(t){n.d(e,t,(function(){return i[t]}))}(o);n(599);var s=n(16),r=Object(s.a)(i.default,a.a,a.b,!1,null,"7e4a5d08",null);e.default=r.exports},599:function(t,e,n){"use strict";n(276)},600:function(t,e,n){(e=n(49)(!1)).push([t.i,".session-list[data-v-7e4a5d08]{position:relative}.session-list[data-v-7e4a5d08] .popovermenu{margin-right:-4px}.session-list[data-v-7e4a5d08] .popovermenu img{padding:0;width:32px !important;height:32px !important;margin:6px;border-radius:50%;filter:none !important}.avatar-list[data-v-7e4a5d08]{display:inline-flex;flex-direction:row-reverse}.avatar-list .avatardiv[data-v-7e4a5d08],.avatar-list[data-v-7e4a5d08] .avatardiv{width:36px;height:36px;margin-right:-8px;border:2px solid var(--color-main-background);box-sizing:content-box !important}.avatar-list .avatardiv.icon-more[data-v-7e4a5d08],.avatar-list[data-v-7e4a5d08] .avatardiv.icon-more{width:32px;height:32px;opacity:.5;cursor:pointer}.popovermenu[data-v-7e4a5d08]{display:block}\n",""]),t.exports=e},609:function(t,e,n){"use strict";n.d(e,"a",(function(){return a})),n.d(e,"b",(function(){return i}));var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"session-list"},[n("div",{directives:[{name:"tooltip",rawName:"v-tooltip.bottom",value:t.editorsTooltip,expression:"editorsTooltip",modifiers:{bottom:!0}}],staticClass:"avatar-list",on:{click:function(e){t.popoverVisible=!t.popoverVisible}}},[t.sessionsPopover.length>0?n("div",{staticClass:"avatardiv icon-more"}):t._e(),t._v(" "),t._l(t.sessionsVisible,(function(e){return n("Avatar",{key:e.id,style:t.sessionStyle(e),attrs:{user:e.userId?e.userId:e.guestName,"is-guest":null===e.userId,"disable-tooltip":!0,size:32}})}))],2),t._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:t.popoverVisible,expression:"popoverVisible"}],staticClass:"popovermenu menu-right"},[n("PopoverMenu",{attrs:{menu:t.sessionsPopover}}),t._v(" "),t._t("default")],2)])},i=[]}}]); +//# sourceMappingURL=editor-collab.js.map?v=eff13da59ca12394e946 \ No newline at end of file diff --git a/js/editor-collab.js.map b/js/editor-collab.js.map index 27cafacf590..f7c0bd7e137 100644 --- a/js/editor-collab.js.map +++ b/js/editor-collab.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///NextcloudVue.[name]/webpack/universalModuleDefinition","webpack:///NextcloudVue.[name]/webpack/bootstrap","webpack:///NextcloudVue.[name]/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/api.js","webpack:///NextcloudVue.[name]/node_modules/vue-style-loader/lib/listToStyles.js","webpack:///NextcloudVue.[name]/node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.object.to-string\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.index-of\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.iterator\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.iterator\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.dom-collections.iterator\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.to-string\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.url\"","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?b6e0","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?e30e","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?6063","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?7f21","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?356f","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?b983","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?32c6","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/index.js","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?da10","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?e600","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?8234","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenuItem.vue?b06f","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?88f5","webpack:///NextcloudVue.[name]/src/components/PopoverMenu/PopoverMenu.vue?0a3b","webpack:///./src/components/SessionList.vue?551b","webpack:///src/components/SessionList.vue","webpack:///./src/components/SessionList.vue?3298","webpack:///./src/components/SessionList.vue","webpack:///./src/components/SessionList.vue?91ea","webpack:///./src/components/SessionList.vue?3765","webpack:///./src/components/SessionList.vue?de1d"],"names":["factory","window","installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","useSourceMap","list","toString","map","item","content","sourceMap","base64","data","cssMapping","btoa","sourceMapping","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","mediaQuery","dedupe","alreadyImportedModules","length","id","_i","push","listToStyles","parentId","styles","newStyles","part","css","media","parts","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","type","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","require","locals","default","PopoverMenu_PopoverMenuItemvue_type_script_lang_js_","props","required","href","icon","text","validator","computed","Math","iconIsUrl","methods","action","PopoverMenu_PopoverMenuvue_type_script_lang_js_","components","PopoverMenuItem","_vm","_h","$createElement","_c","_self","staticClass","attrs","target","download","rel","on","click","src","class","_v","longtext","_s","_e","active","input","submit","$event","preventDefault","placeholder","domProps","directives","rawName","expression","checked","Array","isArray","model","change","$$a","$$el","$$c","$$i","$set","slice","_q","composing","for","stopPropagation","disabled","menu","_l","PopoverMenu","___CSS_LOADER_API_IMPORT___","define","component","modifiers","popoverVisible","sessionsPopover","session","style","sessionStyle","userId","guestName","_t"],"mappings":"2HAAiDA,E,qOAS9CC,OAT8CD,EAStC,WACX,O,YCTE,IAAIE,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,KACAH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,KAGAF,EAAOD,QA0Df,OArDAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,cAAkBC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,YAQhDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,YAAVF,IAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,cAAkBK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,SAIjBlC,EAAoBA,EAAoBmC,EAAI,I,kBC5EtC,SAASC,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAqBIC,EArBAC,EAAmC,mBAAlBT,EACjBA,EAAcS,QACdT,EAiDJ,GA9CIC,IACFQ,EAAQR,OAASA,EACjBQ,EAAQP,gBAAkBA,EAC1BO,EAAQC,cAINP,IACFM,EAAQE,eAINN,IACFI,EAAQG,SAAW,UAAYP,GAI7BC,GACFE,EAAO,SAAUK,IAEfA,EACEA,GACCC,KAAKC,QAAUD,KAAKC,OAAOC,YAC3BF,KAAKG,QAAUH,KAAKG,OAAOF,QAAUD,KAAKG,OAAOF,OAAOC,aAEZ,oBAAxBE,sBACrBL,EAAUK,qBAGRd,GACFA,EAAalC,KAAK4C,KAAMD,GAGtBA,GAAWA,EAAQM,uBACrBN,EAAQM,sBAAsBC,IAAId,IAKtCG,EAAQY,aAAeb,GACdJ,IACTI,EAAOD,EACH,WAAcH,EAAalC,KAAK4C,KAAMA,KAAKQ,MAAMC,SAASC,aAC1DpB,GAGFI,EACF,GAAIC,EAAQE,WAAY,CAGtBF,EAAQgB,cAAgBjB,EAExB,IAAIkB,EAAiBjB,EAAQR,OAC7BQ,EAAQR,OAAS,SAAmC0B,EAAGd,GAErD,OADAL,EAAKtC,KAAK2C,GACHa,EAAeC,EAAGd,QAEtB,CAEL,IAAIe,EAAWnB,EAAQoB,aACvBpB,EAAQoB,aAAeD,EACnB,GAAGE,OAAOF,EAAUpB,GACpB,CAACA,GAIT,MAAO,CACL3C,QAASmC,EACTS,QAASA,GA1Fb9C,mC,gBCQAG,EAAOD,QAAU,SAAUkE,GACzB,IAAIC,EAAO,GAuDX,OArDAA,EAAKC,SAAW,WACd,OAAOnB,KAAKoB,KAAI,SAAUC,GACxB,IAAIC,EAsDV,SAAgCD,EAAMJ,GACpC,IAoBiBM,EAEbC,EACAC,EAvBAH,EAAUD,EAAK,IAAM,GAErBK,EAAaL,EAAK,GAEtB,IAAKK,EACH,OAAOJ,EAGT,GAAIL,GAAgC,mBAATU,KAAqB,CAC9C,IAAIC,GAWWL,EAXeG,EAa5BF,EAASG,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUT,MACzDE,EAAO,+DAA+DT,OAAOQ,GAC1E,OAAOR,OAAOS,EAAM,QAdrBQ,EAAaP,EAAWQ,QAAQd,KAAI,SAAUe,GAChD,MAAO,iBAAiBnB,OAAOU,EAAWU,YAAc,IAAIpB,OAAOmB,EAAQ,UAE7E,MAAO,CAACb,GAASN,OAAOiB,GAAYjB,OAAO,CAACY,IAAgBS,KAAK,MAGnE,MAAO,CAACf,GAASe,KAAK,MAjBxB,CAtD2ChB,EAAMJ,GAE3C,OAAII,EAAK,GACA,UAAUL,OAAOK,EAAK,GAAI,MAAML,OAAOM,EAAS,KAGlDA,KACNe,KAAK,KAKVnB,EAAKjE,EAAI,SAAUE,EAASmF,EAAYC,GACf,iBAAZpF,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAIqF,EAAyB,GAE7B,GAAID,EACF,IAAK,IAAItF,EAAI,EAAGA,EAAI+C,KAAKyC,OAAQxF,IAAK,CAEpC,IAAIyF,EAAK1C,KAAK/C,GAAG,GAEP,MAANyF,IACFF,EAAuBE,OAK7B,IAAK,IAAIC,EAAK,EAAGA,EAAKxF,EAAQsF,OAAQE,IAAM,CAC1C,IAAItB,EAAO,GAAGL,OAAO7D,EAAQwF,IAEzBJ,GAAUC,EAAuBnB,EAAK,MAKtCiB,IACGjB,EAAK,GAGRA,EAAK,GAAK,GAAGL,OAAOsB,EAAY,SAAStB,OAAOK,EAAK,IAFrDA,EAAK,GAAKiB,GAMdpB,EAAK0B,KAAKvB,MAIPH,I,gBC5DM,SAAS2B,EAAcC,EAAU5B,GAG9C,IAFA,IAAI6B,EAAS,GACTC,EAAY,GACP/F,EAAI,EAAGA,EAAIiE,EAAKuB,OAAQxF,IAAK,CACpC,IAAIoE,EAAOH,EAAKjE,GACZyF,EAAKrB,EAAK,GAIV4B,EAAO,CACTP,GAAII,EAAW,IAAM7F,EACrBiG,IALQ7B,EAAK,GAMb8B,MALU9B,EAAK,GAMfE,UALcF,EAAK,IAOhB2B,EAAUN,GAGbM,EAAUN,GAAIU,MAAMR,KAAKK,GAFzBF,EAAOH,KAAKI,EAAUN,GAAM,CAAEA,GAAIA,EAAIU,MAAO,CAACH,KAKlD,OAAOF,E,+CCjBT,IAAIM,EAAkC,oBAAbC,SAEzB,GAAqB,oBAAVC,OAAyBA,QAC7BF,EACH,MAAM,IAAIG,MACV,2JAkBJ,IAAIC,EAAc,GAQdC,EAAOL,IAAgBC,SAASI,MAAQJ,SAASK,qBAAqB,QAAQ,IAC9EC,EAAmB,KACnBC,EAAmB,EACnBC,KACAC,EAAO,aACPpE,EAAU,KAKVqE,EAA+B,oBAAdC,WAA6B,eAAeC,KAAKD,UAAUE,UAAUC,eAE3E,SAASC,EAAiBvB,EAAU5B,EAAMoD,EAAeC,GACtET,EAAeQ,EAEf3E,EAAU4E,GAAY,GAEtB,IAAIxB,EAASF,EAAaC,EAAU5B,GAGpC,OAFAsD,EAAezB,GAER,SAAiB0B,GAEtB,IADA,IAAIC,EAAY,GACPzH,EAAI,EAAGA,EAAI8F,EAAON,OAAQxF,IAAK,CACtC,IAAIoE,EAAO0B,EAAO9F,IACd0H,EAAWlB,EAAYpC,EAAKqB,KACvBkC,OACTF,EAAU9B,KAAK+B,GAQjB,IANIF,EAEFD,EADAzB,EAASF,EAAaC,EAAU2B,IAGhC1B,EAAS,GAEF9F,EAAI,EAAGA,EAAIyH,EAAUjC,OAAQxF,IAAK,CACzC,IAAI0H,EACJ,GAAsB,KADlBA,EAAWD,EAAUzH,IACZ2H,KAAY,CACvB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASvB,MAAMX,OAAQoC,IACzCF,EAASvB,MAAMyB,YAEVpB,EAAYkB,EAASjC,OAMpC,SAAS8B,EAAgBzB,GACvB,IAAK,IAAI9F,EAAI,EAAGA,EAAI8F,EAAON,OAAQxF,IAAK,CACtC,IAAIoE,EAAO0B,EAAO9F,GACd0H,EAAWlB,EAAYpC,EAAKqB,IAChC,GAAIiC,EAAU,CACZA,EAASC,OACT,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASvB,MAAMX,OAAQoC,IACzCF,EAASvB,MAAMyB,GAAGxD,EAAK+B,MAAMyB,IAE/B,KAAOA,EAAIxD,EAAK+B,MAAMX,OAAQoC,IAC5BF,EAASvB,MAAMR,KAAKkC,EAASzD,EAAK+B,MAAMyB,KAEtCF,EAASvB,MAAMX,OAASpB,EAAK+B,MAAMX,SACrCkC,EAASvB,MAAMX,OAASpB,EAAK+B,MAAMX,YAEhC,CACL,IAAIW,EAAQ,GACZ,IAASyB,EAAI,EAAGA,EAAIxD,EAAK+B,MAAMX,OAAQoC,IACrCzB,EAAMR,KAAKkC,EAASzD,EAAK+B,MAAMyB,KAEjCpB,EAAYpC,EAAKqB,IAAM,CAAEA,GAAIrB,EAAKqB,GAAIkC,KAAM,EAAGxB,MAAOA,KAK5D,SAAS2B,IACP,IAAIC,EAAe1B,SAAS2B,cAAc,SAG1C,OAFAD,EAAaE,KAAO,WACpBxB,EAAKyB,YAAYH,GACVA,EAGT,SAASF,EAAUM,GACjB,IAAIC,EAAQC,EACRN,EAAe1B,SAASiC,cAAc,2BAA8BH,EAAI1C,GAAK,MAEjF,GAAIsC,EAAc,CAChB,GAAIlB,EAGF,OAAOC,EAOPiB,EAAaQ,WAAWC,YAAYT,GAIxC,GAAIhB,EAAS,CAEX,IAAI0B,EAAa7B,IACjBmB,EAAepB,IAAqBA,EAAmBmB,KACvDM,EAASM,EAAoBlH,KAAK,KAAMuG,EAAcU,MACtDJ,EAASK,EAAoBlH,KAAK,KAAMuG,EAAcU,WAGtDV,EAAeD,IACfM,EAASO,EAAWnH,KAAK,KAAMuG,GAC/BM,EAAS,WACPN,EAAaQ,WAAWC,YAAYT,IAMxC,OAFAK,EAAOD,GAEA,SAAsBS,GAC3B,GAAIA,EAAQ,CACV,GAAIA,EAAO3C,MAAQkC,EAAIlC,KACnB2C,EAAO1C,QAAUiC,EAAIjC,OACrB0C,EAAOtE,YAAc6D,EAAI7D,UAC3B,OAEF8D,EAAOD,EAAMS,QAEbP,KAKN,IACMQ,EADFC,GACED,EAAY,GAET,SAAUE,EAAOC,GAEtB,OADAH,EAAUE,GAASC,EACZH,EAAUI,OAAOC,SAAS9D,KAAK,QAI1C,SAASsD,EAAqBX,EAAcgB,EAAOV,EAAQF,GACzD,IAAIlC,EAAMoC,EAAS,GAAKF,EAAIlC,IAE5B,GAAI8B,EAAaoB,WACfpB,EAAaoB,WAAWC,QAAUN,EAAYC,EAAO9C,OAChD,CACL,IAAIoD,EAAUhD,SAASiD,eAAerD,GAClCsD,EAAaxB,EAAawB,WAC1BA,EAAWR,IAAQhB,EAAaS,YAAYe,EAAWR,IACvDQ,EAAW/D,OACbuC,EAAayB,aAAaH,EAASE,EAAWR,IAE9ChB,EAAaG,YAAYmB,IAK/B,SAASV,EAAYZ,EAAcI,GACjC,IAAIlC,EAAMkC,EAAIlC,IACVC,EAAQiC,EAAIjC,MACZ5B,EAAY6D,EAAI7D,UAiBpB,GAfI4B,GACF6B,EAAa0B,aAAa,QAASvD,GAEjCxD,EAAQgH,OACV3B,EAAa0B,aA7JF,kBA6JyBtB,EAAI1C,IAGtCnB,IAGF2B,GAAO,mBAAqB3B,EAAUW,QAAQ,GAAK,MAEnDgB,GAAO,uDAAyDvB,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUT,MAAgB,OAG9HyD,EAAaoB,WACfpB,EAAaoB,WAAWC,QAAUnD,MAC7B,CACL,KAAO8B,EAAa4B,YAClB5B,EAAaS,YAAYT,EAAa4B,YAExC5B,EAAaG,YAAY7B,SAASiD,eAAerD,O,eC3NrDlG,EAAOD,QAAU8J,EAAQ,K,wBCAzB7J,EAAOD,QAAU8J,EAAQ,M,gBCAzB7J,EAAOD,QAAU8J,EAAQ,K,cCAzB7J,EAAOD,QAAU8J,EAAQ,M,cCAzB7J,EAAOD,QAAU8J,EAAQ,M,gBCAzB7J,EAAOD,QAAU8J,EAAQ,M,cCAzB7J,EAAOD,QAAU8J,EAAQ,M,yBCGzB,IAAIvF,EAAUzE,EAAQ,IACA,iBAAZyE,IAAsBA,EAAU,CAAC,CAACtE,EAAOC,EAAIqE,EAAS,MAC7DA,EAAQwF,SAAQ9J,EAAOD,QAAUuE,EAAQwF,WAElCjK,EAAQ,GAAkEkK,SACnE,WAAYzF,KAAe,K,gBCL5C,IAAIA,EAAUzE,EAAQ,IACA,iBAAZyE,IAAsBA,EAAU,CAAC,CAACtE,EAAOC,EAAIqE,EAAS,MAC7DA,EAAQwF,SAAQ9J,EAAOD,QAAUuE,EAAQwF,WAElCjK,EAAQ,GAAkEkK,SACnE,WAAYzF,KAAe,K,gBCL5C,IAAIA,EAAUzE,EAAQ,IACA,iBAAZyE,IAAsBA,EAAU,CAAC,CAACtE,EAAOC,EAAIqE,EAAS,MAC7DA,EAAQwF,SAAQ9J,EAAOD,QAAUuE,EAAQwF,WAElCjK,EAAQ,GAAkEkK,SACnE,WAAYzF,KAAe,K,6FCR5C,ICAqM0F,ECoJrM,CACAxJ,uBACAyJ,OACA5F,MACA6D,YACAgC,YACAH,mBACA,OACAvI,qBACA2I,6BACAC,kBACAC,mBAKAC,sBAEA,iBACA,4CAMAC,UAEA/I,IAFA+I,WAGA,qBACAvH,cACAwH,+CAEAC,UAPAF,WAQA,IAGA,OADA,2BAEA,SACA,YAIAG,SAGAC,OAHAD,SAGAC,GACA3H,kBACAA,uB,qBCnMiM4H,ECmCjM,CACApK,mBACAqK,YACAC,gB,eCtCa,WAAa,IAAIC,EAAI/H,KAASgI,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAAEH,EAAI1G,KAAS,KAAE6G,EAAG,IAAI,CAACE,YAAY,YAAYC,MAAM,CAAClB,KAAQY,EAAI1G,KAAS,KAAI0G,EAAI1G,KAAK8F,KAAO,IAAImB,OAAUP,EAAI1G,KAAW,OAAI0G,EAAI1G,KAAKiH,OAAS,GAAGC,SAAWR,EAAI1G,KAAKkH,SAASC,IAAM,uBAAuBC,GAAG,CAACC,MAAQX,EAAIJ,SAAS,CAAGI,EAAIN,UAA4CS,EAAG,MAAM,CAACG,MAAM,CAACM,IAAMZ,EAAI1G,KAAK+F,QAAjEc,EAAG,OAAO,CAACU,MAAMb,EAAI1G,KAAK+F,OAA+CW,EAAIc,GAAG,KAAMd,EAAI1G,KAAKgG,MAAQU,EAAI1G,KAAKyH,SAAUZ,EAAG,IAAI,CAACA,EAAG,SAAS,CAACE,YAAY,iBAAiB,CAACL,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,cAAca,EAAG,MAAMH,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACL,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKyH,UAAU,gBAAiBf,EAAI1G,KAAS,KAAE6G,EAAG,OAAO,CAACH,EAAIc,GAAG,WAAWd,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,YAAaU,EAAI1G,KAAa,SAAE6G,EAAG,IAAI,CAACH,EAAIc,GAAG,WAAWd,EAAIgB,GAAGhB,EAAI1G,KAAKyH,UAAU,YAAYf,EAAIiB,OAAQjB,EAAI1G,KAAU,MAAE6G,EAAG,OAAO,CAACE,YAAY,WAAWQ,MAAM,CAACK,OAAQlB,EAAI1G,KAAK4H,SAAS,CAAqB,aAAnBlB,EAAI1G,KAAK6H,MAAsBhB,EAAG,OAAO,CAACU,MAAMb,EAAI1G,KAAK+F,OAAOW,EAAIiB,KAAKjB,EAAIc,GAAG,KAAyB,SAAnBd,EAAI1G,KAAK6H,MAAkBhB,EAAG,OAAO,CAACU,MAAMb,EAAI1G,KAAK6H,MAAMT,GAAG,CAACU,OAAS,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBtB,EAAI1G,KAAKsG,OAAOyB,MAAW,CAAClB,EAAG,QAAQ,CAACG,MAAM,CAACnD,KAAO6C,EAAI1G,KAAK6H,MAAMI,YAAcvB,EAAI1G,KAAKgG,KAAKH,SAAW,IAAIqC,SAAS,CAACrL,MAAQ6J,EAAI1G,KAAKnD,SAAS6J,EAAIc,GAAG,KAAKX,EAAG,QAAQ,CAACE,YAAY,eAAeC,MAAM,CAACnD,KAAO,SAAShH,MAAQ,QAAQ,CAAqB,aAAlB6J,EAAI1G,KAAU,MAAgB6G,EAAG,QAAQ,CAACsB,WAAW,CAAC,CAAChM,KAAK,QAAQiM,QAAQ,UAAUvL,MAAO6J,EAAI1G,KAAU,MAAEqI,WAAW,eAAed,MAAMb,EAAI1G,KAAK6H,MAAMb,MAAM,CAAC3F,GAAKqF,EAAIvJ,IAAI0G,KAAO,YAAYqE,SAAS,CAACI,QAAUC,MAAMC,QAAQ9B,EAAI1G,KAAKyI,OAAO/B,EAAIpF,GAAGoF,EAAI1G,KAAKyI,MAAM,OAAO,EAAG/B,EAAI1G,KAAU,OAAGoH,GAAG,CAACsB,OAAS,CAAC,SAASX,GAAQ,IAAIY,EAAIjC,EAAI1G,KAAKyI,MAAMG,EAAKb,EAAOd,OAAO4B,IAAID,EAAKN,QAAuB,GAAGC,MAAMC,QAAQG,GAAK,CAAC,IAAaG,EAAIpC,EAAIpF,GAAGqH,EAAhB,MAA4BC,EAAKN,QAASQ,EAAI,GAAIpC,EAAIqC,KAAKrC,EAAI1G,KAAM,QAAS2I,EAAIhJ,OAAO,CAAzF,QAAuGmJ,GAAK,GAAIpC,EAAIqC,KAAKrC,EAAI1G,KAAM,QAAS2I,EAAIK,MAAM,EAAEF,GAAKnJ,OAAOgJ,EAAIK,MAAMF,EAAI,UAAYpC,EAAIqC,KAAKrC,EAAI1G,KAAM,QAAS6I,IAAOnC,EAAI1G,KAAKsG,WAA+B,UAAlBI,EAAI1G,KAAU,MAAa6G,EAAG,QAAQ,CAACsB,WAAW,CAAC,CAAChM,KAAK,QAAQiM,QAAQ,UAAUvL,MAAO6J,EAAI1G,KAAU,MAAEqI,WAAW,eAAed,MAAMb,EAAI1G,KAAK6H,MAAMb,MAAM,CAAC3F,GAAKqF,EAAIvJ,IAAI0G,KAAO,SAASqE,SAAS,CAACI,QAAU5B,EAAIuC,GAAGvC,EAAI1G,KAAKyI,MAAM,OAAOrB,GAAG,CAACsB,OAAS,CAAC,SAASX,GAAQ,OAAOrB,EAAIqC,KAAKrC,EAAI1G,KAAM,QAAS,OAAO0G,EAAI1G,KAAKsG,WAAWO,EAAG,QAAQ,CAACsB,WAAW,CAAC,CAAChM,KAAK,QAAQiM,QAAQ,UAAUvL,MAAO6J,EAAI1G,KAAU,MAAEqI,WAAW,eAAed,MAAMb,EAAI1G,KAAK6H,MAAMb,MAAM,CAAC3F,GAAKqF,EAAIvJ,IAAI0G,KAAO6C,EAAI1G,KAAK6H,OAAOK,SAAS,CAACrL,MAAS6J,EAAI1G,KAAU,OAAGoH,GAAG,CAACsB,OAAShC,EAAI1G,KAAKsG,OAAOuB,MAAQ,SAASE,GAAWA,EAAOd,OAAOiC,WAAqBxC,EAAIqC,KAAKrC,EAAI1G,KAAM,QAAS+H,EAAOd,OAAOpK,WAAW6J,EAAIc,GAAG,KAAKX,EAAG,QAAQ,CAACG,MAAM,CAACmC,IAAMzC,EAAIvJ,KAAKiK,GAAG,CAACC,MAAQ,SAASU,GAAyD,OAAjDA,EAAOqB,kBAAkBrB,EAAOC,iBAAwBtB,EAAI1G,KAAKsG,OAAOyB,MAAW,CAACrB,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,gBAAgB,GAAIU,EAAI1G,KAAW,OAAE6G,EAAG,SAAS,CAACE,YAAY,qBAAqBQ,MAAM,CAACK,OAAQlB,EAAI1G,KAAK4H,QAAQZ,MAAM,CAACqC,SAAW3C,EAAI1G,KAAKqJ,UAAUjC,GAAG,CAACC,MAAQ,SAASU,GAAyD,OAAjDA,EAAOqB,kBAAkBrB,EAAOC,iBAAwBtB,EAAI1G,KAAKsG,OAAOyB,MAAW,CAAClB,EAAG,OAAO,CAACU,MAAMb,EAAI1G,KAAK+F,OAAOW,EAAIc,GAAG,KAAMd,EAAI1G,KAAKgG,MAAQU,EAAI1G,KAAKyH,SAAUZ,EAAG,IAAI,CAACA,EAAG,SAAS,CAACE,YAAY,iBAAiB,CAACL,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,cAAca,EAAG,MAAMH,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACL,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKyH,UAAU,gBAAiBf,EAAI1G,KAAS,KAAE6G,EAAG,OAAO,CAACH,EAAIc,GAAG,WAAWd,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,YAAaU,EAAI1G,KAAa,SAAE6G,EAAG,IAAI,CAACH,EAAIc,GAAG,WAAWd,EAAIgB,GAAGhB,EAAI1G,KAAKyH,UAAU,YAAYf,EAAIiB,OAAOd,EAAG,OAAO,CAACE,YAAY,WAAWQ,MAAM,CAACK,OAAQlB,EAAI1G,KAAK4H,SAAS,CAACf,EAAG,OAAO,CAACU,MAAMb,EAAI1G,KAAK+F,OAAOW,EAAIc,GAAG,KAAMd,EAAI1G,KAAKgG,MAAQU,EAAI1G,KAAKyH,SAAUZ,EAAG,IAAI,CAACA,EAAG,SAAS,CAACE,YAAY,iBAAiB,CAACL,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,cAAca,EAAG,MAAMH,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAACE,YAAY,wBAAwB,CAACL,EAAIc,GAAG,aAAad,EAAIgB,GAAGhB,EAAI1G,KAAKyH,UAAU,gBAAiBf,EAAI1G,KAAS,KAAE6G,EAAG,OAAO,CAACH,EAAIc,GAAG,WAAWd,EAAIgB,GAAGhB,EAAI1G,KAAKgG,MAAM,YAAaU,EAAI1G,KAAa,SAAE6G,EAAG,IAAI,CAACH,EAAIc,GAAG,WAAWd,EAAIgB,GAAGhB,EAAI1G,KAAKyH,UAAU,YAAYf,EAAIiB,WAClrI,M,+BDuCtB/B,OACA0D,MACAzF,WACA6B,mBACA,QACAI,6BACAC,kBACAC,oBAGAH,e,0CJlDa,WAAa,IAAiBc,EAAThI,KAAgBiI,eAAmBC,EAAnClI,KAA0CmI,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAjElI,KAA0E4K,GAA1E5K,KAAsF,MAAE,SAASqB,EAAK7C,GAAK,OAAO0J,EAAG,kBAAkB,CAAC1J,IAAIA,EAAI6J,MAAM,CAAChH,KAAOA,QAAU,KACpL,M;;;;;;;;;;;;;;;;;;;;;OMsBPwJ,a,oCCvBf,mBAAuY,G,iBCEvY9N,EADkCF,EAAQ,EAARA,EACxBiO,IAEFlI,KAAK,CAAC5F,EAAOC,EAAI,kZAAmZ,KAE5aD,EAAOD,QAAUA,G,gBCNjB,mBAAgc,G,iBCEhcA,EADkCF,EAAQ,EAARA,EACxBiO,IAEFlI,KAAK,CAAC5F,EAAOC,EAAI,i9NAAk9N,KAE3+ND,EAAOD,QAAUA,G,gBCNjB,mBAA4b,G,iBCE5bA,EADkCF,EAAQ,EAARA,EACxBiO,IAEFlI,KAAK,CAAC5F,EAAOC,EAAI,4DAA6D,KAEtFD,EAAOD,QAAUA,M5BLM,YAAZA,IAA0C,YAAXC,GACxCA,EAAOD,QAAUL,KAEjBqO,EAAiC,QAAjCA,iE,uD6BJF,yHAA2L,YAAG,G,mGC0C9L,gBACA,YACA,Y,6xBAEA,I,EAGA,CACA,mBACA,YACA,iBACA,uBAEA,YACA,mBAEA,OACA,UACA,YACA,+BAGA,KAfA,WAgBA,OACA,kBACA,YAGA,UACA,eADA,WAEA,kCACA,iHACA,sCACA,sEAEA,mHAEA,UATA,WAUA,mBACA,uCAEA,gBACA,iBACA,wDACA,CACA,OACA,KANA,KAQA,8DAGA,eAvBA,WAwBA,+DACA,6BAhDA,KAgDA,cACA,yCAGA,eA7BA,WA8BA,6EAEA,aAhCA,WAiCA,mBACA,OACA,qCA3DA,GA2DA,QAKA,gBAxCA,WAyCA,uCAEA,gBA3CA,WA2CA,WACA,SACA,8CACA,OACA,SACA,oBACA,kDAMA,Y,iCC1HA,IAAIzJ,EAAU,EAAQ,KACA,iBAAZA,IAAsBA,EAAU,CAAC,CAACtE,EAAOC,EAAIqE,EAAS,MAC7DA,EAAQwF,SAAQ9J,EAAOD,QAAUuE,EAAQwF,SAG/BxG,EADH,EAAQ,IAA+DyG,SAChE,WAAYzF,GAAS,EAAM,K,iCCR5C,4IAQI0J,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,0CCnBf,Q,qBCEAjO,EADkC,EAAQ,GAChC+N,EAA4B,IAE9BlI,KAAK,CAAC5F,EAAOC,EAAI,0uBAA2uB,KAEpwBD,EAAOD,QAAUA,G,qGCNjB,IAAIoC,EAAS,WAAa,IAAI4I,EAAI/H,KAASgI,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACF,EAAG,MAAM,CAACsB,WAAW,CAAC,CAAChM,KAAK,UAAUiM,QAAQ,mBAAmBvL,MAAO6J,EAAkB,eAAE2B,WAAW,iBAAiBuB,UAAU,CAAC,QAAS,KAAQ7C,YAAY,cAAcK,GAAG,CAAC,MAAQ,SAASW,GAAQrB,EAAImD,gBAAgBnD,EAAImD,kBAAkB,CAAEnD,EAAIoD,gBAAgB1I,OAAS,EAAGyF,EAAG,MAAM,CAACE,YAAY,wBAAwBL,EAAIiB,KAAKjB,EAAIc,GAAG,KAAKd,EAAI6C,GAAI7C,EAAmB,iBAAE,SAASqD,GAAS,OAAOlD,EAAG,SAAS,CAAC1J,IAAI4M,EAAQ1I,GAAG2I,MAAOtD,EAAIuD,aAAaF,GAAU/C,MAAM,CAAC,KAAO+C,EAAQG,OAASH,EAAQG,OAASH,EAAQI,UAAU,WAA8B,OAAnBJ,EAAQG,OAAgB,mBAAkB,EAAK,KAAO,UAAS,GAAGxD,EAAIc,GAAG,KAAKX,EAAG,MAAM,CAACsB,WAAW,CAAC,CAAChM,KAAK,OAAOiM,QAAQ,SAASvL,MAAO6J,EAAkB,eAAE2B,WAAW,mBAAmBtB,YAAY,0BAA0B,CAACF,EAAG,cAAc,CAACG,MAAM,CAAC,KAAON,EAAIoD,mBAAmBpD,EAAIc,GAAG,KAAKd,EAAI0D,GAAG,YAAY,MACt9BrM,EAAkB","file":"editor-collab.js?v=d31e1c33999101db6b3d","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/PopoverMenu\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/PopoverMenu\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/PopoverMenu\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 51);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"","\n\n\n\tThis component is deprecated. Please use the [Actions](#/Components?id=actions-1) component instead.\n\n\n\n\n\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[(_vm.item.href)?_c('a',{staticClass:\"focusable\",attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#',\"target\":(_vm.item.target) ? _vm.item.target : '',\"download\":_vm.item.download,\"rel\":\"noreferrer noopener\"},on:{\"click\":_vm.action}},[(!_vm.iconIsUrl)?_c('span',{class:_vm.item.icon}):_c('img',{attrs:{\"src\":_vm.item.icon}}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):(_vm.item.input)?_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[(_vm.item.input !== 'checkbox')?_c('span',{class:_vm.item.icon}):_vm._e(),_vm._v(\" \"),(_vm.item.input === 'text')?_c('form',{class:_vm.item.input,on:{\"submit\":function($event){$event.preventDefault();return _vm.item.action($event)}}},[_c('input',{attrs:{\"type\":_vm.item.input,\"placeholder\":_vm.item.text,\"required\":\"\"},domProps:{\"value\":_vm.item.value}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]):[((_vm.item.input)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.item.model)?_vm._i(_vm.item.model,null)>-1:(_vm.item.model)},on:{\"change\":[function($event){var $$a=_vm.item.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.item, \"model\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.item, \"model\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.item, \"model\", $$c)}},_vm.item.action]}}):((_vm.item.input)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.item.model,null)},on:{\"change\":[function($event){return _vm.$set(_vm.item, \"model\", null)},_vm.item.action]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":_vm.item.input},domProps:{\"value\":(_vm.item.model)},on:{\"change\":_vm.item.action,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"model\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.key},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")])]],2):(_vm.item.action)?_c('button',{staticClass:\"menuitem focusable\",class:{active: _vm.item.active},attrs:{\"disabled\":_vm.item.disabled},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\nimport PopoverMenu from './PopoverMenu'\n\nexport default PopoverMenu\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=0&id=75ab886e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=0&id=75ab886e&scoped=true&lang=css&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"\\nbutton.menuitem[data-v-75ab886e] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-75ab886e] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-75ab886e]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-75ab886e] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-75ab886e] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=1&id=75ab886e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=1&id=75ab886e&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"li[data-v-75ab886e]{display:flex;flex:0 0 auto}li.hidden[data-v-75ab886e]{display:none}li>button[data-v-75ab886e],li>a[data-v-75ab886e],li>.menuitem[data-v-75ab886e]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{padding:0 14px 0 44px}li>button[data-v-75ab886e]:not(:disabled):hover,li>button[data-v-75ab886e]:not(:disabled):focus,li>button:not(:disabled).active[data-v-75ab886e],li>a[data-v-75ab886e]:not(:disabled):hover,li>a[data-v-75ab886e]:not(:disabled):focus,li>a:not(:disabled).active[data-v-75ab886e],li>.menuitem[data-v-75ab886e]:not(:disabled):hover,li>.menuitem[data-v-75ab886e]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-75ab886e]{opacity:1 !important}li>button.action[data-v-75ab886e],li>a.action[data-v-75ab886e],li>.menuitem.action[data-v-75ab886e]{padding:inherit !important}li>button>span[data-v-75ab886e],li>a>span[data-v-75ab886e],li>.menuitem>span[data-v-75ab886e]{cursor:pointer;white-space:nowrap}li>button>p[data-v-75ab886e],li>a>p[data-v-75ab886e],li>.menuitem>p[data-v-75ab886e]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-75ab886e],li>a>select[data-v-75ab886e],li>.menuitem>select[data-v-75ab886e]{margin:0;margin-left:6px}li>button[data-v-75ab886e]:not(:empty),li>a[data-v-75ab886e]:not(:empty),li>.menuitem[data-v-75ab886e]:not(:empty){padding-right:14px !important}li>button>img[data-v-75ab886e],li>a>img[data-v-75ab886e],li>.menuitem>img[data-v-75ab886e]{width:16px;padding:14px}li>button>input.radio+label[data-v-75ab886e],li>button>input.checkbox+label[data-v-75ab886e],li>a>input.radio+label[data-v-75ab886e],li>a>input.checkbox+label[data-v-75ab886e],li>.menuitem>input.radio+label[data-v-75ab886e],li>.menuitem>input.checkbox+label[data-v-75ab886e]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-75ab886e]::before,li>a>input.checkbox+label[data-v-75ab886e]::before,li>.menuitem>input.checkbox+label[data-v-75ab886e]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-75ab886e]::before,li>a>input.radio+label[data-v-75ab886e]::before,li>.menuitem>input.radio+label[data-v-75ab886e]::before{margin:-2px 12px 0}li>button>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-75ab886e],li>a form[data-v-75ab886e],li>.menuitem form[data-v-75ab886e]{display:flex;flex:1 1 auto}li>button form[data-v-75ab886e]:not(:first-child),li>a form[data-v-75ab886e]:not(:first-child),li>.menuitem form[data-v-75ab886e]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-75ab886e],li>button>span[style*='display:none']+form[data-v-75ab886e],li>a>span.hidden+form[data-v-75ab886e],li>a>span[style*='display:none']+form[data-v-75ab886e],li>.menuitem>span.hidden+form[data-v-75ab886e],li>.menuitem>span[style*='display:none']+form[data-v-75ab886e]{margin-left:0}li>button input[data-v-75ab886e],li>a input[data-v-75ab886e],li>.menuitem input[data-v-75ab886e]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-75ab886e]:not(:first-child),li>a input[data-v-75ab886e]:not(:first-child),li>.menuitem input[data-v-75ab886e]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-75ab886e]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-75ab886e]{margin-bottom:12px}li>button[data-v-75ab886e]{padding:0}li>button span[data-v-75ab886e]{opacity:1}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=style&index=0&id=81c2afc0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=style&index=0&id=81c2afc0&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SessionList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SessionList.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","// style-loader: Adds some css to the DOM by adding a \n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=script&lang=js&\"","\n\n\n\tThis component is deprecated. Please use the [Actions](#/Components?id=actions-1) component instead.\n\n\n\n\n\n\n\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[(_vm.item.href)?_c('a',{staticClass:\"focusable\",attrs:{\"href\":(_vm.item.href) ? _vm.item.href : '#',\"target\":(_vm.item.target) ? _vm.item.target : '',\"download\":_vm.item.download,\"rel\":\"noreferrer noopener\"},on:{\"click\":_vm.action}},[(!_vm.iconIsUrl)?_c('span',{class:_vm.item.icon}):_c('img',{attrs:{\"src\":_vm.item.icon}}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):(_vm.item.input)?_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[(_vm.item.input !== 'checkbox')?_c('span',{class:_vm.item.icon}):_vm._e(),_vm._v(\" \"),(_vm.item.input === 'text')?_c('form',{class:_vm.item.input,on:{\"submit\":function($event){$event.preventDefault();return _vm.item.action($event)}}},[_c('input',{attrs:{\"type\":_vm.item.input,\"placeholder\":_vm.item.text,\"required\":\"\"},domProps:{\"value\":_vm.item.value}}),_vm._v(\" \"),_c('input',{staticClass:\"icon-confirm\",attrs:{\"type\":\"submit\",\"value\":\"\"}})]):[((_vm.item.input)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.item.model)?_vm._i(_vm.item.model,null)>-1:(_vm.item.model)},on:{\"change\":[function($event){var $$a=_vm.item.model,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.item, \"model\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.item, \"model\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.item, \"model\", $$c)}},_vm.item.action]}}):((_vm.item.input)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.item.model,null)},on:{\"change\":[function($event){return _vm.$set(_vm.item, \"model\", null)},_vm.item.action]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.item.model),expression:\"item.model\"}],class:_vm.item.input,attrs:{\"id\":_vm.key,\"type\":_vm.item.input},domProps:{\"value\":(_vm.item.model)},on:{\"change\":_vm.item.action,\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.item, \"model\", $event.target.value)}}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":_vm.key},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")])]],2):(_vm.item.action)?_c('button',{staticClass:\"menuitem focusable\",class:{active: _vm.item.active},attrs:{\"disabled\":_vm.item.disabled},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.item.action($event)}}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()]):_c('span',{staticClass:\"menuitem\",class:{active: _vm.item.active}},[_c('span',{class:_vm.item.icon}),_vm._v(\" \"),(_vm.item.text && _vm.item.longtext)?_c('p',[_c('strong',{staticClass:\"menuitem-text\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\\t\")]),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"menuitem-text-detail\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\\t\")])]):(_vm.item.text)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.text)+\"\\n\\t\\t\")]):(_vm.item.longtext)?_c('p',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.item.longtext)+\"\\n\\t\\t\")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\nimport PopoverMenu from './PopoverMenu'\n\nexport default PopoverMenu\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=0&id=75ab886e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=0&id=75ab886e&scoped=true&lang=css&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"\\nbutton.menuitem[data-v-75ab886e] {\\n\\ttext-align: left;\\n}\\nbutton.menuitem *[data-v-75ab886e] {\\n\\tcursor: pointer;\\n}\\nbutton.menuitem[data-v-75ab886e]:disabled {\\n\\topacity: 0.5 !important;\\n\\tcursor: default;\\n}\\nbutton.menuitem:disabled *[data-v-75ab886e] {\\n\\tcursor: default;\\n}\\n.menuitem.active[data-v-75ab886e] {\\n\\tbox-shadow: inset 2px 0 var(--color-primary);\\n\\tborder-radius: 0;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=1&id=75ab886e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenuItem.vue?vue&type=style&index=1&id=75ab886e&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"li[data-v-75ab886e]{display:flex;flex:0 0 auto}li.hidden[data-v-75ab886e]{display:none}li>button[data-v-75ab886e],li>a[data-v-75ab886e],li>.menuitem[data-v-75ab886e]{cursor:pointer;line-height:44px;border:0;border-radius:0;background-color:transparent;display:flex;align-items:flex-start;height:auto;margin:0;padding:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap;opacity:.7}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{min-width:0;min-height:0;background-position:14px center;background-size:16px}li>button span[class^='icon-'][data-v-75ab886e],li>button span[class*=' icon-'][data-v-75ab886e],li>a span[class^='icon-'][data-v-75ab886e],li>a span[class*=' icon-'][data-v-75ab886e],li>.menuitem span[class^='icon-'][data-v-75ab886e],li>.menuitem span[class*=' icon-'][data-v-75ab886e]{padding:22px 0 22px 44px}li>button:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>button:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>a:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>span[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>input[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child,li>.menuitem:not([class^='icon-']):not([class*='icon-'])>form[data-v-75ab886e]:not([class^='icon-']):not([class*='icon-']):first-child{margin-left:44px}li>button[class^='icon-'][data-v-75ab886e],li>button[class*=' icon-'][data-v-75ab886e],li>a[class^='icon-'][data-v-75ab886e],li>a[class*=' icon-'][data-v-75ab886e],li>.menuitem[class^='icon-'][data-v-75ab886e],li>.menuitem[class*=' icon-'][data-v-75ab886e]{padding:0 14px 0 44px}li>button[data-v-75ab886e]:not(:disabled):hover,li>button[data-v-75ab886e]:not(:disabled):focus,li>button:not(:disabled).active[data-v-75ab886e],li>a[data-v-75ab886e]:not(:disabled):hover,li>a[data-v-75ab886e]:not(:disabled):focus,li>a:not(:disabled).active[data-v-75ab886e],li>.menuitem[data-v-75ab886e]:not(:disabled):hover,li>.menuitem[data-v-75ab886e]:not(:disabled):focus,li>.menuitem:not(:disabled).active[data-v-75ab886e]{opacity:1 !important}li>button.action[data-v-75ab886e],li>a.action[data-v-75ab886e],li>.menuitem.action[data-v-75ab886e]{padding:inherit !important}li>button>span[data-v-75ab886e],li>a>span[data-v-75ab886e],li>.menuitem>span[data-v-75ab886e]{cursor:pointer;white-space:nowrap}li>button>p[data-v-75ab886e],li>a>p[data-v-75ab886e],li>.menuitem>p[data-v-75ab886e]{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}li>button>select[data-v-75ab886e],li>a>select[data-v-75ab886e],li>.menuitem>select[data-v-75ab886e]{margin:0;margin-left:6px}li>button[data-v-75ab886e]:not(:empty),li>a[data-v-75ab886e]:not(:empty),li>.menuitem[data-v-75ab886e]:not(:empty){padding-right:14px !important}li>button>img[data-v-75ab886e],li>a>img[data-v-75ab886e],li>.menuitem>img[data-v-75ab886e]{width:16px;padding:14px}li>button>input.radio+label[data-v-75ab886e],li>button>input.checkbox+label[data-v-75ab886e],li>a>input.radio+label[data-v-75ab886e],li>a>input.checkbox+label[data-v-75ab886e],li>.menuitem>input.radio+label[data-v-75ab886e],li>.menuitem>input.checkbox+label[data-v-75ab886e]{padding:0 !important;width:100%}li>button>input.checkbox+label[data-v-75ab886e]::before,li>a>input.checkbox+label[data-v-75ab886e]::before,li>.menuitem>input.checkbox+label[data-v-75ab886e]::before{margin:-2px 13px 0}li>button>input.radio+label[data-v-75ab886e]::before,li>a>input.radio+label[data-v-75ab886e]::before,li>.menuitem>input.radio+label[data-v-75ab886e]::before{margin:-2px 12px 0}li>button>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>a>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]),li>.menuitem>input[data-v-75ab886e]:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}li>button form[data-v-75ab886e],li>a form[data-v-75ab886e],li>.menuitem form[data-v-75ab886e]{display:flex;flex:1 1 auto}li>button form[data-v-75ab886e]:not(:first-child),li>a form[data-v-75ab886e]:not(:first-child),li>.menuitem form[data-v-75ab886e]:not(:first-child){margin-left:5px}li>button>span.hidden+form[data-v-75ab886e],li>button>span[style*='display:none']+form[data-v-75ab886e],li>a>span.hidden+form[data-v-75ab886e],li>a>span[style*='display:none']+form[data-v-75ab886e],li>.menuitem>span.hidden+form[data-v-75ab886e],li>.menuitem>span[style*='display:none']+form[data-v-75ab886e]{margin-left:0}li>button input[data-v-75ab886e],li>a input[data-v-75ab886e],li>.menuitem input[data-v-75ab886e]{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}li>button input[data-v-75ab886e]:not(:first-child),li>a input[data-v-75ab886e]:not(:first-child),li>.menuitem input[data-v-75ab886e]:not(:first-child){margin-left:5px}li:not(.hidden):not([style*='display:none']):first-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):first-of-type>.menuitem>input[data-v-75ab886e]{margin-top:12px}li:not(.hidden):not([style*='display:none']):last-of-type>button>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>button>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>a>input[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>form[data-v-75ab886e],li:not(.hidden):not([style*='display:none']):last-of-type>.menuitem>input[data-v-75ab886e]{margin-bottom:12px}li>button[data-v-75ab886e]{padding:0}li>button span[data-v-75ab886e]{opacity:1}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=style&index=0&id=81c2afc0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PopoverMenu.vue?vue&type=style&index=0&id=81c2afc0&lang=scss&scoped=true&\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"ul[data-v-81c2afc0]{display:flex;flex-direction:column}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SessionList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SessionList.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","// style-loader: Adds some css to the DOM by adding a \n","// style-loader: Adds some css to the DOM by adding a \n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuBubble.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuBubble.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuBubble.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuBubble.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \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 .\n *\n */\nimport { Editor, Text } from 'tiptap'\nimport {\n\tHardBreak,\n\tHeading,\n\tCode,\n\tBulletList,\n\tOrderedList,\n\tBlockquote,\n\tCodeBlock,\n\tCodeBlockHighlight,\n\tHorizontalRule,\n\tHistory,\n\tPlaceholder,\n} from 'tiptap-extensions'\nimport { Strong, Italic, Strike, Link } from './marks'\nimport { Image, PlainTextDocument, ListItem } from './nodes'\nimport MarkdownIt from 'markdown-it'\nimport taskLists from 'markdown-it-task-lists'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport 'proxy-polyfill'\n\nimport { MarkdownSerializer, defaultMarkdownSerializer } from 'prosemirror-markdown'\n\nconst loadSyntaxHighlight = async(language) => {\n\tconst languages = [language]\n\tconst modules = {}\n\tfor (let i = 0; i < languages.length; i++) {\n\t\ttry {\n\t\t\tconst lang = await import(/* webpackChunkName: \"highlight/[request]\" */'highlight.js/lib/languages/' + languages[i])\n\t\t\tmodules[languages[i]] = lang.default\n\t\t} catch (e) {\n\t\t\t// No matching highlighing found, fallback to none\n\t\t\treturn undefined\n\t\t}\n\t}\n\tif (Object.keys(modules).length === 0 && modules.constructor === Object) {\n\t\treturn undefined\n\t}\n\treturn { languages: modules }\n}\n\nconst createEditor = ({ content, onInit, onUpdate, extensions, enableRichEditing, languages }) => {\n\tlet richEditingExtensions = []\n\tif (enableRichEditing) {\n\t\trichEditingExtensions = [\n\t\t\tnew Heading(),\n\t\t\tnew Code(),\n\t\t\tnew Strong(),\n\t\t\tnew Italic(),\n\t\t\tnew Strike(),\n\t\t\tnew HardBreak(),\n\t\t\tnew HorizontalRule(),\n\t\t\tnew BulletList(),\n\t\t\tnew OrderedList(),\n\t\t\tnew Blockquote(),\n\t\t\tnew CodeBlock(),\n\t\t\tnew ListItem(),\n\t\t\tnew Link({\n\t\t\t\topenOnClick: true,\n\t\t\t}),\n\t\t\tnew Image(),\n\t\t\tnew Placeholder({\n\t\t\t\temptyNodeClass: 'is-empty',\n\t\t\t\temptyNodeText: t('text', 'Add notes, lists or links …'),\n\t\t\t\tshowOnlyWhenEditable: true,\n\t\t\t}),\n\t\t]\n\t} else {\n\t\trichEditingExtensions = [\n\t\t\tnew PlainTextDocument(),\n\t\t\tnew Text(),\n\t\t\tnew CodeBlockHighlight({\n\t\t\t\t...languages,\n\t\t\t}),\n\t\t]\n\t}\n\textensions = extensions || []\n\treturn new Editor({\n\t\tcontent,\n\t\tonInit,\n\t\tonUpdate,\n\t\textensions: [\n\t\t\t...richEditingExtensions,\n\t\t\tnew History(),\n\t\t].concat(extensions),\n\t\tuseBuiltInExtensions: enableRichEditing,\n\t})\n}\n\nconst markdownit = MarkdownIt('commonmark', { html: false, breaks: false })\n\t.enable('strikethrough')\n\t.use(taskLists, { enable: true, labelAfter: true })\n\nconst SerializeException = function(message) {\n\tthis.message = message\n}\nconst createMarkdownSerializer = (_nodes, _marks) => {\n\tconst nodes = Object\n\t\t.entries(_nodes)\n\t\t.filter(([, node]) => node.toMarkdown)\n\t\t.reduce((items, [name, { toMarkdown }]) => ({\n\t\t\t...items,\n\t\t\t[name]: toMarkdown,\n\t\t}), {})\n\n\tconst marks = Object\n\t\t.entries(_marks)\n\t\t.filter(([, node]) => node.toMarkdown)\n\t\t.reduce((items, [name, { toMarkdown }]) => ({\n\t\t\t...items,\n\t\t\t[name]: toMarkdown,\n\t\t}), {})\n\treturn {\n\t\tserializer: new MarkdownSerializer(\n\t\t\t{ ...defaultMarkdownSerializer.nodes, ...nodes },\n\t\t\t{ ...defaultMarkdownSerializer.marks, ...marks }\n\t\t),\n\t\tserialize(content, options) {\n\t\t\treturn this.serializer.serialize(content, { ...options, tightLists: true })\n\t\t\t\t.split('\\\\[').join('[')\n\t\t\t\t.split('\\\\]').join(']')\n\t\t},\n\t}\n}\n\nconst serializePlainText = (tiptap) => {\n\tconst doc = tiptap.getJSON()\n\n\tif (doc.content.length !== 1 || typeof doc.content[0].content === 'undefined' || doc.content[0].content.length !== 1) {\n\t\tif (doc.content[0].type === 'code_block' && typeof doc.content[0].content === 'undefined') {\n\t\t\treturn ''\n\t\t}\n\t\tthrow new SerializeException('Failed to serialize document to plain text')\n\t}\n\tconst codeBlock = doc.content[0].content[0]\n\tif (codeBlock.type !== 'text') {\n\t\tthrow new SerializeException('Failed to serialize document to plain text')\n\t}\n\treturn codeBlock.text\n}\n\nexport default createEditor\nexport { markdownit, createEditor, createMarkdownSerializer, serializePlainText, loadSyntaxHighlight }\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \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 .\n *\n */\nimport axios from '@nextcloud/axios'\n\nimport PollingBackend from './PollingBackend'\nimport { endpointUrl } from './../helpers'\nimport { getVersion, sendableSteps } from 'prosemirror-collab'\n\nconst defaultOptions = {\n\tshareToken: null,\n\tforceRecreate: false,\n\tserialize: (document) => document,\n}\n\nconst ERROR_TYPE = {\n\t/**\n\t * Failed to save collaborative document due to external change\n\t * collission needs to be resolved manually\n\t */\n\tSAVE_COLLISSION: 0,\n\t/**\n\t * Failed to push changes for MAX_REBASE_RETRY times\n\t */\n\tPUSH_FAILURE: 1,\n\n\tLOAD_ERROR: 2,\n\n\tCONNECTION_FAILED: 3,\n\n\tSOURCE_NOT_FOUND: 4,\n}\n\nclass SyncService {\n\n\tconstructor(options) {\n\t\tthis.eventHandlers = {\n\t\t\t/* Document state */\n\t\t\topened: [],\n\t\t\tloaded: [],\n\t\t\t/* All initial steps fetched */\n\t\t\tfetched: [],\n\t\t\t/* received new steps */\n\t\t\tsync: [],\n\t\t\t/* state changed (dirty) */\n\t\t\tstateChange: [],\n\t\t\t/* error */\n\t\t\terror: [],\n\t\t\t/* Events for session and document meta data */\n\t\t\tchange: [],\n\t\t\t/* Emitted after successful save */\n\t\t\tsave: [],\n\t\t}\n\n\t\tthis.backend = new PollingBackend(this)\n\n\t\tthis.options = Object.assign({}, defaultOptions, options)\n\n\t\tthis.document = null\n\t\tthis.session = null\n\t\tthis.sessions = []\n\n\t\tthis.steps = []\n\t\tthis.stepClientIDs = []\n\n\t\treturn this\n\t}\n\n\tasync open({ fileId, filePath, initialSession }) {\n\t\tlet connectionData = null\n\t\tif (typeof initialSession === 'undefined') {\n\t\t\ttry {\n\t\t\t\tconst response = await this._openDocument({ fileId, filePath })\n\t\t\t\tconnectionData = response.data\n\t\t\t} catch (error) {\n\t\t\t\tif (!error.response || error.code === 'ECONNABORTED') {\n\t\t\t\t\tthis.emit('error', ERROR_TYPE.CONNECTION_FAILED, {})\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit('error', ERROR_TYPE.LOAD_ERROR, error.response.status)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t} else {\n\t\t\tconnectionData = initialSession\n\t\t}\n\n\t\tthis.document = connectionData.document\n\t\tthis.document.readOnly = connectionData.readOnly\n\t\tthis.session = connectionData.session\n\n\t\tthis.emit('opened', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t})\n\t\treturn this._fetchDocument().then(({ data }) => {\n\t\t\tthis.emit('loaded', {\n\t\t\t\tdocument: this.document,\n\t\t\t\tsession: this.session,\n\t\t\t\tdocumentSource: '' + data,\n\t\t\t})\n\t\t})\n\t}\n\n\tstartSync() {\n\t\tthis.backend.connect()\n\t}\n\n\t_openDocument({ fileId, filePath }) {\n\t\treturn axios.get(endpointUrl('session/create', !!this.options.shareToken), {\n\t\t\tparams: {\n\t\t\t\tfileId,\n\t\t\t\tfilePath,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName: this.options.guestName,\n\t\t\t\tforceRecreate: this.options.forceRecreate,\n\t\t\t},\n\t\t})\n\t}\n\n\t_fetchDocument() {\n\t\treturn axios.get(\n\t\t\tendpointUrl('session/fetch', !!this.options.shareToken), {\n\t\t\t\ttransformResponse: [(data) => data],\n\t\t\t\tparams: {\n\t\t\t\t\tdocumentId: this.document.id,\n\t\t\t\t\tsessionId: this.session.id,\n\t\t\t\t\tsessionToken: this.session.token,\n\t\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\t}\n\n\tupdateSession(guestName) {\n\t\tif (!this.isPublic()) {\n\t\t\treturn\n\t\t}\n\t\treturn axios.post(\n\t\t\tendpointUrl('session', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName,\n\t\t\t}\n\t\t).then(({ data }) => {\n\t\t\tthis.session = data\n\t\t\treturn data\n\t\t}).catch((error) => {\n\t\t\tconsole.error('Failed to update the session', error)\n\t\t\treturn Promise.reject(error)\n\t\t})\n\t}\n\n\tsendSteps(_sendable) {\n\t\tconst sendable = _sendable || sendableSteps(this.state)\n\t\tif (!sendable) {\n\t\t\treturn\n\t\t}\n\t\treturn this.backend.sendSteps(sendable)\n\t}\n\n\tstepsSince(version) {\n\t\treturn {\n\t\t\tsteps: this.steps.slice(version),\n\t\t\tclientIDs: this.stepClientIDs.slice(version),\n\t\t}\n\t}\n\n\t_receiveSteps({ steps, document }) {\n\t\tconst newSteps = []\n\t\tfor (let i = 0; i < steps.length; i++) {\n\t\t\tconst singleSteps = steps[i].data\n\t\t\tif (!Array.isArray(singleSteps)) {\n\t\t\t\tconsole.error('Invalid step data, skipping step', steps[i])\n\t\t\t\t// TODO: recover\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsingleSteps.forEach(step => {\n\t\t\t\tthis.steps.push(step)\n\t\t\t\tnewSteps.push({\n\t\t\t\t\tstep,\n\t\t\t\t\tclientID: steps[i].sessionId,\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tthis.emit('sync', { steps: newSteps, document })\n\t\tconsole.debug('receivedSteps', 'newVersion', this._getVersion())\n\t}\n\n\t_getVersion() {\n\t\tif (this.state) {\n\t\t\treturn getVersion(this.state)\n\t\t}\n\t\treturn 0\n\t}\n\t_getDocument() {\n\t\tif (this.state) {\n\t\t\treturn this.state.doc\n\t\t}\n\t}\n\n\t_getContent() {\n\t\treturn this.options.serialize(this._getDocument())\n\t}\n\n\tsave() {\n\t\tif (this.backend.save) {\n\t\t\tthis.backend.save()\n\t\t}\n\t}\n\n\tforceSave() {\n\t\tif (this.backend.forceSave) {\n\t\t\tthis.backend.forceSave()\n\t\t}\n\t}\n\n\tclose() {\n\t\tlet closed = false\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.on('save', () => {\n\t\t\t\tthis._close().then(() => {\n\t\t\t\t\tclosed = true\n\t\t\t\t\tresolve()\n\t\t\t\t}).catch(() => resolve())\n\t\t\t})\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!closed) {\n\t\t\t\t\tthis._close().then(() => {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t}\n\t\t\t}, 2000)\n\t\t\tthis.save()\n\t\t})\n\t}\n\n\t_close() {\n\t\tif (this.document === null || this.session === null) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tthis.backend.disconnect()\n\t\treturn axios.get(\n\t\t\tendpointUrl('session/close', !!this.options.shareToken), {\n\t\t\t\tparams: {\n\t\t\t\t\tdocumentId: this.document.id,\n\t\t\t\t\tsessionId: this.session.id,\n\t\t\t\t\tsessionToken: this.session.token,\n\t\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\t}\n\n\ton(event, callback, _this) {\n\t\tthis.eventHandlers[event].push(callback.bind(_this))\n\t\treturn this\n\t}\n\n\temit(event, data, additionalData) {\n\t\tif (typeof this.eventHandlers[event] !== 'undefined') {\n\t\t\tthis.eventHandlers[event].forEach(function(callback) {\n\t\t\t\tcallback(data, additionalData)\n\t\t\t})\n\t\t} else {\n\t\t\tconsole.error('Event not found', event)\n\t\t}\n\t}\n\n\tisPublic() {\n\t\treturn !!this.options.shareToken\n\t}\n\n}\n\nexport default SyncService\nexport { SyncService, ERROR_TYPE }\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorWrapper.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \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 .\n *\n */\nimport { Editor, Text } from 'tiptap'\nimport {\n\tHardBreak,\n\tHeading,\n\tCode,\n\tBulletList,\n\tOrderedList,\n\tBlockquote,\n\tCodeBlock,\n\tCodeBlockHighlight,\n\tHorizontalRule,\n\tHistory,\n\tPlaceholder,\n} from 'tiptap-extensions'\nimport { Strong, Italic, Strike, Link } from './marks'\nimport { Image, PlainTextDocument, ListItem } from './nodes'\nimport MarkdownIt from 'markdown-it'\nimport taskLists from 'markdown-it-task-lists'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport 'proxy-polyfill'\n\nimport { MarkdownSerializer, defaultMarkdownSerializer } from 'prosemirror-markdown'\n\nconst loadSyntaxHighlight = async(language) => {\n\tconst languages = [language]\n\tconst modules = {}\n\tfor (let i = 0; i < languages.length; i++) {\n\t\ttry {\n\t\t\tconst lang = await import(/* webpackChunkName: \"highlight/[request]\" */'highlight.js/lib/languages/' + languages[i])\n\t\t\tmodules[languages[i]] = lang.default\n\t\t} catch (e) {\n\t\t\t// No matching highlighing found, fallback to none\n\t\t\treturn undefined\n\t\t}\n\t}\n\tif (Object.keys(modules).length === 0 && modules.constructor === Object) {\n\t\treturn undefined\n\t}\n\treturn { languages: modules }\n}\n\nconst createEditor = ({ content, onInit, onUpdate, extensions, enableRichEditing, languages }) => {\n\tlet richEditingExtensions = []\n\tif (enableRichEditing) {\n\t\trichEditingExtensions = [\n\t\t\tnew Heading(),\n\t\t\tnew Code(),\n\t\t\tnew Strong(),\n\t\t\tnew Italic(),\n\t\t\tnew Strike(),\n\t\t\tnew HardBreak(),\n\t\t\tnew HorizontalRule(),\n\t\t\tnew BulletList(),\n\t\t\tnew OrderedList(),\n\t\t\tnew Blockquote(),\n\t\t\tnew CodeBlock(),\n\t\t\tnew ListItem(),\n\t\t\tnew Link({\n\t\t\t\topenOnClick: true,\n\t\t\t}),\n\t\t\tnew Image(),\n\t\t\tnew Placeholder({\n\t\t\t\temptyNodeClass: 'is-empty',\n\t\t\t\temptyNodeText: t('text', 'Add notes, lists or links …'),\n\t\t\t\tshowOnlyWhenEditable: true,\n\t\t\t}),\n\t\t]\n\t} else {\n\t\trichEditingExtensions = [\n\t\t\tnew PlainTextDocument(),\n\t\t\tnew Text(),\n\t\t\tnew CodeBlockHighlight({\n\t\t\t\t...languages,\n\t\t\t}),\n\t\t]\n\t}\n\textensions = extensions || []\n\treturn new Editor({\n\t\tcontent,\n\t\tonInit,\n\t\tonUpdate,\n\t\textensions: [\n\t\t\t...richEditingExtensions,\n\t\t\tnew History(),\n\t\t].concat(extensions),\n\t\tuseBuiltInExtensions: enableRichEditing,\n\t})\n}\n\nconst markdownit = MarkdownIt('commonmark', { html: false, breaks: false })\n\t.enable('strikethrough')\n\t.use(taskLists, { enable: true, labelAfter: true })\n\nconst SerializeException = function(message) {\n\tthis.message = message\n}\nconst createMarkdownSerializer = (_nodes, _marks) => {\n\tconst nodes = Object\n\t\t.entries(_nodes)\n\t\t.filter(([, node]) => node.toMarkdown)\n\t\t.reduce((items, [name, { toMarkdown }]) => ({\n\t\t\t...items,\n\t\t\t[name]: toMarkdown,\n\t\t}), {})\n\n\tconst marks = Object\n\t\t.entries(_marks)\n\t\t.filter(([, node]) => node.toMarkdown)\n\t\t.reduce((items, [name, { toMarkdown }]) => ({\n\t\t\t...items,\n\t\t\t[name]: toMarkdown,\n\t\t}), {})\n\treturn {\n\t\tserializer: new MarkdownSerializer(\n\t\t\t{ ...defaultMarkdownSerializer.nodes, ...nodes },\n\t\t\t{ ...defaultMarkdownSerializer.marks, ...marks }\n\t\t),\n\t\tserialize(content, options) {\n\t\t\treturn this.serializer.serialize(content, { ...options, tightLists: true })\n\t\t\t\t.split('\\\\[').join('[')\n\t\t\t\t.split('\\\\]').join(']')\n\t\t},\n\t}\n}\n\nconst serializePlainText = (tiptap) => {\n\tconst doc = tiptap.getJSON()\n\n\tif (doc.content.length !== 1 || typeof doc.content[0].content === 'undefined' || doc.content[0].content.length !== 1) {\n\t\tif (doc.content[0].type === 'code_block' && typeof doc.content[0].content === 'undefined') {\n\t\t\treturn ''\n\t\t}\n\t\tthrow new SerializeException('Failed to serialize document to plain text')\n\t}\n\tconst codeBlock = doc.content[0].content[0]\n\tif (codeBlock.type !== 'text') {\n\t\tthrow new SerializeException('Failed to serialize document to plain text')\n\t}\n\treturn codeBlock.text\n}\n\nexport default createEditor\nexport { markdownit, createEditor, createMarkdownSerializer, serializePlainText, loadSyntaxHighlight }\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageView.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReadOnlyEditor.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollisionResolveDialog.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \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 .\n *\n */\nimport axios from '@nextcloud/axios'\n\nimport PollingBackend from './PollingBackend'\nimport { endpointUrl } from './../helpers'\nimport { getVersion, sendableSteps } from 'prosemirror-collab'\n\nconst defaultOptions = {\n\tshareToken: null,\n\tforceRecreate: false,\n\tserialize: (document) => document,\n}\n\nconst ERROR_TYPE = {\n\t/**\n\t * Failed to save collaborative document due to external change\n\t * collission needs to be resolved manually\n\t */\n\tSAVE_COLLISSION: 0,\n\t/**\n\t * Failed to push changes for MAX_REBASE_RETRY times\n\t */\n\tPUSH_FAILURE: 1,\n\n\tLOAD_ERROR: 2,\n\n\tCONNECTION_FAILED: 3,\n\n\tSOURCE_NOT_FOUND: 4,\n}\n\nclass SyncService {\n\n\tconstructor(options) {\n\t\tthis.eventHandlers = {\n\t\t\t/* Document state */\n\t\t\topened: [],\n\t\t\tloaded: [],\n\t\t\t/* All initial steps fetched */\n\t\t\tfetched: [],\n\t\t\t/* received new steps */\n\t\t\tsync: [],\n\t\t\t/* state changed (dirty) */\n\t\t\tstateChange: [],\n\t\t\t/* error */\n\t\t\terror: [],\n\t\t\t/* Events for session and document meta data */\n\t\t\tchange: [],\n\t\t\t/* Emitted after successful save */\n\t\t\tsave: [],\n\t\t}\n\n\t\tthis.backend = new PollingBackend(this)\n\n\t\tthis.options = Object.assign({}, defaultOptions, options)\n\n\t\tthis.document = null\n\t\tthis.session = null\n\t\tthis.sessions = []\n\n\t\tthis.steps = []\n\t\tthis.stepClientIDs = []\n\n\t\treturn this\n\t}\n\n\tasync open({ fileId, filePath, initialSession }) {\n\t\tlet connectionData = null\n\t\tif (typeof initialSession === 'undefined') {\n\t\t\ttry {\n\t\t\t\tconst response = await this._openDocument({ fileId, filePath })\n\t\t\t\tconnectionData = response.data\n\t\t\t} catch (error) {\n\t\t\t\tif (!error.response || error.code === 'ECONNABORTED') {\n\t\t\t\t\tthis.emit('error', ERROR_TYPE.CONNECTION_FAILED, {})\n\t\t\t\t} else {\n\t\t\t\t\tthis.emit('error', ERROR_TYPE.LOAD_ERROR, error.response.status)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t} else {\n\t\t\tconnectionData = initialSession\n\t\t}\n\n\t\tthis.document = connectionData.document\n\t\tthis.document.readOnly = connectionData.readOnly\n\t\tthis.session = connectionData.session\n\n\t\tthis.emit('opened', {\n\t\t\tdocument: this.document,\n\t\t\tsession: this.session,\n\t\t})\n\t\treturn this._fetchDocument().then(({ data }) => {\n\t\t\tthis.emit('loaded', {\n\t\t\t\tdocument: this.document,\n\t\t\t\tsession: this.session,\n\t\t\t\tdocumentSource: '' + data,\n\t\t\t})\n\t\t})\n\t}\n\n\tstartSync() {\n\t\tthis.backend.connect()\n\t}\n\n\t_openDocument({ fileId, filePath }) {\n\t\treturn axios.get(endpointUrl('session/create', !!this.options.shareToken), {\n\t\t\tparams: {\n\t\t\t\tfileId,\n\t\t\t\tfilePath,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName: this.options.guestName,\n\t\t\t\tforceRecreate: this.options.forceRecreate,\n\t\t\t},\n\t\t})\n\t}\n\n\t_fetchDocument() {\n\t\treturn axios.get(\n\t\t\tendpointUrl('session/fetch', !!this.options.shareToken), {\n\t\t\t\ttransformResponse: [(data) => data],\n\t\t\t\tparams: {\n\t\t\t\t\tdocumentId: this.document.id,\n\t\t\t\t\tsessionId: this.session.id,\n\t\t\t\t\tsessionToken: this.session.token,\n\t\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\t}\n\n\tupdateSession(guestName) {\n\t\tif (!this.isPublic()) {\n\t\t\treturn\n\t\t}\n\t\treturn axios.post(\n\t\t\tendpointUrl('session', !!this.options.shareToken), {\n\t\t\t\tdocumentId: this.document.id,\n\t\t\t\tsessionId: this.session.id,\n\t\t\t\tsessionToken: this.session.token,\n\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\tguestName,\n\t\t\t}\n\t\t).then(({ data }) => {\n\t\t\tthis.session = data\n\t\t\treturn data\n\t\t}).catch((error) => {\n\t\t\tconsole.error('Failed to update the session', error)\n\t\t\treturn Promise.reject(error)\n\t\t})\n\t}\n\n\tsendSteps(_sendable) {\n\t\tconst sendable = _sendable || sendableSteps(this.state)\n\t\tif (!sendable) {\n\t\t\treturn\n\t\t}\n\t\treturn this.backend.sendSteps(sendable)\n\t}\n\n\tstepsSince(version) {\n\t\treturn {\n\t\t\tsteps: this.steps.slice(version),\n\t\t\tclientIDs: this.stepClientIDs.slice(version),\n\t\t}\n\t}\n\n\t_receiveSteps({ steps, document }) {\n\t\tconst newSteps = []\n\t\tfor (let i = 0; i < steps.length; i++) {\n\t\t\tconst singleSteps = steps[i].data\n\t\t\tif (!Array.isArray(singleSteps)) {\n\t\t\t\tconsole.error('Invalid step data, skipping step', steps[i])\n\t\t\t\t// TODO: recover\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tsingleSteps.forEach(step => {\n\t\t\t\tthis.steps.push(step)\n\t\t\t\tnewSteps.push({\n\t\t\t\t\tstep,\n\t\t\t\t\tclientID: steps[i].sessionId,\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tthis.emit('sync', { steps: newSteps, document })\n\t\tconsole.debug('receivedSteps', 'newVersion', this._getVersion())\n\t}\n\n\t_getVersion() {\n\t\tif (this.state) {\n\t\t\treturn getVersion(this.state)\n\t\t}\n\t\treturn 0\n\t}\n\t_getDocument() {\n\t\tif (this.state) {\n\t\t\treturn this.state.doc\n\t\t}\n\t}\n\n\t_getContent() {\n\t\treturn this.options.serialize(this._getDocument())\n\t}\n\n\tsave() {\n\t\tif (this.backend.save) {\n\t\t\tthis.backend.save()\n\t\t}\n\t}\n\n\tforceSave() {\n\t\tif (this.backend.forceSave) {\n\t\t\tthis.backend.forceSave()\n\t\t}\n\t}\n\n\tclose() {\n\t\tlet closed = false\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.on('save', () => {\n\t\t\t\tthis._close().then(() => {\n\t\t\t\t\tclosed = true\n\t\t\t\t\tresolve()\n\t\t\t\t}).catch(() => resolve())\n\t\t\t})\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!closed) {\n\t\t\t\t\tthis._close().then(() => {\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t}).catch(() => resolve())\n\t\t\t\t}\n\t\t\t}, 2000)\n\t\t\tthis.save()\n\t\t})\n\t}\n\n\t_close() {\n\t\tif (this.document === null || this.session === null) {\n\t\t\treturn Promise.resolve()\n\t\t}\n\t\tthis.backend.disconnect()\n\t\treturn axios.get(\n\t\t\tendpointUrl('session/close', !!this.options.shareToken), {\n\t\t\t\tparams: {\n\t\t\t\t\tdocumentId: this.document.id,\n\t\t\t\t\tsessionId: this.session.id,\n\t\t\t\t\tsessionToken: this.session.token,\n\t\t\t\t\ttoken: this.options.shareToken,\n\t\t\t\t},\n\t\t\t}\n\t\t)\n\t}\n\n\ton(event, callback, _this) {\n\t\tthis.eventHandlers[event].push(callback.bind(_this))\n\t\treturn this\n\t}\n\n\temit(event, data, additionalData) {\n\t\tif (typeof this.eventHandlers[event] !== 'undefined') {\n\t\t\tthis.eventHandlers[event].forEach(function(callback) {\n\t\t\t\tcallback(data, additionalData)\n\t\t\t})\n\t\t} else {\n\t\t\tconsole.error('Event not found', event)\n\t\t}\n\t}\n\n\tisPublic() {\n\t\treturn !!this.options.shareToken\n\t}\n\n}\n\nexport default SyncService\nexport { SyncService, ERROR_TYPE }\n","// style-loader: Adds some css to the DOM by adding a \n\n```\n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{ref:\"mask\",staticClass:\"modal-mask\",class:{ 'modal-mask--dark': _vm.dark },on:{\"click\":_vm.handleMouseMove,\"mousemove\":_vm.handleMouseMove,\"touchmove\":_vm.handleMouseMove}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.clearView),expression:\"!clearView\"}],staticClass:\"modal-header\",class:{\n\t\t\t\t\tinvisible: _vm.clearView\n\t\t\t\t}},[(_vm.title.trim() !== '')?_c('div',{staticClass:\"modal-title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"icons-menu\"},[(_vm.hasNext && _vm.enableSlideshow)?_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.playPauseTitle),expression:\"playPauseTitle\",modifiers:{\"auto\":true}}],staticClass:\"play-pause\",class:{ 'play-pause--paused': _vm.slideshowPaused },on:{\"click\":_vm.togglePlayPause}},[_c('div',{class:[_vm.playing ? 'icon-pause' : 'icon-play']},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.playing)?_c('svg',{staticClass:\"progress-ring\",attrs:{\"height\":\"50\",\"width\":\"50\"}},[_c('circle',{staticClass:\"progress-ring__circle\",attrs:{\"stroke\":\"white\",\"stroke-width\":\"2\",\"fill\":\"transparent\",\"r\":\"15\",\"cx\":\"25\",\"cy\":\"25\"}})]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('Actions',{staticClass:\"header-actions\"},[_vm._t(\"actions\")],2),_vm._v(\" \"),(_vm.canClose)?_c('Actions',{staticClass:\"header-close\"},[_c('ActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Close'))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):_vm._e()],1)])]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":_vm.modalTransitionName}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showModal),expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\n\t\t\t\t\t(\"modal-wrapper--\" + _vm.size),\n\t\t\t\t\t_vm.spreadNavigation ? 'modal-wrapper--spread-navigation' : ''\n\t\t\t\t],on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.close($event)}}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasPrevious && !_vm.clearView),expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasPrevious\n\t\t\t\t\t\t},on:{\"click\":_vm.previous}},[_c('div',{staticClass:\"icon icon-previous\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Previous'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-container\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNext && !_vm.clearView),expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasNext\n\t\t\t\t\t\t},on:{\"click\":_vm.next}},[_c('div',{staticClass:\"icon icon-next\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Next'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])])],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\nimport ScopeComponent from '../../utils/ScopeComponent'\nimport Modal from './Modal'\n\nScopeComponent(Modal)\n\nexport default Modal\n","module.exports = require(\"core-js/modules/es.array.iterator\");","module.exports = require(\"core-js/modules/es.string.iterator\");","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\n\nconst ScopeComponent = (Component) => {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n","module.exports = require(\"core-js/modules/es.array.filter\");","// style-loader: Adds some css to the DOM by adding a \n","export default \"data:application/vnd.ms-fontobject;base64,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\"","module.exports = require(\"hammerjs\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\nimport ActionButton from './ActionButton'\n\nexport default ActionButton\n","export default \"data:font/woff;base64,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DDUAAgAACQIE4gTiBOIMNfseBOAAAQAAAAEAAEB6caFfDzz1AAsTiAAAAADasyhOAAAAANpiTE///wAAE5MTiAAAAAgAAgAAAAAAAAABAAATiAAAAAATiP////UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAiADYAWABsAIAAlAC0AQ4BfAGaAhACJgI0AkIAAQAAAA8ASwADAAAAAAACAAAACgAKAAAA/wAAAAAAAAAAABAAxgABAAAAAAABABQAAAABAAAAAAACAAcAFAABAAAAAAADABQAGwABAAAAAAAEABQALwABAAAAAAAFAAsAQwABAAAAAAAGABQATgABAAAAAAAKACsAYgABAAAAAAALABMAjQADAAEECQABACgAoAADAAEECQACAA4AyAADAAEECQADACgA1gADAAEECQAEACgA/gADAAEECQAFABYBJgADAAEECQAGACgBPAADAAEECQAKAFYBZAADAAEECQALACYBumljb25mb250LXZ1ZS1lMWY1NWNlUmVndWxhcmljb25mb250LXZ1ZS1lMWY1NWNlaWNvbmZvbnQtdnVlLWUxZjU1Y2VWZXJzaW9uIDEuMGljb25mb250LXZ1ZS1lMWY1NWNlR2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlADEAZgA1ADUAYwBlAFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlADEAZgA1ADUAYwBlAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AZQAxAGYANQA1AGMAZQBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlADEAZgA1ADUAYwBlAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA8ADwAAAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDxFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcw==\"","/*! 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.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.active)?_c('Modal',{attrs:{\"title\":_vm.fileName},on:{\"close\":_vm.close}},[_c('EditorWrapper',{attrs:{\"file-id\":_vm.fileId,\"relative-path\":_vm.relativePath,\"active\":_vm.active,\"share-token\":_vm.shareToken,\"mime\":_vm.mimeType}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/components/PublicFilesEditor.vue","webpack:///./src/components/PublicFilesEditor.vue?431a","webpack:///src/components/PublicFilesEditor.vue","webpack:///./node_modules/core-js/modules/es.number.constructor.js","webpack:///NextcloudVue.[name]/webpack/universalModuleDefinition","webpack:///NextcloudVue.[name]/webpack/bootstrap","webpack:///NextcloudVue.[name]/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/api.js","webpack:///NextcloudVue.[name]/src/fonts/iconfont-vue-e1f55ce.ttf","webpack:///NextcloudVue.[name]/src/fonts/iconfont-vue-e1f55ce.svg","webpack:///NextcloudVue.[name]/src/components/Modal/Modal.vue?0019","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.function.name\"","webpack:///NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue?5a6b","webpack:///NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue?308c","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"v-click-outside\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.index-of\"","webpack:///NextcloudVue.[name]/src/mixins/actionGlobal.js","webpack:///NextcloudVue.[name]/src/utils/GenRandomId.js","webpack:///NextcloudVue.[name]/src/utils/Timer.js","webpack:///NextcloudVue.[name]/src/components/Modal/Modal.vue","webpack:///NextcloudVue.[name]/src/components/Modal/Modal.vue?6422","webpack:///NextcloudVue.[name]/src/components/Modal/Modal.vue?d840","webpack:///NextcloudVue.[name]/src/components/Modal/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.iterator\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.iterator\"","webpack:///NextcloudVue.[name]/node_modules/vue-style-loader/lib/listToStyles.js","webpack:///NextcloudVue.[name]/node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.dom-collections.iterator\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.exec\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.map\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.regexp.to-string\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/web.url\"","webpack:///NextcloudVue.[name]/src/components/Modal/Modal.vue?4784","webpack:///NextcloudVue.[name]/src/components/Modal/Modal.vue?c674","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.concat\"","webpack:///NextcloudVue.[name]/src/utils/GetParent.js","webpack:///NextcloudVue.[name]/src/mixins/actionText.js","webpack:///webpack:/NextcloudVue.[name]/external \"@nextcloud/l10n/dist/gettext\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.trim\"","webpack:///NextcloudVue.[name]/src/components/Actions/Actions.vue?4802","webpack:///webpack:/NextcloudVue.[name]/external \"v-tooltip\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.string.replace\"","webpack:///NextcloudVue.[name]/src/utils/ValidateSlot.js","webpack:///NextcloudVue.[name]/src/mixins/l10n.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.number.constructor\"","webpack:///NextcloudVue.[name]/src/components/Actions/index.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.object.to-string\"","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss?30d2","webpack:///NextcloudVue.[name]/src/directives/Tooltip/index.scss","webpack:///NextcloudVue.[name]/src/components/Actions/Actions.vue?7bd0","webpack:///NextcloudVue.[name]/src/utils/IsOutOfViewport.js","webpack:///NextcloudVue.[name]/src/components/Actions/Actions.vue","webpack:///NextcloudVue.[name]/src/components/Actions/Actions.vue?608f","webpack:///NextcloudVue.[name]/src/utils/ScopeComponent.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.filter\"","webpack:///NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue?d3c7","webpack:///webpack:/NextcloudVue.[name]/external \"vue\"","webpack:///NextcloudVue.[name]/src/l10n.js","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.object.assign\"","webpack:///webpack:/NextcloudVue.[name]/external \"core-js/modules/es.array.splice\"","webpack:///NextcloudVue.[name]/src/components/Actions/Actions.vue?a15b","webpack:///NextcloudVue.[name]/src/components/Actions/Actions.vue?4ae1","webpack:///NextcloudVue.[name]/node_modules/css-loader/dist/runtime/getUrl.js","webpack:///NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue?6bb6","webpack:///NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue?fe29","webpack:///NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue","webpack:///NextcloudVue.[name]/src/fonts/iconfont-vue-e1f55ce.eot","webpack:///webpack:/NextcloudVue.[name]/external \"hammerjs\"","webpack:///NextcloudVue.[name]/src/components/ActionButton/index.js","webpack:///NextcloudVue.[name]/src/fonts/iconfont-vue-e1f55ce.woff","webpack:///./node_modules/hammerjs/hammer.js","webpack:///./src/components/PublicFilesEditor.vue?e78f"],"names":["component","DESCRIPTORS","require","global","isForced","redefine","has","classof","inheritIfRequired","toPrimitive","fails","create","getOwnPropertyNames","f","getOwnPropertyDescriptor","defineProperty","trim","NativeNumber","NumberPrototype","prototype","BROKEN_CLASSOF","toNumber","argument","first","third","radix","maxCode","digits","length","index","code","it","charCodeAt","NaN","slice","parseInt","key","NumberWrapper","value","arguments","dummy","this","valueOf","call","keys","split","j","constructor","factory","window","installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","m","c","d","name","getter","o","Object","enumerable","get","r","Symbol","toStringTag","t","mode","__esModule","ns","bind","n","object","property","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","useSourceMap","list","toString","map","item","content","sourceMap","base64","data","cssMapping","btoa","sourceMapping","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","join","mediaQuery","dedupe","alreadyImportedModules","id","_i","push","__webpack_exports__","locals","default","___CSS_LOADER_API_IMPORT___","VTooltip","defaultTemplate","SCOPE_VERSION","defaultHtml","before","$slots","text","Vue","util","warn","$destroy","$el","remove","beforeUpdate","getText","computed","isLongText","methods","GenRandomId","Math","random","replace","substr","timer","callback","delay","started","running","remaining","start","Date","setTimeout","pause","clearTimeout","clear","getTimeLeft","getStateRunning","Modal_Modalvue_type_script_lang_js_","components","Actions","ActionButton","directives","tooltip","mixins","props","title","type","hasPrevious","hasNext","outTransition","enableSlideshow","clearViewDelay","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","size","validator","canClose","dark","mc","showModal","clearView","clearViewTimeout","playing","slideshowTimeout","modalTransitionName","playPauseTitle","watch","paused","beforeMount","beforeDestroy","mounted","_this","document","unmounted","previous","next","close","_this2","handleKeydown","handleSwipe","handleMouseMove","_this3","togglePlayPause","resetSlideshow","handleSlideshow","_this4","clearSlideshowTimeout","_vm","_h","$createElement","_c","_self","attrs","ref","staticClass","class","modal-mask--dark","on","click","mousemove","touchmove","rawName","expression","invisible","_v","_s","_e","modifiers","auto","play-pause--paused","height","width","stroke","stroke-width","fill","cx","cy","_t","icon","$event","target","currentTarget","ScopeComponent","Modal","listToStyles","parentId","styles","newStyles","part","css","media","parts","hasDocument","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","GetParent","$parent","actionGlobal","String","closeAfterClick","ariaLabel","isIconUrl","URL","error","onClick","event","$emit","closeMenu","ValidateSlot","slots","allowed","vm","node","isHtmlElement","componentOptions","tag","indexOf","isVueComponent","isForbiddenComponent","splice","isOutOfViewport","elem","bounding","getBoundingClientRect","contentHeight","documentElement","clientHeight","contentWidth","clientWidth","out","assign","top","left","bottom","right","any","all","offsetY","offsetX","allowedChildren","Actions_Actionsvue_type_script_lang_js_","ClickOutside","open","forceMenu","menuAlign","defaultIcon","actions","opened","focusIndex","randomId","offsetYArrow","rotateArrow","children","hasMultipleActions","isValidSingleAction","firstActionVNode","firstAction","firstActionBinding","is","href","aria-label","to","exact","firstActionEvent","firstActionEventBinding","firstActionClass","dynClass","toggleMenu","onOpen","isOut","onMouseFocusAction","removeCurrentActive","currentActiveElement","focusAction","focusElement","liMenuParent","focusPreviousAction","focusNextAction","focusFirstAction","focusLastAction","execFirstAction","initActions","_b","rel","_d","aria-hidden","hidden","action-item--open","keydown","_k","keyCode","ctrlKey","shiftKey","altKey","metaKey","preventDefault","aria-haspopup","aria-controls","aria-expanded","style","marginRight","marginTop","tabindex","transform","Component","Array","isArray","gtBuilder","getGettextBuilder","detectLocale","TRANSLATIONS","addTranslation","locale","json","gt","build","ngettext","gettext","url","hash","needQuotes","ActionButton_ActionButtonvue_type_script_lang_js_","disabled","isFocusable","action--disabled","focusable","backgroundImage","domProps","textContent","define","exportName","undefined","VENDOR_PREFIXES","TEST_ELEMENT","round","abs","now","setTimeoutContext","fn","timeout","bindFn","invokeArrayArg","arg","each","iterator","forEach","deprecate","method","message","deprecationMessage","e","stack","log","console","apply","TypeError","output","nextKey","extend","dest","src","merge","inherit","child","base","properties","childP","baseP","_super","boolOrFn","val","args","ifUndefined","val1","val2","addEventListeners","types","handler","splitStr","addEventListener","removeEventListeners","removeEventListener","hasParent","inStr","str","find","inArray","findByKey","toArray","uniqueArray","sort","results","values","a","b","prefixed","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","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","v","computeIntervalInputData","srcEvent","computeInputData","emit","recognize","clientX","clientY","p1","p2","sqrt","atan2","PI","evEl","evTarget","evWin","destroy","MOUSE_INPUT_MAP","mousedown","mouseup","MouseInput","pressed","button","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchend","touchcancel","SingleTouchInput","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","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","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","stop","force","stopped","curRecognizer","events","off","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","fileName","fileId","relativePath","active","shareToken","mimeType"],"mappings":"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","file":"files-modal.js?v=40cbb75f33ed0bfc44a2","sourcesContent":["import { render, staticRenderFns } from \"./PublicFilesEditor.vue?vue&type=template&id=602647cd&\"\nimport script from \"./PublicFilesEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./PublicFilesEditor.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicFilesEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PublicFilesEditor.vue?vue&type=script&lang=js&\"","\n\n\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","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/Modal\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/Modal\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/Modal\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 171);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","export default \"data:font/ttf;base64,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\"","export default \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48bWV0YWRhdGE+PC9tZXRhZGF0YT48ZGVmcz48Zm9udCBpZD0iaWNvbmZvbnQtdnVlLWUxZjU1Y2UiIGhvcml6LWFkdi14PSI1MDAwIj48Zm9udC1mYWNlIGZvbnQtZmFtaWx5PSJpY29uZm9udC12dWUtZTFmNTVjZSIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zdHJldGNoPSJub3JtYWwiIHVuaXRzLXBlci1lbT0iNTAwMCIgcGFub3NlLTE9IjIgMCA1IDMgMCAwIDAgMCAwIDAiIGFzY2VudD0iNTAwMCIgZGVzY2VudD0iMCIgeC1oZWlnaHQ9IjAiIGJib3g9Ii0xIDAgNTAxMSA1MDAwIiB1bmRlcmxpbmUtdGhpY2tuZXNzPSIwIiB1bmRlcmxpbmUtcG9zaXRpb249IjUwIiB1bmljb2RlLXJhbmdlPSJVK2VhMDEtZWEwZSIgLz48bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iMCIgIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LWxlZnQtZG91YmxlIiB1bmljb2RlPSImI3hlYTAxOyIgZD0iTTM3NTAgMzkwNiBsLTE0MDYgLTE0MDYgbDE0MDYgLTE0MDYgbDAgMzEyIGwtMTA5NCAxMDk0IGwxMDk0IDEwOTQgbDAgMzEyIFpNMjM0NCAzOTA2IGwtMTQwNiAtMTQwNiBsMTQwNiAtMTQwNiBsMCAzMTIgbC0xMDk0IDEwOTQgbDEwOTQgMTA5NCBsMCAzMTIgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iYXJyb3ctbGVmdCIgdW5pY29kZT0iJiN4ZWEwMjsiIGQ9Ik0xNTYzIDI1MDAgbDE4NzUgLTE4NzUgbDAgLTMxMiBsLTIxODggMjE4NyBsMjE4OCAyMTg4IGwwIC0zMTMgbC0xODc1IC0xODc1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImFycm93LXJpZ2h0LWRvdWJsZSIgdW5pY29kZT0iJiN4ZWEwMzsiIGQ9Ik0xMjUwIDEwOTQgbDE0MDYgMTQwNiBsLTE0MDYgMTQwNiBsMCAtMzEyIGwxMDk0IC0xMDk0IGwtMTA5NCAtMTA5NCBsMCAtMzEyIFpNMjY1NiAxMDk0IGwxNDA3IDE0MDYgbC0xNDA3IDE0MDYgbDAgLTMxMiBsMTA5NCAtMTA5NCBsLTEwOTQgLTEwOTQgbDAgLTMxMiBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJhcnJvdy1yaWdodCIgdW5pY29kZT0iJiN4ZWEwNDsiIGQ9Ik0zNDM4IDI1MDAgbC0xODc1IDE4NzUgbDAgMzEzIGwyMTg3IC0yMTg4IGwtMjE4NyAtMjE4NyBsMCAzMTIgbDE4NzUgMTg3NSBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJicmVhZGNydW1iIiB1bmljb2RlPSImI3hlYTA1OyIgZD0iTTE0OCA1MDAwIGwtMTQ4IC04NSBsMTM5NCAtMjQxNSBsLTEzOTQgLTI0MTUgbDE0OCAtODUgbDE0NDMgMjUwMCBsLTE0NDMgMjUwMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJjaGVja21hcmsiIHVuaWNvZGU9IiYjeGVhMDY7IiBkPSJNNDA0NSAzOTcxIGwtMjA2MSAtMjA2MSBsLTEwMjkgMTAyOSBsLTQ0MiAtNDQxIGwxNDcxIC0xNDcxIGwyNTAzIDI1MDIgbC00NDIgNDQyIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImNsb3NlIiB1bmljb2RlPSImI3hlYTA3OyIgZD0iTTQzNzUgMTE1NiBsLTUzMSAtNTMxIGwtMTM0NCAxMzQ0IGwtMTM0NCAtMTM0NCBsLTUzMSA1MzEgbDEzNDQgMTM0NCBsLTEzNDQgMTM0NCBsNTMxIDUzMSBsMTM0NCAtMTM0NCBsMTM0NCAxMzQ0IGw1MzEgLTUzMSBsLTEzNDQgLTEzNDQgbDEzNDQgLTEzNDQgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0iY29uZmlybSIgdW5pY29kZT0iJiN4ZWEwODsiIGQ9Ik0yNjU2IDQ4NDQgcS0xMDEgMCAtMTgwIC01NyBxLTc0IC01MiAtMTA5IC0xMzggcS0zNSAtODYgLTE5IC0xNzUgcTE4IC05NiA5MCAtMTY3IGwxNDk1IC0xNDk0IGwtMzYxNiAwIHEtNzcgMSAtMTM5IC0yNiBxLTU4IC0yNCAtOTkgLTcwIHEtMzkgLTQ0IC01OSAtMTAxIHEtMjAgLTU2IC0yMCAtMTE2IHEwIC02MCAyMCAtMTE2IHEyMCAtNTcgNTkgLTEwMSBxNDEgLTQ2IDk5IC03MCBxNjIgLTI3IDEzOSAtMjUgbDM2MTYgMCBsLTE0OTUgLTE0OTUgcS01NSAtNTMgLTgxIC0xMTYgcS0yNCAtNTkgLTIxIC0xMjEgcTMgLTU4IDMwIC0xMTMgcTI1IC01NCA2OCAtOTcgcTQzIC00MyA5NiAtNjggcTU1IC0yNiAxMTQgLTI5IHE2MiAtMyAxMjAgMjEgcTYzIDI1IDExNiA4MSBsMjAyOSAyMDI4IHE1OSA2MCA4MCAxNDEgcTIxIDgwIDEgMTU5IHEtMjEgODIgLTgxIDE0MiBsLTIwMjkgMjAyOCBxLTQ0IDQ1IC0xMDIgNzAgcS01OCAyNSAtMTIyIDI1IFoiIC8+PGdseXBoIGdseXBoLW5hbWU9ImluZm8iIHVuaWNvZGU9IiYjeGVhMDk7IiBkPSJNMjQyMiA0Njg4IHEtMTExIDAgLTIxMyAtNDMgcS05OCAtNDIgLTE3NCAtMTE3LjUgcS03NiAtNzUuNSAtMTE3IC0xNzQuNSBxLTQzIC0xMDEgLTQzIC0yMTIuNSBxMCAtMTExLjUgNDMgLTIxMi41IHE0MSAtOTggMTE3IC0xNzQgcTc2IC03NiAxNzQgLTExNyBxMTAyIC00MyAyMTMgLTQzIHExMTEgMCAyMTMgNDMgcTk4IDQxIDE3My41IDExNyBxNzUuNSA3NiAxMTcuNSAxNzQgcTQzIDEwMSA0MyAyMTIuNSBxMCAxMTEuNSAtNDMgMjEyLjUgcS00MiA5OSAtMTE3LjUgMTc0LjUgcS03NS41IDc1LjUgLTE3My41IDExNy41IHEtMTAyIDQzIC0yMTMgNDMgWk0xNTYzIDMxMjUgcS04NiAwIC0xNTggLTQzIHEtNzEgLTQxIC0xMTIgLTExMiBxLTQzIC03MiAtNDMgLTE1Ny41IHEwIC04NS41IDQzIC0xNTcuNSBxNDEgLTcxIDExMiAtMTEyIHE3MiAtNDMgMTU4IC00MyBsNjI1IDAgbDAgLTE1NjIgbC02MjUgMCBxLTg2IDAgLTE1OCAtNDMgcS03MSAtNDEgLTExMiAtMTEyIHEtNDMgLTczIC00MyAtMTU4IHEwIC04NSA0MyAtMTU4IHE0MSAtNzEgMTEyIC0xMTIgcTcyIC00MyAxNTggLTQyIGwxODc1IDAgcTg1IDAgMTU3IDQyIHE3MSA0MSAxMTIgMTEyIHE0MyA3MyA0MyAxNTggcTAgODUgLTQzIDE1OCBxLTQxIDcxIC0xMTIgMTEyIHEtNzIgNDMgLTE1NyA0MyBsLTYyNSAwIGwwIDE4NzUgcTAgODUgLTQzIDE1NyBxLTQxIDcxIC0xMTIgMTEyIHEtNzMgNDMgLTE1OCA0MyBsLTkzNyAwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9Im1lbnUiIHVuaWNvZGU9IiYjeGVhMGE7IiBkPSJNNjI1IDQzNzUgbDAgLTYyNSBsMzc1MCAwIGwwIDYyNSBsLTM3NTAgMCBaTTYyNSAyODEzIGwwIC02MjUgbDM3NTAgMCBsMCA2MjUgbC0zNzUwIDAgWk02MjUgMTI1MCBsMCAtNjI1IGwzNzUwIDAgbDAgNjI1IGwtMzc1MCAwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9Im1vcmUiIHVuaWNvZGU9IiYjeGVhMGI7IiBkPSJNNzgxIDMwNDcgcTExMiAwIDIxMyAtNDMgcTk4IC00MiAxNzQgLTExNy41IHE3NiAtNzUuNSAxMTcgLTE3My41IHE0MyAtMTAyIDQzIC0yMTMgcTAgLTExMSAtNDMgLTIxMyBxLTQxIC05OCAtMTE3IC0xNzMuNSBxLTc2IC03NS41IC0xNzQgLTExNy41IHEtMTAxIC00MyAtMjEyLjUgLTQzIHEtMTExLjUgMCAtMjEzLjUgNDMgcS05OCA0MiAtMTczLjUgMTE3LjUgcS03NS41IDc1LjUgLTExNy41IDE3My41IHEtNDMgMTAyIC00MyAyMTMgcTAgMTExIDQzIDIxMyBxNDIgOTggMTE3LjUgMTczLjUgcTc1LjUgNzUuNSAxNzMuNSAxMTcuNSBxMTAyIDQzIDIxMyA0MyBaTTI1MDAgMzA0NyBxMTExIDAgMjEzIC00MyBxOTggLTQyIDE3My41IC0xMTcuNSBxNzUuNSAtNzUuNSAxMTcuNSAtMTczLjUgcTQzIC0xMDIgNDMgLTIxMyBxMCAtMTExIC00MyAtMjEzIHEtNDIgLTk4IC0xMTcuNSAtMTczLjUgcS03NS41IC03NS41IC0xNzMuNSAtMTE3LjUgcS0xMDIgLTQzIC0yMTMgLTQzIHEtMTExIDAgLTIxMyA0MyBxLTk4IDQyIC0xNzMuNSAxMTcuNSBxLTc1LjUgNzUuNSAtMTE3LjUgMTczLjUgcS00MyAxMDIgLTQzIDIxMyBxMCAxMTEgNDMgMjEzIHE0MiA5OCAxMTcuNSAxNzMuNSBxNzUuNSA3NS41IDE3My41IDExNy41IHExMDIgNDMgMjEzIDQzIFpNNDIxOSAzMDQ3IHExMTEgMCAyMTMgLTQzIHE5OCAtNDIgMTczLjUgLTExNy41IHE3NS41IC03NS41IDExNy41IC0xNzMuNSBxNDMgLTEwMiA0MyAtMjEzIHEwIC0xMTEgLTQzIC0yMTMgcS00MiAtOTggLTExNy41IC0xNzMuNSBxLTc1LjUgLTc1LjUgLTE3My41IC0xMTcuNSBxLTEwMiAtNDMgLTIxMy41IC00MyBxLTExMS41IDAgLTIxMi41IDQzIHEtOTggNDIgLTE3NCAxMTcuNSBxLTc2IDc1LjUgLTExNyAxNzMuNSBxLTQzIDEwMiAtNDMgMjEzIHEwIDExMSA0MyAyMTMgcTQxIDk4IDExNyAxNzMuNSBxNzYgNzUuNSAxNzQgMTE3LjUgcTEwMSA0MyAyMTMgNDMgWiIgLz48Z2x5cGggZ2x5cGgtbmFtZT0icGF1c2UiIHVuaWNvZGU9IiYjeGVhMGM7IiBkPSJNOTM4IDQwNjMgbDAgLTMxMjUgbDEyNTAgMCBsMCAzMTI1IGwtMTI1MCAwIFpNMjgxMyA0MDYzIGwwIC0zMTI1IGwxMjUwIDAgbDAgMzEyNSBsLTEyNTAgMCBaIiAvPjxnbHlwaCBnbHlwaC1uYW1lPSJwbGF5IiB1bmljb2RlPSImI3hlYTBkOyIgZD0iTTYyNSA0Mzc1IGwzNzUwIC0xODc1IGwtMzc1MCAtMTg3NSBsMCAzNzUwIFoiIC8+PGdseXBoIGdseXBoLW5hbWU9InRyaWFuZ2xlLXMiIHVuaWNvZGU9IiYjeGVhMGU7IiBkPSJNMTI1MCAzMTI1IGwxMjUwIC0xMjUwIGwxMjUwIDEyNDggbC0yNTAwIDIgWiIgLz48L2ZvbnQ+PC9kZWZzPjwvc3ZnPg==\"","// style-loader: Adds some css to the DOM by adding a \n\n```\n\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{ref:\"mask\",staticClass:\"modal-mask\",class:{ 'modal-mask--dark': _vm.dark },on:{\"click\":_vm.handleMouseMove,\"mousemove\":_vm.handleMouseMove,\"touchmove\":_vm.handleMouseMove}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.clearView),expression:\"!clearView\"}],staticClass:\"modal-header\",class:{\n\t\t\t\t\tinvisible: _vm.clearView\n\t\t\t\t}},[(_vm.title.trim() !== '')?_c('div',{staticClass:\"modal-title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"icons-menu\"},[(_vm.hasNext && _vm.enableSlideshow)?_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.playPauseTitle),expression:\"playPauseTitle\",modifiers:{\"auto\":true}}],staticClass:\"play-pause\",class:{ 'play-pause--paused': _vm.slideshowPaused },on:{\"click\":_vm.togglePlayPause}},[_c('div',{class:[_vm.playing ? 'icon-pause' : 'icon-play']},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])]),_vm._v(\" \"),(_vm.playing)?_c('svg',{staticClass:\"progress-ring\",attrs:{\"height\":\"50\",\"width\":\"50\"}},[_c('circle',{staticClass:\"progress-ring__circle\",attrs:{\"stroke\":\"white\",\"stroke-width\":\"2\",\"fill\":\"transparent\",\"r\":\"15\",\"cx\":\"25\",\"cy\":\"25\"}})]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('Actions',{staticClass:\"header-actions\"},[_vm._t(\"actions\")],2),_vm._v(\" \"),(_vm.canClose)?_c('Actions',{staticClass:\"header-close\"},[_c('ActionButton',{attrs:{\"icon\":\"icon-close\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Close'))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):_vm._e()],1)])]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":_vm.modalTransitionName}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showModal),expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\n\t\t\t\t\t(\"modal-wrapper--\" + _vm.size),\n\t\t\t\t\t_vm.spreadNavigation ? 'modal-wrapper--spread-navigation' : ''\n\t\t\t\t],on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.close($event)}}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasPrevious && !_vm.clearView),expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasPrevious\n\t\t\t\t\t\t},on:{\"click\":_vm.previous}},[_c('div',{staticClass:\"icon icon-previous\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Previous'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-container\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNext && !_vm.clearView),expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasNext\n\t\t\t\t\t\t},on:{\"click\":_vm.next}},[_c('div',{staticClass:\"icon icon-next\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Next'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])])])])],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\nimport ScopeComponent from '../../utils/ScopeComponent'\nimport Modal from './Modal'\n\nScopeComponent(Modal)\n\nexport default Modal\n","module.exports = require(\"core-js/modules/es.array.iterator\");","module.exports = require(\"core-js/modules/es.string.iterator\");","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"","/**\n * @copyright Copyright (c) 2018 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\n\nconst ScopeComponent = (Component) => {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n","module.exports = require(\"core-js/modules/es.array.filter\");","// style-loader: Adds some css to the DOM by adding a \n","export default \"data:application/vnd.ms-fontobject;base64,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\"","module.exports = require(\"hammerjs\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \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 .\n *\n */\nimport ActionButton from './ActionButton'\n\nexport default ActionButton\n","export default \"data:font/woff;base64,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DDUAAgAACQIE4gTiBOIMNfseBOAAAQAAAAEAAEB6caFfDzz1AAsTiAAAAADasyhOAAAAANpiTE///wAAE5MTiAAAAAgAAgAAAAAAAAABAAATiAAAAAATiP////UTkwABAAAAAAAAAAAAAAAAAAAABwAAAAATiAAAE4gAABOIAAATiAAABjYAABOIAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAiADYAWABsAIAAlAC0AQ4BfAGaAhACJgI0AkIAAQAAAA8ASwADAAAAAAACAAAACgAKAAAA/wAAAAAAAAAAABAAxgABAAAAAAABABQAAAABAAAAAAACAAcAFAABAAAAAAADABQAGwABAAAAAAAEABQALwABAAAAAAAFAAsAQwABAAAAAAAGABQATgABAAAAAAAKACsAYgABAAAAAAALABMAjQADAAEECQABACgAoAADAAEECQACAA4AyAADAAEECQADACgA1gADAAEECQAEACgA/gADAAEECQAFABYBJgADAAEECQAGACgBPAADAAEECQAKAFYBZAADAAEECQALACYBumljb25mb250LXZ1ZS1lMWY1NWNlUmVndWxhcmljb25mb250LXZ1ZS1lMWY1NWNlaWNvbmZvbnQtdnVlLWUxZjU1Y2VWZXJzaW9uIDEuMGljb25mb250LXZ1ZS1lMWY1NWNlR2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlADEAZgA1ADUAYwBlAFIAZQBnAHUAbABhAHIAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlADEAZgA1ADUAYwBlAGkAYwBvAG4AZgBvAG4AdAAtAHYAdQBlAC0AZQAxAGYANQA1AGMAZQBWAGUAcgBzAGkAbwBuACAAMQAuADAAaQBjAG8AbgBmAG8AbgB0AC0AdgB1AGUALQBlADEAZgA1ADUAYwBlAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAIAAAAAAAAAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAA8ADwAAAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDxFhcnJvdy1sZWZ0LWRvdWJsZQphcnJvdy1sZWZ0EmFycm93LXJpZ2h0LWRvdWJsZQthcnJvdy1yaWdodApicmVhZGNydW1iCWNoZWNrbWFyawVjbG9zZQdjb25maXJtBGluZm8EbWVudQRtb3JlBXBhdXNlBHBsYXkKdHJpYW5nbGUtcw==\"","/*! 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.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.active)?_c('Modal',{attrs:{\"title\":_vm.fileName},on:{\"close\":_vm.close}},[_c('EditorWrapper',{attrs:{\"file-id\":_vm.fileId,\"relative-path\":_vm.relativePath,\"active\":_vm.active,\"share-token\":_vm.shareToken,\"mime\":_vm.mimeType}})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"sourceRoot":""} \ No newline at end of file diff --git a/js/files.js b/js/files.js index 73e071193a4..891c760f410 100644 --- a/js/files.js +++ b/js/files.js @@ -1,9 +1,9 @@ -!function(e){function t(t){for(var n,i,o=t[0],a=t[1],s=0,u=[];s0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(19);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){for(var n=[],r={},i=0;i0?i:r)(e)}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";n.r(t);var r=n(26),i=n.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(o);t.default=i.a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(99))&&r.__esModule?r:{default:r},o=n(97),a=n(47);function s(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}var c=!!document.getElementById("isPublic"),u=(0,o.generateOcsUrl)("apps/text"+(c?"/public":""),2)+"workspace",f={name:"RichWorkspace",components:{EditorWrapper:function(){return Promise.all([n.e(0),n.e(189),n.e(198),n.e(190)]).then(n.bind(null,129))}},props:{path:{type:String,required:!0}},data:function(){return{focus:!1,folder:null,file:null,loaded:!1,ready:!1,autofocus:!1,darkTheme:OCA.Accessibility&&"dark"===OCA.Accessibility.theme,enabled:OCA.Text.RichWorkspaceEnabled}},computed:{shareToken:function(){return document.getElementById("sharingToken")?document.getElementById("sharingToken").value:null},canCreate:function(){return!!(this.folder&&this.folder.permissions&OC.PERMISSION_CREATE)},showEmptyWorkspace:function(){return(!this.file||this.autofocus&&!this.ready)&&this.canCreate}},watch:{path:function(){this.getFileInfo()},focus:function(e){e||document.querySelector("#editor").scrollTo(0,0)}},mounted:function(){var e,t=this;return(e=regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.enabled&&t.getFileInfo(),(0,a.subscribe)("Text::showRichWorkspace",(function(){t.enabled=!0,t.getFileInfo()})),(0,a.subscribe)("Text::hideRichWorkspace",(function(){t.enabled=!1}));case 3:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){s(o,r,i,a,c,"next",e)}function c(e){s(o,r,i,a,c,"throw",e)}a(void 0)}))})()},methods:{unfocus:function(){},reset:function(){var e=this;this.file=null,this.focus=!1,this.$nextTick((function(){e.creating=!1,e.getFileInfo()}))},getFileInfo:function(){var e=this;this.loaded=!1,this.autofocus=!1,this.ready=!1;var t={path:this.path};return c&&(t.shareToken=this.shareToken),i.default.get(u,{params:t}).then((function(t){var n=t.data.ocs.data;return e.folder=n.folder||null,e.file=n.file,e.editing=!0,e.loaded=!0,!0})).catch((function(t){return t.response.data.ocs&&t.response.data.ocs.data.folder?e.folder=t.response.data.ocs.data.folder:e.folder=null,e.file=null,e.loaded=!0,e.ready=!0,e.creating=!1,!1}))},createNew:function(){var e=this;this.creating||(this.creating=!0,this.getFileInfo().then((function(t){e.autofocus=!0,t||window.FileList.createFile("Readme.md",{scrollTo:!1,animate:!1}).then((function(t,n){e.getFileInfo()}))})))}}};t.default=f},function(e,t,n){"use strict";(function(e,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)} +!function(e){function t(t){for(var n,i,o=t[0],a=t[1],s=0,u=[];s0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(19);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){for(var n=[],r={},i=0;i0?i:r)(e)}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";n.r(t);var r=n(26),i=n.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){n.d(t,e,(function(){return r[e]}))}(o);t.default=i.a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,i=(r=n(99))&&r.__esModule?r:{default:r},o=n(97),a=n(47);function s(e,t,n,r,i,o,a){try{var s=e[o](a),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,i)}var c=!!document.getElementById("isPublic"),u=(0,o.generateOcsUrl)("apps/text"+(c?"/public":""),2)+"workspace",f={name:"RichWorkspace",components:{EditorWrapper:function(){return Promise.all([n.e(0),n.e(189),n.e(198),n.e(190)]).then(n.bind(null,129))}},props:{path:{type:String,required:!0}},data:function(){return{focus:!1,folder:null,file:null,loaded:!1,ready:!1,autofocus:!1,darkTheme:OCA.Accessibility&&"dark"===OCA.Accessibility.theme,enabled:OCA.Text.RichWorkspaceEnabled}},computed:{shareToken:function(){return document.getElementById("sharingToken")?document.getElementById("sharingToken").value:null},canCreate:function(){return!!(this.folder&&this.folder.permissions&OC.PERMISSION_CREATE)},showEmptyWorkspace:function(){return(!this.file||this.autofocus&&!this.ready)&&this.canCreate}},watch:{path:function(){this.getFileInfo()},focus:function(e){e||document.querySelector("#editor").scrollTo(0,0)}},mounted:function(){var e,t=this;return(e=regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.enabled&&t.getFileInfo(),(0,a.subscribe)("Text::showRichWorkspace",(function(){t.enabled=!0,t.getFileInfo()})),(0,a.subscribe)("Text::hideRichWorkspace",(function(){t.enabled=!1}));case 3:case"end":return e.stop()}}),e)})),function(){var t=this,n=arguments;return new Promise((function(r,i){var o=e.apply(t,n);function a(e){s(o,r,i,a,c,"next",e)}function c(e){s(o,r,i,a,c,"throw",e)}a(void 0)}))})()},methods:{unfocus:function(){},reset:function(){var e=this;this.file=null,this.focus=!1,this.$nextTick((function(){e.creating=!1,e.getFileInfo()}))},getFileInfo:function(){var e=this;this.loaded=!1,this.autofocus=!1,this.ready=!1;var t={path:this.path};return c&&(t.shareToken=this.shareToken),i.default.get(u,{params:t}).then((function(t){var n=t.data.ocs.data;return e.folder=n.folder||null,e.file=n.file,e.editing=!0,e.loaded=!0,!0})).catch((function(t){return t.response.data.ocs&&t.response.data.ocs.data.folder?e.folder=t.response.data.ocs.data.folder:e.folder=null,e.file=null,e.loaded=!0,e.ready=!0,e.creating=!1,!1}))},createNew:function(){var e=this;this.creating||(this.creating=!0,this.getFileInfo().then((function(t){e.autofocus=!0,t||window.FileList.createFile("Readme.md",{scrollTo:!1,animate:!1}).then((function(t,n){e.getFileInfo()}))})))}}};t.default=f},function(e,t,n){"use strict";(function(e,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)} /*! * Vue.js v2.6.12 * (c) 2014-2020 Evan You * Released under the MIT License. - */Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=Object.freeze({});function o(e){return null==e}function a(e){return null!=e}function s(e){return!0===e}function c(e){return"string"==typeof e||"number"==typeof e||"symbol"===r(e)||"boolean"==typeof e}function u(e){return null!==e&&"object"===r(e)}var f=Object.prototype.toString;function l(e){return"[object Object]"===f.call(e)}function d(e){return"[object RegExp]"===f.call(e)}function p(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function h(e){return a(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function v(e){return null==e?"":Array.isArray(e)||l(e)&&e.toString===f?JSON.stringify(e,null,2):String(e)}function g(e){var t=parseFloat(e);return isNaN(t)?e:t}function m(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}var x=Object.prototype.hasOwnProperty;function w(e,t){return x.call(e,t)}function E(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var O=/-(\w)/g,S=E((function(e){return e.replace(O,(function(e,t){return t?t.toUpperCase():""}))})),A=E((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),k=/\B([A-Z])/g,C=E((function(e){return e.replace(k,"-$1").toLowerCase()}));var T=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function I(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function $(e,t){for(var n in t)e[n]=t[n];return e}function R(e){for(var t={},n=0;n0,ee=Z&&Z.indexOf("edge/")>0,te=(Z&&Z.indexOf("android"),Z&&/iphone|ipad|ipod|ios/.test(Z)||"ios"===J),ne=(Z&&/chrome\/\d+/.test(Z),Z&&/phantomjs/.test(Z),Z&&Z.match(/firefox\/(\d+)/)),re={}.watch,ie=!1;if(X)try{var oe={};Object.defineProperty(oe,"passive",{get:function(){ie=!0}}),window.addEventListener("test-passive",null,oe)}catch(e){}var ae=function(){return void 0===z&&(z=!X&&!K&&void 0!==e&&(e.process&&"server"===e.process.env.VUE_ENV)),z},se=X&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ce(e){return"function"==typeof e&&/native code/.test(e.toString())}var ue,fe="undefined"!=typeof Symbol&&ce(Symbol)&&"undefined"!=typeof Reflect&&ce(Reflect.ownKeys);ue="undefined"!=typeof Set&&ce(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var le=N,de=0,pe=function(){this.id=de++,this.subs=[]};pe.prototype.addSub=function(e){this.subs.push(e)},pe.prototype.removeSub=function(e){_(this.subs,e)},pe.prototype.depend=function(){pe.target&&pe.target.addDep(this)},pe.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t-1)if(o&&!w(i,"default"))a=!1;else if(""===a||a===C(e)){var c=qe(String,i.type);(c<0||s0&&(pt((i=e(i,(n||"")+"_"+r))[0])&&pt(f)&&(l[u]=_e(f.text+i[0].text),i.shift()),l.push.apply(l,i)):c(i)?pt(f)?l[u]=_e(f.text+i):""!==i&&l.push(_e(i)):pt(i)&&pt(f)?l[u]=_e(f.text+i.text):(s(t._isVList)&&a(i.tag)&&o(i.key)&&a(n)&&(i.key="__vlist"+n+"_"+r+"__"),l.push(i)));return l}(e):void 0}function pt(e){return a(e)&&a(e.text)&&!1===e.isComment}function ht(e,t){if(e){for(var n=Object.create(null),r=fe?Reflect.ownKeys(e):Object.keys(e),i=0;i0,a=e?!!e.$stable:!o,s=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&n&&n!==i&&s===n.$key&&!o&&!n.$hasNormal)return n;for(var c in r={},e)e[c]&&"$"!==c[0]&&(r[c]=yt(t,c,e[c]))}else r={};for(var u in t)u in r||(r[u]=bt(t,u));return e&&Object.isExtensible(e)&&(e._normalized=r),q(r,"$stable",a),q(r,"$key",s),q(r,"$hasNormal",o),r}function yt(e,t,n){var i=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"===r(e)&&!Array.isArray(e)?[e]:dt(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:i,enumerable:!0,configurable:!0}),i}function bt(e,t){return function(){return e[t]}}function _t(e,t){var n,r,i,o,s;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,i=e.length;rdocument.createEvent("Event").timeStamp&&(ln=function(){return dn.now()})}function pn(){var e,t;for(fn=ln(),cn=!0,rn.sort((function(e,t){return e.id-t.id})),un=0;unun&&rn[n].id>e.id;)n--;rn.splice(n+1,0,e)}else rn.push(e);sn||(sn=!0,it(pn))}}(this)},vn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||u(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Ve(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},vn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},vn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},vn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||_(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var gn={enumerable:!0,configurable:!0,get:N,set:N};function mn(e,t,n){gn.get=function(){return this[t][n]},gn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,gn)}function yn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&Ae(!1);var o=function(o){i.push(o);var a=Be(o,t,n,e);Te(r,o,a),o in e||mn(e,"_props",o)};for(var a in t)o(a);Ae(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?N:T(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;l(t=e._data="function"==typeof t?function(e,t){ve();try{return e.call(t,t)}catch(e){return Ve(e,t,"data()"),{}}finally{ge()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];0,r&&w(r,o)||H(o)||mn(e,"_data",o)}Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=ae();for(var i in t){var o=t[i],a="function"==typeof o?o:o.get;0,r||(n[i]=new vn(e,a||N,N,bn)),i in e||_n(e,i,o)}}(e,t.computed),t.watch&&t.watch!==re&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function In(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=Cn(a.componentOptions);s&&!t(s)&&$n(n,o,r,i)}}}function $n(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,_(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=On++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=De(Sn(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Zt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,r=n&&n.context;e.$slots=vt(t._renderChildren,r),e.$scopedSlots=i,e._c=function(t,n,r,i){return Gt(e,t,n,r,i,!1)},e.$createElement=function(t,n,r,i){return Gt(e,t,n,r,i,!0)};var o=n&&n.data;Te(e,"$attrs",o&&o.attrs||i,null,!0),Te(e,"$listeners",t._parentListeners||i,null,!0)}(t),nn(t,"beforeCreate"),function(e){var t=ht(e.$options.inject,e);t&&(Ae(!1),Object.keys(t).forEach((function(n){Te(e,n,t[n])})),Ae(!0))}(t),yn(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),nn(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(An),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=Ie,e.prototype.$delete=$e,e.prototype.$watch=function(e,t,n){if(l(t))return En(this,e,t,n);(n=n||{}).user=!0;var r=new vn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Ve(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(An),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i1?I(n):n;for(var r=I(arguments,1),i='event handler for "'+e+'"',o=0,a=n.length;oparseInt(this.max)&&$n(a,s[0],s,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return B}};Object.defineProperty(e,"config",t),e.util={warn:le,extend:$,mergeOptions:De,defineReactive:Te},e.set=Ie,e.delete=$e,e.nextTick=it,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),D.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,$(e.options.components,Nn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=I(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),kn(e),function(e){D.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&l(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(An),Object.defineProperty(An.prototype,"$isServer",{get:ae}),Object.defineProperty(An.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(An,"FunctionalRenderContext",{value:jt}),An.version="2.6.12";var Ln=m("style,class"),jn=m("input,textarea,option,select,progress"),Pn=function(e,t,n){return"value"===n&&jn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Mn=m("contenteditable,draggable,spellcheck"),Fn=m("events,caret,typing,plaintext-only"),Dn=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Un="http://www.w3.org/1999/xlink",Bn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Gn=function(e){return Bn(e)?e.slice(6,e.length):""},Hn=function(e){return null==e||!1===e};function qn(e){for(var t=e.data,n=e,r=e;a(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Vn(r.data,t));for(;a(n=n.parent);)n&&n.data&&(t=Vn(t,n.data));return function(e,t){if(a(e)||a(t))return zn(e,Wn(t));return""}(t.staticClass,t.class)}function Vn(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:a(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+" "+t:e:t||""}function Wn(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,i=e.length;r-1?yr(e,t,n):Dn(t)?Hn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Mn(t)?e.setAttribute(t,function(e,t){return Hn(t)||"false"===t?"false":"contenteditable"===e&&Fn(t)?t:"true"}(t,n)):Bn(t)?Hn(n)?e.removeAttributeNS(Un,Gn(t)):e.setAttributeNS(Un,t,n):yr(e,t,n)}function yr(e,t,n){if(Hn(n))e.removeAttribute(t);else{if(Y&&!Q&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){e.addEventListener("input",(function t(n){n.stopImmediatePropagation(),e.removeEventListener("input",t)})),e.__ieph=!0}e.setAttribute(t,n)}}var br={create:gr,update:gr};function _r(e,t){var n=t.elm,r=t.data,i=e.data;if(!(o(r.staticClass)&&o(r.class)&&(o(i)||o(i.staticClass)&&o(i.class)))){var s=qn(t),c=n._transitionClasses;a(c)&&(s=zn(s,Wn(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var xr,wr,Er,Or,Sr,Ar,kr={create:_r,update:_r},Cr=/[\w).+\-_$\]]/;function Tr(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,f=0,l=0,d=0,p=0;for(r=0;r=0&&" "===(v=e.charAt(h));h--);v&&Cr.test(v)||(u=!0)}}else void 0===i?(p=r+1,i=e.slice(0,r).trim()):g();function g(){(o||(o=[])).push(e.slice(p,r).trim()),p=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==p&&g(),o)for(r=0;r-1?{exp:e.slice(0,Or),key:'"'+e.slice(Or+1)+'"'}:{exp:e,key:null};wr=e,Or=Sr=Ar=0;for(;!zr();)Wr(Er=Vr())?Kr(Er):91===Er&&Xr(Er);return{exp:e.slice(0,Sr),key:e.slice(Sr+1,Ar)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function Vr(){return wr.charCodeAt(++Or)}function zr(){return Or>=xr}function Wr(e){return 34===e||39===e}function Xr(e){var t=1;for(Sr=Or;!zr();)if(Wr(e=Vr()))Kr(e);else if(91===e&&t++,93===e&&t--,0===t){Ar=Or;break}}function Kr(e){for(var t=e;!zr()&&(e=Vr())!==t;);}var Jr;function Zr(e,t,n){var r=Jr;return function i(){var o=t.apply(null,arguments);null!==o&&ei(e,i,n,r)}}var Yr=Je&&!(ne&&Number(ne[1])<=53);function Qr(e,t,n,r){if(Yr){var i=fn,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}Jr.addEventListener(e,t,ie?{capture:n,passive:r}:n)}function ei(e,t,n,r){(r||Jr).removeEventListener(e,t._wrapper||t,n)}function ti(e,t){if(!o(e.data.on)||!o(t.data.on)){var n=t.data.on||{},r=e.data.on||{};Jr=t.elm,function(e){if(a(e.__r)){var t=Y?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}a(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),ut(n,r,Qr,ei,Zr,t.context),Jr=void 0}}var ni,ri={create:ti,update:ti};function ii(e,t){if(!o(e.data.domProps)||!o(t.data.domProps)){var n,r,i=t.elm,s=e.data.domProps||{},c=t.data.domProps||{};for(n in a(c.__ob__)&&(c=t.data.domProps=$({},c)),s)n in c||(i[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===s[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var u=o(r)?"":String(r);oi(i,u)&&(i.value=u)}else if("innerHTML"===n&&Jn(i.tagName)&&o(i.innerHTML)){(ni=ni||document.createElement("div")).innerHTML=""+r+"";for(var f=ni.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;f.firstChild;)i.appendChild(f.firstChild)}else if(r!==s[n])try{i[n]=r}catch(e){}}}}function oi(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(a(r)){if(r.number)return g(n)!==g(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var ai={create:ii,update:ii},si=E((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function ci(e){var t=ui(e.style);return e.staticStyle?$(e.staticStyle,t):t}function ui(e){return Array.isArray(e)?R(e):"string"==typeof e?si(e):e}var fi,li=/^--/,di=/\s*!important$/,pi=function(e,t,n){if(li.test(t))e.style.setProperty(t,n);else if(di.test(n))e.style.setProperty(C(t),n.replace(di,""),"important");else{var r=vi(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(yi).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function _i(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(yi).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function xi(e){if(e){if("object"===r(e)){var t={};return!1!==e.css&&$(t,wi(e.name||"v")),$(t,e),t}return"string"==typeof e?wi(e):void 0}}var wi=E((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Ei=X&&!Q,Oi="transition",Si="transitionend",Ai="animation",ki="animationend";Ei&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Oi="WebkitTransition",Si="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Ai="WebkitAnimation",ki="webkitAnimationEnd"));var Ci=X?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ti(e){Ci((function(){Ci(e)}))}function Ii(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),bi(e,t))}function $i(e,t){e._transitionClasses&&_(e._transitionClasses,t),_i(e,t)}function Ri(e,t,n){var r=Li(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s="transition"===i?Si:ki,c=0,u=function(){e.removeEventListener(s,f),n()},f=function(t){t.target===e&&++c>=a&&u()};setTimeout((function(){c0&&(n="transition",f=a,l=o.length):"animation"===t?u>0&&(n="animation",f=u,l=c.length):l=(n=(f=Math.max(a,u))>0?a>u?"transition":"animation":null)?"transition"===n?o.length:c.length:0,{type:n,timeout:f,propCount:l,hasTransform:"transition"===n&&Ni.test(r[Oi+"Property"])}}function ji(e,t){for(;e.length1}function Bi(e,t){!0!==t.data.show&&Mi(t)}var Gi=function(e){var t,n,r={},i=e.modules,u=e.nodeOps;for(t=0;th?b(e,o(n[m+1])?null:n[m+1].elm,n,p,m,r):p>m&&x(t,d,h)}(d,g,m,n,f):a(m)?(a(e.text)&&u.setTextContent(d,""),b(d,null,m,0,m.length-1,n)):a(g)?x(g,0,g.length-1):a(e.text)&&u.setTextContent(d,""):e.text!==t.text&&u.setTextContent(d,t.text),a(h)&&a(p=h.hook)&&a(p=p.postpatch)&&p(e,t)}}}function S(e,t,n){if(s(n)&&a(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,a.selected!==o&&(a.selected=o);else if(P(Wi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function zi(e,t){return t.every((function(t){return!P(t,e)}))}function Wi(e){return"_value"in e?e._value:e.value}function Xi(e){e.target.composing=!0}function Ki(e){e.target.composing&&(e.target.composing=!1,Ji(e.target,"input"))}function Ji(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Zi(e){return!e.componentInstance||e.data&&e.data.transition?e:Zi(e.componentInstance._vnode)}var Yi={model:Hi,show:{bind:function(e,t,n){var r=t.value,i=(n=Zi(n)).data&&n.data.transition,o=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&i?(n.data.show=!0,Mi(n,(function(){e.style.display=o}))):e.style.display=r?o:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Zi(n)).data&&n.data.transition?(n.data.show=!0,r?Mi(n,(function(){e.style.display=e.__vOriginalDisplay})):Fi(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},Qi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function eo(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?eo(Wt(t.children)):e}function to(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[S(o)]=i[o];return t}function no(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var ro=function(e){return e.tag||zt(e)},io=function(e){return"show"===e.name},oo={name:"transition",props:Qi,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(ro)).length){0;var r=this.mode;0;var i=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return i;var o=eo(i);if(!o)return i;if(this._leaving)return no(e,i);var a="__transition-"+this._uid+"-";o.key=null==o.key?o.isComment?a+"comment":a+o.tag:c(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s=(o.data||(o.data={})).transition=to(this),u=this._vnode,f=eo(u);if(o.data.directives&&o.data.directives.some(io)&&(o.data.show=!0),f&&f.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(o,f)&&!zt(f)&&(!f.componentInstance||!f.componentInstance._vnode.isComment)){var l=f.data.transition=$({},s);if("out-in"===r)return this._leaving=!0,ft(l,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),no(e,i);if("in-out"===r){if(zt(o))return u;var d,p=function(){d()};ft(s,"afterEnter",p),ft(s,"enterCancelled",p),ft(l,"delayLeave",(function(e){d=e}))}}return i}}},ao=$({tag:String,moveClass:String},Qi);function so(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function co(e){e.data.newPos=e.elm.getBoundingClientRect()}function uo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform="translate("+r+"px,"+i+"px)",o.transitionDuration="0s"}}delete ao.mode;var fo={Transition:oo,TransitionGroup:{props:ao,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Qt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=to(this),s=0;s-1?Qn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Qn[e]=/HTMLUnknownElement/.test(t.toString())},$(An.options.directives,Yi),$(An.options.components,fo),An.prototype.__patch__=X?Gi:N,An.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=be),nn(e,"beforeMount"),r=function(){e._update(e._render(),n)},new vn(e,r,N,{before:function(){e._isMounted&&!e._isDestroyed&&nn(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,nn(e,"mounted")),e}(this,e=e&&X?tr(e):void 0,t)},X&&setTimeout((function(){B.devtools&&se&&se.emit("init",An)}),0);var lo=/\{\{((?:.|\r?\n)+?)\}\}/g,po=/[-.*+?^${}()|[\]\/\\]/g,ho=E((function(e){var t=e[0].replace(po,"\\$&"),n=e[1].replace(po,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}));var vo={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Ur(e,"class");n&&(e.staticClass=JSON.stringify(n));var r=Dr(e,"class",!1);r&&(e.classBinding=r)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var go,mo={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Ur(e,"style");n&&(e.staticStyle=JSON.stringify(si(n)));var r=Dr(e,"style",!1);r&&(e.styleBinding=r)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},yo=function(e){return(go=go||document.createElement("div")).innerHTML=e,go.textContent},bo=m("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),_o=m("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),xo=m("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),wo=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Eo=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Oo="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+G.source+"]*",So="((?:"+Oo+"\\:)?"+Oo+")",Ao=new RegExp("^<"+So),ko=/^\s*(\/?)>/,Co=new RegExp("^<\\/"+So+"[^>]*>"),To=/^]+>/i,Io=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},jo=/&(?:lt|gt|quot|amp|#39);/g,Po=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Mo=m("pre,textarea",!0),Fo=function(e,t){return e&&Mo(e)&&"\n"===t[0]};function Do(e,t){var n=t?Po:jo;return e.replace(n,(function(e){return Lo[e]}))}var Uo,Bo,Go,Ho,qo,Vo,zo,Wo,Xo=/^@|^v-on:/,Ko=/^v-|^@|^:|^#/,Jo=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Zo=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Yo=/^\(|\)$/g,Qo=/^\[.*\]$/,ea=/:(.*)$/,ta=/^:|^\.|^v-bind:/,na=/\.[^.\]]+(?=[^\]]*$)/g,ra=/^v-slot(:|$)|^#/,ia=/[\r\n]/,oa=/\s+/g,aa=E(yo);function sa(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ha(t),rawAttrsMap:{},parent:n,children:[]}}function ca(e,t){Uo=t.warn||$r,Vo=t.isPreTag||L,zo=t.mustUseProp||L,Wo=t.getTagNamespace||L;var n=t.isReservedTag||L;(function(e){return!!e.component||!n(e.tag)}),Go=Rr(t.modules,"transformNode"),Ho=Rr(t.modules,"preTransformNode"),qo=Rr(t.modules,"postTransformNode"),Bo=t.delimiters;var r,i,o=[],a=!1!==t.preserveWhitespace,s=t.whitespace,c=!1,u=!1;function f(e){if(l(e),c||e.processed||(e=ua(e,t)),o.length||e===r||r.if&&(e.elseif||e.else)&&la(r,{exp:e.elseif,block:e}),i&&!e.forbidden)if(e.elseif||e.else)a=e,(s=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(i.children))&&s.if&&la(s,{exp:a.elseif,block:a});else{if(e.slotScope){var n=e.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[n]=e}i.children.push(e),e.parent=i}var a,s;e.children=e.children.filter((function(e){return!e.slotScope})),l(e),e.pre&&(c=!1),Vo(e.tag)&&(u=!1);for(var f=0;f]*>)","i")),d=e.replace(l,(function(e,n,r){return u=r.length,Ro(f)||"noscript"===f||(n=n.replace(//g,"$1").replace(//g,"$1")),Fo(f,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""}));c+=e.length-d.length,e=d,A(f,c-u,c)}else{var p=e.indexOf("<");if(0===p){if(Io.test(e)){var h=e.indexOf("--\x3e");if(h>=0){t.shouldKeepComment&&t.comment(e.substring(4,h),c,c+h+3),E(h+3);continue}}if($o.test(e)){var v=e.indexOf("]>");if(v>=0){E(v+2);continue}}var g=e.match(To);if(g){E(g[0].length);continue}var m=e.match(Co);if(m){var y=c;E(m[0].length),A(m[1],y,c);continue}var b=O();if(b){S(b),Fo(b.tagName,e)&&E(1);continue}}var _=void 0,x=void 0,w=void 0;if(p>=0){for(x=e.slice(p);!(Co.test(x)||Ao.test(x)||Io.test(x)||$o.test(x)||(w=x.indexOf("<",1))<0);)p+=w,x=e.slice(p);_=e.substring(0,p)}p<0&&(_=e),_&&E(_.length),t.chars&&_&&t.chars(_,c-_.length,c)}if(e===n){t.chars&&t.chars(e);break}}function E(t){c+=t,e=e.substring(t)}function O(){var t=e.match(Ao);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(E(t[0].length);!(n=e.match(ko))&&(r=e.match(Eo)||e.match(wo));)r.start=c,E(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],E(n[0].length),i.end=c,i}}function S(e){var n=e.tagName,c=e.unarySlash;o&&("p"===r&&xo(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,f=e.attrs.length,l=new Array(f),d=0;d=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?t.start&&t.start(e,[],!0,n,o):"p"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Uo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,n,a,s,l){var d=i&&i.ns||Wo(e);Y&&"svg"===d&&(n=function(e){for(var t=[],n=0;nc&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Tr(r[1].trim());a.push("_s("+u+")"),s.push({"@binding":u}),c=i+r[0].length}return c-1"+("true"===o?":("+t+")":":_q("+t+","+o+")")),Fr(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+qr(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+qr(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+qr(t,"$$c")+"}",null,!0)}(e,r,i);else if("input"===o&&"radio"===a)!function(e,t,n){var r=n&&n.number,i=Dr(e,"value")||"null";Nr(e,"checked","_q("+t+","+(i=r?"_n("+i+")":i)+")"),Fr(e,"change",qr(t,i),null,!0)}(e,r,i);else if("input"===o||"textarea"===o)!function(e,t,n){var r=e.attrsMap.type;0;var i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&"range"!==r,u=o?"change":"range"===r?"__r":"input",f="$event.target.value";s&&(f="$event.target.value.trim()");a&&(f="_n("+f+")");var l=qr(t,f);c&&(l="if($event.target.composing)return;"+l);Nr(e,"value","("+t+")"),Fr(e,u,l,null,!0),(s||a)&&Fr(e,"blur","$forceUpdate()")}(e,r,i);else{if(!B.isReservedTag(o))return Hr(e,r,i),!1}return!0},text:function(e,t){t.value&&Nr(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Nr(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:bo,mustUseProp:Pn,canBeLeftOpenTag:_o,isReservedTag:Zn,getTagNamespace:Yn,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(ya)},wa=E((function(e){return m("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))}));function Ea(e,t){e&&(ba=wa(t.staticKeys||""),_a=t.isReservedTag||L,function e(t){if(t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||y(e.tag)||!_a(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(ba)))}(t),1===t.type){if(!_a(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,Sa=/\([^)]*?\);*$/,Aa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ka={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ca={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Ta=function(e){return"if("+e+")return null;"},Ia={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Ta("$event.target !== $event.currentTarget"),ctrl:Ta("!$event.ctrlKey"),shift:Ta("!$event.shiftKey"),alt:Ta("!$event.altKey"),meta:Ta("!$event.metaKey"),left:Ta("'button' in $event && $event.button !== 0"),middle:Ta("'button' in $event && $event.button !== 1"),right:Ta("'button' in $event && $event.button !== 2")};function $a(e,t){var n=t?"nativeOn:":"on:",r="",i="";for(var o in e){var a=Ra(e[o]);e[o]&&e[o].dynamic?i+=o+","+a+",":r+='"'+o+'":'+a+","}return r="{"+r.slice(0,-1)+"}",i?n+"_d("+r+",["+i.slice(0,-1)+"])":n+r}function Ra(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return Ra(e)})).join(",")+"]";var t=Aa.test(e.value),n=Oa.test(e.value),r=Aa.test(e.value.replace(Sa,""));if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(Ia[s])o+=Ia[s],ka[s]&&a.push(s);else if("exact"===s){var c=e.modifiers;o+=Ta(["ctrl","shift","alt","meta"].filter((function(e){return!c[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else a.push(s);return a.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Na).join("&&")+")return null;"}(a)),o&&(i+=o),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":r?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(r?"return "+e.value:e.value)+"}"}function Na(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=ka[e],r=Ca[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var La={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:N},ja=function(e){this.options=e,this.warn=e.warn||$r,this.transforms=Rr(e.modules,"transformCode"),this.dataGenFns=Rr(e.modules,"genData"),this.directives=$($({},La),e.directives);var t=e.isReservedTag||L;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Pa(e,t){var n=new ja(t);return{render:"with(this){return "+(e?Ma(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ma(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Fa(e,t);if(e.once&&!e.onceProcessed)return Da(e,t);if(e.for&&!e.forProcessed)return Ba(e,t);if(e.if&&!e.ifProcessed)return Ua(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=Va(e,t),i="_t("+n+(r?","+r:""),o=e.attrs||e.dynamicAttrs?Xa((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:S(e.name),value:e.value,dynamic:e.dynamic}}))):null,a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:Va(t,n,!0);return"_c("+e+","+Ga(t,n)+(r?","+r:"")+")"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Ga(e,t));var i=e.inlineTemplate?null:Va(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o>>0}(a):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];0;if(n&&1===n.type){var r=Pa(n,t.options);return"inlineTemplate:{render:function(){"+r.render+"},staticRenderFns:["+r.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);o&&(n+=o+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+Xa(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ha(e){return 1===e.type&&("slot"===e.tag||e.children.some(Ha))}function qa(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ua(e,t,qa,"null");if(e.for&&!e.forProcessed)return Ba(e,t,qa);var r="_empty_"===e.slotScope?"":String(e.slotScope),i="function("+r+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(Va(e,t)||"undefined")+":undefined":Va(e,t)||"undefined":Ma(e,t))+"}",o=r?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+o+"}"}function Va(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?t.maybeComponent(a)?",1":",0":"";return""+(r||Ma)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r':'
',Qa.innerHTML.indexOf(" ")>0}var rs=!!X&&ns(!1),is=!!X&&ns(!0),os=E((function(e){var t=tr(e);return t&&t.innerHTML})),as=An.prototype.$mount;An.prototype.$mount=function(e,t){if((e=e&&tr(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&(r=os(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){0;var i=ts(r,{outputSourceRange:!1,shouldDecodeNewlines:rs,shouldDecodeNewlinesForHref:is,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return as.call(this,e,t)},An.compile=ts;var ss=An;t.default=ss}).call(this,n(45),n(180).setImmediate)},function(e,t,n){"use strict";var r=n(109);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var r,i=n(5),o=n(119),a=n(39),s=n(24),c=n(120),u=n(60),f=n(37),l=f("IE_PROTO"),d=function(){},p=function(e){return"\n\n\n","/*!\n * Vue.js v2.6.12\n * (c) 2014-2020 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a string containing static keys from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.