]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add link icon for public link too 14695/head
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Fri, 15 Mar 2019 11:54:31 +0000 (12:54 +0100)
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Thu, 21 Mar 2019 07:16:00 +0000 (08:16 +0100)
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
apps/files/tests/js/fileactionsmenuSpec.js
apps/files_sharing/js/dist/additionalScripts.js
apps/files_sharing/js/dist/additionalScripts.js.map
apps/files_sharing/src/share.js
apps/files_sharing/tests/js/shareSpec.js

index 2d31f24a1b380c62c75f7d2ac0a912e9e7370e3b..c2be30118388f86f32d11b906cfee5d63bea912a 100644 (file)
@@ -113,8 +113,11 @@ describe('OCA.Files.FileActionsMenu tests', function() {
                it('does not render default actions', function() {
                        expect(menu.$el.find('a[data-action=Testdefault]').length).toEqual(0);
                });
-               it('does not render inline actions', function() {
-                       expect(menu.$el.find('a[data-action=Testinline]').length).toEqual(0);
+               it('render inline actions', function() {
+                       expect(menu.$el.find('a[data-action=Testinline]').length).toEqual(1);
+               });
+               it('render inline actions but it is hidden', function() {
+                       expect(menu.$el.find('a[data-action=Testinline]').parent().hasClass('hidden')).toEqual(true);
                });
                it('only renders actions relevant to the mime type', function() {
                        fileActions.registerAction({
index 8d9798b9c826011c519479992297e0c4fbe7b535..063773d7c4841d7d9655b9c4b851464ba614d619 100644 (file)
@@ -1,4 +1,4 @@
-!function(e){function n(n){for(var t,r,a=n[0],o=n[1],s=0,l=[];s<a.length;s++)r=a[s],i[r]&&l.push(i[r][0]),i[r]=0;for(t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);for(h&&h(n);l.length;)l.shift()()}var t={},i={0:0,1:0};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.e=function(e){var n=[],t=i[e];if(0!==t)if(t)n.push(t[2]);else{var a=new Promise(function(n,r){t=i[e]=[n,r]});n.push(t[2]=a);var o,s=document.createElement("script");s.charset="utf-8",s.timeout=120,r.nc&&s.setAttribute("nonce",r.nc),s.src=function(e){return r.p+"files_sharing."+e+".js"}(e),o=function(n){s.onerror=s.onload=null,clearTimeout(h);var t=i[e];if(0!==t){if(t){var r=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src,o=new Error("Loading chunk "+e+" failed.\n("+r+": "+a+")");o.type=r,o.request=a,t[1](o)}i[e]=void 0}};var h=setTimeout(function(){o({type:"timeout",target:s})},12e4);s.onerror=s.onload=o,document.head.appendChild(s)}return Promise.all(n)},r.m=e,r.c=t,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)r.d(t,i,function(n){return e[n]}.bind(null,i));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="/js/",r.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],o=a.push.bind(a);a.push=n,a=a.slice();for(var s=0;s<a.length;s++)n(a[s]);var h=o;r(r.s=3)}([function(e,n,i){i.p=OC.linkTo("files_sharing","js/dist/"),i.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise(function(e,n){OC.dialogs.filepicker("Link to a file",function(t){OC.Files.getClient().getFileInfo(t).then(function(n,t){e(t.id)},function(){n()})},!1)})},typeString:t("files_sharing","file"),typeIconClass:"icon-files-dark"})},function(e,n,t){"use strict";e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var t=function(e,n){var t=e[1]||"",i=e[3];if(!i)return t;if(n&&"function"==typeof btoa){var r=(o=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),a=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[t].concat(a).concat([r]).join("\n")}var o;return[t].join("\n")}(n,e);return n[2]?"@media "+n[2]+"{"+t+"}":t}).join("")},n.i=function(e,t){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r<this.length;r++){var a=this[r][0];null!=a&&(i[a]=!0)}for(r=0;r<e.length;r++){var o=e[r];null!=o[0]&&i[o[0]]||(t&&!o[2]?o[2]=t:t&&(o[2]="("+o[2]+") and ("+t+")"),n.push(o))}},n}},function(e,n,t){"use strict";function i(e,n){for(var t=[],i={},r=0;r<n.length;r++){var a=n[r],o=a[0],s={id:e+":"+r,css:a[1],media:a[2],sourceMap:a[3]};i[o]?i[o].parts.push(s):t.push(i[o]={id:o,parts:[s]})}return t}t.r(n),t.d(n,"default",function(){return f});var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)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 a={},o=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,h=0,l=!1,p=function(){},d=null,u="data-vue-ssr-id",c="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function f(e,n,t,r){l=t,d=r||{};var o=i(e,n);return m(o),function(n){for(var t=[],r=0;r<o.length;r++){var s=o[r];(h=a[s.id]).refs--,t.push(h)}n?m(o=i(e,n)):o=[];for(r=0;r<t.length;r++){var h;if(0===(h=t[r]).refs){for(var l=0;l<h.parts.length;l++)h.parts[l]();delete a[h.id]}}}}function m(e){for(var n=0;n<e.length;n++){var t=e[n],i=a[t.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](t.parts[r]);for(;r<t.parts.length;r++)i.parts.push(v(t.parts[r]));i.parts.length>t.parts.length&&(i.parts.length=t.parts.length)}else{var o=[];for(r=0;r<t.parts.length;r++)o.push(v(t.parts[r]));a[t.id]={id:t.id,refs:1,parts:o}}}}function g(){var e=document.createElement("style");return e.type="text/css",o.appendChild(e),e}function v(e){var n,t,i=document.querySelector("style["+u+'~="'+e.id+'"]');if(i){if(l)return p;i.parentNode.removeChild(i)}if(c){var r=h++;i=s||(s=g()),n=O.bind(null,i,r,!1),t=O.bind(null,i,r,!0)}else i=g(),n=function(e,n){var t=n.css,i=n.media,r=n.sourceMap;i&&e.setAttribute("media",i);d.ssrId&&e.setAttribute(u,n.id);r&&(t+="\n/*# sourceURL="+r.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,i),t=function(){i.parentNode.removeChild(i)};return n(e),function(i){if(i){if(i.css===e.css&&i.media===e.media&&i.sourceMap===e.sourceMap)return;n(e=i)}else t()}}var b,w=(b=[],function(e,n){return b[e]=n,b.filter(Boolean).join("\n")});function O(e,n,t,i){var r=t?"":i.css;if(e.styleSheet)e.styleSheet.cssText=w(n,r);else{var a=document.createTextNode(r),o=e.childNodes;o[n]&&e.removeChild(o[n]),o.length?e.insertBefore(a,o[n]):e.appendChild(a)}}},function(e,n,t){"use strict";t.r(n);t(4),t(5),t(6),t(7),t(9),t(0);t.p=OC.linkTo("files_sharing","js/dist/"),t.nc=btoa(OC.requestToken),window.OCA.Sharing=OCA.Sharing},function(e,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={attach:function(e){if(OC.Share&&"trashbin"!==e.id&&"files.public"!==e.id){var n=e.fileActions,i=e._createRow;e._createRow=function(e){var t=i.apply(this,arguments),r=OCA.Sharing.Util.getSharePermissions(e);return 0===e.permissions&&(delete n.actions.all.Comment,delete n.actions.all.Details,delete n.actions.all.Goto),t.attr("data-share-permissions",r),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 r=e.elementToFile;e.elementToFile=function(e){var n=r.apply(this,arguments);if(n.sharePermissions=e.attr("data-share-permissions")||void 0,n.shareOwner=e.attr("data-share-owner")||void 0,n.shareOwnerId=e.attr("data-share-owner-id")||void 0,e.attr("data-share-types")&&(n.shareTypes=e.attr("data-share-types").split(",")),e.attr("data-expiration")){var t=parseInt(e.attr("data-expiration"));n.shares=[],n.shares.push({expiration:t})}return n};var a=e._getWebdavProperties;e._getWebdavProperties=function(){var e=a.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 n={},t=e.propStat[0].properties,i=t[OC.Files.Client.PROPERTY_PERMISSIONS];i&&i.indexOf("S")>=0&&(n.shareOwner=t[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME],n.shareOwnerId=t[OC.Files.Client.PROPERTY_OWNER_ID]);var r=t[OC.Files.Client.PROPERTY_SHARE_TYPES];return r&&(n.shareTypes=_.chain(r).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()),n}),e.$el.on("fileActionsReady",function(e){var n=e.$files;_.each(n,function(e){var n=$(e),t=n.attr("data-share-types")||"",i=n.attr("data-share-owner");if(t||i){var r=!1,a=!1;_.each(t.split(",")||[],function(e){(e=parseInt(e,10))===OC.Share.SHARE_TYPE_LINK?r=!0:e===OC.Share.SHARE_TYPE_EMAIL?r=!0:e===OC.Share.SHARE_TYPE_USER?a=!0:e===OC.Share.SHARE_TYPE_GROUP?a=!0:e===OC.Share.SHARE_TYPE_REMOTE?a=!0:e===OC.Share.SHARE_TYPE_CIRCLE?a=!0:e===OC.Share.SHARE_TYPE_ROOM&&(a=!0)}),OCA.Sharing.Util._updateFileActionIcon(n,a,r)}})}),e.$el.on("changeDirectory",function(){OCA.Sharing.sharesLoaded=!1}),n.registerAction({name:"Share",displayName:"",altText:t("core","Share"),mime:"all",permissions:OC.PERMISSION_ALL,iconClass:"icon-shared",type:OCA.Files.FileActions.TYPE_INLINE,actionHandler:function(n,t){var i=parseInt(t.$file.data("share-permissions"),10);(isNaN(i)||i>0)&&e.showDetailsView(n,"shareTabView")},render:function(e,t,i){return 0!=(parseInt(i.$file.data("permissions"),10)&OC.PERMISSION_SHARE)||i.$file.attr("data-share-owner")?n._defaultRenderAction.call(n,e,t,i):null}});var o=new OCA.Sharing.ShareTabView("shareTabView",{order:-20});o.on("sharesChanged",function(n){var t=n.fileInfoModel,i=e.findFileEl(t.get("name")),r=n.hasLinkShares();n.get("shares").forEach(function(e){e.share_type===OC.Share.SHARE_TYPE_EMAIL&&(r=!0)}),OCA.Sharing.Util._updateFileListDataAttributes(e,i,n),OCA.Sharing.Util._updateFileActionIcon(i,n.hasUserShares(),r)||OC.Share.markFileAsShared(i,!1,!1),t.set({shareTypes:n.getShareTypes(),icon:i.attr("data-icon")})}),e.registerTabView(o);var s=new OCA.Sharing.ShareBreadCrumbView({shareTab:o});e.registerBreadCrumbDetailView(s)}},_updateFileListDataAttributes:function(e,n,t){if("files"!==e.id)if(_.pluck(t.get("shares"),"share_with_displayname").length){var i=_.mapObject(t.get("shares"),function(e){return{shareWith:e.share_with,shareWithDisplayName:e.share_with_displayname}});n.attr("data-share-recipient-data",JSON.stringify(i))}else n.removeAttr("data-share-recipient-data")},_updateFileActionIcon:function(e,n,t){return!!(n||t||e.attr("data-share-recipient-data")||e.attr("data-share-owner"))&&(OC.Share.markFileAsShared(e,!0,t),!0)},getSharePermissions:function(e){return e.sharePermissions}},OC.Plugins.register("OCA.Files.FileList",OCA.Sharing.Util)},function(e,n,i){var r;r=OCA.Files.DetailTabView.extend({id:"shareTabView",className:"tab shareTabView",initialize:function(e,n){OCA.Files.DetailTabView.prototype.initialize.call(this,e,n),OC.Plugins.attach("OCA.Sharing.ShareTabView",this)},template:function(e){return'<div><div class="dialogContainer"></div><div id="collaborationResources"></div></div>'},getLabel:function(){return t("files_sharing","Sharing")},getIcon:function(){return"icon-shared"},render:function(){var e=this,n=this;if(this._dialog&&(this._dialog.model.off(),this._dialog.remove(),this._dialog=null),this.model){this.$el.html(this.template()),_.isUndefined(this.model.get("sharePermissions"))&&this.model.set("sharePermissions",OCA.Sharing.Util.getSharePermissions(this.model.attributes));var t={itemType:this.model.isDirectory()?"folder":"file",itemSource:this.model.get("id"),possiblePermissions:this.model.get("sharePermissions")},r=new OC.Share.ShareConfigModel,a=new OC.Share.ShareItemModel(t,{configModel:r,fileInfoModel:this.model});this._dialog=new OC.Share.ShareDialogView({configModel:r,model:a}),this.$el.find(".dialogContainer").append(this._dialog.$el),this._dialog.render(),this._dialog.model.fetch(),this._dialog.model.on("change",function(){n.trigger("sharesChanged",a)}),Promise.all([i.e(3),i.e(4)]).then(i.bind(null,14)).then(function(n){var t=new n.Vue({el:"#collaborationResources",render:function(e){return e(n.View)},data:{model:e.model.toJSON()}});e.model.on("change",function(){t.data=e.model.toJSON()})})}else this.$el.empty();this.trigger("rendered")}}),OCA.Sharing.ShareTabView=r},function(e,n){
+!function(e){function n(n){for(var t,r,a=n[0],o=n[1],s=0,l=[];s<a.length;s++)r=a[s],i[r]&&l.push(i[r][0]),i[r]=0;for(t in o)Object.prototype.hasOwnProperty.call(o,t)&&(e[t]=o[t]);for(h&&h(n);l.length;)l.shift()()}var t={},i={0:0,1:0};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.e=function(e){var n=[],t=i[e];if(0!==t)if(t)n.push(t[2]);else{var a=new Promise(function(n,r){t=i[e]=[n,r]});n.push(t[2]=a);var o,s=document.createElement("script");s.charset="utf-8",s.timeout=120,r.nc&&s.setAttribute("nonce",r.nc),s.src=function(e){return r.p+"files_sharing."+e+".js"}(e),o=function(n){s.onerror=s.onload=null,clearTimeout(h);var t=i[e];if(0!==t){if(t){var r=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src,o=new Error("Loading chunk "+e+" failed.\n("+r+": "+a+")");o.type=r,o.request=a,t[1](o)}i[e]=void 0}};var h=setTimeout(function(){o({type:"timeout",target:s})},12e4);s.onerror=s.onload=o,document.head.appendChild(s)}return Promise.all(n)},r.m=e,r.c=t,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var i in e)r.d(t,i,function(n){return e[n]}.bind(null,i));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="/js/",r.oe=function(e){throw console.error(e),e};var a=window.webpackJsonp=window.webpackJsonp||[],o=a.push.bind(a);a.push=n,a=a.slice();for(var s=0;s<a.length;s++)n(a[s]);var h=o;r(r.s=3)}([function(e,n,i){i.p=OC.linkTo("files_sharing","js/dist/"),i.nc=btoa(OC.requestToken),window.OCP.Collaboration.registerType("file",{action:function(){return new Promise(function(e,n){OC.dialogs.filepicker("Link to a file",function(t){OC.Files.getClient().getFileInfo(t).then(function(n,t){e(t.id)},function(){n()})},!1)})},typeString:t("files_sharing","file"),typeIconClass:"icon-files-dark"})},function(e,n,t){"use strict";e.exports=function(e){var n=[];return n.toString=function(){return this.map(function(n){var t=function(e,n){var t=e[1]||"",i=e[3];if(!i)return t;if(n&&"function"==typeof btoa){var r=(o=i,"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),a=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[t].concat(a).concat([r]).join("\n")}var o;return[t].join("\n")}(n,e);return n[2]?"@media "+n[2]+"{"+t+"}":t}).join("")},n.i=function(e,t){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r<this.length;r++){var a=this[r][0];null!=a&&(i[a]=!0)}for(r=0;r<e.length;r++){var o=e[r];null!=o[0]&&i[o[0]]||(t&&!o[2]?o[2]=t:t&&(o[2]="("+o[2]+") and ("+t+")"),n.push(o))}},n}},function(e,n,t){"use strict";function i(e,n){for(var t=[],i={},r=0;r<n.length;r++){var a=n[r],o=a[0],s={id:e+":"+r,css:a[1],media:a[2],sourceMap:a[3]};i[o]?i[o].parts.push(s):t.push(i[o]={id:o,parts:[s]})}return t}t.r(n),t.d(n,"default",function(){return f});var r="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!r)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 a={},o=r&&(document.head||document.getElementsByTagName("head")[0]),s=null,h=0,l=!1,p=function(){},d=null,u="data-vue-ssr-id",c="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());function f(e,n,t,r){l=t,d=r||{};var o=i(e,n);return m(o),function(n){for(var t=[],r=0;r<o.length;r++){var s=o[r];(h=a[s.id]).refs--,t.push(h)}n?m(o=i(e,n)):o=[];for(r=0;r<t.length;r++){var h;if(0===(h=t[r]).refs){for(var l=0;l<h.parts.length;l++)h.parts[l]();delete a[h.id]}}}}function m(e){for(var n=0;n<e.length;n++){var t=e[n],i=a[t.id];if(i){i.refs++;for(var r=0;r<i.parts.length;r++)i.parts[r](t.parts[r]);for(;r<t.parts.length;r++)i.parts.push(v(t.parts[r]));i.parts.length>t.parts.length&&(i.parts.length=t.parts.length)}else{var o=[];for(r=0;r<t.parts.length;r++)o.push(v(t.parts[r]));a[t.id]={id:t.id,refs:1,parts:o}}}}function g(){var e=document.createElement("style");return e.type="text/css",o.appendChild(e),e}function v(e){var n,t,i=document.querySelector("style["+u+'~="'+e.id+'"]');if(i){if(l)return p;i.parentNode.removeChild(i)}if(c){var r=h++;i=s||(s=g()),n=O.bind(null,i,r,!1),t=O.bind(null,i,r,!0)}else i=g(),n=function(e,n){var t=n.css,i=n.media,r=n.sourceMap;i&&e.setAttribute("media",i);d.ssrId&&e.setAttribute(u,n.id);r&&(t+="\n/*# sourceURL="+r.sources[0]+" */",t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}.bind(null,i),t=function(){i.parentNode.removeChild(i)};return n(e),function(i){if(i){if(i.css===e.css&&i.media===e.media&&i.sourceMap===e.sourceMap)return;n(e=i)}else t()}}var b,w=(b=[],function(e,n){return b[e]=n,b.filter(Boolean).join("\n")});function O(e,n,t,i){var r=t?"":i.css;if(e.styleSheet)e.styleSheet.cssText=w(n,r);else{var a=document.createTextNode(r),o=e.childNodes;o[n]&&e.removeChild(o[n]),o.length?e.insertBefore(a,o[n]):e.appendChild(a)}}},function(e,n,t){"use strict";t.r(n);t(4),t(5),t(6),t(7),t(9),t(0);t.p=OC.linkTo("files_sharing","js/dist/"),t.nc=btoa(OC.requestToken),window.OCA.Sharing=OCA.Sharing},function(e,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={attach:function(e){if(OC.Share&&"trashbin"!==e.id&&"files.public"!==e.id){var n=e.fileActions,i=e._createRow;e._createRow=function(e){var t=i.apply(this,arguments),r=OCA.Sharing.Util.getSharePermissions(e);return 0===e.permissions&&(delete n.actions.all.Comment,delete n.actions.all.Details,delete n.actions.all.Goto),t.attr("data-share-permissions",r),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 r=e.elementToFile;e.elementToFile=function(e){var n=r.apply(this,arguments);if(n.sharePermissions=e.attr("data-share-permissions")||void 0,n.shareOwner=e.attr("data-share-owner")||void 0,n.shareOwnerId=e.attr("data-share-owner-id")||void 0,e.attr("data-share-types")&&(n.shareTypes=e.attr("data-share-types").split(",")),e.attr("data-expiration")){var t=parseInt(e.attr("data-expiration"));n.shares=[],n.shares.push({expiration:t})}return n};var a=e._getWebdavProperties;e._getWebdavProperties=function(){var e=a.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 n={},t=e.propStat[0].properties,i=t[OC.Files.Client.PROPERTY_PERMISSIONS];i&&i.indexOf("S")>=0&&(n.shareOwner=t[OC.Files.Client.PROPERTY_OWNER_DISPLAY_NAME],n.shareOwnerId=t[OC.Files.Client.PROPERTY_OWNER_ID]);var r=t[OC.Files.Client.PROPERTY_SHARE_TYPES];return r&&(n.shareTypes=_.chain(r).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()),n}),e.$el.on("fileActionsReady",function(e){var n=e.$files;_.each(n,function(e){var n=$(e),t=n.attr("data-share-types")||"",i=n.attr("data-share-owner");if(t||i){var r=!1,a=!1;_.each(t.split(",")||[],function(e){(e=parseInt(e,10))===OC.Share.SHARE_TYPE_LINK?r=!0:e===OC.Share.SHARE_TYPE_EMAIL?r=!0:e===OC.Share.SHARE_TYPE_USER?a=!0:e===OC.Share.SHARE_TYPE_GROUP?a=!0:e===OC.Share.SHARE_TYPE_REMOTE?a=!0:e===OC.Share.SHARE_TYPE_CIRCLE?a=!0:e===OC.Share.SHARE_TYPE_ROOM&&(a=!0)}),OCA.Sharing.Util._updateFileActionIcon(n,a,r)}})}),e.$el.on("changeDirectory",function(){OCA.Sharing.sharesLoaded=!1}),n.registerAction({name:"Share",displayName:function(e){if(e&&e.$file){var n=parseInt(e.$file.data("share-types"),10),i=e.$file.data("share-owner-id");if(n>=0||i)return t("core","Shared")}return t("core","Share")},altText:t("core","Share"),mime:"all",order:-150,permissions:OC.PERMISSION_ALL,iconClass:function(e,n){var t=parseInt(n.$file.data("share-types"),10);return t===OC.Share.SHARE_TYPE_EMAIL||t===OC.Share.SHARE_TYPE_LINK?"icon-public":"icon-shared"},icon:function(e,n){var t=n.$file.data("share-owner-id");if(t)return OC.generateUrl("/avatar/".concat(t,"/32"))},type:OCA.Files.FileActions.TYPE_INLINE,actionHandler:function(n,t){var i=parseInt(t.$file.data("share-permissions"),10);(isNaN(i)||i>0)&&e.showDetailsView(n,"shareTabView")},render:function(e,t,i){return 0!=(parseInt(i.$file.data("permissions"),10)&OC.PERMISSION_SHARE)||i.$file.attr("data-share-owner")?n._defaultRenderAction.call(n,e,t,i):null}});var o=new OCA.Sharing.ShareTabView("shareTabView",{order:-20});o.on("sharesChanged",function(n){var t=n.fileInfoModel,i=e.findFileEl(t.get("name")),r=n.hasLinkShares();n.get("shares").forEach(function(e){e.share_type===OC.Share.SHARE_TYPE_EMAIL&&(r=!0)}),OCA.Sharing.Util._updateFileListDataAttributes(e,i,n),OCA.Sharing.Util._updateFileActionIcon(i,n.hasUserShares(),r)||OC.Share.markFileAsShared(i,!1,!1),t.set({shareTypes:n.getShareTypes(),icon:i.attr("data-icon")})}),e.registerTabView(o);var s=new OCA.Sharing.ShareBreadCrumbView({shareTab:o});e.registerBreadCrumbDetailView(s)}},_updateFileListDataAttributes:function(e,n,t){if("files"!==e.id)if(_.pluck(t.get("shares"),"share_with_displayname").length){var i=_.mapObject(t.get("shares"),function(e){return{shareWith:e.share_with,shareWithDisplayName:e.share_with_displayname}});n.attr("data-share-recipient-data",JSON.stringify(i))}else n.removeAttr("data-share-recipient-data")},_updateFileActionIcon:function(e,n,t){return!!(n||t||e.attr("data-share-recipient-data")||e.attr("data-share-owner"))&&(OC.Share.markFileAsShared(e,!0,t),!0)},getSharePermissions:function(e){return e.sharePermissions}},OC.Plugins.register("OCA.Files.FileList",OCA.Sharing.Util)},function(e,n,i){var r;r=OCA.Files.DetailTabView.extend({id:"shareTabView",className:"tab shareTabView",initialize:function(e,n){OCA.Files.DetailTabView.prototype.initialize.call(this,e,n),OC.Plugins.attach("OCA.Sharing.ShareTabView",this)},template:function(e){return'<div><div class="dialogContainer"></div><div id="collaborationResources"></div></div>'},getLabel:function(){return t("files_sharing","Sharing")},getIcon:function(){return"icon-shared"},render:function(){var e=this,n=this;if(this._dialog&&(this._dialog.model.off(),this._dialog.remove(),this._dialog=null),this.model){this.$el.html(this.template()),_.isUndefined(this.model.get("sharePermissions"))&&this.model.set("sharePermissions",OCA.Sharing.Util.getSharePermissions(this.model.attributes));var t={itemType:this.model.isDirectory()?"folder":"file",itemSource:this.model.get("id"),possiblePermissions:this.model.get("sharePermissions")},r=new OC.Share.ShareConfigModel,a=new OC.Share.ShareItemModel(t,{configModel:r,fileInfoModel:this.model});this._dialog=new OC.Share.ShareDialogView({configModel:r,model:a}),this.$el.find(".dialogContainer").append(this._dialog.$el),this._dialog.render(),this._dialog.model.fetch(),this._dialog.model.on("change",function(){n.trigger("sharesChanged",a)}),Promise.all([i.e(3),i.e(4)]).then(i.bind(null,14)).then(function(n){var t=new n.Vue({el:"#collaborationResources",render:function(e){return e(n.View)},data:{model:e.model.toJSON()}});e.model.on("change",function(){t.data=e.model.toJSON()})})}else this.$el.empty();this.trigger("rendered")}}),OCA.Sharing.ShareTabView=r},function(e,n){
 /**
  * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at>
  *
index 89978d4c2047062cc60f8f363c3ee34b9af0688a..3ff25ebd6d81065a177540f13324f7d31acfae2f 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/collaborationresourceshandler.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:///./apps/files_sharing/src/additionalScripts.js","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/sharetabview.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharetabview.scss?669d","webpack:///./apps/files_sharing/src/style/sharetabview.scss","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?20f5","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","0","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","__webpack_public_path__","OC","linkTo","__webpack_nonce__","btoa","requestToken","OCP","Collaboration","registerType","action","dialogs","filepicker","f","Files","getClient","getFileInfo","then","status","fileInfo","id","typeString","typeIconClass","useSourceMap","list","toString","this","map","item","content","cssMapping","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","listToStyles","parentId","styles","newStyles","part","css","media","parts","__webpack_exports__","addStylesClient","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","ssrId","styleSheet","cssText","firstChild","createTextNode","newObj","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","insertBefore","OCA","Sharing","_","extend","Client","PROPERTY_SHARE_TYPES","NS_OWNCLOUD","PROPERTY_OWNER_ID","PROPERTY_OWNER_DISPLAY_NAME","Util","attach","fileList","Share","fileActions","oldCreateRow","_createRow","fileData","tr","apply","arguments","sharePermissions","getSharePermissions","permissions","actions","Comment","Details","Goto","attr","shareOwner","shareOwnerId","mountType","PERMISSION_UPDATE","recipientData","isEmpty","shareTypes","oldElementToFile","elementToFile","$el","split","expirationTimestamp","parseInt","shares","expiration","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","propStat","properties","permissionsProp","PROPERTY_PERMISSIONS","indexOf","shareTypesProp","chain","xmlvalue","namespaceURI","nodeName","textContent","text","on","ev","$files","each","file","$tr","$","hasLink","hasShares","shareType","SHARE_TYPE_LINK","SHARE_TYPE_EMAIL","SHARE_TYPE_USER","SHARE_TYPE_GROUP","SHARE_TYPE_REMOTE","SHARE_TYPE_CIRCLE","SHARE_TYPE_ROOM","_updateFileActionIcon","sharesLoaded","registerAction","displayName","altText","mime","PERMISSION_ALL","iconClass","FileActions","TYPE_INLINE","actionHandler","fileName","context","$file","isNaN","showDetailsView","render","actionSpec","isDefault","PERMISSION_SHARE","_defaultRenderAction","shareTab","ShareTabView","order","shareModel","fileInfoModel","findFileEl","hasLinkShares","forEach","share","share_type","_updateFileListDataAttributes","hasUserShares","markFileAsShared","set","getShareTypes","icon","registerTabView","breadCrumbSharingDetailView","ShareBreadCrumbView","registerBreadCrumbDetailView","pluck","mapObject","shareWith","share_with","shareWithDisplayName","share_with_displayname","removeAttr","Plugins","register","DetailTabView","className","initialize","template","params","getLabel","getIcon","_this","self","_dialog","model","off","html","isUndefined","attributes","itemType","isDirectory","itemSource","possiblePermissions","configModel","ShareConfigModel","ShareItemModel","ShareDialogView","find","append","fetch","trigger","Resources","vm","Vue","el","h","View","toJSON","empty","BreadCrumbView","Backbone","tagName","events","click","_dirInfo","_shareTab","dirInfo","path","removeClass","hide","isShared","addClass","show","delegateEvents","_onClick","preventDefault","FileInfoModel","getSharesWithCurrentItem","App","locals","add","default"],"mappings":"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","file":"additionalScripts.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0,\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"files_sharing.\" + chunkId + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\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('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}, () => {\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}, false);\n\t\t});\n\t},\n\t/** used in \"Link to a {typeString}\" */\n\ttypeString: t('files_sharing', 'file'),\n\ttypeIconClass: 'icon-files-dark'\n});\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\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 ' + item[2] + '{' + content + '}';\n      } else {\n        return content;\n      }\n    }).join('');\n  }; // import a list of modules into the list\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (i = 0; i < modules.length; i++) {\n      var item = modules[i]; // skip already imported module\n      // this implementation is not 100% perfect for weird media query combinations\n      // when a module is imported multiple times with different media queries.\n      // I hope this will never occur (Hey this way we have smaller bundles)\n\n      if (item[0] == null || !alreadyImportedModules[item[0]]) {\n        if (mediaQuery && !item[2]) {\n          item[2] = mediaQuery;\n        } else if (mediaQuery) {\n          item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n        }\n\n        list.push(item);\n      }\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || '';\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=' + cssMapping.sourceRoot + 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,' + base64;\n  return '/*# ' + 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","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\n__webpack_nonce__ = btoa(OC.requestToken);\n\nimport './share'\nimport './sharetabview'\nimport './sharebreadcrumbview'\n\nimport './style/sharetabview.scss'\nimport './style/sharebreadcrumb.scss'\n\nimport './collaborationresourceshandler.js'\n\nwindow.OCA.Sharing = OCA.Sharing;\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\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\t/**\n\t * @namespace\n\t */\n\tOCA.Sharing.Util = {\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\t\t\t\t\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\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: '',\n\t\t\t\taltText: t('core', 'Share'),\n\t\t\t\tmime: 'all',\n\t\t\t\tpermissions: OC.PERMISSION_ALL,\n\t\t\t\ticonClass: 'icon-shared',\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, 'shareTabView');\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\tvar shareTab = new OCA.Sharing.ShareTabView('shareTabView', {order: -20});\n\t\t\t// detect changes and change the matching list entry\n\t\t\tshareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar fileInfoModel = shareModel.fileInfoModel;\n\t\t\t\tvar $tr = fileList.findFileEl(fileInfoModel.get('name'));\n\n\t\t\t\t// We count email shares as link share\n\t\t\t\tvar hasLinkShares = shareModel.hasLinkShares();\n\t\t\t\tshareModel.get('shares').forEach(function (share) {\n\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\thasLinkShares = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tOCA.Sharing.Util._updateFileListDataAttributes(fileList, $tr, shareModel);\n\t\t\t\tif (!OCA.Sharing.Util._updateFileActionIcon($tr, shareModel.hasUserShares(), hasLinkShares)) {\n\t\t\t\t\t// remove icon, if applicable\n\t\t\t\t\tOC.Share.markFileAsShared($tr, false, false);\n\t\t\t\t}\n\n\t\t\t\t// FIXME: this is too convoluted. We need to get rid of the above updates\n\t\t\t\t// and only ever update the model and let the events take care of rerendering\n\t\t\t\tfileInfoModel.set({\n\t\t\t\t\tshareTypes: shareModel.getShareTypes(),\n\t\t\t\t\t// in case markFileAsShared decided to change the icon,\n\t\t\t\t\t// we need to modify the model\n\t\t\t\t\t// (FIXME: yes, this is hacky)\n\t\t\t\t\ticon: $tr.attr('data-icon')\n\t\t\t\t});\n\t\t\t});\n\t\t\tfileList.registerTabView(shareTab);\n\n\t\t\tvar breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView({shareTab: shareTab});\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}\n\t\t\telse {\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 * @return {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\tOC.Share.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 * @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","/*\n * Copyright (c) 2015\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\n/* @global Handlebars */\n\n(function() {\n\tvar TEMPLATE =\n\t\t'<div>' +\n\t\t'<div class=\"dialogContainer\"></div>' +\n\t\t'<div id=\"collaborationResources\"></div>' +\n\t\t'</div>';\n\n\t/**\n\t * @memberof OCA.Sharing\n\t */\n\tvar ShareTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Sharing.ShareTabView.prototype */ {\n\t\tid: 'shareTabView',\n\t\tclassName: 'tab shareTabView',\n\n\t\tinitialize: function(name, options) {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.call(this, name, options);\n\t\t\tOC.Plugins.attach('OCA.Sharing.ShareTabView', this);\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\treturn \tTEMPLATE;\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('files_sharing', 'Sharing');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-shared';\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tif (this._dialog) {\n\t\t\t\t// remove/destroy older instance\n\t\t\t\tthis._dialog.model.off();\n\t\t\t\tthis._dialog.remove();\n\t\t\t\tthis._dialog = null;\n\t\t\t}\n\n\t\t\tif (this.model) {\n\t\t\t\tthis.$el.html(this.template());\n\n\t\t\t\tif (_.isUndefined(this.model.get('sharePermissions'))) {\n\t\t\t\t\tthis.model.set('sharePermissions', OCA.Sharing.Util.getSharePermissions(this.model.attributes));\n\t\t\t\t}\n\n\t\t\t\t// TODO: the model should read these directly off the passed fileInfoModel\n\t\t\t\tvar attributes = {\n\t\t\t\t\titemType: this.model.isDirectory() ? 'folder' : 'file',\n\t\t\t\t   \titemSource: this.model.get('id'),\n\t\t\t\t\tpossiblePermissions: this.model.get('sharePermissions')\n\t\t\t\t};\n\t\t\t\tvar configModel = new OC.Share.ShareConfigModel();\n\t\t\t\tvar shareModel = new OC.Share.ShareItemModel(attributes, {\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tfileInfoModel: this.model\n\t\t\t\t});\n\t\t\t\tthis._dialog = new OC.Share.ShareDialogView({\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tmodel: shareModel\n\t\t\t\t});\n\t\t\t\tthis.$el.find('.dialogContainer').append(this._dialog.$el);\n\t\t\t\tthis._dialog.render();\n\t\t\t\tthis._dialog.model.fetch();\n\t\t\t\tthis._dialog.model.on('change', function() {\n\t\t\t\t\tself.trigger('sharesChanged', shareModel);\n\t\t\t\t});\n\n\t\t\t\timport('./collaborationresources').then((Resources) => {\n\t\t\t\t\tvar vm = new Resources.Vue({\n\t\t\t\t\t\tel: '#collaborationResources',\n\t\t\t\t\t\trender: h => h(Resources.View),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tmodel: this.model.toJSON()\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tthis.model.on('change', () => { vm.data = this.model.toJSON() })\n\n\t\t\t\t})\n\n\t\t\t} else {\n\t\t\t\tthis.$el.empty();\n\t\t\t\t// TODO: render placeholder text?\n\t\t\t}\n\t\t\tthis.trigger('rendered');\n\t\t}\n\t});\n\n\tOCA.Sharing.ShareTabView = ShareTabView;\n})();\n\n","/* global Handlebars, OC */\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\tvar 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\t/** @type OCA.Sharing.ShareTabView */\n\t\t_shareTab: undefined,\n\n\t\tinitialize: function(options) {\n\t\t\tthis._shareTab = options.shareTab;\n\t\t},\n\n\t\trender: function(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\tvar 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: function(e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo);\n\t\t\tvar 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\t\t\tthis._shareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar shareTypes = [];\n\t\t\t\tvar shares = shareModel.getSharesWithCurrentItem();\n\n\t\t\t\tfor(var i = 0; i < shares.length; i++) {\n\t\t\t\t\tif (shareTypes.indexOf(shares[i].share_type) === -1) {\n\t\t\t\t\t\tshareTypes.push(shares[i].share_type);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shareModel.hasLinkShares()) {\n\t\t\t\t\tshareTypes.push(OC.Share.SHARE_TYPE_LINK);\n\t\t\t\t}\n\n\t\t\t\t// Since the dirInfo isn't updated we need to do this dark hackery\n\t\t\t\tself._dirInfo.shareTypes = shareTypes;\n\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo\n\t\t\t\t});\n\t\t\t});\n\t\t\tOCA.Files.App.fileList.showDetailsView(fileInfoModel, 'shareTabView');\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/lib/loader.js!./sharetabview.scss\");\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(\"03f26936\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".app-files .shareTabView {\\n  min-height: 100px; }\\n\\n.share-autocomplete-item {\\n  display: flex; }\\n  .share-autocomplete-item.merged {\\n    margin-left: 32px; }\\n  .share-autocomplete-item .autocomplete-item-text {\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    white-space: nowrap;\\n    text-overflow: ellipsis;\\n    overflow: hidden;\\n    line-height: 32px;\\n    vertical-align: middle;\\n    flex-grow: 1; }\\n    .share-autocomplete-item .autocomplete-item-text .ui-state-highlight {\\n      border: none;\\n      margin: 0; }\\n  .share-autocomplete-item.with-description .autocomplete-item-text {\\n    line-height: 100%; }\\n  .share-autocomplete-item .autocomplete-item-details {\\n    display: block;\\n    line-height: 130%;\\n    font-size: 90%;\\n    opacity: 0.7; }\\n  .share-autocomplete-item .icon {\\n    opacity: .7;\\n    margin-right: 7px; }\\n  .share-autocomplete-item .icon.search-globally {\\n    width: 32px;\\n    height: 32px;\\n    margin-right: 0; }\\n\\n.shareTabView .oneline {\\n  white-space: nowrap;\\n  position: relative; }\\n\\n.shareTabView .shareWithLoading {\\n  padding-left: 10px;\\n  right: 35px;\\n  top: 3px; }\\n\\n.shareTabView .shareWithConfirm {\\n  position: absolute;\\n  right: 2px;\\n  top: 6px;\\n  padding: 14px;\\n  opacity: 0.5; }\\n\\n.shareTabView .shareWithField:focus ~ .shareWithConfirm {\\n  opacity: 1; }\\n\\n.shareTabView .linkMore {\\n  position: absolute;\\n  right: -7px;\\n  top: -4px;\\n  padding: 14px; }\\n\\n.shareTabView .popovermenu {\\n  /* Border above last entry '+ Add another share' to separate it from current link settings */ }\\n  .shareTabView .popovermenu .linkPassMenu .share-pass-submit {\\n    width: auto !important; }\\n  .shareTabView .popovermenu .linkPassMenu .icon-loading-small {\\n    background-color: var(--color-main-background);\\n    position: absolute;\\n    right: 8px;\\n    margin: 3px;\\n    padding: 10px;\\n    width: 32px;\\n    height: 32px;\\n    z-index: 10; }\\n  .shareTabView .popovermenu .datepicker {\\n    margin-left: 35px; }\\n  .shareTabView .popovermenu .share-add input.share-note-delete {\\n    border: none;\\n    background-color: transparent;\\n    width: 44px !important;\\n    padding: 0;\\n    flex: 0 0 44px;\\n    margin-left: auto; }\\n    .shareTabView .popovermenu .share-add input.share-note-delete.hidden {\\n      display: none; }\\n  .shareTabView .popovermenu .share-note-form span.icon-note {\\n    position: relative; }\\n  .shareTabView .popovermenu .share-note-form textarea.share-note {\\n    margin: 0;\\n    width: 200px;\\n    min-height: 70px;\\n    resize: none; }\\n    .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit {\\n      position: absolute;\\n      width: 44px !important;\\n      height: 44px;\\n      bottom: 0px;\\n      right: 10px;\\n      margin: 0;\\n      background-color: transparent;\\n      border: none;\\n      opacity: .7; }\\n      .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:hover, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:focus, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:active {\\n        opacity: 1; }\\n  .shareTabView .popovermenu .share-note-form.share-note-link {\\n    margin-bottom: 10px; }\\n  .shareTabView .popovermenu .new-share {\\n    border-top: 1px solid var(--color-border); }\\n\\n.shareTabView .linkPass .icon-loading-small {\\n  margin-right: 0px; }\\n\\n.shareTabView .icon {\\n  background-size: 16px 16px; }\\n\\n.shareTabView .shareWithList .icon-loading-small:not(.hidden) + span,\\n.shareTabView .linkShareView .icon-loading-small:not(.hidden) + input + label:before {\\n  /* Hide if loader is visible */\\n  display: none !important; }\\n\\n.shareTabView input[type='checkbox'] {\\n  margin: 0 3px 0 8px;\\n  vertical-align: middle; }\\n\\n.shareTabView input[type='text'].shareWithField, .shareTabView input[type='text'].emailField {\\n  width: 100%;\\n  box-sizing: border-box;\\n  padding-right: 32px;\\n  text-overflow: ellipsis; }\\n\\n.shareTabView input[type='text'].linkText .shareTabView input[type='password'].linkPassText, .shareTabView input[type='password'].passwordField {\\n  width: 180px !important; }\\n\\n.shareTabView form {\\n  font-size: 100%;\\n  margin-left: 0;\\n  margin-right: 0; }\\n\\n.shareTabView .share-note {\\n  border-radius: var(--border-radius);\\n  margin-bottom: 10px;\\n  margin-left: 37px; }\\n\\n.shareWithList {\\n  list-style-type: none;\\n  display: flex;\\n  flex-direction: column; }\\n  .shareWithList > li {\\n    height: 44px;\\n    white-space: normal;\\n    display: inline-flex;\\n    align-items: center;\\n    position: relative; }\\n    .shareWithList > li .avatar {\\n      width: 32px;\\n      height: 32px;\\n      background-color: var(--color-primary); }\\n  .shareWithList .unshare img {\\n    vertical-align: text-bottom;\\n    /* properly align icons */ }\\n  .shareWithList .sharingOptionsGroup {\\n    margin-left: auto;\\n    display: flex;\\n    align-items: center;\\n    white-space: nowrap; }\\n    .shareWithList .sharingOptionsGroup > .icon:not(.hidden),\\n    .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden) {\\n      padding: 14px;\\n      height: 44px;\\n      width: 44px;\\n      opacity: .5;\\n      display: block;\\n      cursor: pointer; }\\n      .shareWithList .sharingOptionsGroup > .icon:not(.hidden):hover, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):focus, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):active,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):hover,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):focus,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):active {\\n        opacity: .7; }\\n    .shareWithList .sharingOptionsGroup > .share-menu {\\n      position: relative;\\n      display: block; }\\n  .shareWithList .username {\\n    padding: 0 8px;\\n    overflow: hidden;\\n    white-space: nowrap;\\n    text-overflow: ellipsis; }\\n\\n.ui-autocomplete {\\n  /* limit dropdown height to 6 1/2 entries */\\n  max-height: calc(36px * 6.5);\\n  overflow-y: auto;\\n  overflow-x: hidden;\\n  z-index: 1550 !important; }\\n\\n.notCreatable {\\n  padding-left: 12px;\\n  padding-top: 12px;\\n  color: var(--color-text-lighter); }\\n\\n.contactsmenu-popover {\\n  left: -6px;\\n  right: auto;\\n  padding: 3px 6px;\\n  top: 100%;\\n  margin-top: 0; }\\n  .contactsmenu-popover li.hidden {\\n    display: none !important; }\\n  .contactsmenu-popover:after {\\n    left: 8px;\\n    right: auto; }\\n\\n.reshare,\\n#link label,\\n#expiration label {\\n  display: inline-flex;\\n  align-items: center; }\\n  .reshare .avatar,\\n  #link label .avatar,\\n  #expiration label .avatar {\\n    margin-right: 5px; }\\n\\n.resharerInfoView.subView {\\n  position: relative; }\\n\", \"\"]);\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/lib/loader.js!./sharebreadcrumb.scss\");\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(\"27ced9ca\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**\\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 */\\ndiv.crumb span.icon-shared,\\ndiv.crumb span.icon-public {\\n  display: inline-block;\\n  cursor: pointer;\\n  opacity: 0.2;\\n  margin-right: 6px; }\\n\\ndiv.crumb span.icon-shared.shared,\\ndiv.crumb span.icon-public.shared {\\n  opacity: 0.7; }\\n\", \"\"]);\n\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./apps/files_sharing/src/collaborationresourceshandler.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:///./apps/files_sharing/src/additionalScripts.js","webpack:///./apps/files_sharing/src/share.js","webpack:///./apps/files_sharing/src/sharetabview.js","webpack:///./apps/files_sharing/src/sharebreadcrumbview.js","webpack:///./apps/files_sharing/src/style/sharetabview.scss?669d","webpack:///./apps/files_sharing/src/style/sharetabview.scss","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss?20f5","webpack:///./apps/files_sharing/src/style/sharebreadcrumb.scss"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","installedModules","0","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","error","Error","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","__webpack_public_path__","OC","linkTo","__webpack_nonce__","btoa","requestToken","OCP","Collaboration","registerType","action","dialogs","filepicker","f","Files","getClient","getFileInfo","then","status","fileInfo","id","typeString","typeIconClass","useSourceMap","list","toString","this","map","item","content","cssMapping","sourceMapping","sourceMap","unescape","encodeURIComponent","JSON","stringify","sourceURLs","sources","source","sourceRoot","concat","join","cssWithMappingToString","mediaQuery","alreadyImportedModules","listToStyles","parentId","styles","newStyles","part","css","media","parts","__webpack_exports__","addStylesClient","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","ssrId","styleSheet","cssText","firstChild","createTextNode","newObj","textStore","replaceText","index","replacement","filter","Boolean","cssNode","childNodes","insertBefore","OCA","Sharing","_","extend","Client","PROPERTY_SHARE_TYPES","NS_OWNCLOUD","PROPERTY_OWNER_ID","PROPERTY_OWNER_DISPLAY_NAME","Util","attach","fileList","Share","fileActions","oldCreateRow","_createRow","fileData","tr","apply","arguments","sharePermissions","getSharePermissions","permissions","actions","Comment","Details","Goto","attr","shareOwner","shareOwnerId","mountType","PERMISSION_UPDATE","recipientData","isEmpty","shareTypes","oldElementToFile","elementToFile","$el","split","expirationTimestamp","parseInt","shares","expiration","oldGetWebdavProperties","_getWebdavProperties","props","filesClient","addFileInfoParser","response","propStat","properties","permissionsProp","PROPERTY_PERMISSIONS","indexOf","shareTypesProp","chain","xmlvalue","namespaceURI","nodeName","textContent","text","on","ev","$files","each","file","$tr","$","hasLink","hasShares","shareType","SHARE_TYPE_LINK","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","FileActions","TYPE_INLINE","actionHandler","isNaN","showDetailsView","render","actionSpec","isDefault","PERMISSION_SHARE","_defaultRenderAction","shareTab","ShareTabView","shareModel","fileInfoModel","findFileEl","hasLinkShares","forEach","share","share_type","_updateFileListDataAttributes","hasUserShares","markFileAsShared","set","getShareTypes","registerTabView","breadCrumbSharingDetailView","ShareBreadCrumbView","registerBreadCrumbDetailView","pluck","mapObject","shareWith","share_with","shareWithDisplayName","share_with_displayname","removeAttr","Plugins","register","DetailTabView","className","initialize","template","params","getLabel","getIcon","_this","self","_dialog","model","off","html","isUndefined","attributes","itemType","isDirectory","itemSource","possiblePermissions","configModel","ShareConfigModel","ShareItemModel","ShareDialogView","find","append","fetch","trigger","Resources","vm","Vue","el","h","View","toJSON","empty","BreadCrumbView","Backbone","tagName","events","click","_dirInfo","_shareTab","dirInfo","path","removeClass","hide","isShared","addClass","show","delegateEvents","_onClick","preventDefault","FileInfoModel","getSharesWithCurrentItem","App","locals","add","default"],"mappings":"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","file":"additionalScripts.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0,\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"files_sharing.\" + chunkId + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\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('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}, () => {\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}, false);\n\t\t});\n\t},\n\t/** used in \"Link to a {typeString}\" */\n\ttypeString: t('files_sharing', 'file'),\n\ttypeIconClass: 'icon-files-dark'\n});\n","\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\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 ' + item[2] + '{' + content + '}';\n      } else {\n        return content;\n      }\n    }).join('');\n  }; // import a list of modules into the list\n\n\n  list.i = function (modules, mediaQuery) {\n    if (typeof modules === 'string') {\n      modules = [[null, modules, '']];\n    }\n\n    var alreadyImportedModules = {};\n\n    for (var i = 0; i < this.length; i++) {\n      var id = this[i][0];\n\n      if (id != null) {\n        alreadyImportedModules[id] = true;\n      }\n    }\n\n    for (i = 0; i < modules.length; i++) {\n      var item = modules[i]; // skip already imported module\n      // this implementation is not 100% perfect for weird media query combinations\n      // when a module is imported multiple times with different media queries.\n      // I hope this will never occur (Hey this way we have smaller bundles)\n\n      if (item[0] == null || !alreadyImportedModules[item[0]]) {\n        if (mediaQuery && !item[2]) {\n          item[2] = mediaQuery;\n        } else if (mediaQuery) {\n          item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';\n        }\n\n        list.push(item);\n      }\n    }\n  };\n\n  return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n  var content = item[1] || '';\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=' + cssMapping.sourceRoot + 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,' + base64;\n  return '/*# ' + 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","__webpack_public_path__ = OC.linkTo('files_sharing', 'js/dist/');\n__webpack_nonce__ = btoa(OC.requestToken);\n\nimport './share'\nimport './sharetabview'\nimport './sharebreadcrumbview'\n\nimport './style/sharetabview.scss'\nimport './style/sharebreadcrumb.scss'\n\nimport './collaborationresourceshandler.js'\n\nwindow.OCA.Sharing = OCA.Sharing;\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\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\t/**\n\t * @namespace\n\t */\n\tOCA.Sharing.Util = {\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\t\t\t\t\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\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('core', 'Shared')\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn t('core', 'Share')\n\t\t\t\t},\n\t\t\t\taltText: t('core', '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, 'shareTabView');\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\tvar shareTab = new OCA.Sharing.ShareTabView('shareTabView', {order: -20});\n\t\t\t// detect changes and change the matching list entry\n\t\t\tshareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar fileInfoModel = shareModel.fileInfoModel;\n\t\t\t\tvar $tr = fileList.findFileEl(fileInfoModel.get('name'));\n\n\t\t\t\t// We count email shares as link share\n\t\t\t\tvar hasLinkShares = shareModel.hasLinkShares();\n\t\t\t\tshareModel.get('shares').forEach(function (share) {\n\t\t\t\t\tif (share.share_type === OC.Share.SHARE_TYPE_EMAIL) {\n\t\t\t\t\t\thasLinkShares = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tOCA.Sharing.Util._updateFileListDataAttributes(fileList, $tr, shareModel);\n\t\t\t\tif (!OCA.Sharing.Util._updateFileActionIcon($tr, shareModel.hasUserShares(), hasLinkShares)) {\n\t\t\t\t\t// remove icon, if applicable\n\t\t\t\t\tOC.Share.markFileAsShared($tr, false, false);\n\t\t\t\t}\n\n\t\t\t\t// FIXME: this is too convoluted. We need to get rid of the above updates\n\t\t\t\t// and only ever update the model and let the events take care of rerendering\n\t\t\t\tfileInfoModel.set({\n\t\t\t\t\tshareTypes: shareModel.getShareTypes(),\n\t\t\t\t\t// in case markFileAsShared decided to change the icon,\n\t\t\t\t\t// we need to modify the model\n\t\t\t\t\t// (FIXME: yes, this is hacky)\n\t\t\t\t\ticon: $tr.attr('data-icon')\n\t\t\t\t});\n\t\t\t});\n\t\t\tfileList.registerTabView(shareTab);\n\n\t\t\tvar breadCrumbSharingDetailView = new OCA.Sharing.ShareBreadCrumbView({shareTab: shareTab});\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}\n\t\t\telse {\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 * @return {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\tOC.Share.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 * @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","/*\n * Copyright (c) 2015\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\n/* @global Handlebars */\n\n(function() {\n\tvar TEMPLATE =\n\t\t'<div>' +\n\t\t'<div class=\"dialogContainer\"></div>' +\n\t\t'<div id=\"collaborationResources\"></div>' +\n\t\t'</div>';\n\n\t/**\n\t * @memberof OCA.Sharing\n\t */\n\tvar ShareTabView = OCA.Files.DetailTabView.extend(\n\t\t/** @lends OCA.Sharing.ShareTabView.prototype */ {\n\t\tid: 'shareTabView',\n\t\tclassName: 'tab shareTabView',\n\n\t\tinitialize: function(name, options) {\n\t\t\tOCA.Files.DetailTabView.prototype.initialize.call(this, name, options);\n\t\t\tOC.Plugins.attach('OCA.Sharing.ShareTabView', this);\n\t\t},\n\n\t\ttemplate: function(params) {\n\t\t\treturn \tTEMPLATE;\n\t\t},\n\n\t\tgetLabel: function() {\n\t\t\treturn t('files_sharing', 'Sharing');\n\t\t},\n\n\t\tgetIcon: function() {\n\t\t\treturn 'icon-shared';\n\t\t},\n\n\t\t/**\n\t\t * Renders this details view\n\t\t */\n\t\trender: function() {\n\t\t\tvar self = this;\n\t\t\tif (this._dialog) {\n\t\t\t\t// remove/destroy older instance\n\t\t\t\tthis._dialog.model.off();\n\t\t\t\tthis._dialog.remove();\n\t\t\t\tthis._dialog = null;\n\t\t\t}\n\n\t\t\tif (this.model) {\n\t\t\t\tthis.$el.html(this.template());\n\n\t\t\t\tif (_.isUndefined(this.model.get('sharePermissions'))) {\n\t\t\t\t\tthis.model.set('sharePermissions', OCA.Sharing.Util.getSharePermissions(this.model.attributes));\n\t\t\t\t}\n\n\t\t\t\t// TODO: the model should read these directly off the passed fileInfoModel\n\t\t\t\tvar attributes = {\n\t\t\t\t\titemType: this.model.isDirectory() ? 'folder' : 'file',\n\t\t\t\t   \titemSource: this.model.get('id'),\n\t\t\t\t\tpossiblePermissions: this.model.get('sharePermissions')\n\t\t\t\t};\n\t\t\t\tvar configModel = new OC.Share.ShareConfigModel();\n\t\t\t\tvar shareModel = new OC.Share.ShareItemModel(attributes, {\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tfileInfoModel: this.model\n\t\t\t\t});\n\t\t\t\tthis._dialog = new OC.Share.ShareDialogView({\n\t\t\t\t\tconfigModel: configModel,\n\t\t\t\t\tmodel: shareModel\n\t\t\t\t});\n\t\t\t\tthis.$el.find('.dialogContainer').append(this._dialog.$el);\n\t\t\t\tthis._dialog.render();\n\t\t\t\tthis._dialog.model.fetch();\n\t\t\t\tthis._dialog.model.on('change', function() {\n\t\t\t\t\tself.trigger('sharesChanged', shareModel);\n\t\t\t\t});\n\n\t\t\t\timport('./collaborationresources').then((Resources) => {\n\t\t\t\t\tvar vm = new Resources.Vue({\n\t\t\t\t\t\tel: '#collaborationResources',\n\t\t\t\t\t\trender: h => h(Resources.View),\n\t\t\t\t\t\tdata: {\n\t\t\t\t\t\t\tmodel: this.model.toJSON()\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tthis.model.on('change', () => { vm.data = this.model.toJSON() })\n\n\t\t\t\t})\n\n\t\t\t} else {\n\t\t\t\tthis.$el.empty();\n\t\t\t\t// TODO: render placeholder text?\n\t\t\t}\n\t\t\tthis.trigger('rendered');\n\t\t}\n\t});\n\n\tOCA.Sharing.ShareTabView = ShareTabView;\n})();\n\n","/* global Handlebars, OC */\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\tvar 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\t/** @type OCA.Sharing.ShareTabView */\n\t\t_shareTab: undefined,\n\n\t\tinitialize: function(options) {\n\t\t\tthis._shareTab = options.shareTab;\n\t\t},\n\n\t\trender: function(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\tvar 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: function(e) {\n\t\t\te.preventDefault();\n\n\t\t\tvar fileInfoModel = new OCA.Files.FileInfoModel(this._dirInfo);\n\t\t\tvar 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\t\t\tthis._shareTab.on('sharesChanged', function(shareModel) {\n\t\t\t\tvar shareTypes = [];\n\t\t\t\tvar shares = shareModel.getSharesWithCurrentItem();\n\n\t\t\t\tfor(var i = 0; i < shares.length; i++) {\n\t\t\t\t\tif (shareTypes.indexOf(shares[i].share_type) === -1) {\n\t\t\t\t\t\tshareTypes.push(shares[i].share_type);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shareModel.hasLinkShares()) {\n\t\t\t\t\tshareTypes.push(OC.Share.SHARE_TYPE_LINK);\n\t\t\t\t}\n\n\t\t\t\t// Since the dirInfo isn't updated we need to do this dark hackery\n\t\t\t\tself._dirInfo.shareTypes = shareTypes;\n\n\t\t\t\tself.render({\n\t\t\t\t\tdirInfo: self._dirInfo\n\t\t\t\t});\n\t\t\t});\n\t\t\tOCA.Files.App.fileList.showDetailsView(fileInfoModel, 'shareTabView');\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/lib/loader.js!./sharetabview.scss\");\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(\"03f26936\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \".app-files .shareTabView {\\n  min-height: 100px; }\\n\\n.share-autocomplete-item {\\n  display: flex; }\\n  .share-autocomplete-item.merged {\\n    margin-left: 32px; }\\n  .share-autocomplete-item .autocomplete-item-text {\\n    margin-left: 10px;\\n    margin-right: 10px;\\n    white-space: nowrap;\\n    text-overflow: ellipsis;\\n    overflow: hidden;\\n    line-height: 32px;\\n    vertical-align: middle;\\n    flex-grow: 1; }\\n    .share-autocomplete-item .autocomplete-item-text .ui-state-highlight {\\n      border: none;\\n      margin: 0; }\\n  .share-autocomplete-item.with-description .autocomplete-item-text {\\n    line-height: 100%; }\\n  .share-autocomplete-item .autocomplete-item-details {\\n    display: block;\\n    line-height: 130%;\\n    font-size: 90%;\\n    opacity: 0.7; }\\n  .share-autocomplete-item .icon {\\n    opacity: .7;\\n    margin-right: 7px; }\\n  .share-autocomplete-item .icon.search-globally {\\n    width: 32px;\\n    height: 32px;\\n    margin-right: 0; }\\n\\n.shareTabView .oneline {\\n  white-space: nowrap;\\n  position: relative; }\\n\\n.shareTabView .shareWithLoading {\\n  padding-left: 10px;\\n  right: 35px;\\n  top: 3px; }\\n\\n.shareTabView .shareWithConfirm {\\n  position: absolute;\\n  right: 2px;\\n  top: 6px;\\n  padding: 14px;\\n  opacity: 0.5; }\\n\\n.shareTabView .shareWithField:focus ~ .shareWithConfirm {\\n  opacity: 1; }\\n\\n.shareTabView .linkMore {\\n  position: absolute;\\n  right: -7px;\\n  top: -4px;\\n  padding: 14px; }\\n\\n.shareTabView .popovermenu {\\n  /* Border above last entry '+ Add another share' to separate it from current link settings */ }\\n  .shareTabView .popovermenu .linkPassMenu .share-pass-submit {\\n    width: auto !important; }\\n  .shareTabView .popovermenu .linkPassMenu .icon-loading-small {\\n    background-color: var(--color-main-background);\\n    position: absolute;\\n    right: 8px;\\n    margin: 3px;\\n    padding: 10px;\\n    width: 32px;\\n    height: 32px;\\n    z-index: 10; }\\n  .shareTabView .popovermenu .datepicker {\\n    margin-left: 35px; }\\n  .shareTabView .popovermenu .share-add input.share-note-delete {\\n    border: none;\\n    background-color: transparent;\\n    width: 44px !important;\\n    padding: 0;\\n    flex: 0 0 44px;\\n    margin-left: auto; }\\n    .shareTabView .popovermenu .share-add input.share-note-delete.hidden {\\n      display: none; }\\n  .shareTabView .popovermenu .share-note-form span.icon-note {\\n    position: relative; }\\n  .shareTabView .popovermenu .share-note-form textarea.share-note {\\n    margin: 0;\\n    width: 200px;\\n    min-height: 70px;\\n    resize: none; }\\n    .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit {\\n      position: absolute;\\n      width: 44px !important;\\n      height: 44px;\\n      bottom: 0px;\\n      right: 10px;\\n      margin: 0;\\n      background-color: transparent;\\n      border: none;\\n      opacity: .7; }\\n      .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:hover, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:focus, .shareTabView .popovermenu .share-note-form textarea.share-note + input.share-note-submit:active {\\n        opacity: 1; }\\n  .shareTabView .popovermenu .share-note-form.share-note-link {\\n    margin-bottom: 10px; }\\n  .shareTabView .popovermenu .new-share {\\n    border-top: 1px solid var(--color-border); }\\n\\n.shareTabView .linkPass .icon-loading-small {\\n  margin-right: 0px; }\\n\\n.shareTabView .icon {\\n  background-size: 16px 16px; }\\n\\n.shareTabView .shareWithList .icon-loading-small:not(.hidden) + span,\\n.shareTabView .linkShareView .icon-loading-small:not(.hidden) + input + label:before {\\n  /* Hide if loader is visible */\\n  display: none !important; }\\n\\n.shareTabView input[type='checkbox'] {\\n  margin: 0 3px 0 8px;\\n  vertical-align: middle; }\\n\\n.shareTabView input[type='text'].shareWithField, .shareTabView input[type='text'].emailField {\\n  width: 100%;\\n  box-sizing: border-box;\\n  padding-right: 32px;\\n  text-overflow: ellipsis; }\\n\\n.shareTabView input[type='text'].linkText .shareTabView input[type='password'].linkPassText, .shareTabView input[type='password'].passwordField {\\n  width: 180px !important; }\\n\\n.shareTabView form {\\n  font-size: 100%;\\n  margin-left: 0;\\n  margin-right: 0; }\\n\\n.shareTabView .share-note {\\n  border-radius: var(--border-radius);\\n  margin-bottom: 10px;\\n  margin-left: 37px; }\\n\\n.shareWithList {\\n  list-style-type: none;\\n  display: flex;\\n  flex-direction: column; }\\n  .shareWithList > li {\\n    height: 44px;\\n    white-space: normal;\\n    display: inline-flex;\\n    align-items: center;\\n    position: relative; }\\n    .shareWithList > li .avatar {\\n      width: 32px;\\n      height: 32px;\\n      background-color: var(--color-primary); }\\n  .shareWithList .unshare img {\\n    vertical-align: text-bottom;\\n    /* properly align icons */ }\\n  .shareWithList .sharingOptionsGroup {\\n    margin-left: auto;\\n    display: flex;\\n    align-items: center;\\n    white-space: nowrap; }\\n    .shareWithList .sharingOptionsGroup > .icon:not(.hidden),\\n    .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden) {\\n      padding: 14px;\\n      height: 44px;\\n      width: 44px;\\n      opacity: .5;\\n      display: block;\\n      cursor: pointer; }\\n      .shareWithList .sharingOptionsGroup > .icon:not(.hidden):hover, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):focus, .shareWithList .sharingOptionsGroup > .icon:not(.hidden):active,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):hover,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):focus,\\n      .shareWithList .sharingOptionsGroup .share-menu > .icon:not(.hidden):active {\\n        opacity: .7; }\\n    .shareWithList .sharingOptionsGroup > .share-menu {\\n      position: relative;\\n      display: block; }\\n  .shareWithList .username {\\n    padding: 0 8px;\\n    overflow: hidden;\\n    white-space: nowrap;\\n    text-overflow: ellipsis; }\\n\\n.ui-autocomplete {\\n  /* limit dropdown height to 6 1/2 entries */\\n  max-height: calc(36px * 6.5);\\n  overflow-y: auto;\\n  overflow-x: hidden;\\n  z-index: 1550 !important; }\\n\\n.notCreatable {\\n  padding-left: 12px;\\n  padding-top: 12px;\\n  color: var(--color-text-lighter); }\\n\\n.contactsmenu-popover {\\n  left: -6px;\\n  right: auto;\\n  padding: 3px 6px;\\n  top: 100%;\\n  margin-top: 0; }\\n  .contactsmenu-popover li.hidden {\\n    display: none !important; }\\n  .contactsmenu-popover:after {\\n    left: 8px;\\n    right: auto; }\\n\\n.reshare,\\n#link label,\\n#expiration label {\\n  display: inline-flex;\\n  align-items: center; }\\n  .reshare .avatar,\\n  #link label .avatar,\\n  #expiration label .avatar {\\n    margin-right: 5px; }\\n\\n.resharerInfoView.subView {\\n  position: relative; }\\n\", \"\"]);\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/lib/loader.js!./sharebreadcrumb.scss\");\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(\"27ced9ca\", content, true, {});","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"/**\\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 */\\ndiv.crumb span.icon-shared,\\ndiv.crumb span.icon-public {\\n  display: inline-block;\\n  cursor: pointer;\\n  opacity: 0.2;\\n  margin-right: 6px; }\\n\\ndiv.crumb span.icon-shared.shared,\\ndiv.crumb span.icon-public.shared {\\n  opacity: 0.7; }\\n\", \"\"]);\n\n"],"sourceRoot":""}
\ No newline at end of file
index c42f130d53ab6f40821dd6e0f5fc049048416c97..32ca20f3e624305994e5d9e20cf97a8a4c25a36b 100644 (file)
                                permissions: OC.PERMISSION_ALL,
                                iconClass: function(fileName, context) {
                                        var shareType = parseInt(context.$file.data('share-types'), 10)
-                                       if (shareType === OC.Share.SHARE_TYPE_EMAIL) {
+                                       if (shareType === OC.Share.SHARE_TYPE_EMAIL
+                                               || shareType === OC.Share.SHARE_TYPE_LINK) {
                                                return 'icon-public'
                                        }
                                        return 'icon-shared'
index 39472fdeedbe31a4fb4ebdda1be121c1ebb9324c..a4aa6eea746df85f16ee192c38c0a36c7f812fed 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/**
  * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
  *
  * This file is licensed under the Affero General Public License version 3
@@ -149,7 +149,7 @@ describe('OCA.Sharing.Util tests', function() {
                        expect($action.find('.icon').hasClass('icon-public')).toEqual(true);
                        expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-public.svg');
                });
-               it('shows owner name when owner is available', function() {
+               it('shows owner name when owner is available but no icons', function() {
                        var $action, $tr;
                        fileList.setFiles([{
                                id: 1,
@@ -167,7 +167,7 @@ describe('OCA.Sharing.Util tests', function() {
                        $tr = fileList.$el.find('tbody tr:first');
                        $action = $tr.find('.action-share');
                        expect($action.find('>span').text().trim()).toEqual('Shared by User One');
-                       expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
+                       expect($action.find('.icon').hasClass('icon-shared')).toEqual(false);
                        expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
                        expect(OC.basename(getImageUrl($tr.find('.filename .thumbnail')))).toEqual('folder-shared.svg');
                });
@@ -389,7 +389,7 @@ describe('OCA.Sharing.Util tests', function() {
                        });
 
                        expect($action.find('>span').text().trim()).toEqual('Shared by User One');
-                       expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
+                       expect($action.find('.icon').hasClass('icon-shared')).toEqual(false);
                        expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
                });
                it('keep share text after unsharing reshare', function() {
@@ -422,7 +422,7 @@ describe('OCA.Sharing.Util tests', function() {
                        expect($tr.attr('data-share-recipient-data')).not.toBeDefined();
 
                        expect($action.find('>span').text().trim()).toEqual('Shared by User One');
-                       expect($action.find('.icon').hasClass('icon-shared')).toEqual(true);
+                       expect($action.find('.icon').hasClass('icon-shared')).toEqual(false);
                        expect($action.find('.icon').hasClass('icon-public')).toEqual(false);
                });
        });