(window.textWebpackJsonp=window.textWebpackJsonp||[]).push([[188],{358:function(t,e,n){"use strict";var i=n(68);n.n(i).a},359:function(t,e,n){(t.exports=n(46)(!1)).push([t.i,".session-list[data-v-3938a18e]{position:relative}.session-list[data-v-3938a18e] .popovermenu{margin-right:-4px}.session-list[data-v-3938a18e] .popovermenu img{padding:0;width:32px !important;height:32px !important;margin:6px;border-radius:50%}.avatar-list[data-v-3938a18e]{display:inline-flex;flex-direction:row-reverse}.avatar-list .avatardiv[data-v-3938a18e],.avatar-list[data-v-3938a18e] .avatardiv{width:36px;height:36px;margin-right:-8px;border:2px solid var(--color-main-background);background-color:var(--color-main-background) !important;box-sizing:content-box !important}.avatar-list .avatardiv.icon-more[data-v-3938a18e],.avatar-list[data-v-3938a18e] .avatardiv.icon-more{width:32px;height:32px;opacity:.5;background-color:var(--color-background-dark) !important;cursor:pointer}.popovermenu[data-v-3938a18e]{display:block}\n",""])},362:function(t,e,i){"use strict";i.r(e);var a=i(82),o=i.n(a),s=i(62),r=i.n(s),c=i(50),l=i.n(c);function d(t){return function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e0){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,i=OC.generateUrl(n?"/avatar/guest/{user}/{size}":"/avatar/{user}/{size}",{user:e,size:32});return window.location.protocol+"//"+window.location.host+i}},activeSessions:function(){return Object.values(this.sessions).filter(function(t){return t.lastContact>Date.now()/1e3-30&&!t.isCurrent&&null!==t.userId})},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 d(this.activeSessions.slice(3).map(function(e){return{href:"#",icon:t.avatarUrl(e),text:e.guestName?e.guestName:e.displayName}}))}},methods:{}},p=(i(358),i(5)),f=Object(p.a)(u,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.left",value:t.editorsTooltip,expression:"editorsTooltip",modifiers:{left:!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:{url:t.avatarUrl(e),"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("popover-menu",{attrs:{menu:t.sessionsPopover}}),t._v(" "),t._t("default")],2)])},[],!1,null,"3938a18e",null);e.default=f.exports},62:function(t,e,n){window,t.exports=function(t){var e={};function n(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=t,n.c=e,n.d=function(t,e,i){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},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"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)n.d(i,a,function(e){return t[e]}.bind(null,a));return i},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=24)}([function(t,e,n){"use strict";function i(t,e,n,i,a,o,s,r){var c,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),i&&(l.functional=!0),o&&(l._scopeId="data-v-"+o),s?(c=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__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):a&&(c=r?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var d=l.render;l.render=function(t,e){return c.call(e),d(t,e)}}else{var u=l.beforeCreate;l.beforeCreate=u?[].concat(u,c):[c]}return{exports:t,options:l}}n.d(e,"a",function(){return i})},function(t,e,n){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=function(t,e){var n,i,a,o=t[1]||"",s=t[3];if(!s)return o;if(e&&"function"==typeof btoa){var r=(n=s,i=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(i),"/*# ".concat(a," */")),c=s.sources.map(function(t){return"/*# sourceURL=".concat(s.sourceRoot).concat(t," */")});return[o].concat(c).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){"string"==typeof t&&(t=[[null,t,""]]);for(var i={},a=0;an.parts.length&&(i.parts.length=n.parts.length)}else{var s=[];for(a=0;a-1:t.item.model},on:{change:[function(e){var n=t.item.model,i=e.target,a=!!i.checked;if(Array.isArray(n)){var o=t._i(n,null);i.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",a)},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,"8dc4efb0",null).exports},props:{menu:{type:Array,default:function(){return[{href:"https://nextcloud.com",icon:"icon-links",text:"Nextcloud"}]},required:!0}}},s=(n(43),Object(a.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,"2f982451",null).exports);n.d(e,"PopoverMenu",function(){return s}), /** * @copyright Copyright (c) 2018 John Molakvoæ * * @author John Molakvoæ * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ e.default=s},,,,,,,,,,,,,,,function(t,e,n){"use strict";var i=n(18);n.n(i).a},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,"\nbutton.menuitem[data-v-8dc4efb0] {\n\ttext-align: left;\n}\nbutton.menuitem *[data-v-8dc4efb0] {\n\tcursor: pointer;\n}\nbutton.menuitem[data-v-8dc4efb0]:disabled {\n\topacity: 0.5 !important;\n\tcursor: default;\n}\nbutton.menuitem:disabled *[data-v-8dc4efb0] {\n\tcursor: default;\n}\n.menuitem.active[data-v-8dc4efb0] {\n\tbox-shadow: inset 2px 0 var(--color-primary);\n\tborder-radius: 0;\n}\n",""])},function(t,e,n){"use strict";var i=n(19);n.n(i).a},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,"@charset \"UTF-8\";\n/**\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 */\nli[data-v-8dc4efb0] {\n display: flex;\n flex: 0 0 auto;\n /* css hack, only first not hidden */\n}\nli.hidden[data-v-8dc4efb0] {\n display: none;\n}\nli > button[data-v-8dc4efb0],\n li > a[data-v-8dc4efb0],\n li > .menuitem[data-v-8dc4efb0] {\n cursor: pointer;\n line-height: 44px;\n border: 0;\n border-radius: 0;\n background-color: transparent;\n display: flex;\n align-items: flex-start;\n height: auto;\n margin: 0;\n padding: 0;\n font-weight: normal;\n box-shadow: none;\n width: 100%;\n color: var(--color-main-text);\n white-space: nowrap;\n opacity: 0.7;\n /* prevent .action class to break the design */\n /* Add padding if contains icon+text */\n /* DEPRECATED! old img in popover fallback\n\t\t\t* TODO: to remove */\n /* checkbox/radio fixes */\n /* no margin if hidden span before */\n /* Inputs inside popover supports text, submit & reset */\n}\nli > button span[class^='icon-'][data-v-8dc4efb0],\n li > button span[class*=' icon-'][data-v-8dc4efb0], li > button[class^='icon-'][data-v-8dc4efb0], li > button[class*=' icon-'][data-v-8dc4efb0],\n li > a span[class^='icon-'][data-v-8dc4efb0],\n li > a span[class*=' icon-'][data-v-8dc4efb0],\n li > a[class^='icon-'][data-v-8dc4efb0],\n li > a[class*=' icon-'][data-v-8dc4efb0],\n li > .menuitem span[class^='icon-'][data-v-8dc4efb0],\n li > .menuitem span[class*=' icon-'][data-v-8dc4efb0],\n li > .menuitem[class^='icon-'][data-v-8dc4efb0],\n li > .menuitem[class*=' icon-'][data-v-8dc4efb0] {\n min-width: 0;\n /* Overwrite icons*/\n min-height: 0;\n background-position: 14px center;\n background-size: 16px;\n}\nli > button span[class^='icon-'][data-v-8dc4efb0],\n li > button span[class*=' icon-'][data-v-8dc4efb0],\n li > a span[class^='icon-'][data-v-8dc4efb0],\n li > a span[class*=' icon-'][data-v-8dc4efb0],\n li > .menuitem span[class^='icon-'][data-v-8dc4efb0],\n li > .menuitem span[class*=' icon-'][data-v-8dc4efb0] {\n /* Keep padding to define the width to\n\t\t\t\tassure correct position of a possible text */\n padding: 22px 0 22px 44px;\n}\nli > button:not([class^='icon-']):not([class*='icon-']) > span[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > button:not([class^='icon-']):not([class*='icon-']) > input[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > button:not([class^='icon-']):not([class*='icon-']) > form[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > a:not([class^='icon-']):not([class*='icon-']) > span[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > a:not([class^='icon-']):not([class*='icon-']) > input[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > a:not([class^='icon-']):not([class*='icon-']) > form[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > .menuitem:not([class^='icon-']):not([class*='icon-']) > span[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > .menuitem:not([class^='icon-']):not([class*='icon-']) > input[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child,\n li > .menuitem:not([class^='icon-']):not([class*='icon-']) > form[data-v-8dc4efb0]:not([class^='icon-']):not([class*='icon-']):first-child {\n margin-left: 44px;\n}\nli > button[class^='icon-'][data-v-8dc4efb0], li > button[class*=' icon-'][data-v-8dc4efb0],\n li > a[class^='icon-'][data-v-8dc4efb0],\n li > a[class*=' icon-'][data-v-8dc4efb0],\n li > .menuitem[class^='icon-'][data-v-8dc4efb0],\n li > .menuitem[class*=' icon-'][data-v-8dc4efb0] {\n padding: 0 14px 0 44px;\n}\nli > button[data-v-8dc4efb0]:not(:disabled):hover, li > button[data-v-8dc4efb0]:not(:disabled):focus, li > button:not(:disabled).active[data-v-8dc4efb0],\n li > a[data-v-8dc4efb0]:not(:disabled):hover,\n li > a[data-v-8dc4efb0]:not(:disabled):focus,\n li > a:not(:disabled).active[data-v-8dc4efb0],\n li > .menuitem[data-v-8dc4efb0]:not(:disabled):hover,\n li > .menuitem[data-v-8dc4efb0]:not(:disabled):focus,\n li > .menuitem:not(:disabled).active[data-v-8dc4efb0] {\n opacity: 1 !important;\n}\nli > button.action[data-v-8dc4efb0],\n li > a.action[data-v-8dc4efb0],\n li > .menuitem.action[data-v-8dc4efb0] {\n padding: inherit !important;\n}\nli > button > span[data-v-8dc4efb0],\n li > a > span[data-v-8dc4efb0],\n li > .menuitem > span[data-v-8dc4efb0] {\n cursor: pointer;\n white-space: nowrap;\n}\nli > button > p[data-v-8dc4efb0],\n li > a > p[data-v-8dc4efb0],\n li > .menuitem > p[data-v-8dc4efb0] {\n width: 150px;\n line-height: 1.6em;\n padding: 8px 0;\n white-space: normal;\n}\nli > button > select[data-v-8dc4efb0],\n li > a > select[data-v-8dc4efb0],\n li > .menuitem > select[data-v-8dc4efb0] {\n margin: 0;\n margin-left: 6px;\n}\nli > button[data-v-8dc4efb0]:not(:empty),\n li > a[data-v-8dc4efb0]:not(:empty),\n li > .menuitem[data-v-8dc4efb0]:not(:empty) {\n padding-right: 14px !important;\n}\nli > button > img[data-v-8dc4efb0],\n li > a > img[data-v-8dc4efb0],\n li > .menuitem > img[data-v-8dc4efb0] {\n width: 16px;\n padding: 14px;\n}\nli > button > input.radio + label[data-v-8dc4efb0],\n li > button > input.checkbox + label[data-v-8dc4efb0],\n li > a > input.radio + label[data-v-8dc4efb0],\n li > a > input.checkbox + label[data-v-8dc4efb0],\n li > .menuitem > input.radio + label[data-v-8dc4efb0],\n li > .menuitem > input.checkbox + label[data-v-8dc4efb0] {\n padding: 0 !important;\n width: 100%;\n}\nli > button > input.checkbox + label[data-v-8dc4efb0]::before,\n li > a > input.checkbox + label[data-v-8dc4efb0]::before,\n li > .menuitem > input.checkbox + label[data-v-8dc4efb0]::before {\n margin: -2px 13px 0;\n}\nli > button > input.radio + label[data-v-8dc4efb0]::before,\n li > a > input.radio + label[data-v-8dc4efb0]::before,\n li > .menuitem > input.radio + label[data-v-8dc4efb0]::before {\n margin: -2px 12px 0;\n}\nli > button > input[data-v-8dc4efb0]:not([type=radio]):not([type=checkbox]):not([type=image]),\n li > a > input[data-v-8dc4efb0]:not([type=radio]):not([type=checkbox]):not([type=image]),\n li > .menuitem > input[data-v-8dc4efb0]:not([type=radio]):not([type=checkbox]):not([type=image]) {\n width: 150px;\n}\nli > button form[data-v-8dc4efb0],\n li > a form[data-v-8dc4efb0],\n li > .menuitem form[data-v-8dc4efb0] {\n display: flex;\n flex: 1 1 auto;\n /* put a small space between text and form\n\t\t\t\tif there is an element before */\n}\nli > button form[data-v-8dc4efb0]:not(:first-child),\n li > a form[data-v-8dc4efb0]:not(:first-child),\n li > .menuitem form[data-v-8dc4efb0]:not(:first-child) {\n margin-left: 5px;\n}\nli > button > span.hidden + form[data-v-8dc4efb0],\n li > button > span[style*='display:none'] + form[data-v-8dc4efb0],\n li > a > span.hidden + form[data-v-8dc4efb0],\n li > a > span[style*='display:none'] + form[data-v-8dc4efb0],\n li > .menuitem > span.hidden + form[data-v-8dc4efb0],\n li > .menuitem > span[style*='display:none'] + form[data-v-8dc4efb0] {\n margin-left: 0;\n}\nli > button input[data-v-8dc4efb0],\n li > a input[data-v-8dc4efb0],\n li > .menuitem input[data-v-8dc4efb0] {\n min-width: 44px;\n max-height: 40px;\n /* twice the element margin-y */\n margin: 2px 0;\n flex: 1 1 auto;\n}\nli > button input[data-v-8dc4efb0]:not(:first-child),\n li > a input[data-v-8dc4efb0]:not(:first-child),\n li > .menuitem input[data-v-8dc4efb0]:not(:first-child) {\n margin-left: 5px;\n}\nli:not(.hidden):not([style*='display:none']):first-of-type > button > form[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):first-of-type > button > input[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):first-of-type > a > form[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):first-of-type > a > input[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):first-of-type > .menuitem > form[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):first-of-type > .menuitem > input[data-v-8dc4efb0] {\n margin-top: 12px;\n}\nli:not(.hidden):not([style*='display:none']):last-of-type > button > form[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):last-of-type > button > input[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):last-of-type > a > form[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):last-of-type > a > input[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):last-of-type > .menuitem > form[data-v-8dc4efb0], li:not(.hidden):not([style*='display:none']):last-of-type > .menuitem > input[data-v-8dc4efb0] {\n margin-bottom: 12px;\n}\nli > button[data-v-8dc4efb0] {\n padding: 0;\n}\nli > button span[data-v-8dc4efb0] {\n opacity: 1;\n}\n",""])},function(t,e,n){"use strict";var i=n(20);n.n(i).a},function(t,e,n){(t.exports=n(1)(!1)).push([t.i,'@charset "UTF-8";\n/**\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 */\nul[data-v-2f982451] {\n display: flex;\n flex-direction: column;\n}\n',""])}])},68:function(t,e,n){var i=n(359);"string"==typeof i&&(i=[[t.i,i,""]]),i.locals&&(t.exports=i.locals);(0,n(47).default)("20f5bb54",i,!0,{})}}]); //# sourceMappingURL=editor-collab.js.map?v=70a12555324b7ca6caf5