diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2019-04-16 11:12:25 +0300 |
---|---|---|
committer | Backportbot <backportbot-noreply@rullzer.com> | 2019-04-16 14:54:04 +0300 |
commit | 090c520d49e5bae911342e76a21f38287398564a (patch) | |
tree | 46d915428fbfe87138dc08e9e010eb6b6f347830 /apps | |
parent | d2e536837571ac6e0358497ba1d7d26e9cd7de39 (diff) |
Improve the share link password error feedback with a red border
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_sharing/js/dist/additionalScripts.js | 2 | ||||
-rw-r--r-- | apps/files_sharing/js/dist/additionalScripts.js.map | 2 | ||||
-rw-r--r-- | apps/files_sharing/src/style/sharetabview.scss | 6 |
3 files changed, 8 insertions, 2 deletions
diff --git a/apps/files_sharing/js/dist/additionalScripts.js b/apps/files_sharing/js/dist/additionalScripts.js index 27139c9e866..984b3324ef8 100644 --- a/apps/files_sharing/js/dist/additionalScripts.js +++ b/apps/files_sharing/js/dist/additionalScripts.js @@ -20,5 +20,5 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ -!function(){"use strict";var e=OC.Backbone.View.extend({tagName:"span",events:{click:"_onClick"},_dirInfo:void 0,_shareTab:void 0,initialize:function(e){this._shareTab=e.shareTab},render:function(e){if(this._dirInfo=e.dirInfo||null,null===this._dirInfo||"/"===this._dirInfo.path&&""===this._dirInfo.name)this.$el.removeClass("shared icon-public icon-shared"),this.$el.hide();else{var n=e.dirInfo&&e.dirInfo.shareTypes&&e.dirInfo.shareTypes.length>0;this.$el.removeClass("shared icon-public icon-shared"),n?(this.$el.addClass("shared"),-1!==e.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK)?this.$el.addClass("icon-public"):this.$el.addClass("icon-shared")):this.$el.addClass("icon-shared"),this.$el.show(),this.delegateEvents()}return this},_onClick:function(e){e.preventDefault();var n=new OCA.Files.FileInfoModel(this._dirInfo),t=this;n.on("change",function(){t.render({dirInfo:t._dirInfo})}),this._shareTab.on("sharesChanged",function(e){for(var n=[],i=e.getSharesWithCurrentItem(),r=0;r<i.length;r++)-1===n.indexOf(i[r].share_type)&&n.push(i[r].share_type);e.hasLinkShares()&&n.push(OC.Share.SHARE_TYPE_LINK),t._dirInfo.shareTypes=n,t.render({dirInfo:t._dirInfo})}),OCA.Files.App.fileList.showDetailsView(n,"shareTabView")}});OCA.Sharing.ShareBreadCrumbView=e}()},function(e,n,t){var i=t(8);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("03f26936",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,".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",""])},function(e,n,t){var i=t(10);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("27ced9ca",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,"/**\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",""])}]); +!function(){"use strict";var e=OC.Backbone.View.extend({tagName:"span",events:{click:"_onClick"},_dirInfo:void 0,_shareTab:void 0,initialize:function(e){this._shareTab=e.shareTab},render:function(e){if(this._dirInfo=e.dirInfo||null,null===this._dirInfo||"/"===this._dirInfo.path&&""===this._dirInfo.name)this.$el.removeClass("shared icon-public icon-shared"),this.$el.hide();else{var n=e.dirInfo&&e.dirInfo.shareTypes&&e.dirInfo.shareTypes.length>0;this.$el.removeClass("shared icon-public icon-shared"),n?(this.$el.addClass("shared"),-1!==e.dirInfo.shareTypes.indexOf(OC.Share.SHARE_TYPE_LINK)?this.$el.addClass("icon-public"):this.$el.addClass("icon-shared")):this.$el.addClass("icon-shared"),this.$el.show(),this.delegateEvents()}return this},_onClick:function(e){e.preventDefault();var n=new OCA.Files.FileInfoModel(this._dirInfo),t=this;n.on("change",function(){t.render({dirInfo:t._dirInfo})}),this._shareTab.on("sharesChanged",function(e){for(var n=[],i=e.getSharesWithCurrentItem(),r=0;r<i.length;r++)-1===n.indexOf(i[r].share_type)&&n.push(i[r].share_type);e.hasLinkShares()&&n.push(OC.Share.SHARE_TYPE_LINK),t._dirInfo.shareTypes=n,t.render({dirInfo:t._dirInfo})}),OCA.Files.App.fileList.showDetailsView(n,"shareTabView")}});OCA.Sharing.ShareBreadCrumbView=e}()},function(e,n,t){var i=t(8);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("03f26936",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,".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 input.error {\n border-color: var(--color-error) !important; }\n .shareTabView .popovermenu .linkPassMenu input.error[type=\"submit\"] {\n border-left: none; }\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",""])},function(e,n,t){var i=t(10);"string"==typeof i&&(i=[[e.i,i,""]]),i.locals&&(e.exports=i.locals);(0,t(2).default)("27ced9ca",i,!0,{})},function(e,n,t){(e.exports=t(1)(!1)).push([e.i,"/**\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",""])}]); //# sourceMappingURL=additionalScripts.js.map
\ No newline at end of file diff --git a/apps/files_sharing/js/dist/additionalScripts.js.map b/apps/files_sharing/js/dist/additionalScripts.js.map index 6690589aaba..19bb65160c4 100644 --- a/apps/files_sharing/js/dist/additionalScripts.js.map +++ b/apps/files_sharing/js/dist/additionalScripts.js.map @@ -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","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(t('files_sharing', 'Link to a file'), function (f) {\n\t\t\t\tconst client = OC.Files.getClient();\n\t\t\t\tclient.getFileInfo(f).then((status, fileInfo) => {\n\t\t\t\t\tresolve(fileInfo.id);\n\t\t\t\t}, () => {\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}, false);\n\t\t});\n\t},\n\ttypeString: t('files_sharing', 'Link to a 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 +{"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(t('files_sharing', 'Link to a file'), function (f) {\n\t\t\t\tconst client = OC.Files.getClient();\n\t\t\t\tclient.getFileInfo(f).then((status, fileInfo) => {\n\t\t\t\t\tresolve(fileInfo.id);\n\t\t\t\t}, () => {\n\t\t\t\t\treject();\n\t\t\t\t});\n\t\t\t}, false);\n\t\t});\n\t},\n\ttypeString: t('files_sharing', 'Link to a 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 input.error {\\n border-color: var(--color-error) !important; }\\n .shareTabView .popovermenu .linkPassMenu input.error[type=\\\"submit\\\"] {\\n border-left: none; }\\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 diff --git a/apps/files_sharing/src/style/sharetabview.scss b/apps/files_sharing/src/style/sharetabview.scss index b3753f3f321..d10808a7488 100644 --- a/apps/files_sharing/src/style/sharetabview.scss +++ b/apps/files_sharing/src/style/sharetabview.scss @@ -73,6 +73,12 @@ } .popovermenu { .linkPassMenu { + input.error { + border-color: var(--color-error) !important; + &[type="submit"] { + border-left: none; + } + } .share-pass-submit { width: auto !important; } |