]> source.dussan.org Git - nextcloud-server.git/commitdiff
show breadcrumb detail view in breadcrumb menu 27970/head
authorJulien Veyssier <eneiluj@posteo.net>
Wed, 14 Jul 2021 13:43:15 +0000 (15:43 +0200)
committerJulien Veyssier <eneiluj@posteo.net>
Wed, 14 Jul 2021 13:43:15 +0000 (15:43 +0200)
Signed-off-by: Julien Veyssier <eneiluj@posteo.net>
apps/files/js/breadcrumb.js
apps/files_sharing/js/dist/additionalScripts.js
apps/files_sharing/js/dist/additionalScripts.js.map
apps/files_sharing/src/sharebreadcrumbview.js

index 6521b8cf484ee142613b70a1f65eaa7a2b682e15..89d42cc4e3e10df11a80030ce4d21fc7acf2c325 100644 (file)
                                        dirInfo: this.dirInfo
                                });
                                $crumb.append(view.$el);
+                               $menuItem.append(view.$el.clone(true));
                        }, this);
 
                        // setup drag and drop
index 5d5e9845363356893d921852ed18858a3c221baa..75893d2538e6d61cea0ea654d7307d38bf070407 100644 (file)
@@ -1,2 +1,2 @@
-!function(e){var t={};function a(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.m=e,a.c=t,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="/js/",a(a.s=281)}({145:function(e,a,r){r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise((function(e,a){OC.dialogs.filepicker(t("files_sharing","Link to a file"),(function(t){OC.Files.getClient().getFileInfo(t).then((function(t,a){e(a.id)})).fail((function(){a(new Error("Cannot get fileinfo"))}))}),!1,null,!1,OC.dialogs.FILEPICKER_TYPE_CHOOSE,"",{allowDirectoryChooser:!0})}))},typeString:t("files_sharing","Link to a file"),typeIconClass:"icon-files-dark"})},224:function(e,t){!function(){"use strict";var e=OC.Backbone.View.extend({tagName:"span",events:{click:"_onClick"},_dirInfo:void 0,render:function(e){if(this._dirInfo=e.dirInfo||null,null===this._dirInfo||"/"===this._dirInfo.path&&""===this._dirInfo.name)this.$el.removeClass("shared icon-public icon-shared"),this.$el.hide();else{var t=e.dirInfo&&e.dirInfo.shareTypes&&e.dirInfo.shareTypes.length>0;this.$el.removeClass("shared icon-public icon-shared"),t?(this.$el.addClass("shared"),-1!==e.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK)?this.$el.addClass("icon-public"):this.$el.addClass("icon-shared")):this.$el.addClass("icon-shared"),this.$el.show(),this.delegateEvents()}return this},_onClick:function(e){e.preventDefault();var t=new OCA.Files.FileInfoModel(this._dirInfo),a=this;t.on("change",(function(){a.render({dirInfo:a._dirInfo})}));var r=t.attributes.path+"/"+t.attributes.name;OCA.Files.Sidebar.open(r),OCA.Files.Sidebar.setActiveTab("sharing")}});OCA.Sharing.ShareBreadCrumbView=e}()},225:function(e,t,a){var r=a(226);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,a(49).default)("57e7eec1",r,!0,{})},226:function(e,t,a){(t=a(45)(!1)).push([e.i,"div.crumb span.icon-shared,div.crumb span.icon-public{display:inline-block;cursor:pointer;opacity:0.2;margin-right:6px}div.crumb span.icon-shared.shared,div.crumb span.icon-public.shared{opacity:0.7}\n",""]),e.exports=t},281:function(e,a,r){"use strict";r.r(a);var n=r(73),i=r.n(n);_.extend(OC.Files.Client,{PROPERTY_SHARE_TYPES:"{"+OC.Files.Client.NS_OWNCLOUD+"}share-types",PROPERTY_OWNER_ID:"{"+OC.Files.Client.NS_OWNCLOUD+"}owner-id",PROPERTY_OWNER_DISPLAY_NAME:"{"+OC.Files.Client.NS_OWNCLOUD+"}owner-display-name"}),OCA.Sharing||(OCA.Sharing={}),OCA.Sharing.Util={_REMOTE_OWNER_REGEXP:new RegExp("^(([^@]*)@(([^@^/\\s]*)@)?)((https://)?[^[\\s/]*)([/](.*))?$"),attach:function(e){if(OC.Share&&"trashbin"!==e.id&&"files.public"!==e.id){var a=e.fileActions,r=e._createRow;e._createRow=function(e){var t=r.apply(this,arguments),n=OCA.Sharing.Util.getSharePermissions(e);return 0===e.permissions&&(delete a.actions.all.Comment,delete a.actions.all.Details,delete a.actions.all.Goto),t.attr("data-share-permissions",n),e.shareOwner&&(t.attr("data-share-owner",e.shareOwner),t.attr("data-share-owner-id",e.shareOwnerId),"shared-root"===e.mountType&&t.attr("data-permissions",e.permissions|OC.PERMISSION_UPDATE)),e.recipientData&&!_.isEmpty(e.recipientData)&&t.attr("data-share-recipient-data",JSON.stringify(e.recipientData)),e.shareTypes&&t.attr("data-share-types",e.shareTypes.join(",")),t};var n=e.elementToFile;e.elementToFile=function(e){var t=n.apply(this,arguments);if(t.sharePermissions=e.attr("data-share-permissions")||void 0,t.shareOwner=e.attr("data-share-owner")||void 0,t.shareOwnerId=e.attr("data-share-owner-id")||void 0,e.attr("data-share-types")&&(t.shareTypes=e.attr("data-share-types").split(",")),e.attr("data-expiration")){var a=parseInt(e.attr("data-expiration"));t.shares=[],t.shares.push({expiration:a})}return t};var i=e._getWebdavProperties;e._getWebdavProperties=function(){var e=i.apply(this,arguments);return e.push(OC.Files.Client.PROPERTY_OWNER_ID),e.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME),e.push(OC.Files.Client.PROPERTY_SHARE_TYPES),e},e.filesClient.addFileInfoParser((function(e){var t={},a=e.propStat[0].properties,r=a[OC.Files.Client.PROPERTY_PERMISSIONS];r&&r.indexOf("S")>=0&&(t.shareOwner=a[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME],t.shareOwnerId=a[OC.Files.Client.PROPERTY_OWNER_ID]);var n=a[OC.Files.Client.PROPERTY_SHARE_TYPES];return n&&(t.shareTypes=_.chain(n).filter((function(e){return e.namespaceURI===OC.Files.Client.NS_OWNCLOUD&&"share-type"===e.nodeName.split(":")[1]})).map((function(e){return parseInt(e.textContent||e.text,10)})).value()),t})),e.$el.on("fileActionsReady",(function(e){var t=e.$files;_.each(t,(function(e){var t=$(e),a=t.attr("data-share-types")||"",r=t.attr("data-share-owner");if(a||r){var n=!1,i=!1;_.each(a.split(",")||[],(function(e){(e=parseInt(e,10))===OC.Share.SHARE_TYPE_LINK||e===OC.Share.SHARE_TYPE_EMAIL?n=!0:(e===OC.Share.SHARE_TYPE_USER||e===OC.Share.SHARE_TYPE_GROUP||e===OC.Share.SHARE_TYPE_REMOTE||e===OC.Share.SHARE_TYPE_CIRCLE||e===OC.Share.SHARE_TYPE_ROOM)&&(i=!0)})),OCA.Sharing.Util._updateFileActionIcon(t,i,n)}}))})),e.$el.on("changeDirectory",(function(){OCA.Sharing.sharesLoaded=!1})),a.registerAction({name:"Share",displayName:function(e){if(e&&e.$file){var a=parseInt(e.$file.data("share-types"),10),r=e.$file.data("share-owner-id");if(a>=0||r)return t("files_sharing","Shared")}return t("files_sharing","Share")},altText:t("files_sharing","Share"),mime:"all",order:-150,permissions:OC.PERMISSION_ALL,iconClass:function(e,t){var a=parseInt(t.$file.data("share-types"),10);return a===OC.Share.SHARE_TYPE_EMAIL||a===OC.Share.SHARE_TYPE_LINK?"icon-public":"icon-shared"},icon:function(e,t){var a=t.$file.data("share-owner-id");if(a)return OC.generateUrl("/avatar/".concat(a,"/32"))},type:OCA.Files.FileActions.TYPE_INLINE,actionHandler:function(t,a){var r=parseInt(a.$file.data("share-permissions"),10);(isNaN(r)||r>0)&&e.showDetailsView(t,"sharing")},render:function(e,t,r){return 0!=(parseInt(r.$file.data("permissions"),10)&OC.PERMISSION_SHARE)||r.$file.attr("data-share-owner")?a._defaultRenderAction.call(a,e,t,r):null}});var s=new OCA.Sharing.ShareBreadCrumbView;e.registerBreadCrumbDetailView(s)}},_updateFileListDataAttributes:function(e,t,a){if("files"!==e.id)if(_.pluck(a.get("shares"),"share_with_displayname").length){var r=_.mapObject(a.get("shares"),(function(e){return{shareWith:e.share_with,shareWithDisplayName:e.share_with_displayname}}));t.attr("data-share-recipient-data",JSON.stringify(r))}else t.removeAttr("data-share-recipient-data")},_updateFileActionIcon:function(e,t,a){return!!(t||a||e.attr("data-share-recipient-data")||e.attr("data-share-owner"))&&(OCA.Sharing.Util._markFileAsShared(e,!0,a),!0)},_markFileAsShared:function(e,a,r){var n,i,s,o,l=e.find('.fileactions .action[data-action="Share"]'),d=e.data("type"),c=l.find(".icon"),h=e.attr("data-share-owner-id"),u=e.attr("data-share-owner"),p=e.attr("data-mounttype"),f="icon-shared";l.removeClass("shared-style"),"dir"===d&&(a||r||h)?(o=void 0!==p&&"shared-root"!==p&&"shared"!==p?OC.MimeType.getIconUrl("dir-"+p):r?OC.MimeType.getIconUrl("dir-public"):OC.MimeType.getIconUrl("dir-shared"),e.find(".filename .thumbnail").css("background-image","url("+o+")"),e.attr("data-icon",o)):"dir"===d&&("true"===e.attr("data-e2eencrypted")?(o=OC.MimeType.getIconUrl("dir-encrypted"),e.attr("data-icon",o)):p&&0===p.indexOf("external")?(o=OC.MimeType.getIconUrl("dir-external"),e.attr("data-icon",o)):(o=OC.MimeType.getIconUrl("dir"),e.removeAttr("data-icon")),e.find(".filename .thumbnail").css("background-image","url("+o+")")),a||h?(i=e.data("share-recipient-data"),l.addClass("shared-style"),s="<span>"+t("files_sharing","Shared")+"</span>",h?(n=t("files_sharing","Shared by"),s=OCA.Sharing.Util._formatRemoteShare(h,u,n)):i&&(s=OCA.Sharing.Util._formatShareList(i)),l.html(s).prepend(c),(h||i)&&(l.find(".avatar").each((function(){$(this).avatar($(this).data("username"),32)})),l.find("span[title]").tooltip({placement:"top"}))):l.html('<span class="hidden-visually">'+t("files_sharing","Shared")+"</span>").prepend(c),r&&(f="icon-public"),c.removeClass("icon-shared icon-public").addClass(f)},_formatRemoteShare:function(e,t,a){var r=OCA.Sharing.Util._REMOTE_OWNER_REGEXP.exec(e);if(console.error(r),!r||!r[7])return'<span class="avatar" data-username="'+i()(e)+'" title="'+a+" "+i()(t)+'"></span><span class="hidden-visually">'+a+" "+i()(t)+"</span> ";var n=r[2],s=r[4],o=r[5],l=r[6],d=r[8]?r[7]:"",c=a+" "+n;s&&(c+="@"+s),o&&(c+="@"+o.replace(l,"")+d);var h='<span class="remoteAddress" title="'+i()(c)+'">';return h+='<span class="username">'+i()(n)+"</span>",s&&(h+='<span class="userDomain">@'+i()(s)+"</span>"),h+="</span> "},_formatShareList:function(e){var a=this;return(e=_.toArray(e)).sort((function(e,t){return e.shareWithDisplayName.localeCompare(t.shareWithDisplayName)})),$.map(e,(function(e){return a._formatRemoteShare(e.shareWith,e.shareWithDisplayName,t("files_sharing","Shared with"))}))},markFileAsShared:function(e,a,r){var n,i,s,o,l=e.find('.fileactions .action[data-action="Share"]'),d=e.data("type"),c=l.find(".icon"),h=e.attr("data-share-owner-id"),u=e.attr("data-share-owner"),p=e.attr("data-mounttype"),f="icon-shared";l.removeClass("shared-style"),"dir"===d&&(a||r||h)?(o=void 0!==p&&"shared-root"!==p&&"shared"!==p?OC.MimeType.getIconUrl("dir-"+p):r?OC.MimeType.getIconUrl("dir-public"):OC.MimeType.getIconUrl("dir-shared"),e.find(".filename .thumbnail").css("background-image","url("+o+")"),e.attr("data-icon",o)):"dir"===d&&("true"===e.attr("data-e2eencrypted")?(o=OC.MimeType.getIconUrl("dir-encrypted"),e.attr("data-icon",o)):p&&0===p.indexOf("external")?(o=OC.MimeType.getIconUrl("dir-external"),e.attr("data-icon",o)):(o=OC.MimeType.getIconUrl("dir"),e.removeAttr("data-icon")),e.find(".filename .thumbnail").css("background-image","url("+o+")")),a||h?(i=e.data("share-recipient-data"),l.addClass("shared-style"),s="<span>"+t("files_sharing","Shared")+"</span>",h?(n=t("files_sharing","Shared by"),s=this._formatRemoteShare(h,u,n)):i&&(s=this._formatShareList(i)),l.html(s).prepend(c),(h||i)&&(l.find(".avatar").each((function(){$(this).avatar($(this).data("username"),32)})),l.find("span[title]").tooltip({placement:"top"}))):l.html('<span class="hidden-visually">'+t("files_sharing","Shared")+"</span>").prepend(c),r&&(f="icon-public"),c.removeClass("icon-shared icon-public").addClass(f)},getSharePermissions:function(e){return e.sharePermissions}},OC.Plugins.register("OCA.Files.FileList",OCA.Sharing.Util);r(224),r(225),r(145);r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCA.Sharing=OCA.Sharing},45:function(e,t,a){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=function(e,t){var a=e[1]||"",r=e[3];if(!r)return a;if(t&&"function"==typeof btoa){var n=(s=r,o=btoa(unescape(encodeURIComponent(JSON.stringify(s)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),"/*# ".concat(l," */")),i=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[a].concat(i).concat([n]).join("\n")}var s,o,l;return[a].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(a,"}"):a})).join("")},t.i=function(e,a,r){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(n[s]=!0)}for(var o=0;o<e.length;o++){var l=[].concat(e[o]);r&&n[l[0]]||(a&&(l[2]?l[2]="".concat(a," and ").concat(l[2]):l[2]=a),t.push(l))}},t}},49:function(e,t,a){"use strict";function r(e,t){for(var a=[],r={},n=0;n<t.length;n++){var i=t[n],s=i[0],o={id:e+":"+n,css:i[1],media:i[2],sourceMap:i[3]};r[s]?r[s].parts.push(o):a.push(r[s]={id:s,parts:[o]})}return a}a.r(t),a.d(t,"default",(function(){return p}));var n="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!n)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var i={},s=n&&(document.head||document.getElementsByTagName("head")[0]),o=null,l=0,d=!1,c=function(){},h=null,u="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(e,t,a,n){d=a,h=n||{};var s=r(e,t);return f(s),function(t){for(var a=[],n=0;n<s.length;n++){var o=s[n];(l=i[o.id]).refs--,a.push(l)}t?f(s=r(e,t)):s=[];for(n=0;n<a.length;n++){var l;if(0===(l=a[n]).refs){for(var d=0;d<l.parts.length;d++)l.parts[d]();delete i[l.id]}}}}function f(e){for(var t=0;t<e.length;t++){var a=e[t],r=i[a.id];if(r){r.refs++;for(var n=0;n<r.parts.length;n++)r.parts[n](a.parts[n]);for(;n<a.parts.length;n++)r.parts.push(C(a.parts[n]));r.parts.length>a.parts.length&&(r.parts.length=a.parts.length)}else{var s=[];for(n=0;n<a.parts.length;n++)s.push(C(a.parts[n]));i[a.id]={id:a.id,refs:1,parts:s}}}}function m(){var e=document.createElement("style");return e.type="text/css",s.appendChild(e),e}function C(e){var t,a,r=document.querySelector('style[data-vue-ssr-id~="'+e.id+'"]');if(r){if(d)return c;r.parentNode.removeChild(r)}if(u){var n=l++;r=o||(o=m()),t=_.bind(null,r,n,!1),a=_.bind(null,r,n,!0)}else r=m(),t=v.bind(null,r),a=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else a()}}var O,g=(O=[],function(e,t){return O[e]=t,O.filter(Boolean).join("\n")});function _(e,t,a,r){var n=a?"":r.css;if(e.styleSheet)e.styleSheet.cssText=g(t,n);else{var i=document.createTextNode(n),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(i,s[t]):e.appendChild(i)}}function v(e,t){var a=t.css,r=t.media,n=t.sourceMap;if(r&&e.setAttribute("media",r),h.ssrId&&e.setAttribute("data-vue-ssr-id",t.id),n&&(a+="\n/*# sourceURL="+n.sources[0]+" */",a+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),e.styleSheet)e.styleSheet.cssText=a;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(a))}}},73:function(e,t,a){"use strict";var r=/["'&<>]/;e.exports=function(e){var t,a=""+e,n=r.exec(a);if(!n)return a;var i="",s=0,o=0;for(s=n.index;s<a.length;s++){switch(a.charCodeAt(s)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#39;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}o!==s&&(i+=a.substring(o,s)),o=s+1,i+=t}return o!==s?i+a.substring(o,s):i}}});
+!function(e){var t={};function a(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.m=e,a.c=t,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="/js/",a(a.s=281)}({145:function(e,a,r){r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise((function(e,a){OC.dialogs.filepicker(t("files_sharing","Link to a file"),(function(t){OC.Files.getClient().getFileInfo(t).then((function(t,a){e(a.id)})).fail((function(){a(new Error("Cannot get fileinfo"))}))}),!1,null,!1,OC.dialogs.FILEPICKER_TYPE_CHOOSE,"",{allowDirectoryChooser:!0})}))},typeString:t("files_sharing","Link to a file"),typeIconClass:"icon-files-dark"})},224:function(e,t){!function(){"use strict";var e=OC.Backbone.View.extend({tagName:"span",events:{click:"_onClick"},_dirInfo:void 0,render:function(e){if(this._dirInfo=e.dirInfo||null,null===this._dirInfo||"/"===this._dirInfo.path&&""===this._dirInfo.name)this.$el.removeClass("shared icon-public icon-shared"),this.$el.hide();else{var t=e.dirInfo&&e.dirInfo.shareTypes&&e.dirInfo.shareTypes.length>0;this.$el.removeClass("shared icon-public icon-shared"),t?(this.$el.addClass("shared"),-1!==e.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK)?this.$el.addClass("icon-public"):this.$el.addClass("icon-shared")):this.$el.addClass("icon-shared"),this.$el.show(),this.delegateEvents()}return this},_onClick:function(e){e.preventDefault(),e.stopPropagation();var t=new OCA.Files.FileInfoModel(this._dirInfo),a=this;t.on("change",(function(){a.render({dirInfo:a._dirInfo})}));var r=t.attributes.path+"/"+t.attributes.name;OCA.Files.Sidebar.open(r),OCA.Files.Sidebar.setActiveTab("sharing")}});OCA.Sharing.ShareBreadCrumbView=e}()},225:function(e,t,a){var r=a(226);r.__esModule&&(r=r.default),"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);(0,a(49).default)("57e7eec1",r,!0,{})},226:function(e,t,a){(t=a(45)(!1)).push([e.i,"div.crumb span.icon-shared,div.crumb span.icon-public{display:inline-block;cursor:pointer;opacity:0.2;margin-right:6px}div.crumb span.icon-shared.shared,div.crumb span.icon-public.shared{opacity:0.7}\n",""]),e.exports=t},281:function(e,a,r){"use strict";r.r(a);var n=r(73),i=r.n(n);_.extend(OC.Files.Client,{PROPERTY_SHARE_TYPES:"{"+OC.Files.Client.NS_OWNCLOUD+"}share-types",PROPERTY_OWNER_ID:"{"+OC.Files.Client.NS_OWNCLOUD+"}owner-id",PROPERTY_OWNER_DISPLAY_NAME:"{"+OC.Files.Client.NS_OWNCLOUD+"}owner-display-name"}),OCA.Sharing||(OCA.Sharing={}),OCA.Sharing.Util={_REMOTE_OWNER_REGEXP:new RegExp("^(([^@]*)@(([^@^/\\s]*)@)?)((https://)?[^[\\s/]*)([/](.*))?$"),attach:function(e){if(OC.Share&&"trashbin"!==e.id&&"files.public"!==e.id){var a=e.fileActions,r=e._createRow;e._createRow=function(e){var t=r.apply(this,arguments),n=OCA.Sharing.Util.getSharePermissions(e);return 0===e.permissions&&(delete a.actions.all.Comment,delete a.actions.all.Details,delete a.actions.all.Goto),t.attr("data-share-permissions",n),e.shareOwner&&(t.attr("data-share-owner",e.shareOwner),t.attr("data-share-owner-id",e.shareOwnerId),"shared-root"===e.mountType&&t.attr("data-permissions",e.permissions|OC.PERMISSION_UPDATE)),e.recipientData&&!_.isEmpty(e.recipientData)&&t.attr("data-share-recipient-data",JSON.stringify(e.recipientData)),e.shareTypes&&t.attr("data-share-types",e.shareTypes.join(",")),t};var n=e.elementToFile;e.elementToFile=function(e){var t=n.apply(this,arguments);if(t.sharePermissions=e.attr("data-share-permissions")||void 0,t.shareOwner=e.attr("data-share-owner")||void 0,t.shareOwnerId=e.attr("data-share-owner-id")||void 0,e.attr("data-share-types")&&(t.shareTypes=e.attr("data-share-types").split(",")),e.attr("data-expiration")){var a=parseInt(e.attr("data-expiration"));t.shares=[],t.shares.push({expiration:a})}return t};var i=e._getWebdavProperties;e._getWebdavProperties=function(){var e=i.apply(this,arguments);return e.push(OC.Files.Client.PROPERTY_OWNER_ID),e.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME),e.push(OC.Files.Client.PROPERTY_SHARE_TYPES),e},e.filesClient.addFileInfoParser((function(e){var t={},a=e.propStat[0].properties,r=a[OC.Files.Client.PROPERTY_PERMISSIONS];r&&r.indexOf("S")>=0&&(t.shareOwner=a[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME],t.shareOwnerId=a[OC.Files.Client.PROPERTY_OWNER_ID]);var n=a[OC.Files.Client.PROPERTY_SHARE_TYPES];return n&&(t.shareTypes=_.chain(n).filter((function(e){return e.namespaceURI===OC.Files.Client.NS_OWNCLOUD&&"share-type"===e.nodeName.split(":")[1]})).map((function(e){return parseInt(e.textContent||e.text,10)})).value()),t})),e.$el.on("fileActionsReady",(function(e){var t=e.$files;_.each(t,(function(e){var t=$(e),a=t.attr("data-share-types")||"",r=t.attr("data-share-owner");if(a||r){var n=!1,i=!1;_.each(a.split(",")||[],(function(e){(e=parseInt(e,10))===OC.Share.SHARE_TYPE_LINK||e===OC.Share.SHARE_TYPE_EMAIL?n=!0:(e===OC.Share.SHARE_TYPE_USER||e===OC.Share.SHARE_TYPE_GROUP||e===OC.Share.SHARE_TYPE_REMOTE||e===OC.Share.SHARE_TYPE_CIRCLE||e===OC.Share.SHARE_TYPE_ROOM)&&(i=!0)})),OCA.Sharing.Util._updateFileActionIcon(t,i,n)}}))})),e.$el.on("changeDirectory",(function(){OCA.Sharing.sharesLoaded=!1})),a.registerAction({name:"Share",displayName:function(e){if(e&&e.$file){var a=parseInt(e.$file.data("share-types"),10),r=e.$file.data("share-owner-id");if(a>=0||r)return t("files_sharing","Shared")}return t("files_sharing","Share")},altText:t("files_sharing","Share"),mime:"all",order:-150,permissions:OC.PERMISSION_ALL,iconClass:function(e,t){var a=parseInt(t.$file.data("share-types"),10);return a===OC.Share.SHARE_TYPE_EMAIL||a===OC.Share.SHARE_TYPE_LINK?"icon-public":"icon-shared"},icon:function(e,t){var a=t.$file.data("share-owner-id");if(a)return OC.generateUrl("/avatar/".concat(a,"/32"))},type:OCA.Files.FileActions.TYPE_INLINE,actionHandler:function(t,a){var r=parseInt(a.$file.data("share-permissions"),10);(isNaN(r)||r>0)&&e.showDetailsView(t,"sharing")},render:function(e,t,r){return 0!=(parseInt(r.$file.data("permissions"),10)&OC.PERMISSION_SHARE)||r.$file.attr("data-share-owner")?a._defaultRenderAction.call(a,e,t,r):null}});var s=new OCA.Sharing.ShareBreadCrumbView;e.registerBreadCrumbDetailView(s)}},_updateFileListDataAttributes:function(e,t,a){if("files"!==e.id)if(_.pluck(a.get("shares"),"share_with_displayname").length){var r=_.mapObject(a.get("shares"),(function(e){return{shareWith:e.share_with,shareWithDisplayName:e.share_with_displayname}}));t.attr("data-share-recipient-data",JSON.stringify(r))}else t.removeAttr("data-share-recipient-data")},_updateFileActionIcon:function(e,t,a){return!!(t||a||e.attr("data-share-recipient-data")||e.attr("data-share-owner"))&&(OCA.Sharing.Util._markFileAsShared(e,!0,a),!0)},_markFileAsShared:function(e,a,r){var n,i,s,o,l=e.find('.fileactions .action[data-action="Share"]'),d=e.data("type"),c=l.find(".icon"),h=e.attr("data-share-owner-id"),u=e.attr("data-share-owner"),p=e.attr("data-mounttype"),f="icon-shared";l.removeClass("shared-style"),"dir"===d&&(a||r||h)?(o=void 0!==p&&"shared-root"!==p&&"shared"!==p?OC.MimeType.getIconUrl("dir-"+p):r?OC.MimeType.getIconUrl("dir-public"):OC.MimeType.getIconUrl("dir-shared"),e.find(".filename .thumbnail").css("background-image","url("+o+")"),e.attr("data-icon",o)):"dir"===d&&("true"===e.attr("data-e2eencrypted")?(o=OC.MimeType.getIconUrl("dir-encrypted"),e.attr("data-icon",o)):p&&0===p.indexOf("external")?(o=OC.MimeType.getIconUrl("dir-external"),e.attr("data-icon",o)):(o=OC.MimeType.getIconUrl("dir"),e.removeAttr("data-icon")),e.find(".filename .thumbnail").css("background-image","url("+o+")")),a||h?(i=e.data("share-recipient-data"),l.addClass("shared-style"),s="<span>"+t("files_sharing","Shared")+"</span>",h?(n=t("files_sharing","Shared by"),s=OCA.Sharing.Util._formatRemoteShare(h,u,n)):i&&(s=OCA.Sharing.Util._formatShareList(i)),l.html(s).prepend(c),(h||i)&&(l.find(".avatar").each((function(){$(this).avatar($(this).data("username"),32)})),l.find("span[title]").tooltip({placement:"top"}))):l.html('<span class="hidden-visually">'+t("files_sharing","Shared")+"</span>").prepend(c),r&&(f="icon-public"),c.removeClass("icon-shared icon-public").addClass(f)},_formatRemoteShare:function(e,t,a){var r=OCA.Sharing.Util._REMOTE_OWNER_REGEXP.exec(e);if(console.error(r),!r||!r[7])return'<span class="avatar" data-username="'+i()(e)+'" title="'+a+" "+i()(t)+'"></span><span class="hidden-visually">'+a+" "+i()(t)+"</span> ";var n=r[2],s=r[4],o=r[5],l=r[6],d=r[8]?r[7]:"",c=a+" "+n;s&&(c+="@"+s),o&&(c+="@"+o.replace(l,"")+d);var h='<span class="remoteAddress" title="'+i()(c)+'">';return h+='<span class="username">'+i()(n)+"</span>",s&&(h+='<span class="userDomain">@'+i()(s)+"</span>"),h+="</span> "},_formatShareList:function(e){var a=this;return(e=_.toArray(e)).sort((function(e,t){return e.shareWithDisplayName.localeCompare(t.shareWithDisplayName)})),$.map(e,(function(e){return a._formatRemoteShare(e.shareWith,e.shareWithDisplayName,t("files_sharing","Shared with"))}))},markFileAsShared:function(e,a,r){var n,i,s,o,l=e.find('.fileactions .action[data-action="Share"]'),d=e.data("type"),c=l.find(".icon"),h=e.attr("data-share-owner-id"),u=e.attr("data-share-owner"),p=e.attr("data-mounttype"),f="icon-shared";l.removeClass("shared-style"),"dir"===d&&(a||r||h)?(o=void 0!==p&&"shared-root"!==p&&"shared"!==p?OC.MimeType.getIconUrl("dir-"+p):r?OC.MimeType.getIconUrl("dir-public"):OC.MimeType.getIconUrl("dir-shared"),e.find(".filename .thumbnail").css("background-image","url("+o+")"),e.attr("data-icon",o)):"dir"===d&&("true"===e.attr("data-e2eencrypted")?(o=OC.MimeType.getIconUrl("dir-encrypted"),e.attr("data-icon",o)):p&&0===p.indexOf("external")?(o=OC.MimeType.getIconUrl("dir-external"),e.attr("data-icon",o)):(o=OC.MimeType.getIconUrl("dir"),e.removeAttr("data-icon")),e.find(".filename .thumbnail").css("background-image","url("+o+")")),a||h?(i=e.data("share-recipient-data"),l.addClass("shared-style"),s="<span>"+t("files_sharing","Shared")+"</span>",h?(n=t("files_sharing","Shared by"),s=this._formatRemoteShare(h,u,n)):i&&(s=this._formatShareList(i)),l.html(s).prepend(c),(h||i)&&(l.find(".avatar").each((function(){$(this).avatar($(this).data("username"),32)})),l.find("span[title]").tooltip({placement:"top"}))):l.html('<span class="hidden-visually">'+t("files_sharing","Shared")+"</span>").prepend(c),r&&(f="icon-public"),c.removeClass("icon-shared icon-public").addClass(f)},getSharePermissions:function(e){return e.sharePermissions}},OC.Plugins.register("OCA.Files.FileList",OCA.Sharing.Util);r(224),r(225),r(145);r.p=OC.linkTo("files_sharing","js/dist/"),r.nc=btoa(OC.requestToken),window.OCA.Sharing=OCA.Sharing},45:function(e,t,a){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var a=function(e,t){var a=e[1]||"",r=e[3];if(!r)return a;if(t&&"function"==typeof btoa){var n=(s=r,o=btoa(unescape(encodeURIComponent(JSON.stringify(s)))),l="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(o),"/*# ".concat(l," */")),i=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[a].concat(i).concat([n]).join("\n")}var s,o,l;return[a].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(a,"}"):a})).join("")},t.i=function(e,a,r){"string"==typeof e&&(e=[[null,e,""]]);var n={};if(r)for(var i=0;i<this.length;i++){var s=this[i][0];null!=s&&(n[s]=!0)}for(var o=0;o<e.length;o++){var l=[].concat(e[o]);r&&n[l[0]]||(a&&(l[2]?l[2]="".concat(a," and ").concat(l[2]):l[2]=a),t.push(l))}},t}},49:function(e,t,a){"use strict";function r(e,t){for(var a=[],r={},n=0;n<t.length;n++){var i=t[n],s=i[0],o={id:e+":"+n,css:i[1],media:i[2],sourceMap:i[3]};r[s]?r[s].parts.push(o):a.push(r[s]={id:s,parts:[o]})}return a}a.r(t),a.d(t,"default",(function(){return p}));var n="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!n)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var i={},s=n&&(document.head||document.getElementsByTagName("head")[0]),o=null,l=0,d=!1,c=function(){},h=null,u="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function p(e,t,a,n){d=a,h=n||{};var s=r(e,t);return f(s),function(t){for(var a=[],n=0;n<s.length;n++){var o=s[n];(l=i[o.id]).refs--,a.push(l)}t?f(s=r(e,t)):s=[];for(n=0;n<a.length;n++){var l;if(0===(l=a[n]).refs){for(var d=0;d<l.parts.length;d++)l.parts[d]();delete i[l.id]}}}}function f(e){for(var t=0;t<e.length;t++){var a=e[t],r=i[a.id];if(r){r.refs++;for(var n=0;n<r.parts.length;n++)r.parts[n](a.parts[n]);for(;n<a.parts.length;n++)r.parts.push(C(a.parts[n]));r.parts.length>a.parts.length&&(r.parts.length=a.parts.length)}else{var s=[];for(n=0;n<a.parts.length;n++)s.push(C(a.parts[n]));i[a.id]={id:a.id,refs:1,parts:s}}}}function m(){var e=document.createElement("style");return e.type="text/css",s.appendChild(e),e}function C(e){var t,a,r=document.querySelector('style[data-vue-ssr-id~="'+e.id+'"]');if(r){if(d)return c;r.parentNode.removeChild(r)}if(u){var n=l++;r=o||(o=m()),t=_.bind(null,r,n,!1),a=_.bind(null,r,n,!0)}else r=m(),t=v.bind(null,r),a=function(){r.parentNode.removeChild(r)};return t(e),function(r){if(r){if(r.css===e.css&&r.media===e.media&&r.sourceMap===e.sourceMap)return;t(e=r)}else a()}}var O,g=(O=[],function(e,t){return O[e]=t,O.filter(Boolean).join("\n")});function _(e,t,a,r){var n=a?"":r.css;if(e.styleSheet)e.styleSheet.cssText=g(t,n);else{var i=document.createTextNode(n),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(i,s[t]):e.appendChild(i)}}function v(e,t){var a=t.css,r=t.media,n=t.sourceMap;if(r&&e.setAttribute("media",r),h.ssrId&&e.setAttribute("data-vue-ssr-id",t.id),n&&(a+="\n/*# sourceURL="+n.sources[0]+" */",a+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */"),e.styleSheet)e.styleSheet.cssText=a;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(a))}}},73:function(e,t,a){"use strict";var r=/["'&<>]/;e.exports=function(e){var t,a=""+e,n=r.exec(a);if(!n)return a;var i="",s=0,o=0;for(s=n.index;s<a.length;s++){switch(a.charCodeAt(s)){case 34:t="&quot;";break;case 38:t="&amp;";break;case 39:t="&#39;";break;case 60:t="&lt;";break;case 62:t="&gt;";break;default:continue}o!==s&&(i+=a.substring(o,s)),o=s+1,i+=t}return o!==s?i+a.substring(o,s):i}}});
 //# sourceMappingURL=additionalScripts.js.map
\ No newline at end of file
index dc8e90ac1d5e24db116210e09fb2f12f743ca4f2..31a88e626cee56060e43f9600cd4a537fe55cfde 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/collaborationresourceshandler.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?fbff","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/additionalScripts.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/escape-html/index.js"],"names":["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","__webpack_public_path__","OC","linkTo","__webpack_nonce__","btoa","requestToken","window","OCP","Collaboration","registerType","action","Promise","resolve","reject","dialogs","filepicker","f","Files","getClient","getFileInfo","then","status","fileInfo","id","fail","Error","FILEPICKER_TYPE_CHOOSE","allowDirectoryChooser","typeString","typeIconClass","BreadCrumbView","Backbone","View","extend","tagName","events","click","_dirInfo","undefined","render","data","this","dirInfo","path","$el","removeClass","hide","isShared","shareTypes","length","addClass","indexOf","Share","SHARE_TYPE_LINK","show","delegateEvents","_onClick","e","preventDefault","fileInfoModel","OCA","FileInfoModel","self","on","attributes","Sidebar","open","setActiveTab","Sharing","ShareBreadCrumbView","content","default","locals","add","___CSS_LOADER_API_IMPORT___","push","_","Client","PROPERTY_SHARE_TYPES","NS_OWNCLOUD","PROPERTY_OWNER_ID","PROPERTY_OWNER_DISPLAY_NAME","Util","_REMOTE_OWNER_REGEXP","RegExp","attach","fileList","fileActions","oldCreateRow","_createRow","fileData","tr","apply","arguments","sharePermissions","getSharePermissions","permissions","actions","all","Comment","Details","Goto","attr","shareOwner","shareOwnerId","mountType","PERMISSION_UPDATE","recipientData","isEmpty","JSON","stringify","join","oldElementToFile","elementToFile","split","expirationTimestamp","parseInt","shares","expiration","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","propStat","properties","permissionsProp","PROPERTY_PERMISSIONS","shareTypesProp","chain","filter","xmlvalue","namespaceURI","nodeName","map","textContent","text","ev","$files","each","file","$tr","$","hasLink","hasShares","shareType","SHARE_TYPE_EMAIL","SHARE_TYPE_USER","SHARE_TYPE_GROUP","SHARE_TYPE_REMOTE","SHARE_TYPE_CIRCLE","SHARE_TYPE_ROOM","_updateFileActionIcon","sharesLoaded","registerAction","displayName","context","$file","altText","mime","order","PERMISSION_ALL","iconClass","fileName","icon","generateUrl","type","FileActions","TYPE_INLINE","actionHandler","isNaN","showDetailsView","actionSpec","isDefault","PERMISSION_SHARE","_defaultRenderAction","breadCrumbSharingDetailView","registerBreadCrumbDetailView","_updateFileListDataAttributes","shareModel","pluck","mapObject","share","shareWith","share_with","shareWithDisplayName","share_with_displayname","removeAttr","hasUserShares","hasLinkShares","_markFileAsShared","message","recipients","avatars","shareFolderIcon","find","ownerId","owner","MimeType","getIconUrl","css","_formatRemoteShare","_formatShareList","html","prepend","avatar","tooltip","placement","parts","exec","console","error","escapeHTML","userName","userDomain","server","protocol","serverPath","replace","_parent","toArray","sort","a","b","localeCompare","recipient","markFileAsShared","Plugins","register","useSourceMap","list","toString","item","cssMapping","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","concat","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","_i","listToStyles","parentId","styles","newStyles","part","media","hasDocument","document","DEBUG","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","matchHtmlRegExp","string","escape","str","match","lastIndex","charCodeAt","substring"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,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,OAIjBlC,EAAoBA,EAAoBmC,EAAI,K,sBCjFrDC,IAA0BC,GAAGC,OAAO,gBAAiB,YAErDC,KAAoBC,KAAKH,GAAGI,cAE5BC,OAAOC,IAAIC,cAAcC,aAAa,OAAQ,CAC7CC,OAAQ,WACP,OAAO,IAAIC,SAAQ,SAACC,EAASC,GAC5BZ,GAAGa,QAAQC,WAAW7B,EAAE,gBAAiB,mBAAmB,SAAS8B,GACrDf,GAAGgB,MAAMC,YACjBC,YAAYH,GAAGI,MAAK,SAACC,EAAQC,GACnCV,EAAQU,EAASC,OACfC,MAAK,WACPX,EAAO,IAAIY,MAAM,8BAEhB,EAAO,MAAM,EAAOxB,GAAGa,QAAQY,uBAAwB,GAAI,CAAEC,uBAAuB,QAGzFC,WAAY1C,EAAE,gBAAiB,kBAC/B2C,cAAe,qB,mBCGhB,WACC,aAEA,IAAMC,EAAiB7B,GAAG8B,SAASC,KAAKC,OAAO,CAC9CC,QAAS,OACTC,OAAQ,CACPC,MAAO,YAERC,cAAUC,EAEVC,OAP8C,SAOvCC,GAGN,GAFAC,KAAKJ,SAAWG,EAAKE,SAAW,KAEV,OAAlBD,KAAKJ,UAA6C,MAAvBI,KAAKJ,SAASM,MAAuC,KAAvBF,KAAKJ,SAAS9D,KAgB1EkE,KAAKG,IAAIC,YAAY,kCACrBJ,KAAKG,IAAIE,WAjB+E,CACxF,IAAMC,EAAWP,EAAKE,SAAWF,EAAKE,QAAQM,YAAcR,EAAKE,QAAQM,WAAWC,OAAS,EAC7FR,KAAKG,IAAIC,YAAY,kCACjBE,GACHN,KAAKG,IAAIM,SAAS,WACiD,IAA/DV,EAAKE,QAAQM,WAAWG,QAAQlD,GAAGmD,MAAMC,iBAC5CZ,KAAKG,IAAIM,SAAS,eAElBT,KAAKG,IAAIM,SAAS,gBAGnBT,KAAKG,IAAIM,SAAS,eAEnBT,KAAKG,IAAIU,OACTb,KAAKc,iBAMN,OAAOd,MAERe,SAhC8C,SAgCrCC,GACRA,EAAEC,iBAEF,IAAMC,EAAgB,IAAIC,IAAI3C,MAAM4C,cAAcpB,KAAKJ,UACjDyB,EAAOrB,KACbkB,EAAcI,GAAG,UAAU,WAC1BD,EAAKvB,OAAO,CACXG,QAASoB,EAAKzB,cAIhB,IAAMM,EAAOgB,EAAcK,WAAWrB,KAAO,IAAMgB,EAAcK,WAAWzF,KAC5EqF,IAAI3C,MAAMgD,QAAQC,KAAKvB,GACvBiB,IAAI3C,MAAMgD,QAAQE,aAAa,cAIjCP,IAAIQ,QAAQC,oBAAsBvC,EApDnC,I,oBCnBA,IAAIwC,EAAU,EAAQ,KACnBA,EAAQlF,aAAYkF,EAAUA,EAAQC,SACnB,iBAAZD,IAAsBA,EAAU,CAAC,CAACvG,EAAOC,EAAIsG,EAAS,MAC7DA,EAAQE,SAAQzG,EAAOD,QAAUwG,EAAQE,SAG/BC,EADH,EAAQ,IAAqEF,SACtE,WAAYD,GAAS,EAAM,K,qBCP5CxG,EADkC,EAAQ,GAChC4G,EAA4B,IAE9BC,KAAK,CAAC5G,EAAOC,EAAI,4MAA6M,KAEtOD,EAAOD,QAAUA,G,6DCShB8G,EAAE3C,OAAOhC,GAAGgB,MAAM4D,OAAQ,CACzBC,qBAAsB,IAAM7E,GAAGgB,MAAM4D,OAAOE,YAAc,eAC1DC,kBAAmB,IAAM/E,GAAGgB,MAAM4D,OAAOE,YAAc,YACvDE,4BAA6B,IAAMhF,GAAGgB,MAAM4D,OAAOE,YAAc,wBAG7DnB,IAAIQ,UACRR,IAAIQ,QAAU,IAMfR,IAAIQ,QAAQc,KAAO,CAQlBC,qBAAsB,IAAIC,OAAO,gEAUjCC,OAAQ,SAASC,GAEhB,GAAKrF,GAAGmD,OAGY,aAAhBkC,EAAS/D,IAAqC,iBAAhB+D,EAAS/D,GAA3C,CAGA,IAAIgE,EAAcD,EAASC,YACvBC,EAAeF,EAASG,WAC5BH,EAASG,WAAa,SAASC,GAE9B,IAAIC,EAAKH,EAAaI,MAAMnD,KAAMoD,WAC9BC,EAAmBlC,IAAIQ,QAAQc,KAAKa,oBAAoBL,GAuB5D,OArB6B,IAAzBA,EAASM,qBAELT,EAAYU,QAAQC,IAAIC,eACxBZ,EAAYU,QAAQC,IAAIE,eACxBb,EAAYU,QAAQC,IAAIG,MAEhCV,EAAGW,KAAK,yBAA0BR,GAC9BJ,EAASa,aACZZ,EAAGW,KAAK,mBAAoBZ,EAASa,YACrCZ,EAAGW,KAAK,sBAAuBZ,EAASc,cAEb,gBAAvBd,EAASe,WACZd,EAAGW,KAAK,mBAAoBZ,EAASM,YAAc/F,GAAGyG,oBAGpDhB,EAASiB,gBAAkB/B,EAAEgC,QAAQlB,EAASiB,gBACjDhB,EAAGW,KAAK,4BAA6BO,KAAKC,UAAUpB,EAASiB,gBAE1DjB,EAAS1C,YACZ2C,EAAGW,KAAK,mBAAoBZ,EAAS1C,WAAW+D,KAAK,MAE/CpB,GAGR,IAAIqB,EAAmB1B,EAAS2B,cAChC3B,EAAS2B,cAAgB,SAASrE,GACjC,IAAItB,EAAW0F,EAAiBpB,MAAMnD,KAAMoD,WAS5C,GARAvE,EAASwE,iBAAmBlD,EAAI0D,KAAK,gCAA6BhE,EAClEhB,EAASiF,WAAa3D,EAAI0D,KAAK,0BAAuBhE,EACtDhB,EAASkF,aAAe5D,EAAI0D,KAAK,6BAA0BhE,EAEvDM,EAAI0D,KAAK,sBACZhF,EAAS0B,WAAaJ,EAAI0D,KAAK,oBAAoBY,MAAM,MAGtDtE,EAAI0D,KAAK,mBAAoB,CAChC,IAAIa,EAAsBC,SAASxE,EAAI0D,KAAK,oBAC5ChF,EAAS+F,OAAS,GAClB/F,EAAS+F,OAAO1C,KAAK,CAAE2C,WAAYH,IAGpC,OAAO7F,GAGR,IAAIiG,EAAyBjC,EAASkC,qBACtClC,EAASkC,qBAAuB,WAC/B,IAAIC,EAAQF,EAAuB3B,MAAMnD,KAAMoD,WAI/C,OAHA4B,EAAM9C,KAAK1E,GAAGgB,MAAM4D,OAAOG,mBAC3ByC,EAAM9C,KAAK1E,GAAGgB,MAAM4D,OAAOI,6BAC3BwC,EAAM9C,KAAK1E,GAAGgB,MAAM4D,OAAOC,sBACpB2C,GAGRnC,EAASoC,YAAYC,mBAAkB,SAASC,GAC/C,IAAIpF,EAAO,GACPiF,EAAQG,EAASC,SAAS,GAAGC,WAC7BC,EAAkBN,EAAMxH,GAAGgB,MAAM4D,OAAOmD,sBAExCD,GAAmBA,EAAgB5E,QAAQ,MAAQ,IACtDX,EAAK+D,WAAakB,EAAMxH,GAAGgB,MAAM4D,OAAOI,6BACxCzC,EAAKgE,aAAeiB,EAAMxH,GAAGgB,MAAM4D,OAAOG,oBAG3C,IAAIiD,EAAiBR,EAAMxH,GAAGgB,MAAM4D,OAAOC,sBAS3C,OARImD,IACHzF,EAAKQ,WAAa4B,EAAEsD,MAAMD,GAAgBE,QAAO,SAASC,GACzD,OAAQA,EAASC,eAAiBpI,GAAGgB,MAAM4D,OAAOE,aAAmD,eAApCqD,EAASE,SAASpB,MAAM,KAAK,MAC5FqB,KAAI,SAASH,GACf,OAAOhB,SAASgB,EAASI,aAAeJ,EAASK,KAAM,OACrDxJ,SAGGuD,KAIR8C,EAAS1C,IAAImB,GAAG,oBAAoB,SAAS2E,GAC5C,IAAIC,EAASD,EAAGC,OAEhB/D,EAAEgE,KAAKD,GAAQ,SAASE,GACvB,IAAIC,EAAMC,EAAEF,GACR7F,EAAa8F,EAAIxC,KAAK,qBAAuB,GAC7CC,EAAauC,EAAIxC,KAAK,oBAC1B,GAAItD,GAAcuD,EAAY,CAC7B,IAAIyC,GAAU,EACVC,GAAY,EAChBrE,EAAEgE,KAAK5F,EAAWkE,MAAM,MAAQ,IAAI,SAASgC,IAC5CA,EAAY9B,SAAS8B,EAAW,OACdjJ,GAAGmD,MAAMC,iBAEhB6F,IAAcjJ,GAAGmD,MAAM+F,iBADjCH,GAAU,GAGAE,IAAcjJ,GAAGmD,MAAMgG,iBAEvBF,IAAcjJ,GAAGmD,MAAMiG,kBAEvBH,IAAcjJ,GAAGmD,MAAMkG,mBAEvBJ,IAAcjJ,GAAGmD,MAAMmG,mBAEvBL,IAAcjJ,GAAGmD,MAAMoG,mBAPjCP,GAAY,MAWdrF,IAAIQ,QAAQc,KAAKuE,sBAAsBX,EAAKG,EAAWD,UAK1D1D,EAAS1C,IAAImB,GAAG,mBAAmB,WAClCH,IAAIQ,QAAQsF,cAAe,KAG5BnE,EAAYoE,eAAe,CAC1BpL,KAAM,QACNqL,YAAa,SAASC,GACrB,GAAIA,GAAWA,EAAQC,MAAO,CAC7B,IAAIZ,EAAY9B,SAASyC,EAAQC,MAAMtH,KAAK,eAAgB,IACxD+D,EAAasD,EAAQC,MAAMtH,KAAK,kBACpC,GAAI0G,GAAa,GAAK3C,EACrB,OAAOrH,EAAE,gBAAiB,UAG5B,OAAOA,EAAE,gBAAiB,UAE3B6K,QAAS7K,EAAE,gBAAiB,SAC5B8K,KAAM,MACNC,OAAQ,IACRjE,YAAa/F,GAAGiK,eAChBC,UAAW,SAASC,EAAUP,GAC7B,IAAIX,EAAY9B,SAASyC,EAAQC,MAAMtH,KAAK,eAAgB,IAC5D,OAAI0G,IAAcjJ,GAAGmD,MAAM+F,kBACvBD,IAAcjJ,GAAGmD,MAAMC,gBACnB,cAED,eAERgH,KAAM,SAASD,EAAUP,GACxB,IAAItD,EAAasD,EAAQC,MAAMtH,KAAK,kBACpC,GAAI+D,EACH,OAAOtG,GAAGqK,YAAH,kBAA0B/D,EAA1B,SAGTgE,KAAM3G,IAAI3C,MAAMuJ,YAAYC,YAC5BC,cAAe,SAASN,EAAUP,GAEjC,IAAI7D,EAAcoB,SAASyC,EAAQC,MAAMtH,KAAK,qBAAsB,KAChEmI,MAAM3E,IAAgBA,EAAc,IACvCV,EAASsF,gBAAgBR,EAAU,YAGrC7H,OAAQ,SAASsI,EAAYC,EAAWjB,GAGvC,OAA4C,IAF1BzC,SAASyC,EAAQC,MAAMtH,KAAK,eAAgB,IAE3CvC,GAAG8K,mBAA2BlB,EAAQC,MAAMxD,KAAK,oBAC5Df,EAAYyF,qBAAqB7M,KAAKoH,EAAasF,EAAYC,EAAWjB,GAG3E,QAKT,IAAIoB,EAA8B,IAAIrH,IAAIQ,QAAQC,oBAClDiB,EAAS4F,6BAA6BD,KAMvCE,8BAA+B,SAAS7F,EAAUwD,EAAKsC,GAGtD,GAAoB,UAAhB9F,EAAS/D,GAKb,GAFiBqD,EAAEyG,MAAMD,EAAWvM,IAAI,UAAW,0BAEpCoE,OAAQ,CACtB,IAAI0D,EAAgB/B,EAAE0G,UAAUF,EAAWvM,IAAI,WAAW,SAAS0M,GAClE,MAAO,CAAEC,UAAWD,EAAME,WAAYC,qBAAsBH,EAAMI,2BAEnE7C,EAAIxC,KAAK,4BAA6BO,KAAKC,UAAUH,SAErDmC,EAAI8C,WAAW,8BAajBnC,sBAAuB,SAASX,EAAK+C,EAAeC,GAGnD,SAAID,GAAiBC,GAAiBhD,EAAIxC,KAAK,8BAAgCwC,EAAIxC,KAAK,uBACvF1C,IAAIQ,QAAQc,KAAK6G,kBAAkBjD,GAAK,EAAMgD,IACvC,IAaTC,kBAAmB,SAASjD,EAAKG,EAAWD,GAC3C,IAGIgD,EAASC,EAAYC,EAIrBC,EAPAzL,EAASoI,EAAIsD,KAAK,6CAClB7B,EAAOzB,EAAItG,KAAK,QAChB6H,EAAO3J,EAAO0L,KAAK,SAEnBC,EAAUvD,EAAIxC,KAAK,uBACnBgG,EAAQxD,EAAIxC,KAAK,oBACjBG,EAAYqC,EAAIxC,KAAK,kBAErB6D,EAAY,cAChBzJ,EAAOmC,YAAY,gBAEN,QAAT0H,IAAmBtB,GAAaD,GAAWqD,IAE7CF,OADwB,IAAd1F,GAA2C,gBAAdA,GAA6C,WAAdA,EACpDxG,GAAGsM,SAASC,WAAW,OAAS/F,GACxCuC,EACQ/I,GAAGsM,SAASC,WAAW,cAEvBvM,GAAGsM,SAASC,WAAW,cAE1C1D,EAAIsD,KAAK,wBAAwBK,IAAI,mBAAoB,OAASN,EAAkB,KACpFrD,EAAIxC,KAAK,YAAa6F,IACH,QAAT5B,IAIU,SAHFzB,EAAIxC,KAAK,sBAI1B6F,EAAkBlM,GAAGsM,SAASC,WAAW,iBACzC1D,EAAIxC,KAAK,YAAa6F,IACZ1F,GAA+C,IAAlCA,EAAUtD,QAAQ,aACzCgJ,EAAkBlM,GAAGsM,SAASC,WAAW,gBACzC1D,EAAIxC,KAAK,YAAa6F,KAEtBA,EAAkBlM,GAAGsM,SAASC,WAAW,OAEzC1D,EAAI8C,WAAW,cAEhB9C,EAAIsD,KAAK,wBAAwBK,IAAI,mBAAoB,OAASN,EAAkB,MAGjFlD,GAAaoD,GAChBJ,EAAanD,EAAItG,KAAK,wBACtB9B,EAAOwC,SAAS,gBAEhBgJ,EAAU,SAAWhN,EAAE,gBAAiB,UAAY,UAEhDmN,GACHL,EAAU9M,EAAE,gBAAiB,aAC7BgN,EAAUtI,IAAIQ,QAAQc,KAAKwH,mBAAmBL,EAASC,EAAON,IACpDC,IACVC,EAAUtI,IAAIQ,QAAQc,KAAKyH,iBAAiBV,IAE7CvL,EAAOkM,KAAKV,GAASW,QAAQxC,IAEzBgC,GAAWJ,KACMvL,EAAO0L,KAAK,WAClBxD,MAAK,WAClBG,EAAEtG,MAAMqK,OAAO/D,EAAEtG,MAAMD,KAAK,YAAa,OAE1C9B,EAAO0L,KAAK,eAAeW,QAAQ,CAAEC,UAAW,UAGjDtM,EAAOkM,KAAK,iCAAmC1N,EAAE,gBAAiB,UAAY,WAAW2N,QAAQxC,GAE9FrB,IACHmB,EAAY,eAEbE,EAAKxH,YAAY,2BAA2BK,SAASiH,IAUtDuC,mBAAoB,SAASlB,EAAWE,EAAsBM,GAC7D,IAAIiB,EAAQrJ,IAAIQ,QAAQc,KAAKC,qBAAqB+H,KAAK1B,GAEvD,GADA2B,QAAQC,MAAMH,IACTA,IAAUA,EAAM,GAIpB,MAFa,uCAAyCI,IAAW7B,GAAa,YAAcQ,EAAU,IAAMqB,IAAW3B,GAEhHoB,0CADyCd,EAAU,IAAMqB,IAAW3B,GAAwB,WAIpG,IAAI4B,EAAWL,EAAM,GACjBM,EAAaN,EAAM,GACnBO,EAASP,EAAM,GACfQ,EAAWR,EAAM,GACjBS,EAAaT,EAAM,GAAKA,EAAM,GAAK,GAEnCF,EAAUf,EAAU,IAAMsB,EAC1BC,IACHR,GAAW,IAAMQ,GAEdC,IACHT,GAAW,IAAMS,EAAOG,QAAQF,EAAU,IAAMC,GAGjD,IAAId,EAAO,sCAAwCS,IAAWN,GAAW,KAMzE,OALAH,GAAQ,0BAA4BS,IAAWC,GAAY,UACvDC,IACHX,GAAQ,6BAA+BS,IAAWE,GAAc,WAEjEX,GAAQ,YAUTD,iBAAkB,SAASV,GAC1B,IAAI2B,EAAUnL,KAKd,OAJAwJ,EAAarH,EAAEiJ,QAAQ5B,IACZ6B,MAAK,SAASC,EAAGC,GAC3B,OAAOD,EAAErC,qBAAqBuC,cAAcD,EAAEtC,yBAExC3C,EAAER,IAAI0D,GAAY,SAASiC,GACjC,OAAON,EAAQlB,mBAAmBwB,EAAU1C,UAAW0C,EAAUxC,qBAAsBxM,EAAE,gBAAiB,oBAY5GiP,iBAAkB,SAASrF,EAAKG,EAAWD,GAC1C,IAGIgD,EAASC,EAAYC,EAIrBC,EAPAzL,EAASoI,EAAIsD,KAAK,6CAClB7B,EAAOzB,EAAItG,KAAK,QAChB6H,EAAO3J,EAAO0L,KAAK,SAEnBC,EAAUvD,EAAIxC,KAAK,uBACnBgG,EAAQxD,EAAIxC,KAAK,oBACjBG,EAAYqC,EAAIxC,KAAK,kBAErB6D,EAAY,cAChBzJ,EAAOmC,YAAY,gBAEN,QAAT0H,IAAmBtB,GAAaD,GAAWqD,IAE7CF,OADwB,IAAd1F,GAA2C,gBAAdA,GAA6C,WAAdA,EACpDxG,GAAGsM,SAASC,WAAW,OAAS/F,GACxCuC,EACQ/I,GAAGsM,SAASC,WAAW,cAEvBvM,GAAGsM,SAASC,WAAW,cAE1C1D,EAAIsD,KAAK,wBAAwBK,IAAI,mBAAoB,OAASN,EAAkB,KACpFrD,EAAIxC,KAAK,YAAa6F,IACH,QAAT5B,IAIU,SAHFzB,EAAIxC,KAAK,sBAI1B6F,EAAkBlM,GAAGsM,SAASC,WAAW,iBACzC1D,EAAIxC,KAAK,YAAa6F,IACZ1F,GAA+C,IAAlCA,EAAUtD,QAAQ,aACzCgJ,EAAkBlM,GAAGsM,SAASC,WAAW,gBACzC1D,EAAIxC,KAAK,YAAa6F,KAEtBA,EAAkBlM,GAAGsM,SAASC,WAAW,OAEzC1D,EAAI8C,WAAW,cAEhB9C,EAAIsD,KAAK,wBAAwBK,IAAI,mBAAoB,OAASN,EAAkB,MAGjFlD,GAAaoD,GAChBJ,EAAanD,EAAItG,KAAK,wBACtB9B,EAAOwC,SAAS,gBAEhBgJ,EAAU,SAAWhN,EAAE,gBAAiB,UAAY,UAEhDmN,GACHL,EAAU9M,EAAE,gBAAiB,aAC7BgN,EAAUzJ,KAAKiK,mBAAmBL,EAASC,EAAON,IACxCC,IACVC,EAAUzJ,KAAKkK,iBAAiBV,IAEjCvL,EAAOkM,KAAKV,GAASW,QAAQxC,IAEzBgC,GAAWJ,KACMvL,EAAO0L,KAAK,WAClBxD,MAAK,WAClBG,EAAEtG,MAAMqK,OAAO/D,EAAEtG,MAAMD,KAAK,YAAa,OAE1C9B,EAAO0L,KAAK,eAAeW,QAAQ,CAAEC,UAAW,UAGjDtM,EAAOkM,KAAK,iCAAmC1N,EAAE,gBAAiB,UAAY,WAAW2N,QAAQxC,GAE9FrB,IACHmB,EAAY,eAEbE,EAAKxH,YAAY,2BAA2BK,SAASiH,IAOtDpE,oBAAqB,SAASL,GAC7B,OAAOA,EAASI,mBAKnB7F,GAAGmO,QAAQC,SAAS,qBAAsBzK,IAAIQ,QAAQc,M,qBCnetDlF,IAA0BC,GAAGC,OAAO,gBAAiB,YAErDC,KAAoBC,KAAKH,GAAGI,cAE5BC,OAAOsD,IAAIQ,QAAUR,IAAIQ,S,gCCJzBrG,EAAOD,QAAU,SAAUwQ,GACzB,IAAIC,EAAO,GAuDX,OArDAA,EAAKC,SAAW,WACd,OAAO/L,KAAK8F,KAAI,SAAUkG,GACxB,IAAInK,EAsDV,SAAgCmK,EAAMH,GACpC,IAAIhK,EAAUmK,EAAK,IAAM,GAErBC,EAAaD,EAAK,GAEtB,IAAKC,EACH,OAAOpK,EAGT,GAAIgK,GAAgC,mBAATlO,KAAqB,CAC9C,IAAIuO,GAWWC,EAXeF,EAa5BG,EAASzO,KAAK0O,SAASC,mBAAmBlI,KAAKC,UAAU8H,MACzDpM,EAAO,+DAA+DwM,OAAOH,GAC1E,OAAOG,OAAOxM,EAAM,QAdrByM,EAAaP,EAAWQ,QAAQ3G,KAAI,SAAU4G,GAChD,MAAO,iBAAiBH,OAAON,EAAWU,YAAc,IAAIJ,OAAOG,EAAQ,UAE7E,MAAO,CAAC7K,GAAS0K,OAAOC,GAAYD,OAAO,CAACL,IAAgB5H,KAAK,MAOrE,IAAmB6H,EAEbC,EACArM,EAPJ,MAAO,CAAC8B,GAASyC,KAAK,MAvEJsI,CAAuBZ,EAAMH,GAE3C,OAAIG,EAAK,GACA,UAAUO,OAAOP,EAAK,GAAI,MAAMO,OAAO1K,EAAS,KAGlDA,KACNyC,KAAK,KAKVwH,EAAKvQ,EAAI,SAAUE,EAASoR,EAAYC,GACf,iBAAZrR,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAIsR,EAAyB,GAE7B,GAAID,EACF,IAAK,IAAIvR,EAAI,EAAGA,EAAIyE,KAAKQ,OAAQjF,IAAK,CAEpC,IAAIuD,EAAKkB,KAAKzE,GAAG,GAEP,MAANuD,IACFiO,EAAuBjO,IAAM,GAKnC,IAAK,IAAIkO,EAAK,EAAGA,EAAKvR,EAAQ+E,OAAQwM,IAAM,CAC1C,IAAIhB,EAAO,GAAGO,OAAO9Q,EAAQuR,IAEzBF,GAAUC,EAAuBf,EAAK,MAKtCa,IACGb,EAAK,GAGRA,EAAK,GAAK,GAAGO,OAAOM,EAAY,SAASN,OAAOP,EAAK,IAFrDA,EAAK,GAAKa,GAMdf,EAAK5J,KAAK8J,MAIPF,I,gCC5DM,SAASmB,EAAcC,EAAUpB,GAG9C,IAFA,IAAIqB,EAAS,GACTC,EAAY,GACP7R,EAAI,EAAGA,EAAIuQ,EAAKtL,OAAQjF,IAAK,CACpC,IAAIyQ,EAAOF,EAAKvQ,GACZuD,EAAKkN,EAAK,GAIVqB,EAAO,CACTvO,GAAIoO,EAAW,IAAM3R,EACrByO,IALQgC,EAAK,GAMbsB,MALUtB,EAAK,GAMfG,UALcH,EAAK,IAOhBoB,EAAUtO,GAGbsO,EAAUtO,GAAI0L,MAAMtI,KAAKmL,GAFzBF,EAAOjL,KAAKkL,EAAUtO,GAAM,CAAEA,GAAIA,EAAI0L,MAAO,CAAC6C,KAKlD,OAAOF,E,+CCjBT,IAAII,EAAkC,oBAAbC,SAEzB,GAAqB,oBAAVC,OAAyBA,QAC7BF,EACH,MAAM,IAAIvO,MACV,2JAkBJ,IAAI0O,EAAc,GAQdC,EAAOJ,IAAgBC,SAASG,MAAQH,SAASI,qBAAqB,QAAQ,IAC9EC,EAAmB,KACnBC,EAAmB,EACnBC,GAAe,EACfC,EAAO,aACPC,EAAU,KAKVC,EAA+B,oBAAdC,WAA6B,eAAeC,KAAKD,UAAUE,UAAUC,eAE3E,SAASC,EAAiBrB,EAAUpB,EAAM0C,EAAeC,GACtEV,EAAeS,EAEfP,EAAUQ,GAAY,GAEtB,IAAItB,EAASF,EAAaC,EAAUpB,GAGpC,OAFA4C,EAAevB,GAER,SAAiBwB,GAEtB,IADA,IAAIC,EAAY,GACPrT,EAAI,EAAGA,EAAI4R,EAAO3M,OAAQjF,IAAK,CACtC,IAAIyQ,EAAOmB,EAAO5R,IACdsT,EAAWnB,EAAY1B,EAAKlN,KACvBgQ,OACTF,EAAU1M,KAAK2M,GAEbF,EAEFD,EADAvB,EAASF,EAAaC,EAAUyB,IAGhCxB,EAAS,GAEX,IAAS5R,EAAI,EAAGA,EAAIqT,EAAUpO,OAAQjF,IAAK,CACzC,IAAIsT,EACJ,GAAsB,KADlBA,EAAWD,EAAUrT,IACZuT,KAAY,CACvB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASrE,MAAMhK,OAAQuO,IACzCF,EAASrE,MAAMuE,YAEVrB,EAAYmB,EAAS/P,OAMpC,SAAS4P,EAAgBvB,GACvB,IAAK,IAAI5R,EAAI,EAAGA,EAAI4R,EAAO3M,OAAQjF,IAAK,CACtC,IAAIyQ,EAAOmB,EAAO5R,GACdsT,EAAWnB,EAAY1B,EAAKlN,IAChC,GAAI+P,EAAU,CACZA,EAASC,OACT,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASrE,MAAMhK,OAAQuO,IACzCF,EAASrE,MAAMuE,GAAG/C,EAAKxB,MAAMuE,IAE/B,KAAOA,EAAI/C,EAAKxB,MAAMhK,OAAQuO,IAC5BF,EAASrE,MAAMtI,KAAK8M,EAAShD,EAAKxB,MAAMuE,KAEtCF,EAASrE,MAAMhK,OAASwL,EAAKxB,MAAMhK,SACrCqO,EAASrE,MAAMhK,OAASwL,EAAKxB,MAAMhK,YAEhC,CACL,IAAIgK,EAAQ,GACZ,IAASuE,EAAI,EAAGA,EAAI/C,EAAKxB,MAAMhK,OAAQuO,IACrCvE,EAAMtI,KAAK8M,EAAShD,EAAKxB,MAAMuE,KAEjCrB,EAAY1B,EAAKlN,IAAM,CAAEA,GAAIkN,EAAKlN,GAAIgQ,KAAM,EAAGtE,MAAOA,KAK5D,SAASyE,IACP,IAAIC,EAAe1B,SAAS2B,cAAc,SAG1C,OAFAD,EAAapH,KAAO,WACpB6F,EAAKyB,YAAYF,GACVA,EAGT,SAASF,EAAUK,GACjB,IAAIC,EAAQC,EACRL,EAAe1B,SAASgC,cAAc,2BAA8BH,EAAIvQ,GAAK,MAEjF,GAAIoQ,EAAc,CAChB,GAAInB,EAGF,OAAOC,EAOPkB,EAAaO,WAAWC,YAAYR,GAIxC,GAAIhB,EAAS,CAEX,IAAIyB,EAAa7B,IACjBoB,EAAerB,IAAqBA,EAAmBoB,KACvDK,EAASM,EAAoB7S,KAAK,KAAMmS,EAAcS,GAAY,GAClEJ,EAASK,EAAoB7S,KAAK,KAAMmS,EAAcS,GAAY,QAGlET,EAAeD,IACfK,EAASO,EAAW9S,KAAK,KAAMmS,GAC/BK,EAAS,WACPL,EAAaO,WAAWC,YAAYR,IAMxC,OAFAI,EAAOD,GAEA,SAAsBS,GAC3B,GAAIA,EAAQ,CACV,GAAIA,EAAO9F,MAAQqF,EAAIrF,KACnB8F,EAAOxC,QAAU+B,EAAI/B,OACrBwC,EAAO3D,YAAckD,EAAIlD,UAC3B,OAEFmD,EAAOD,EAAMS,QAEbP,KAKN,IACMQ,EADFC,GACED,EAAY,GAET,SAAUE,EAAOC,GAEtB,OADAH,EAAUE,GAASC,EACZH,EAAUrK,OAAOyK,SAAS7L,KAAK,QAI1C,SAASsL,EAAqBV,EAAce,EAAOV,EAAQF,GACzD,IAAIrF,EAAMuF,EAAS,GAAKF,EAAIrF,IAE5B,GAAIkF,EAAakB,WACflB,EAAakB,WAAWC,QAAUL,EAAYC,EAAOjG,OAChD,CACL,IAAIsG,EAAU9C,SAAS+C,eAAevG,GAClCwG,EAAatB,EAAasB,WAC1BA,EAAWP,IAAQf,EAAaQ,YAAYc,EAAWP,IACvDO,EAAWhQ,OACb0O,EAAauB,aAAaH,EAASE,EAAWP,IAE9Cf,EAAaE,YAAYkB,IAK/B,SAAST,EAAYX,EAAcG,GACjC,IAAIrF,EAAMqF,EAAIrF,IACVsD,EAAQ+B,EAAI/B,MACZnB,EAAYkD,EAAIlD,UAiBpB,GAfImB,GACF4B,EAAawB,aAAa,QAASpD,GAEjCW,EAAQ0C,OACVzB,EAAawB,aA7JF,kBA6JyBrB,EAAIvQ,IAGtCqN,IAGFnC,GAAO,mBAAqBmC,EAAUM,QAAQ,GAAK,MAEnDzC,GAAO,uDAAyDrM,KAAK0O,SAASC,mBAAmBlI,KAAKC,UAAU8H,MAAgB,OAG9H+C,EAAakB,WACflB,EAAakB,WAAWC,QAAUrG,MAC7B,CACL,KAAOkF,EAAa0B,YAClB1B,EAAaQ,YAAYR,EAAa0B,YAExC1B,EAAaE,YAAY5B,SAAS+C,eAAevG,O,gCC5MrD,IAAI6G,EAAkB,UAOtBvV,EAAOD,QAUP,SAAoByV,GAClB,IAOIC,EAPAC,EAAM,GAAKF,EACXG,EAAQJ,EAAgBpG,KAAKuG,GAEjC,IAAKC,EACH,OAAOD,EAIT,IAAI7G,EAAO,GACP8F,EAAQ,EACRiB,EAAY,EAEhB,IAAKjB,EAAQgB,EAAMhB,MAAOA,EAAQe,EAAIxQ,OAAQyP,IAAS,CACrD,OAAQe,EAAIG,WAAWlB,IACrB,KAAK,GACHc,EAAS,SACT,MACF,KAAK,GACHA,EAAS,QACT,MACF,KAAK,GACHA,EAAS,QACT,MACF,KAAK,GACHA,EAAS,OACT,MACF,KAAK,GACHA,EAAS,OACT,MACF,QACE,SAGAG,IAAcjB,IAChB9F,GAAQ6G,EAAII,UAAUF,EAAWjB,IAGnCiB,EAAYjB,EAAQ,EACpB9F,GAAQ4G,EAGV,OAAOG,IAAcjB,EACjB9F,EAAO6G,EAAII,UAAUF,EAAWjB,GAChC9F","file":"additionalScripts.js","sourcesContent":[" \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 = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 281);\n","// eslint-disable-next-line camelcase\n__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/')\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(OC.requestToken)\n\nwindow.OCP.Collaboration.registerType('file', {\n\taction: () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tOC.dialogs.filepicker(t('files_sharing', 'Link to a file'), function(f) {\n\t\t\t\tconst client = OC.Files.getClient()\n\t\t\t\tclient.getFileInfo(f).then((status, fileInfo) => {\n\t\t\t\t\tresolve(fileInfo.id)\n\t\t\t\t}).fail(() => {\n\t\t\t\t\treject(new Error('Cannot get fileinfo'))\n\t\t\t\t})\n\t\t\t}, false, null, false, OC.dialogs.FILEPICKER_TYPE_CHOOSE, '', { allowDirectoryChooser: true })\n\t\t})\n\t},\n\ttypeString: t('files_sharing', 'Link to a file'),\n\ttypeIconClass: 'icon-files-dark',\n})\n","/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\t'use strict'\n\n\tconst BreadCrumbView = OC.Backbone.View.extend({\n\t\ttagName: 'span',\n\t\tevents: {\n\t\t\tclick: '_onClick',\n\t\t},\n\t\t_dirInfo: undefined,\n\n\t\trender(data) {\n\t\t\tthis._dirInfo = data.dirInfo || null\n\n\t\t\tif (this._dirInfo !== null && (this._dirInfo.path !== '/' || this._dirInfo.name !== '')) {\n\t\t\t\tconst isShared = data.dirInfo && data.dirInfo.shareTypes && data.dirInfo.shareTypes.length > 0\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared')\n\t\t\t\tif (isShared) {\n\t\t\t\t\tthis.$el.addClass('shared')\n\t\t\t\t\tif (data.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) !== -1) {\n\t\t\t\t\t\tthis.$el.addClass('icon-public')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$el.addClass('icon-shared')\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$el.addClass('icon-shared')\n\t\t\t\t}\n\t\t\t\tthis.$el.show()\n\t\t\t\tthis.delegateEvents()\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared')\n\t\t\t\tthis.$el.hide()\n\t\t\t}\n\n\t\t\treturn this\n\t\t},\n\t\t_onClick(e) {\n\t\t\te.preventDefault()\n\n\t\t\tconst fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo)\n\t\t\tconst self = this\n\t\t\tfileInfoModel.on('change', function() {\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo,\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tconst path = fileInfoModel.attributes.path + '/' + fileInfoModel.attributes.name\n\t\t\tOCA.Files.Sidebar.open(path)\n\t\t\tOCA.Files.Sidebar.setActiveTab('sharing')\n\t\t},\n\t})\n\n\tOCA.Sharing.ShareBreadCrumbView = BreadCrumbView\n})()\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./sharebreadcrumb.scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"57e7eec1\", content, 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, \"div.crumb span.icon-shared,div.crumb span.icon-public{display:inline-block;cursor:pointer;opacity:0.2;margin-right:6px}div.crumb span.icon-shared.shared,div.crumb span.icon-public.shared{opacity:0.7}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/* eslint-disable */\n/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\nimport escapeHTML from 'escape-html'\n\n(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_SHARE_TYPES:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}share-types',\n\t\tPROPERTY_OWNER_ID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-id',\n\t\tPROPERTY_OWNER_DISPLAY_NAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-display-name'\n\t})\n\n\tif (!OCA.Sharing) {\n\t\tOCA.Sharing = {}\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.Sharing.Util = {\n\n\t\t/**\n\t\t * Regular expression for splitting parts of remote share owners:\n\t\t * \"user@example.com/\"\n\t\t * \"user@example.com/path/to/owncloud\"\n\t\t * \"user@anotherexample.com@example.com/path/to/owncloud\n\t\t */\n\t\t_REMOTE_OWNER_REGEXP: new RegExp('^(([^@]*)@(([^@^/\\\\s]*)@)?)((https://)?[^[\\\\s/]*)([/](.*))?$'),\n\n\t\t/**\n\t\t * Initialize the sharing plugin.\n\t\t *\n\t\t * Registers the \"Share\" file action and adds additional\n\t\t * DOM attributes for the sharing file info.\n\t\t *\n\t\t * @param {OCA.Files.FileList} fileList file list to be extended\n\t\t */\n\t\tattach: function(fileList) {\n\t\t\t// core sharing is disabled/not loaded\n\t\t\tif (!OC.Share) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (fileList.id === 'trashbin' || fileList.id === 'files.public') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar fileActions = fileList.fileActions\n\t\t\tvar oldCreateRow = fileList._createRow\n\t\t\tfileList._createRow = function(fileData) {\n\n\t\t\t\tvar tr = oldCreateRow.apply(this, arguments)\n\t\t\t\tvar sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData)\n\n\t\t\t\tif (fileData.permissions === 0) {\n\t\t\t\t\t// no permission, disabling sidebar\n\t\t\t\t\tdelete fileActions.actions.all.Comment\n\t\t\t\t\tdelete fileActions.actions.all.Details\n\t\t\t\t\tdelete fileActions.actions.all.Goto\n\t\t\t\t}\n\t\t\t\ttr.attr('data-share-permissions', sharePermissions)\n\t\t\t\tif (fileData.shareOwner) {\n\t\t\t\t\ttr.attr('data-share-owner', fileData.shareOwner)\n\t\t\t\t\ttr.attr('data-share-owner-id', fileData.shareOwnerId)\n\t\t\t\t\t// user should always be able to rename a mount point\n\t\t\t\t\tif (fileData.mountType === 'shared-root') {\n\t\t\t\t\t\ttr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (fileData.recipientData && !_.isEmpty(fileData.recipientData)) {\n\t\t\t\t\ttr.attr('data-share-recipient-data', JSON.stringify(fileData.recipientData))\n\t\t\t\t}\n\t\t\t\tif (fileData.shareTypes) {\n\t\t\t\t\ttr.attr('data-share-types', fileData.shareTypes.join(','))\n\t\t\t\t}\n\t\t\t\treturn tr\n\t\t\t}\n\n\t\t\tvar oldElementToFile = fileList.elementToFile\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments)\n\t\t\t\tfileInfo.sharePermissions = $el.attr('data-share-permissions') || undefined\n\t\t\t\tfileInfo.shareOwner = $el.attr('data-share-owner') || undefined\n\t\t\t\tfileInfo.shareOwnerId = $el.attr('data-share-owner-id') || undefined\n\n\t\t\t\tif ($el.attr('data-share-types')) {\n\t\t\t\t\tfileInfo.shareTypes = $el.attr('data-share-types').split(',')\n\t\t\t\t}\n\n\t\t\t\tif ($el.attr('data-expiration')) {\n\t\t\t\t\tvar expirationTimestamp = parseInt($el.attr('data-expiration'))\n\t\t\t\t\tfileInfo.shares = []\n\t\t\t\t\tfileInfo.shares.push({ expiration: expirationTimestamp })\n\t\t\t\t}\n\n\t\t\t\treturn fileInfo\n\t\t\t}\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments)\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_ID)\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME)\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_SHARE_TYPES)\n\t\t\t\treturn props\n\t\t\t}\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {}\n\t\t\t\tvar props = response.propStat[0].properties\n\t\t\t\tvar permissionsProp = props[OC.Files.Client.PROPERTY_PERMISSIONS]\n\n\t\t\t\tif (permissionsProp && permissionsProp.indexOf('S') >= 0) {\n\t\t\t\t\tdata.shareOwner = props[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME]\n\t\t\t\t\tdata.shareOwnerId = props[OC.Files.Client.PROPERTY_OWNER_ID]\n\t\t\t\t}\n\n\t\t\t\tvar shareTypesProp = props[OC.Files.Client.PROPERTY_SHARE_TYPES]\n\t\t\t\tif (shareTypesProp) {\n\t\t\t\t\tdata.shareTypes = _.chain(shareTypesProp).filter(function(xmlvalue) {\n\t\t\t\t\t\treturn (xmlvalue.namespaceURI === OC.Files.Client.NS_OWNCLOUD && xmlvalue.nodeName.split(':')[1] === 'share-type')\n\t\t\t\t\t}).map(function(xmlvalue) {\n\t\t\t\t\t\treturn parseInt(xmlvalue.textContent || xmlvalue.text, 10)\n\t\t\t\t\t}).value()\n\t\t\t\t}\n\n\t\t\t\treturn data\n\t\t\t})\n\n\t\t\t// use delegate to catch the case with multiple file lists\n\t\t\tfileList.$el.on('fileActionsReady', function(ev) {\n\t\t\t\tvar $files = ev.$files\n\n\t\t\t\t_.each($files, function(file) {\n\t\t\t\t\tvar $tr = $(file)\n\t\t\t\t\tvar shareTypes = $tr.attr('data-share-types') || ''\n\t\t\t\t\tvar shareOwner = $tr.attr('data-share-owner')\n\t\t\t\t\tif (shareTypes || shareOwner) {\n\t\t\t\t\t\tvar hasLink = false\n\t\t\t\t\t\tvar hasShares = false\n\t\t\t\t\t\t_.each(shareTypes.split(',') || [], function(shareType) {\n\t\t\t\t\t\t\tshareType = parseInt(shareType, 10)\n\t\t\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\t\t\thasLink = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\thasLink = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\tOCA.Sharing.Util._updateFileActionIcon($tr, hasShares, hasLink)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tfileList.$el.on('changeDirectory', function() {\n\t\t\t\tOCA.Sharing.sharesLoaded = false\n\t\t\t})\n\n\t\t\tfileActions.registerAction({\n\t\t\t\tname: 'Share',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\t\tif (shareType >= 0 || shareOwner) {\n\t\t\t\t\t\t\treturn t('files_sharing', 'Shared')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share')\n\t\t\t\t},\n\t\t\t\taltText: t('files_sharing', 'Share'),\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -150,\n\t\t\t\tpermissions: OC.PERMISSION_ALL,\n\t\t\t\ticonClass: function(fileName, context) {\n\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_EMAIL\n\t\t\t\t\t\t|| shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\treturn 'icon-public'\n\t\t\t\t\t}\n\t\t\t\t\treturn 'icon-shared'\n\t\t\t\t},\n\t\t\t\ticon: function(fileName, context) {\n\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\tif (shareOwner) {\n\t\t\t\t\t\treturn OC.generateUrl(`/avatar/${shareOwner}/32`)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\t// do not open sidebar if permission is set and equal to 0\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('share-permissions'), 10)\n\t\t\t\t\tif (isNaN(permissions) || permissions > 0) {\n\t\t\t\t\t\tfileList.showDetailsView(fileName, 'sharing')\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('permissions'), 10)\n\t\t\t\t\t// if no share permissions but share owner exists, still show the link\n\t\t\t\t\tif ((permissions & OC.PERMISSION_SHARE) !== 0 || context.$file.attr('data-share-owner')) {\n\t\t\t\t\t\treturn fileActions._defaultRenderAction.call(fileActions, actionSpec, isDefault, context)\n\t\t\t\t\t}\n\t\t\t\t\t// don't render anything\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// register share breadcrumbs component\n\t\t\tvar breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView()\n\t\t\tfileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView)\n\t\t},\n\n\t\t/**\n\t\t * Update file list data attributes\n\t\t */\n\t\t_updateFileListDataAttributes: function(fileList, $tr, shareModel) {\n\t\t\t// files app current cannot show recipients on load, so we don't update the\n\t\t\t// icon when changed for consistency\n\t\t\tif (fileList.id === 'files') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar recipients = _.pluck(shareModel.get('shares'), 'share_with_displayname')\n\t\t\t// note: we only update the data attribute because updateIcon()\n\t\t\tif (recipients.length) {\n\t\t\t\tvar recipientData = _.mapObject(shareModel.get('shares'), function(share) {\n\t\t\t\t\treturn { shareWith: share.share_with, shareWithDisplayName: share.share_with_displayname }\n\t\t\t\t})\n\t\t\t\t$tr.attr('data-share-recipient-data', JSON.stringify(recipientData))\n\t\t\t} else {\n\t\t\t\t$tr.removeAttr('data-share-recipient-data')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the file action share icon for the given file\n\t\t *\n\t\t * @param $tr file element of the file to update\n\t\t * @param {boolean} hasUserShares true if a user share exists\n\t\t * @param {boolean} hasLinkShares true if a link share exists\n\t\t *\n\t\t * @returns {boolean} true if the icon was set, false otherwise\n\t\t */\n\t\t_updateFileActionIcon: function($tr, hasUserShares, hasLinkShares) {\n\t\t\t// if the statuses are loaded already, use them for the icon\n\t\t\t// (needed when scrolling to the next page)\n\t\t\tif (hasUserShares || hasLinkShares || $tr.attr('data-share-recipient-data') || $tr.attr('data-share-owner')) {\n\t\t\t\tOCA.Sharing.Util._markFileAsShared($tr, true, hasLinkShares)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/**\n\t\t * Marks/unmarks a given file as shared by changing its action icon\n\t\t * and folder icon.\n\t\t *\n\t\t * @param $tr file element to mark as shared\n\t\t * @param hasShares whether shares are available\n\t\t * @param hasLink whether link share is available\n\t\t */\n\t\t_markFileAsShared: function($tr, hasShares, hasLink) {\n\t\t\tvar action = $tr.find('.fileactions .action[data-action=\"Share\"]')\n\t\t\tvar type = $tr.data('type')\n\t\t\tvar icon = action.find('.icon')\n\t\t\tvar message, recipients, avatars\n\t\t\tvar ownerId = $tr.attr('data-share-owner-id')\n\t\t\tvar owner = $tr.attr('data-share-owner')\n\t\t\tvar mountType = $tr.attr('data-mounttype')\n\t\t\tvar shareFolderIcon\n\t\t\tvar iconClass = 'icon-shared'\n\t\t\taction.removeClass('shared-style')\n\t\t\t// update folder icon\n\t\t\tif (type === 'dir' && (hasShares || hasLink || ownerId)) {\n\t\t\t\tif (typeof mountType !== 'undefined' && mountType !== 'shared-root' && mountType !== 'shared') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-' + mountType)\n\t\t\t\t} else if (hasLink) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t} else if (type === 'dir') {\n\t\t\t\tvar isEncrypted = $tr.attr('data-e2eencrypted')\n\t\t\t\t// FIXME: duplicate of FileList._createRow logic for external folder,\n\t\t\t\t// need to refactor the icon logic into a single code path eventually\n\t\t\t\tif (isEncrypted === 'true') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else if (mountType && mountType.indexOf('external') === 0) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir')\n\t\t\t\t\t// back to default\n\t\t\t\t\t$tr.removeAttr('data-icon')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t}\n\t\t\t// update share action text / icon\n\t\t\tif (hasShares || ownerId) {\n\t\t\t\trecipients = $tr.data('share-recipient-data')\n\t\t\t\taction.addClass('shared-style')\n\n\t\t\t\tavatars = '<span>' + t('files_sharing', 'Shared') + '</span>'\n\t\t\t\t// even if reshared, only show \"Shared by\"\n\t\t\t\tif (ownerId) {\n\t\t\t\t\tmessage = t('files_sharing', 'Shared by')\n\t\t\t\t\tavatars = OCA.Sharing.Util._formatRemoteShare(ownerId, owner, message)\n\t\t\t\t} else if (recipients) {\n\t\t\t\t\tavatars = OCA.Sharing.Util._formatShareList(recipients)\n\t\t\t\t}\n\t\t\t\taction.html(avatars).prepend(icon)\n\n\t\t\t\tif (ownerId || recipients) {\n\t\t\t\t\tvar avatarElement = action.find('.avatar')\n\t\t\t\t\tavatarElement.each(function() {\n\t\t\t\t\t\t$(this).avatar($(this).data('username'), 32)\n\t\t\t\t\t})\n\t\t\t\t\taction.find('span[title]').tooltip({ placement: 'top' })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taction.html('<span class=\"hidden-visually\">' + t('files_sharing', 'Shared') + '</span>').prepend(icon)\n\t\t\t}\n\t\t\tif (hasLink) {\n\t\t\t\ticonClass = 'icon-public'\n\t\t\t}\n\t\t\ticon.removeClass('icon-shared icon-public').addClass(iconClass)\n\t\t},\n\t\t/**\n\t\t * Format a remote address\n\t\t *\n\t\t* @param {String} shareWith userid, full remote share, or whatever\n\t\t* @param {String} shareWithDisplayName\n\t\t* @param {String} message\n\t\t* @returns {String} HTML code to display\n\t\t*/\n\t\t_formatRemoteShare: function(shareWith, shareWithDisplayName, message) {\n\t\t\tvar parts = OCA.Sharing.Util._REMOTE_OWNER_REGEXP.exec(shareWith)\n\t\t\tconsole.error(parts);\n\t\t\tif (!parts || !parts[7]) {\n\t\t\t\t// display avatar of the user\n\t\t\t\tvar avatar = '<span class=\"avatar\" data-username=\"' + escapeHTML(shareWith) + '\" title=\"' + message + ' ' + escapeHTML(shareWithDisplayName) + '\"></span>'\n\t\t\t\tvar hidden = '<span class=\"hidden-visually\">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> '\n\t\t\t\treturn avatar + hidden\n\t\t\t}\n\n\t\t\tvar userName = parts[2]\n\t\t\tvar userDomain = parts[4]\n\t\t\tvar server = parts[5]\n\t\t\tvar protocol = parts[6]\n\t\t\tvar serverPath = parts[8] ? parts[7] : ''; // no trailing slash on root\n\n\t\t\tvar tooltip = message + ' ' + userName\n\t\t\tif (userDomain) {\n\t\t\t\ttooltip += '@' + userDomain\n\t\t\t}\n\t\t\tif (server) {\n\t\t\t\ttooltip += '@' + server.replace(protocol, '') + serverPath\n\t\t\t}\n\n\t\t\tvar html = '<span class=\"remoteAddress\" title=\"' + escapeHTML(tooltip) + '\">'\n\t\t\thtml += '<span class=\"username\">' + escapeHTML(userName) + '</span>'\n\t\t\tif (userDomain) {\n\t\t\t\thtml += '<span class=\"userDomain\">@' + escapeHTML(userDomain) + '</span>'\n\t\t\t}\n\t\t\thtml += '</span> '\n\t\t\treturn html\n\t\t},\n\t\t/**\n\t\t * Loop over all recipients in the list and format them using\n\t\t * all kind of fancy magic.\n\t\t *\n\t\t* @param {Object} recipients array of all the recipients\n\t\t* @returns {String[]} modified list of recipients\n\t\t*/\n\t\t_formatShareList: function(recipients) {\n\t\t\tvar _parent = this\n\t\t\trecipients = _.toArray(recipients)\n\t\t\trecipients.sort(function(a, b) {\n\t\t\t\treturn a.shareWithDisplayName.localeCompare(b.shareWithDisplayName)\n\t\t\t})\n\t\t\treturn $.map(recipients, function(recipient) {\n\t\t\t\treturn _parent._formatRemoteShare(recipient.shareWith, recipient.shareWithDisplayName, t('files_sharing', 'Shared with'))\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Marks/unmarks a given file as shared by changing its action icon\n\t\t * and folder icon.\n\t\t *\n\t\t* @param $tr file element to mark as shared\n\t\t* @param hasShares whether shares are available\n\t\t* @param hasLink whether link share is available\n\t\t*/\n\t\tmarkFileAsShared: function($tr, hasShares, hasLink) {\n\t\t\tvar action = $tr.find('.fileactions .action[data-action=\"Share\"]')\n\t\t\tvar type = $tr.data('type')\n\t\t\tvar icon = action.find('.icon')\n\t\t\tvar message, recipients, avatars\n\t\t\tvar ownerId = $tr.attr('data-share-owner-id')\n\t\t\tvar owner = $tr.attr('data-share-owner')\n\t\t\tvar mountType = $tr.attr('data-mounttype')\n\t\t\tvar shareFolderIcon\n\t\t\tvar iconClass = 'icon-shared'\n\t\t\taction.removeClass('shared-style')\n\t\t\t// update folder icon\n\t\t\tif (type === 'dir' && (hasShares || hasLink || ownerId)) {\n\t\t\t\tif (typeof mountType !== 'undefined' && mountType !== 'shared-root' && mountType !== 'shared') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-' + mountType)\n\t\t\t\t} else if (hasLink) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t} else if (type === 'dir') {\n\t\t\t\tvar isEncrypted = $tr.attr('data-e2eencrypted')\n\t\t\t\t// FIXME: duplicate of FileList._createRow logic for external folder,\n\t\t\t\t// need to refactor the icon logic into a single code path eventually\n\t\t\t\tif (isEncrypted === 'true') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else if (mountType && mountType.indexOf('external') === 0) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir')\n\t\t\t\t\t// back to default\n\t\t\t\t\t$tr.removeAttr('data-icon')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t}\n\t\t\t// update share action text / icon\n\t\t\tif (hasShares || ownerId) {\n\t\t\t\trecipients = $tr.data('share-recipient-data')\n\t\t\t\taction.addClass('shared-style')\n\n\t\t\t\tavatars = '<span>' + t('files_sharing', 'Shared') + '</span>'\n\t\t\t\t// even if reshared, only show \"Shared by\"\n\t\t\t\tif (ownerId) {\n\t\t\t\t\tmessage = t('files_sharing', 'Shared by')\n\t\t\t\t\tavatars = this._formatRemoteShare(ownerId, owner, message)\n\t\t\t\t} else if (recipients) {\n\t\t\t\t\tavatars = this._formatShareList(recipients)\n\t\t\t\t}\n\t\t\t\taction.html(avatars).prepend(icon)\n\n\t\t\t\tif (ownerId || recipients) {\n\t\t\t\t\tvar avatarElement = action.find('.avatar')\n\t\t\t\t\tavatarElement.each(function() {\n\t\t\t\t\t\t$(this).avatar($(this).data('username'), 32)\n\t\t\t\t\t})\n\t\t\t\t\taction.find('span[title]').tooltip({ placement: 'top' })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taction.html('<span class=\"hidden-visually\">' + t('files_sharing', 'Shared') + '</span>').prepend(icon)\n\t\t\t}\n\t\t\tif (hasLink) {\n\t\t\t\ticonClass = 'icon-public'\n\t\t\t}\n\t\t\ticon.removeClass('icon-shared icon-public').addClass(iconClass)\n\t\t},\n\n\t\t/**\n\t\t * @param {Array} fileData\n\t\t * @returns {String}\n\t\t */\n\t\tgetSharePermissions: function(fileData) {\n\t\t\treturn fileData.sharePermissions\n\t\t}\n\t}\n})()\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util)\n","import './share'\nimport './sharebreadcrumbview'\n\nimport './style/sharebreadcrumb.scss'\n\nimport './collaborationresourceshandler.js'\n\n// eslint-disable-next-line camelcase\n__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/')\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(OC.requestToken)\n\nwindow.OCA.Sharing = OCA.Sharing\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<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n  css: string;\n  media: string;\n  sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n  [id: number]: {\n    id: number,\n    refs: number,\n    parts: Array<(obj?: StyleObjectPart) => void>\n  }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n  isProduction = _isProduction\n\n  options = _options || {}\n\n  var styles = listToStyles(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = listToStyles(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n  if (styleElement) {\n    if (isProduction) {\n      // has SSR styles and in production mode.\n      // simply do nothing.\n      return noop\n    } else {\n      // has SSR styles but in dev mode.\n      // for some reason Chrome can't handle source map in server-rendered\n      // style tags - source maps in <style> only works if the style tag is\n      // created and inserted dynamically. So we remove the server rendered\n      // styles and inject new ones.\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  update(obj)\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n  if (options.ssrId) {\n    styleElement.setAttribute(ssrIdKey, obj.id)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param  {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n  var str = '' + string;\n  var match = matchHtmlRegExp.exec(str);\n\n  if (!match) {\n    return str;\n  }\n\n  var escape;\n  var html = '';\n  var index = 0;\n  var lastIndex = 0;\n\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34: // \"\n        escape = '&quot;';\n        break;\n      case 38: // &\n        escape = '&amp;';\n        break;\n      case 39: // '\n        escape = '&#39;';\n        break;\n      case 60: // <\n        escape = '&lt;';\n        break;\n      case 62: // >\n        escape = '&gt;';\n        break;\n      default:\n        continue;\n    }\n\n    if (lastIndex !== index) {\n      html += str.substring(lastIndex, index);\n    }\n\n    lastIndex = index + 1;\n    html += escape;\n  }\n\n  return lastIndex !== index\n    ? html + str.substring(lastIndex, index)\n    : html;\n}\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/collaborationresourceshandler.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?fbff","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/additionalScripts.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/escape-html/index.js"],"names":["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","__webpack_public_path__","OC","linkTo","__webpack_nonce__","btoa","requestToken","window","OCP","Collaboration","registerType","action","Promise","resolve","reject","dialogs","filepicker","f","Files","getClient","getFileInfo","then","status","fileInfo","id","fail","Error","FILEPICKER_TYPE_CHOOSE","allowDirectoryChooser","typeString","typeIconClass","BreadCrumbView","Backbone","View","extend","tagName","events","click","_dirInfo","undefined","render","data","this","dirInfo","path","$el","removeClass","hide","isShared","shareTypes","length","addClass","indexOf","Share","SHARE_TYPE_LINK","show","delegateEvents","_onClick","e","preventDefault","stopPropagation","fileInfoModel","OCA","FileInfoModel","self","on","attributes","Sidebar","open","setActiveTab","Sharing","ShareBreadCrumbView","content","default","locals","add","___CSS_LOADER_API_IMPORT___","push","_","Client","PROPERTY_SHARE_TYPES","NS_OWNCLOUD","PROPERTY_OWNER_ID","PROPERTY_OWNER_DISPLAY_NAME","Util","_REMOTE_OWNER_REGEXP","RegExp","attach","fileList","fileActions","oldCreateRow","_createRow","fileData","tr","apply","arguments","sharePermissions","getSharePermissions","permissions","actions","all","Comment","Details","Goto","attr","shareOwner","shareOwnerId","mountType","PERMISSION_UPDATE","recipientData","isEmpty","JSON","stringify","join","oldElementToFile","elementToFile","split","expirationTimestamp","parseInt","shares","expiration","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","propStat","properties","permissionsProp","PROPERTY_PERMISSIONS","shareTypesProp","chain","filter","xmlvalue","namespaceURI","nodeName","map","textContent","text","ev","$files","each","file","$tr","$","hasLink","hasShares","shareType","SHARE_TYPE_EMAIL","SHARE_TYPE_USER","SHARE_TYPE_GROUP","SHARE_TYPE_REMOTE","SHARE_TYPE_CIRCLE","SHARE_TYPE_ROOM","_updateFileActionIcon","sharesLoaded","registerAction","displayName","context","$file","altText","mime","order","PERMISSION_ALL","iconClass","fileName","icon","generateUrl","type","FileActions","TYPE_INLINE","actionHandler","isNaN","showDetailsView","actionSpec","isDefault","PERMISSION_SHARE","_defaultRenderAction","breadCrumbSharingDetailView","registerBreadCrumbDetailView","_updateFileListDataAttributes","shareModel","pluck","mapObject","share","shareWith","share_with","shareWithDisplayName","share_with_displayname","removeAttr","hasUserShares","hasLinkShares","_markFileAsShared","message","recipients","avatars","shareFolderIcon","find","ownerId","owner","MimeType","getIconUrl","css","_formatRemoteShare","_formatShareList","html","prepend","avatar","tooltip","placement","parts","exec","console","error","escapeHTML","userName","userDomain","server","protocol","serverPath","replace","_parent","toArray","sort","a","b","localeCompare","recipient","markFileAsShared","Plugins","register","useSourceMap","list","toString","item","cssMapping","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","concat","sourceURLs","sources","source","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","_i","listToStyles","parentId","styles","newStyles","part","media","hasDocument","document","DEBUG","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","index","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","firstChild","matchHtmlRegExp","string","escape","str","match","lastIndex","charCodeAt","substring"],"mappings":"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","file":"additionalScripts.js","sourcesContent":[" \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 = \"/js/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 281);\n","// eslint-disable-next-line camelcase\n__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/')\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(OC.requestToken)\n\nwindow.OCP.Collaboration.registerType('file', {\n\taction: () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tOC.dialogs.filepicker(t('files_sharing', 'Link to a file'), function(f) {\n\t\t\t\tconst client = OC.Files.getClient()\n\t\t\t\tclient.getFileInfo(f).then((status, fileInfo) => {\n\t\t\t\t\tresolve(fileInfo.id)\n\t\t\t\t}).fail(() => {\n\t\t\t\t\treject(new Error('Cannot get fileinfo'))\n\t\t\t\t})\n\t\t\t}, false, null, false, OC.dialogs.FILEPICKER_TYPE_CHOOSE, '', { allowDirectoryChooser: true })\n\t\t})\n\t},\n\ttypeString: t('files_sharing', 'Link to a file'),\n\ttypeIconClass: 'icon-files-dark',\n})\n","/**\n * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n(function() {\n\t'use strict'\n\n\tconst BreadCrumbView = OC.Backbone.View.extend({\n\t\ttagName: 'span',\n\t\tevents: {\n\t\t\tclick: '_onClick',\n\t\t},\n\t\t_dirInfo: undefined,\n\n\t\trender(data) {\n\t\t\tthis._dirInfo = data.dirInfo || null\n\n\t\t\tif (this._dirInfo !== null && (this._dirInfo.path !== '/' || this._dirInfo.name !== '')) {\n\t\t\t\tconst isShared = data.dirInfo && data.dirInfo.shareTypes && data.dirInfo.shareTypes.length > 0\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared')\n\t\t\t\tif (isShared) {\n\t\t\t\t\tthis.$el.addClass('shared')\n\t\t\t\t\tif (data.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK) !== -1) {\n\t\t\t\t\t\tthis.$el.addClass('icon-public')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$el.addClass('icon-shared')\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$el.addClass('icon-shared')\n\t\t\t\t}\n\t\t\t\tthis.$el.show()\n\t\t\t\tthis.delegateEvents()\n\t\t\t} else {\n\t\t\t\tthis.$el.removeClass('shared icon-public icon-shared')\n\t\t\t\tthis.$el.hide()\n\t\t\t}\n\n\t\t\treturn this\n\t\t},\n\t\t_onClick(e) {\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\n\t\t\tconst fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo)\n\t\t\tconst self = this\n\t\t\tfileInfoModel.on('change', function() {\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo,\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tconst path = fileInfoModel.attributes.path + '/' + fileInfoModel.attributes.name\n\t\t\tOCA.Files.Sidebar.open(path)\n\t\t\tOCA.Files.Sidebar.setActiveTab('sharing')\n\t\t},\n\t})\n\n\tOCA.Sharing.ShareBreadCrumbView = BreadCrumbView\n})()\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs.js!./sharebreadcrumb.scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"57e7eec1\", content, 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, \"div.crumb span.icon-shared,div.crumb span.icon-public{display:inline-block;cursor:pointer;opacity:0.2;margin-right:6px}div.crumb span.icon-shared.shared,div.crumb span.icon-public.shared{opacity:0.7}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/* eslint-disable */\n/*\n * Copyright (c) 2014\n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\n\nimport escapeHTML from 'escape-html'\n\n(function() {\n\n\t_.extend(OC.Files.Client, {\n\t\tPROPERTY_SHARE_TYPES:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}share-types',\n\t\tPROPERTY_OWNER_ID:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-id',\n\t\tPROPERTY_OWNER_DISPLAY_NAME:\t'{' + OC.Files.Client.NS_OWNCLOUD + '}owner-display-name'\n\t})\n\n\tif (!OCA.Sharing) {\n\t\tOCA.Sharing = {}\n\t}\n\n\t/**\n\t * @namespace\n\t */\n\tOCA.Sharing.Util = {\n\n\t\t/**\n\t\t * Regular expression for splitting parts of remote share owners:\n\t\t * \"user@example.com/\"\n\t\t * \"user@example.com/path/to/owncloud\"\n\t\t * \"user@anotherexample.com@example.com/path/to/owncloud\n\t\t */\n\t\t_REMOTE_OWNER_REGEXP: new RegExp('^(([^@]*)@(([^@^/\\\\s]*)@)?)((https://)?[^[\\\\s/]*)([/](.*))?$'),\n\n\t\t/**\n\t\t * Initialize the sharing plugin.\n\t\t *\n\t\t * Registers the \"Share\" file action and adds additional\n\t\t * DOM attributes for the sharing file info.\n\t\t *\n\t\t * @param {OCA.Files.FileList} fileList file list to be extended\n\t\t */\n\t\tattach: function(fileList) {\n\t\t\t// core sharing is disabled/not loaded\n\t\t\tif (!OC.Share) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (fileList.id === 'trashbin' || fileList.id === 'files.public') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar fileActions = fileList.fileActions\n\t\t\tvar oldCreateRow = fileList._createRow\n\t\t\tfileList._createRow = function(fileData) {\n\n\t\t\t\tvar tr = oldCreateRow.apply(this, arguments)\n\t\t\t\tvar sharePermissions = OCA.Sharing.Util.getSharePermissions(fileData)\n\n\t\t\t\tif (fileData.permissions === 0) {\n\t\t\t\t\t// no permission, disabling sidebar\n\t\t\t\t\tdelete fileActions.actions.all.Comment\n\t\t\t\t\tdelete fileActions.actions.all.Details\n\t\t\t\t\tdelete fileActions.actions.all.Goto\n\t\t\t\t}\n\t\t\t\ttr.attr('data-share-permissions', sharePermissions)\n\t\t\t\tif (fileData.shareOwner) {\n\t\t\t\t\ttr.attr('data-share-owner', fileData.shareOwner)\n\t\t\t\t\ttr.attr('data-share-owner-id', fileData.shareOwnerId)\n\t\t\t\t\t// user should always be able to rename a mount point\n\t\t\t\t\tif (fileData.mountType === 'shared-root') {\n\t\t\t\t\t\ttr.attr('data-permissions', fileData.permissions | OC.PERMISSION_UPDATE)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (fileData.recipientData && !_.isEmpty(fileData.recipientData)) {\n\t\t\t\t\ttr.attr('data-share-recipient-data', JSON.stringify(fileData.recipientData))\n\t\t\t\t}\n\t\t\t\tif (fileData.shareTypes) {\n\t\t\t\t\ttr.attr('data-share-types', fileData.shareTypes.join(','))\n\t\t\t\t}\n\t\t\t\treturn tr\n\t\t\t}\n\n\t\t\tvar oldElementToFile = fileList.elementToFile\n\t\t\tfileList.elementToFile = function($el) {\n\t\t\t\tvar fileInfo = oldElementToFile.apply(this, arguments)\n\t\t\t\tfileInfo.sharePermissions = $el.attr('data-share-permissions') || undefined\n\t\t\t\tfileInfo.shareOwner = $el.attr('data-share-owner') || undefined\n\t\t\t\tfileInfo.shareOwnerId = $el.attr('data-share-owner-id') || undefined\n\n\t\t\t\tif ($el.attr('data-share-types')) {\n\t\t\t\t\tfileInfo.shareTypes = $el.attr('data-share-types').split(',')\n\t\t\t\t}\n\n\t\t\t\tif ($el.attr('data-expiration')) {\n\t\t\t\t\tvar expirationTimestamp = parseInt($el.attr('data-expiration'))\n\t\t\t\t\tfileInfo.shares = []\n\t\t\t\t\tfileInfo.shares.push({ expiration: expirationTimestamp })\n\t\t\t\t}\n\n\t\t\t\treturn fileInfo\n\t\t\t}\n\n\t\t\tvar oldGetWebdavProperties = fileList._getWebdavProperties\n\t\t\tfileList._getWebdavProperties = function() {\n\t\t\t\tvar props = oldGetWebdavProperties.apply(this, arguments)\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_ID)\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME)\n\t\t\t\tprops.push(OC.Files.Client.PROPERTY_SHARE_TYPES)\n\t\t\t\treturn props\n\t\t\t}\n\n\t\t\tfileList.filesClient.addFileInfoParser(function(response) {\n\t\t\t\tvar data = {}\n\t\t\t\tvar props = response.propStat[0].properties\n\t\t\t\tvar permissionsProp = props[OC.Files.Client.PROPERTY_PERMISSIONS]\n\n\t\t\t\tif (permissionsProp && permissionsProp.indexOf('S') >= 0) {\n\t\t\t\t\tdata.shareOwner = props[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME]\n\t\t\t\t\tdata.shareOwnerId = props[OC.Files.Client.PROPERTY_OWNER_ID]\n\t\t\t\t}\n\n\t\t\t\tvar shareTypesProp = props[OC.Files.Client.PROPERTY_SHARE_TYPES]\n\t\t\t\tif (shareTypesProp) {\n\t\t\t\t\tdata.shareTypes = _.chain(shareTypesProp).filter(function(xmlvalue) {\n\t\t\t\t\t\treturn (xmlvalue.namespaceURI === OC.Files.Client.NS_OWNCLOUD && xmlvalue.nodeName.split(':')[1] === 'share-type')\n\t\t\t\t\t}).map(function(xmlvalue) {\n\t\t\t\t\t\treturn parseInt(xmlvalue.textContent || xmlvalue.text, 10)\n\t\t\t\t\t}).value()\n\t\t\t\t}\n\n\t\t\t\treturn data\n\t\t\t})\n\n\t\t\t// use delegate to catch the case with multiple file lists\n\t\t\tfileList.$el.on('fileActionsReady', function(ev) {\n\t\t\t\tvar $files = ev.$files\n\n\t\t\t\t_.each($files, function(file) {\n\t\t\t\t\tvar $tr = $(file)\n\t\t\t\t\tvar shareTypes = $tr.attr('data-share-types') || ''\n\t\t\t\t\tvar shareOwner = $tr.attr('data-share-owner')\n\t\t\t\t\tif (shareTypes || shareOwner) {\n\t\t\t\t\t\tvar hasLink = false\n\t\t\t\t\t\tvar hasShares = false\n\t\t\t\t\t\t_.each(shareTypes.split(',') || [], function(shareType) {\n\t\t\t\t\t\t\tshareType = parseInt(shareType, 10)\n\t\t\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\t\t\thasLink = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\t\t\thasLink = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_USER) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_GROUP) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_REMOTE) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_CIRCLE) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t} else if (shareType === OC.Share.SHARE_TYPE_ROOM) {\n\t\t\t\t\t\t\t\thasShares = true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\tOCA.Sharing.Util._updateFileActionIcon($tr, hasShares, hasLink)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tfileList.$el.on('changeDirectory', function() {\n\t\t\t\tOCA.Sharing.sharesLoaded = false\n\t\t\t})\n\n\t\t\tfileActions.registerAction({\n\t\t\t\tname: 'Share',\n\t\t\t\tdisplayName: function(context) {\n\t\t\t\t\tif (context && context.$file) {\n\t\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\t\tif (shareType >= 0 || shareOwner) {\n\t\t\t\t\t\t\treturn t('files_sharing', 'Shared')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('files_sharing', 'Share')\n\t\t\t\t},\n\t\t\t\taltText: t('files_sharing', 'Share'),\n\t\t\t\tmime: 'all',\n\t\t\t\torder: -150,\n\t\t\t\tpermissions: OC.PERMISSION_ALL,\n\t\t\t\ticonClass: function(fileName, context) {\n\t\t\t\t\tvar shareType = parseInt(context.$file.data('share-types'), 10)\n\t\t\t\t\tif (shareType === OC.Share.SHARE_TYPE_EMAIL\n\t\t\t\t\t\t|| shareType === OC.Share.SHARE_TYPE_LINK) {\n\t\t\t\t\t\treturn 'icon-public'\n\t\t\t\t\t}\n\t\t\t\t\treturn 'icon-shared'\n\t\t\t\t},\n\t\t\t\ticon: function(fileName, context) {\n\t\t\t\t\tvar shareOwner = context.$file.data('share-owner-id')\n\t\t\t\t\tif (shareOwner) {\n\t\t\t\t\t\treturn OC.generateUrl(`/avatar/${shareOwner}/32`)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\ttype: OCA.Files.FileActions.TYPE_INLINE,\n\t\t\t\tactionHandler: function(fileName, context) {\n\t\t\t\t\t// do not open sidebar if permission is set and equal to 0\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('share-permissions'), 10)\n\t\t\t\t\tif (isNaN(permissions) || permissions > 0) {\n\t\t\t\t\t\tfileList.showDetailsView(fileName, 'sharing')\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\trender: function(actionSpec, isDefault, context) {\n\t\t\t\t\tvar permissions = parseInt(context.$file.data('permissions'), 10)\n\t\t\t\t\t// if no share permissions but share owner exists, still show the link\n\t\t\t\t\tif ((permissions & OC.PERMISSION_SHARE) !== 0 || context.$file.attr('data-share-owner')) {\n\t\t\t\t\t\treturn fileActions._defaultRenderAction.call(fileActions, actionSpec, isDefault, context)\n\t\t\t\t\t}\n\t\t\t\t\t// don't render anything\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t})\n\n\t\t\t// register share breadcrumbs component\n\t\t\tvar breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView()\n\t\t\tfileList.registerBreadCrumbDetailView(breadCrumbSharingDetailView)\n\t\t},\n\n\t\t/**\n\t\t * Update file list data attributes\n\t\t */\n\t\t_updateFileListDataAttributes: function(fileList, $tr, shareModel) {\n\t\t\t// files app current cannot show recipients on load, so we don't update the\n\t\t\t// icon when changed for consistency\n\t\t\tif (fileList.id === 'files') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tvar recipients = _.pluck(shareModel.get('shares'), 'share_with_displayname')\n\t\t\t// note: we only update the data attribute because updateIcon()\n\t\t\tif (recipients.length) {\n\t\t\t\tvar recipientData = _.mapObject(shareModel.get('shares'), function(share) {\n\t\t\t\t\treturn { shareWith: share.share_with, shareWithDisplayName: share.share_with_displayname }\n\t\t\t\t})\n\t\t\t\t$tr.attr('data-share-recipient-data', JSON.stringify(recipientData))\n\t\t\t} else {\n\t\t\t\t$tr.removeAttr('data-share-recipient-data')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Update the file action share icon for the given file\n\t\t *\n\t\t * @param $tr file element of the file to update\n\t\t * @param {boolean} hasUserShares true if a user share exists\n\t\t * @param {boolean} hasLinkShares true if a link share exists\n\t\t *\n\t\t * @returns {boolean} true if the icon was set, false otherwise\n\t\t */\n\t\t_updateFileActionIcon: function($tr, hasUserShares, hasLinkShares) {\n\t\t\t// if the statuses are loaded already, use them for the icon\n\t\t\t// (needed when scrolling to the next page)\n\t\t\tif (hasUserShares || hasLinkShares || $tr.attr('data-share-recipient-data') || $tr.attr('data-share-owner')) {\n\t\t\t\tOCA.Sharing.Util._markFileAsShared($tr, true, hasLinkShares)\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/**\n\t\t * Marks/unmarks a given file as shared by changing its action icon\n\t\t * and folder icon.\n\t\t *\n\t\t * @param $tr file element to mark as shared\n\t\t * @param hasShares whether shares are available\n\t\t * @param hasLink whether link share is available\n\t\t */\n\t\t_markFileAsShared: function($tr, hasShares, hasLink) {\n\t\t\tvar action = $tr.find('.fileactions .action[data-action=\"Share\"]')\n\t\t\tvar type = $tr.data('type')\n\t\t\tvar icon = action.find('.icon')\n\t\t\tvar message, recipients, avatars\n\t\t\tvar ownerId = $tr.attr('data-share-owner-id')\n\t\t\tvar owner = $tr.attr('data-share-owner')\n\t\t\tvar mountType = $tr.attr('data-mounttype')\n\t\t\tvar shareFolderIcon\n\t\t\tvar iconClass = 'icon-shared'\n\t\t\taction.removeClass('shared-style')\n\t\t\t// update folder icon\n\t\t\tif (type === 'dir' && (hasShares || hasLink || ownerId)) {\n\t\t\t\tif (typeof mountType !== 'undefined' && mountType !== 'shared-root' && mountType !== 'shared') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-' + mountType)\n\t\t\t\t} else if (hasLink) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t} else if (type === 'dir') {\n\t\t\t\tvar isEncrypted = $tr.attr('data-e2eencrypted')\n\t\t\t\t// FIXME: duplicate of FileList._createRow logic for external folder,\n\t\t\t\t// need to refactor the icon logic into a single code path eventually\n\t\t\t\tif (isEncrypted === 'true') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else if (mountType && mountType.indexOf('external') === 0) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir')\n\t\t\t\t\t// back to default\n\t\t\t\t\t$tr.removeAttr('data-icon')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t}\n\t\t\t// update share action text / icon\n\t\t\tif (hasShares || ownerId) {\n\t\t\t\trecipients = $tr.data('share-recipient-data')\n\t\t\t\taction.addClass('shared-style')\n\n\t\t\t\tavatars = '<span>' + t('files_sharing', 'Shared') + '</span>'\n\t\t\t\t// even if reshared, only show \"Shared by\"\n\t\t\t\tif (ownerId) {\n\t\t\t\t\tmessage = t('files_sharing', 'Shared by')\n\t\t\t\t\tavatars = OCA.Sharing.Util._formatRemoteShare(ownerId, owner, message)\n\t\t\t\t} else if (recipients) {\n\t\t\t\t\tavatars = OCA.Sharing.Util._formatShareList(recipients)\n\t\t\t\t}\n\t\t\t\taction.html(avatars).prepend(icon)\n\n\t\t\t\tif (ownerId || recipients) {\n\t\t\t\t\tvar avatarElement = action.find('.avatar')\n\t\t\t\t\tavatarElement.each(function() {\n\t\t\t\t\t\t$(this).avatar($(this).data('username'), 32)\n\t\t\t\t\t})\n\t\t\t\t\taction.find('span[title]').tooltip({ placement: 'top' })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taction.html('<span class=\"hidden-visually\">' + t('files_sharing', 'Shared') + '</span>').prepend(icon)\n\t\t\t}\n\t\t\tif (hasLink) {\n\t\t\t\ticonClass = 'icon-public'\n\t\t\t}\n\t\t\ticon.removeClass('icon-shared icon-public').addClass(iconClass)\n\t\t},\n\t\t/**\n\t\t * Format a remote address\n\t\t *\n\t\t* @param {String} shareWith userid, full remote share, or whatever\n\t\t* @param {String} shareWithDisplayName\n\t\t* @param {String} message\n\t\t* @returns {String} HTML code to display\n\t\t*/\n\t\t_formatRemoteShare: function(shareWith, shareWithDisplayName, message) {\n\t\t\tvar parts = OCA.Sharing.Util._REMOTE_OWNER_REGEXP.exec(shareWith)\n\t\t\tconsole.error(parts);\n\t\t\tif (!parts || !parts[7]) {\n\t\t\t\t// display avatar of the user\n\t\t\t\tvar avatar = '<span class=\"avatar\" data-username=\"' + escapeHTML(shareWith) + '\" title=\"' + message + ' ' + escapeHTML(shareWithDisplayName) + '\"></span>'\n\t\t\t\tvar hidden = '<span class=\"hidden-visually\">' + message + ' ' + escapeHTML(shareWithDisplayName) + '</span> '\n\t\t\t\treturn avatar + hidden\n\t\t\t}\n\n\t\t\tvar userName = parts[2]\n\t\t\tvar userDomain = parts[4]\n\t\t\tvar server = parts[5]\n\t\t\tvar protocol = parts[6]\n\t\t\tvar serverPath = parts[8] ? parts[7] : ''; // no trailing slash on root\n\n\t\t\tvar tooltip = message + ' ' + userName\n\t\t\tif (userDomain) {\n\t\t\t\ttooltip += '@' + userDomain\n\t\t\t}\n\t\t\tif (server) {\n\t\t\t\ttooltip += '@' + server.replace(protocol, '') + serverPath\n\t\t\t}\n\n\t\t\tvar html = '<span class=\"remoteAddress\" title=\"' + escapeHTML(tooltip) + '\">'\n\t\t\thtml += '<span class=\"username\">' + escapeHTML(userName) + '</span>'\n\t\t\tif (userDomain) {\n\t\t\t\thtml += '<span class=\"userDomain\">@' + escapeHTML(userDomain) + '</span>'\n\t\t\t}\n\t\t\thtml += '</span> '\n\t\t\treturn html\n\t\t},\n\t\t/**\n\t\t * Loop over all recipients in the list and format them using\n\t\t * all kind of fancy magic.\n\t\t *\n\t\t* @param {Object} recipients array of all the recipients\n\t\t* @returns {String[]} modified list of recipients\n\t\t*/\n\t\t_formatShareList: function(recipients) {\n\t\t\tvar _parent = this\n\t\t\trecipients = _.toArray(recipients)\n\t\t\trecipients.sort(function(a, b) {\n\t\t\t\treturn a.shareWithDisplayName.localeCompare(b.shareWithDisplayName)\n\t\t\t})\n\t\t\treturn $.map(recipients, function(recipient) {\n\t\t\t\treturn _parent._formatRemoteShare(recipient.shareWith, recipient.shareWithDisplayName, t('files_sharing', 'Shared with'))\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Marks/unmarks a given file as shared by changing its action icon\n\t\t * and folder icon.\n\t\t *\n\t\t* @param $tr file element to mark as shared\n\t\t* @param hasShares whether shares are available\n\t\t* @param hasLink whether link share is available\n\t\t*/\n\t\tmarkFileAsShared: function($tr, hasShares, hasLink) {\n\t\t\tvar action = $tr.find('.fileactions .action[data-action=\"Share\"]')\n\t\t\tvar type = $tr.data('type')\n\t\t\tvar icon = action.find('.icon')\n\t\t\tvar message, recipients, avatars\n\t\t\tvar ownerId = $tr.attr('data-share-owner-id')\n\t\t\tvar owner = $tr.attr('data-share-owner')\n\t\t\tvar mountType = $tr.attr('data-mounttype')\n\t\t\tvar shareFolderIcon\n\t\t\tvar iconClass = 'icon-shared'\n\t\t\taction.removeClass('shared-style')\n\t\t\t// update folder icon\n\t\t\tif (type === 'dir' && (hasShares || hasLink || ownerId)) {\n\t\t\t\tif (typeof mountType !== 'undefined' && mountType !== 'shared-root' && mountType !== 'shared') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-' + mountType)\n\t\t\t\t} else if (hasLink) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t} else if (type === 'dir') {\n\t\t\t\tvar isEncrypted = $tr.attr('data-e2eencrypted')\n\t\t\t\t// FIXME: duplicate of FileList._createRow logic for external folder,\n\t\t\t\t// need to refactor the icon logic into a single code path eventually\n\t\t\t\tif (isEncrypted === 'true') {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else if (mountType && mountType.indexOf('external') === 0) {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t\t$tr.attr('data-icon', shareFolderIcon)\n\t\t\t\t} else {\n\t\t\t\t\tshareFolderIcon = OC.MimeType.getIconUrl('dir')\n\t\t\t\t\t// back to default\n\t\t\t\t\t$tr.removeAttr('data-icon')\n\t\t\t\t}\n\t\t\t\t$tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')')\n\t\t\t}\n\t\t\t// update share action text / icon\n\t\t\tif (hasShares || ownerId) {\n\t\t\t\trecipients = $tr.data('share-recipient-data')\n\t\t\t\taction.addClass('shared-style')\n\n\t\t\t\tavatars = '<span>' + t('files_sharing', 'Shared') + '</span>'\n\t\t\t\t// even if reshared, only show \"Shared by\"\n\t\t\t\tif (ownerId) {\n\t\t\t\t\tmessage = t('files_sharing', 'Shared by')\n\t\t\t\t\tavatars = this._formatRemoteShare(ownerId, owner, message)\n\t\t\t\t} else if (recipients) {\n\t\t\t\t\tavatars = this._formatShareList(recipients)\n\t\t\t\t}\n\t\t\t\taction.html(avatars).prepend(icon)\n\n\t\t\t\tif (ownerId || recipients) {\n\t\t\t\t\tvar avatarElement = action.find('.avatar')\n\t\t\t\t\tavatarElement.each(function() {\n\t\t\t\t\t\t$(this).avatar($(this).data('username'), 32)\n\t\t\t\t\t})\n\t\t\t\t\taction.find('span[title]').tooltip({ placement: 'top' })\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\taction.html('<span class=\"hidden-visually\">' + t('files_sharing', 'Shared') + '</span>').prepend(icon)\n\t\t\t}\n\t\t\tif (hasLink) {\n\t\t\t\ticonClass = 'icon-public'\n\t\t\t}\n\t\t\ticon.removeClass('icon-shared icon-public').addClass(iconClass)\n\t\t},\n\n\t\t/**\n\t\t * @param {Array} fileData\n\t\t * @returns {String}\n\t\t */\n\t\tgetSharePermissions: function(fileData) {\n\t\t\treturn fileData.sharePermissions\n\t\t}\n\t}\n})()\n\nOC.Plugins.register('OCA.Files.FileList', OCA.Sharing.Util)\n","import './share'\nimport './sharebreadcrumbview'\n\nimport './style/sharebreadcrumb.scss'\n\nimport './collaborationresourceshandler.js'\n\n// eslint-disable-next-line camelcase\n__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/')\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(OC.requestToken)\n\nwindow.OCA.Sharing = OCA.Sharing\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<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n  css: string;\n  media: string;\n  sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n  [id: number]: {\n    id: number,\n    refs: number,\n    parts: Array<(obj?: StyleObjectPart) => void>\n  }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n  isProduction = _isProduction\n\n  options = _options || {}\n\n  var styles = listToStyles(parentId, list)\n  addStylesToDom(styles)\n\n  return function update (newList) {\n    var mayRemove = []\n    for (var i = 0; i < styles.length; i++) {\n      var item = styles[i]\n      var domStyle = stylesInDom[item.id]\n      domStyle.refs--\n      mayRemove.push(domStyle)\n    }\n    if (newList) {\n      styles = listToStyles(parentId, newList)\n      addStylesToDom(styles)\n    } else {\n      styles = []\n    }\n    for (var i = 0; i < mayRemove.length; i++) {\n      var domStyle = mayRemove[i]\n      if (domStyle.refs === 0) {\n        for (var j = 0; j < domStyle.parts.length; j++) {\n          domStyle.parts[j]()\n        }\n        delete stylesInDom[domStyle.id]\n      }\n    }\n  }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n  for (var i = 0; i < styles.length; i++) {\n    var item = styles[i]\n    var domStyle = stylesInDom[item.id]\n    if (domStyle) {\n      domStyle.refs++\n      for (var j = 0; j < domStyle.parts.length; j++) {\n        domStyle.parts[j](item.parts[j])\n      }\n      for (; j < item.parts.length; j++) {\n        domStyle.parts.push(addStyle(item.parts[j]))\n      }\n      if (domStyle.parts.length > item.parts.length) {\n        domStyle.parts.length = item.parts.length\n      }\n    } else {\n      var parts = []\n      for (var j = 0; j < item.parts.length; j++) {\n        parts.push(addStyle(item.parts[j]))\n      }\n      stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n    }\n  }\n}\n\nfunction createStyleElement () {\n  var styleElement = document.createElement('style')\n  styleElement.type = 'text/css'\n  head.appendChild(styleElement)\n  return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n  var update, remove\n  var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n  if (styleElement) {\n    if (isProduction) {\n      // has SSR styles and in production mode.\n      // simply do nothing.\n      return noop\n    } else {\n      // has SSR styles but in dev mode.\n      // for some reason Chrome can't handle source map in server-rendered\n      // style tags - source maps in <style> only works if the style tag is\n      // created and inserted dynamically. So we remove the server rendered\n      // styles and inject new ones.\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  if (isOldIE) {\n    // use singleton mode for IE9.\n    var styleIndex = singletonCounter++\n    styleElement = singletonElement || (singletonElement = createStyleElement())\n    update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n    remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n  } else {\n    // use multi-style-tag mode in all other cases\n    styleElement = createStyleElement()\n    update = applyToTag.bind(null, styleElement)\n    remove = function () {\n      styleElement.parentNode.removeChild(styleElement)\n    }\n  }\n\n  update(obj)\n\n  return function updateStyle (newObj /* StyleObjectPart */) {\n    if (newObj) {\n      if (newObj.css === obj.css &&\n          newObj.media === obj.media &&\n          newObj.sourceMap === obj.sourceMap) {\n        return\n      }\n      update(obj = newObj)\n    } else {\n      remove()\n    }\n  }\n}\n\nvar replaceText = (function () {\n  var textStore = []\n\n  return function (index, replacement) {\n    textStore[index] = replacement\n    return textStore.filter(Boolean).join('\\n')\n  }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n  var css = remove ? '' : obj.css\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = replaceText(index, css)\n  } else {\n    var cssNode = document.createTextNode(css)\n    var childNodes = styleElement.childNodes\n    if (childNodes[index]) styleElement.removeChild(childNodes[index])\n    if (childNodes.length) {\n      styleElement.insertBefore(cssNode, childNodes[index])\n    } else {\n      styleElement.appendChild(cssNode)\n    }\n  }\n}\n\nfunction applyToTag (styleElement, obj) {\n  var css = obj.css\n  var media = obj.media\n  var sourceMap = obj.sourceMap\n\n  if (media) {\n    styleElement.setAttribute('media', media)\n  }\n  if (options.ssrId) {\n    styleElement.setAttribute(ssrIdKey, obj.id)\n  }\n\n  if (sourceMap) {\n    // https://developer.chrome.com/devtools/docs/javascript-debugging\n    // this makes source maps inside style tags work properly in Chrome\n    css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n    // http://stackoverflow.com/a/26603875\n    css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n  }\n\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild)\n    }\n    styleElement.appendChild(document.createTextNode(css))\n  }\n}\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param  {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n  var str = '' + string;\n  var match = matchHtmlRegExp.exec(str);\n\n  if (!match) {\n    return str;\n  }\n\n  var escape;\n  var html = '';\n  var index = 0;\n  var lastIndex = 0;\n\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34: // \"\n        escape = '&quot;';\n        break;\n      case 38: // &\n        escape = '&amp;';\n        break;\n      case 39: // '\n        escape = '&#39;';\n        break;\n      case 60: // <\n        escape = '&lt;';\n        break;\n      case 62: // >\n        escape = '&gt;';\n        break;\n      default:\n        continue;\n    }\n\n    if (lastIndex !== index) {\n      html += str.substring(lastIndex, index);\n    }\n\n    lastIndex = index + 1;\n    html += escape;\n  }\n\n  return lastIndex !== index\n    ? html + str.substring(lastIndex, index)\n    : html;\n}\n"],"sourceRoot":""}
\ No newline at end of file
index 3e5fac2b3a0278f06e01a7980c47b9fc051ab7c5..66c8d312a3e9c049d4463c52e63bb6e2bc6b2c58 100644 (file)
@@ -57,6 +57,7 @@
                },
                _onClick(e) {
                        e.preventDefault()
+                       e.stopPropagation()
 
                        const fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo)
                        const self = this