From 11ce064c38ba4016481fc419abd39e262c0c3705 Mon Sep 17 00:00:00 2001 From: Pawel Boguslawski Date: Thu, 2 Jul 2026 15:07:36 +0200 Subject: [PATCH 1/3] fix(sharing): hide "Shared by link" when sharing by link is disabled Related: https://github.com/nextcloud/server/issues/50323 Author-Change-Id: IB#1156670 Signed-off-by: Pawel Boguslawski --- apps/files_sharing/src/files_views/shares.ts | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/apps/files_sharing/src/files_views/shares.ts b/apps/files_sharing/src/files_views/shares.ts index 112bc2909988b..629936161b868 100644 --- a/apps/files_sharing/src/files_views/shares.ts +++ b/apps/files_sharing/src/files_views/shares.ts @@ -15,6 +15,7 @@ import { loadState } from '@nextcloud/initial-state' import { t } from '@nextcloud/l10n' import { ShareType } from '@nextcloud/sharing' import { getContents, isFileRequest } from '../services/SharingService.ts' +import { getCapabilities } from '@nextcloud/capabilities' export const sharesViewId = 'shareoverview' export const sharedWithYouViewId = 'sharingin' @@ -80,22 +81,25 @@ export default () => { })) } - Navigation.register(new View({ - id: sharingByLinksViewId, - name: t('files_sharing', 'Shared by link'), - caption: t('files_sharing', 'List of files that are shared by link.'), + // Don't show this view if sharing by link is disabled. + if (getCapabilities().files_sharing.public.enabled) { + Navigation.register(new View({ + id: sharingByLinksViewId, + name: t('files_sharing', 'Shared by link'), + caption: t('files_sharing', 'List of files that are shared by link.'), - emptyTitle: t('files_sharing', 'No shared links'), - emptyCaption: t('files_sharing', 'Files and folders you shared by link will show up here'), + emptyTitle: t('files_sharing', 'No shared links'), + emptyCaption: t('files_sharing', 'Files and folders you shared by link will show up here'), - icon: LinkSvg, - order: 3, - parent: sharesViewId, + icon: LinkSvg, + order: 3, + parent: sharesViewId, - columns: [], + columns: [], - getContents: () => getContents(false, true, false, false, [ShareType.Link]), - })) + getContents: () => getContents(false, true, false, false, [ShareType.Link]), + })) + } Navigation.register(new View({ id: fileRequestViewId, From 5ff5bbb0ef4b9d8fd2d8bd2b03b9b883dd7a0a43 Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Tue, 18 Aug 2026 21:52:32 +0200 Subject: [PATCH 2/3] fix: adjust code to comply with ESLint and align code with tests Signed-off-by: Ferdinand Thiessen --- .../src/files_views/shares.spec.ts | 23 ++++++++++ apps/files_sharing/src/files_views/shares.ts | 4 +- .../admin-settings-allow-links.spec.ts | 38 +++++++++++++++++ .../support/sections/FilesNavigationPage.ts | 42 +++++++++++++++++++ 4 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 tests/playwright/e2e/files_sharing/admin-settings-allow-links.spec.ts diff --git a/apps/files_sharing/src/files_views/shares.spec.ts b/apps/files_sharing/src/files_views/shares.spec.ts index 43c9fdf589851..e6b5a25222ad6 100644 --- a/apps/files_sharing/src/files_views/shares.spec.ts +++ b/apps/files_sharing/src/files_views/shares.spec.ts @@ -14,9 +14,13 @@ import registerSharingViews from './shares.ts' import '../main.ts' +const getCapabilities = vi.hoisted(() => vi.fn()) +vi.mock('@nextcloud/capabilities', () => ({ getCapabilities })) + const navigation = getNavigation() beforeEach(() => { vi.resetAllMocks() + getCapabilities.mockReturnValue({ files_sharing: { public: { enabled: true } } }) const views = [...navigation.views] for (const view of views) { @@ -91,6 +95,25 @@ describe('Sharing views definition', () => { const sharedWithOthersView = navigation.views.find((view) => view.id === 'sharingout') expect(sharedWithOthersView).toBeUndefined() }) + + test.for([ + ['disabled', { files_sharing: { public: { enabled: false } } }], + ['not available', {}], + ] as const)('Shared by link view is not registered if public sharing is %s', ([, capabilities]) => { + vi.spyOn(navigation, 'register') + getCapabilities.mockReturnValue(capabilities) + + expect(navigation.views.length).toBe(0) + registerSharingViews() + expect(navigation.register).toHaveBeenCalledTimes(6) + expect(navigation.views.length).toBe(6) + + const sharesChildViews = navigation.views.filter((view) => view.parent === 'shareoverview') as View[] + expect(sharesChildViews.length).toBe(5) + + const sharingByLinksView = navigation.views.find((view) => view.id === 'sharinglinks') + expect(sharingByLinksView).toBeUndefined() + }) }) describe('Sharing views contents', () => { diff --git a/apps/files_sharing/src/files_views/shares.ts b/apps/files_sharing/src/files_views/shares.ts index 629936161b868..dc901a9b2d7b2 100644 --- a/apps/files_sharing/src/files_views/shares.ts +++ b/apps/files_sharing/src/files_views/shares.ts @@ -10,12 +10,12 @@ import AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw' import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw' import LinkSvg from '@mdi/svg/svg/link.svg?raw' import DeleteSvg from '@mdi/svg/svg/trash-can-outline.svg?raw' +import { getCapabilities } from '@nextcloud/capabilities' import { getNavigation, View } from '@nextcloud/files' import { loadState } from '@nextcloud/initial-state' import { t } from '@nextcloud/l10n' import { ShareType } from '@nextcloud/sharing' import { getContents, isFileRequest } from '../services/SharingService.ts' -import { getCapabilities } from '@nextcloud/capabilities' export const sharesViewId = 'shareoverview' export const sharedWithYouViewId = 'sharingin' @@ -82,7 +82,7 @@ export default () => { } // Don't show this view if sharing by link is disabled. - if (getCapabilities().files_sharing.public.enabled) { + if (getCapabilities().files_sharing?.public.enabled) { Navigation.register(new View({ id: sharingByLinksViewId, name: t('files_sharing', 'Shared by link'), diff --git a/tests/playwright/e2e/files_sharing/admin-settings-allow-links.spec.ts b/tests/playwright/e2e/files_sharing/admin-settings-allow-links.spec.ts new file mode 100644 index 0000000000000..97d0968de3ed6 --- /dev/null +++ b/tests/playwright/e2e/files_sharing/admin-settings-allow-links.spec.ts @@ -0,0 +1,38 @@ +/* + * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +import { runOcc } from '@nextcloud/e2e-test-server' +import { expect, test } from '../../support/fixtures/files-page.ts' + +/** + * The "Shared by link" view lists link shares, so it must only be registered + * while public link sharing is allowed instance-wide. + */ +test.describe('files_sharing: Shared by link view', () => { + test.afterAll(async () => { + await runOcc(['config:app:delete', 'core', 'shareapi_allow_links']) + }) + + test('is listed while link sharing is enabled', async ({ filesListPage, filesNavigation }) => { + await runOcc(['config:app:set', '--value', 'yes', 'core', 'shareapi_allow_links']) + + await filesListPage.open('shareoverview') + await filesNavigation.expandNavigationEntry('Shares') + + await expect(filesNavigation.getNavigationEntry('Shared by link')).toBeVisible() + }) + + test('is not listed when link sharing is disabled', async ({ filesListPage, filesNavigation }) => { + await runOcc(['config:app:set', '--value', 'no', 'core', 'shareapi_allow_links']) + + await filesListPage.open('shareoverview') + await filesNavigation.expandNavigationEntry('Shares') + + // The sibling views are expanded and visible, so a missing entry is really + // an unregistered view and not just a collapsed parent. + await expect(filesNavigation.getNavigationEntry('Shared with others')).toBeVisible() + await expect(filesNavigation.getNavigationEntry('Shared by link')).toHaveCount(0) + }) +}) diff --git a/tests/playwright/support/sections/FilesNavigationPage.ts b/tests/playwright/support/sections/FilesNavigationPage.ts index 23f32fafd986c..5a448d1852469 100644 --- a/tests/playwright/support/sections/FilesNavigationPage.ts +++ b/tests/playwright/support/sections/FilesNavigationPage.ts @@ -5,6 +5,8 @@ import type { Locator, Page } from '@playwright/test' +import { expect } from '@playwright/test' + /** * The left-hand files navigation (the view list: All files, Favorites, Recent, …). * Distinct from {@link NavigationHeaderPage}, which models the top app bar. @@ -52,6 +54,46 @@ export class FilesNavigationPage { .click() } + /** + * A navigation entry addressed by its visible name, e.g. "Shared by link". + * + * @param name - The name of the view as shown in the navigation + */ + getNavigationEntry(name: string): Locator { + return this.navigation().getByRole('link', { name, exact: true }) + } + + /** + * The list item wrapping a navigation entry - it also contains the entry's + * collapse toggle and, once expanded, its child entries. + * + * @param name - The name of the view as shown in the navigation + */ + getNavigationEntryItem(name: string): Locator { + return this.navigation() + .getByRole('listitem') + .filter({ has: this.page.getByRole('link', { name, exact: true }) }) + .first() + } + + /** + * Expand a collapsible navigation entry by name to reveal its child entries. + * + * @param name - The name of the view as shown in the navigation + */ + async expandNavigationEntry(name: string): Promise { + const item = this.getNavigationEntryItem(name) + await expect(item).toBeVisible() + + await expect(async () => { + const toggle = item.getByRole('button', { name: 'Open menu' }) + if (await toggle.isVisible()) { + await toggle.click() + } + await expect(item.getByRole('button', { name: 'Collapse menu' })).toBeVisible() + }).toPass() + } + /** The "Files settings" dialog opened from the navigation footer. */ settingsDialog(): Locator { return this.page.getByRole('dialog', { name: 'Files settings' }) From 464a1d7fd6da5b6dfaee02df783eceab79df7478 Mon Sep 17 00:00:00 2001 From: nextcloud-command Date: Wed, 30 Sep 2026 20:20:31 +0000 Subject: [PATCH 3/3] chore(assets): Recompile assets Signed-off-by: nextcloud-command --- dist/files_sharing-init.js | 4 ++-- dist/files_sharing-init.js.map | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dist/files_sharing-init.js b/dist/files_sharing-init.js index c9cb856fe28f6..b7383eea57832 100644 --- a/dist/files_sharing-init.js +++ b/dist/files_sharing-init.js @@ -1,2 +1,2 @@ -(()=>{var t={95798(t,e,n){"use strict";var i=n(45967),r=n(77815),s=n(65659),a=n(44368),o=n(71323),l=n(53334),c=n(63814);const d='',u='',p='',h='';var f=n(81222),m=n(40715),g=n(87543);const v="shareoverview",A="sharingin",w="sharingout",b="sharinglinks",y="deletedshares",_="pendingshares",C=()=>{const t=(0,i.bh)();t.register(new i.Ss({id:v,name:(0,l.t)("files_sharing","Shares"),caption:(0,l.t)("files_sharing","Overview of shared files."),emptyTitle:(0,l.t)("files_sharing","No shares"),emptyCaption:(0,l.t)("files_sharing","Files and folders you shared or have been shared with you will show up here"),icon:u,order:20,columns:[],getContents:()=>(0,g.h)()})),t.register(new i.Ss({id:A,name:(0,l.t)("files_sharing","Shared with you"),caption:(0,l.t)("files_sharing","List of files that are shared with you."),emptyTitle:(0,l.t)("files_sharing","Nothing shared with you yet"),emptyCaption:(0,l.t)("files_sharing","Files and folders others shared with you will show up here"),icon:'',order:1,parent:v,columns:[],getContents:()=>(0,g.h)(!0,!1,!1,!1)})),0!==(0,f.C)("files","storageStats",{quota:-1}).quota&&t.register(new i.Ss({id:w,name:(0,l.t)("files_sharing","Shared with others"),caption:(0,l.t)("files_sharing","List of files that you shared with others."),emptyTitle:(0,l.t)("files_sharing","Nothing shared yet"),emptyCaption:(0,l.t)("files_sharing","Files and folders you shared will show up here"),icon:d,order:2,parent:v,columns:[],getContents:()=>(0,g.h)(!1,!0,!1,!1)})),t.register(new i.Ss({id:b,name:(0,l.t)("files_sharing","Shared by link"),caption:(0,l.t)("files_sharing","List of files that are shared by link."),emptyTitle:(0,l.t)("files_sharing","No shared links"),emptyCaption:(0,l.t)("files_sharing","Files and folders you shared by link will show up here"),icon:h,order:3,parent:v,columns:[],getContents:()=>(0,g.h)(!1,!0,!1,!1,[m.I.Link])})),t.register(new i.Ss({id:"filerequest",name:(0,l.t)("files_sharing","File requests"),caption:(0,l.t)("files_sharing","List of file requests."),emptyTitle:(0,l.t)("files_sharing","No file requests"),emptyCaption:(0,l.t)("files_sharing","File requests you have created will show up here"),icon:p,order:4,parent:v,columns:[],getContents:()=>(0,g.h)(!1,!0,!1,!1,[m.I.Link,m.I.Email]).then(({folder:t,contents:e})=>({folder:t,contents:e.filter(t=>(0,g.C)(t.attributes?.["share-attributes"]||[]))}))})),t.register(new i.Ss({id:y,name:(0,l.t)("files_sharing","Deleted shares"),caption:(0,l.t)("files_sharing","List of shares you left."),emptyTitle:(0,l.t)("files_sharing","No deleted shares"),emptyCaption:(0,l.t)("files_sharing","Shares you have left will show up here"),icon:'',order:5,parent:v,columns:[],getContents:()=>(0,g.h)(!1,!1,!1,!0)})),t.register(new i.Ss({id:_,name:(0,l.t)("files_sharing","Pending shares"),caption:(0,l.t)("files_sharing","List of unapproved shares."),emptyTitle:(0,l.t)("files_sharing","No pending shares"),emptyCaption:(0,l.t)("files_sharing","Shares you have received but not approved will show up here"),icon:'',order:6,parent:v,columns:[],getContents:()=>(0,g.h)(!1,!1,!0,!1)}))};n.dn(C);const x={id:"accept-share",displayName:({nodes:t})=>(0,l.zw)("files_sharing","Accept share","Accept shares",t.length),iconSvgInline:()=>s,enabled:({nodes:t,view:e})=>t.length>0&&e.id===_,async exec({nodes:t}){try{const e=t[0],n=!!e.attributes.remote,i=(0,c.KT)("apps/files_sharing/api/v1/{shareBase}/pending/{id}",{shareBase:n?"remote_shares":"shares",id:e.attributes["share-id"]});return await a.Ay.post(i),(0,o.Ic)("files:node:deleted",e),!0}catch{return!1}},async execBatch({nodes:t,view:e,folder:n,contents:i}){return Promise.all(t.map(t=>this.exec({nodes:[t],view:e,folder:n,contents:i})))},order:1,inline:()=>!0},E={id:"files_sharing:open-in-files",displayName:()=>(0,l.Tl)("files_sharing","Open in Files"),iconSvgInline:()=>"",enabled:({view:t})=>[v,A,w,b].includes(t.id),async exec({nodes:t}){const e=t[0].type===i.pt.Folder;return window.OCP.Files.Router.goToRoute(null,{view:"files",fileid:String(t[0].fileid)},{dir:e?t[0].path:t[0].dirname,openfile:e?void 0:"true"}),null},order:-1e3,default:i.m9.HIDDEN},D={id:"reject-share",displayName:({nodes:t})=>(0,l.zw)("files_sharing","Reject share","Reject shares",t.length),iconSvgInline:()=>'',enabled:({nodes:t,view:e})=>e.id===_&&0!==t.length&&!t.some(t=>t.attributes.remote_id&&t.attributes.share_type===m.I.RemoteGroup),async exec({nodes:t}){try{const e=t[0],n=e.attributes.remote?"remote_shares":"shares",i=e.attributes["share-id"];let r;return r=0===e.attributes.accepted?(0,c.KT)("apps/files_sharing/api/v1/{shareBase}/pending/{id}",{shareBase:n,id:i}):(0,c.KT)("apps/files_sharing/api/v1/{shareBase}/{id}",{shareBase:n,id:i}),await a.Ay.delete(r),(0,o.Ic)("files:node:deleted",e),!0}catch{return!1}},async execBatch({nodes:t,view:e,folder:n,contents:i}){return Promise.all(t.map(t=>this.exec({nodes:[t],view:e,folder:n,contents:i})))},order:2,inline:()=>!0},N={id:"restore-share",displayName:({nodes:t})=>(0,l.zw)("files_sharing","Restore share","Restore shares",t.length),iconSvgInline:()=>'',enabled:({nodes:t,view:e})=>t.length>0&&e.id===y,async exec({nodes:t}){try{const e=t[0],n=(0,c.KT)("apps/files_sharing/api/v1/deletedshares/{id}",{id:e.attributes["share-id"]});return await a.Ay.post(n),(0,o.Ic)("files:node:deleted",e),!0}catch{return!1}},async execBatch({nodes:t,view:e,folder:n,contents:i}){return Promise.all(t.map(t=>this.exec({nodes:[t],view:e,folder:n,contents:i})))},order:1,inline:()=>!0};var S=n(21777),L=n(85168),F=n(32505);var T=n(85072),P=n.n(T),I=n(97825),H=n.n(I),V=n(77659),M=n.n(V),O=n(55056),k=n.n(O),R=n(10540),$=n.n(R),B=n(41113),j=n.n(B),U=n(89275),q={};function z(t){return t.attributes?.["is-federated"]??!1}q.styleTagTransform=j(),q.setAttributes=k(),q.insert=M().bind(null,"head"),q.domAPI=H(),q.insertStyleElement=$(),P()(U.A,q),U.A&&U.A.locals&&U.A.locals;const G={id:"sharing-status",displayName({nodes:t}){const e=t[0];return Object.values(e?.attributes?.["share-types"]||{}).flat().length>0||e.owner!==(0,S.HW)()?.uid||z(e)?(0,l.Tl)("files_sharing","Shared"):""},title({nodes:t}){const e=t[0];if(e.owner&&(e.owner!==(0,S.HW)()?.uid||z(e))){const t=e?.attributes?.["owner-display-name"];return(0,l.Tl)("files_sharing","Shared by {ownerDisplayName}",{ownerDisplayName:t})}if(Object.values(e?.attributes?.["share-types"]||{}).flat().length>1)return(0,l.Tl)("files_sharing","Shared multiple times with different people");const n=e.attributes.sharees?.sharee;if(!n)return(0,l.Tl)("files_sharing","Sharing options");const i=[n].flat()[0];switch(i?.type){case m.I.User:return(0,l.Tl)("files_sharing","Shared with {user}",{user:i["display-name"]});case m.I.Group:return(0,l.Tl)("files_sharing","Shared with group {group}",{group:i["display-name"]??i.id});default:return(0,l.Tl)("files_sharing","Shared with others")}},iconSvgInline({nodes:t}){const e=t[0],n=Object.values(e?.attributes?.["share-types"]||{}).flat();return Array.isArray(e.attributes?.["share-types"])&&e.attributes?.["share-types"].length>1?u:n.includes(m.I.Link)||n.includes(m.I.Email)?h:n.includes(m.I.Group)||n.includes(m.I.RemoteGroup)?d:n.includes(m.I.Team)?'':e.owner&&(e.owner!==(0,S.HW)()?.uid||z(e))?function(t,e=!1){const n=`${e?`/avatar/guest/${t}`:`/avatar/${t}`}/32${!0===window?.matchMedia?.("(prefers-color-scheme: dark)")?.matches||null!==document.querySelector("[data-themes*=dark]")?"/dark":""}${e?"":"?guestFallback=true"}`;return``}(e.owner,z(e)):u},enabled({nodes:t}){if(1!==t.length)return!1;if((0,F.f)())return!1;const e=t[0],n=e.attributes?.["share-types"];return!!(Array.isArray(n)&&n.length>0)||!(e.owner===(0,S.HW)()?.uid&&!z(e))||0!==(e.permissions&i.aX.SHARE)&&0!==(e.permissions&i.aX.READ)},async exec({nodes:t}){const e=t[0];return 0!==(e.permissions&i.aX.READ)?((0,i.dC)().open(e,"sharing"),null):((0,L.Qg)((0,l.Tl)("files_sharing","You do not have enough permissions to share this file.")),null)},inline:()=>!0};var W=n(26422),K=n(85471),Y=n(41944),Z=n(74095),X=n(82182);const J=document.getElementsByTagName("head")[0].getAttribute("data-user"),Q=(document.getElementsByTagName("head")[0].getAttribute("data-user-displayname"),void 0!==J&&J),tt=(0,K.pM)({__name:"FileListFilterAccount",props:{filter:null},setup(t){const e=t,n=Q,i=(0,K.KR)(""),r=(0,K.KR)([]),s=(0,K.KR)([]);(0,K.wB)(s,()=>{const t=s.value.map(({id:t,displayName:e})=>({uid:t,displayName:e}));e.filter.setAccounts(t.length>0?t:void 0)}),(0,K.sV)(()=>{u(e.filter.availableAccounts),s.value=r.value.filter(({id:t})=>e.filter.filterAccounts?.some(({uid:e})=>e===t))??[],e.filter.addEventListener("accounts-updated",u),e.filter.addEventListener("reset",d),e.filter.addEventListener("deselect",c)}),(0,K.hi)(()=>{e.filter.removeEventListener("accounts-updated",u),e.filter.removeEventListener("reset",d),e.filter.removeEventListener("deselect",c)});const a=(0,K.EW)(()=>{if(!i.value)return[...r.value].sort(o);const t=i.value.toLocaleLowerCase().trim().split(" ");return r.value.filter(e=>t.every(t=>e.user.toLocaleLowerCase().includes(t)||e.displayName.toLocaleLowerCase().includes(t))).sort(o)});function o(t,e){return t.id===n?-1:e.id===n?1:t.displayName.localeCompare(e.displayName)}function c(t){const e=t.detail;s.value=s.value.filter(({id:t})=>t!==e)}function d(){s.value=[],i.value=""}function u(t){t instanceof CustomEvent&&(t=t.detail),r.value=t.map(({uid:t,displayName:e})=>({displayName:e,id:t,user:t}))}return{__sfc:!0,props:e,currentUserId:n,accountFilter:i,availableAccounts:r,selectedAccounts:s,shownAccounts:a,sortAccounts:o,toggleAccount:function(t,e){if(s.value=s.value.filter(({id:e})=>e!==t),e){const e=r.value.find(({id:e})=>e===t);e&&(s.value=[...s.value,e])}},deselect:c,resetFilter:d,setAvailableAccounts:u,t:l.t,NcAvatar:Y.A,NcButton:Z.A,NcTextField:X.A}}});var et=n(15914),nt={};nt.styleTagTransform=j(),nt.setAttributes=k(),nt.insert=M().bind(null,"head"),nt.domAPI=H(),nt.insertStyleElement=$(),P()(et.A,nt);const it=et.A&&et.A.locals?et.A.locals:void 0,rt=(0,n(14486).A)(tt,function(){var t=this,e=t._self._c,n=t._self._setupProxy;return e("div",{class:t.$style.fileListFilterAccount},[n.availableAccounts.length>1?e(n.NcTextField,{attrs:{type:"search",label:n.t("files_sharing","Filter accounts")},model:{value:n.accountFilter,callback:function(t){n.accountFilter=t},expression:"accountFilter"}}):t._e(),t._v(" "),t._l(n.shownAccounts,function(i){return e(n.NcButton,{key:i.id,attrs:{alignment:"start",pressed:n.selectedAccounts.includes(i),variant:"tertiary",wide:""},on:{"update:pressed":function(t){return n.toggleAccount(i.id,t)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(n.NcAvatar,t._b({class:t.$style.fileListFilterAccount__avatar,attrs:{size:24,"disable-menu":"","hide-status":""}},"NcAvatar",i,!1))]},proxy:!0}],null,!0)},[t._v("\n\t\t"+t._s(i.displayName)+"\n\t\t"),i.id===n.currentUserId?e("span",{class:t.$style.fileListFilterAccount__currentUser},[t._v("\n\t\t\t("+t._s(n.t("files","you"))+")\n\t\t")]):t._e()])})],2)},[],!1,function(t){this.$style=it.locals||it},null,null).exports;function st(t,e,n){return(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function at(t,e,n){(function(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")})(t,e),e.set(t,n)}function ot(t,e){return t.get(ct(t,e))}function lt(t,e,n){return t.set(ct(t,e),n),n}function ct(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}const dt="files_sharing-file-list-filter-account";var ut=new WeakMap,pt=new WeakMap;class ht extends i.L3{constructor(){super("files_sharing:account",100),at(this,ut,void 0),at(this,pt,void 0),st(this,"displayName",(0,l.t)("files_sharing","People")),st(this,"iconSvgInline",''),st(this,"tagName",dt),lt(ut,this,[]),(0,o.B1)("files:list:updated",({contents:t})=>{this.updateAvailableAccounts(t)})}get availableAccounts(){return ot(ut,this)}get filterAccounts(){return ot(pt,this)}filter(t){if(!ot(pt,this)||0===ot(pt,this).length)return t;const e=ot(pt,this).map(({uid:t})=>t);return t.filter(t=>{if("trashbin"===window.OCP.Files.Router.params.view){const n=t.attributes?.["trashbin-deleted-by-id"];return!(!n||!e.includes(n))}if(t.owner&&e.includes(t.owner))return!0;const n=t.attributes.sharees?.sharee;return!(!n||![n].flat().some(({id:t})=>e.includes(t)))||!t.owner&&!n})}reset(){this.dispatchEvent(new CustomEvent("reset"))}setAccounts(t){lt(pt,this,t);let e=[];ot(pt,this)&&ot(pt,this).length>0&&(e=ot(pt,this).map(({displayName:t,uid:e})=>({text:t,user:e,onclick:()=>this.dispatchEvent(new CustomEvent("deselect",{detail:e}))}))),this.updateChips(e),this.filterUpdated()}updateAvailableAccounts(t){const e=new Map;for(const n of t){const t=n.owner;t&&!e.has(t)&&e.set(t,{uid:t,displayName:n.attributes["owner-display-name"]??n.owner});const i=[n.attributes.sharees?.sharee].flat().filter(Boolean);for(const t of[i].flat())""!==t.id&&(t.type!==m.I.User&&t.type!==m.I.Remote||e.has(t.id)||e.set(t.id,{uid:t.id,displayName:t["display-name"]}));const r=n.attributes?.["trashbin-deleted-by-id"];r&&e.set(r,{uid:r,displayName:n.attributes?.["trashbin-deleted-by-display-name"]||r})}lt(ut,this,[...e.values()]),this.dispatchEvent(new CustomEvent("accounts-updated"))}}var ft=n(98469);const mt=new(n(87771).A),gt=(0,K.$V)(()=>Promise.all([n.e(4208),n.e(4655)]).then(()=>n(4655))),vt={id:"file-request",displayName:(0,l.t)("files_sharing","Create file request"),iconSvgInline:p,order:10,enabled:()=>!(0,F.f)()&&!!mt.isPublicUploadEnabled&&mt.isPublicShareAllowed,async handler(t,e){(0,ft.S)(gt,{context:t,content:e})}};C(),(0,i.zj)(vt),(0,r.Yc)("nc:note",{nc:"http://nextcloud.org/ns"}),(0,r.Yc)("nc:sharees",{nc:"http://nextcloud.org/ns"}),(0,r.Yc)("nc:hide-download",{nc:"http://nextcloud.org/ns"}),(0,r.Yc)("nc:share-attributes",{nc:"http://nextcloud.org/ns"}),(0,r.Yc)("oc:share-types",{oc:"http://owncloud.org/ns"}),(0,r.Yc)("ocs:share-permissions",{ocs:"http://open-collaboration-services.org/ns"}),(0,i.Gg)(x),(0,i.Gg)(E),(0,i.Gg)(D),(0,i.Gg)(N),(0,i.Gg)(G),function(){if((0,F.f)())return;const t=(0,W.A)(K.Ay,rt);Object.defineProperty(t.prototype,"attachShadow",{value(){return this}}),Object.defineProperty(t.prototype,"shadowRoot",{get(){return this}}),customElements.define(dt,t),(0,i.cZ)(new ht)}(),function(){let t,e;(0,i.pJ)({id:"note-to-recipient",order:0,enabled:t=>Boolean(t.attributes.note),updated:t=>{e&&e.updateFolder(t)},render:async(i,r)=>{if(void 0===t){const{default:e}=await Promise.all([n.e(4208),n.e(1404)]).then(()=>n(41404));t=K.Ay.extend(e)}e=(new t).$mount(i),e.updateFolder(r)}})}()},87771(t,e,n){"use strict";n.d(e,{A:()=>s});var i=n(87485),r=n(81222);class s{constructor(){var t,e,n;t=this,n=void 0,(e=function(t){var e=function(t){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:e+""}(e="_capabilities"))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,this._capabilities=(0,i.F)()}get defaultPermissions(){return this._capabilities.files_sharing?.default_permissions}get excludeReshareFromEdit(){return!0===this._capabilities.files_sharing?.exclude_reshare_from_edit}get isPublicUploadEnabled(){return!0===this._capabilities.files_sharing?.public?.upload}get federatedShareDocLink(){return window.OC.appConfig.core.federatedCloudShareDoc}get defaultExpirationDate(){if(this.isDefaultExpireDateEnabled){const t=this.linkDefaultExpDays??this.defaultExpireDate;if(null!==t)return new Date((new Date).setDate((new Date).getDate()+t))}return null}get maxExpirationDate(){return this.isDefaultExpireDateEnabled&&null!==this.defaultExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultExpireDate)):null}get defaultInternalExpirationDate(){return this.isDefaultInternalExpireDateEnabled&&null!==this.defaultInternalExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultInternalExpireDate)):null}get defaultRemoteExpirationDateString(){return this.isDefaultRemoteExpireDateEnabled&&null!==this.defaultRemoteExpireDate?new Date((new Date).setDate((new Date).getDate()+this.defaultRemoteExpireDate)):null}get enforcePasswordForPublicLink(){return!0===window.OC.appConfig.core.enforcePasswordForPublicLink}get enableLinkPasswordByDefault(){return!0===window.OC.appConfig.core.enableLinkPasswordByDefault}get isDefaultExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultExpireDateEnforced}get isDefaultExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultExpireDateEnabled}get isDefaultInternalExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnforced}get isDefaultInternalExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultInternalExpireDateEnabled}get isDefaultRemoteExpireDateEnforced(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnforced}get isDefaultRemoteExpireDateEnabled(){return!0===window.OC.appConfig.core.defaultRemoteExpireDateEnabled}get isRemoteShareAllowed(){return!0===window.OC.appConfig.core.remoteShareAllowed}get isFederationEnabled(){return!0===this._capabilities?.files_sharing?.federation?.outgoing}get isPublicShareAllowed(){return!0===this._capabilities?.files_sharing?.public?.enabled}get isMailShareAllowed(){return!0===this._capabilities?.files_sharing?.sharebymail?.enabled&&!0===this.isPublicShareAllowed}get defaultExpireDate(){return window.OC.appConfig.core.defaultExpireDate}get linkDefaultExpDays(){return this._capabilities?.files_sharing?.public?.expire_date?.default_days??null}get defaultInternalExpireDate(){return window.OC.appConfig.core.defaultInternalExpireDate}get defaultRemoteExpireDate(){return window.OC.appConfig.core.defaultRemoteExpireDate}get isResharingAllowed(){return!0===window.OC.appConfig.core.resharingAllowed}get isPasswordForMailSharesRequired(){return!0===this._capabilities.files_sharing?.sharebymail?.password?.enforced}get shouldAlwaysShowUnique(){return!0===this._capabilities.files_sharing?.sharee?.always_show_unique}get allowGroupSharing(){return!0===window.OC.appConfig.core.allowGroupSharing}get maxAutocompleteResults(){return parseInt(window.OC.config["sharing.maxAutocompleteResults"],10)||25}get minSearchStringLength(){return parseInt(window.OC.config["sharing.minSearchStringLength"],10)||0}get passwordPolicy(){return this._capabilities?.password_policy||{}}get allowCustomTokens(){return this._capabilities?.files_sharing?.public?.custom_tokens}get showFederatedSharesAsInternal(){return(0,r.C)("files_sharing","showFederatedSharesAsInternal",!1)}get showFederatedSharesToTrustedServersAsInternal(){return(0,r.C)("files_sharing","showFederatedSharesToTrustedServersAsInternal",!1)}get showExternalSharing(){return(0,r.C)("files_sharing","showExternalSharing",!0)}}},87543(t,e,n){"use strict";n.d(e,{C:()=>m,h:()=>g});var i=n(21777),r=n(44368),s=n(45967),a=n(77815),o=n(63814),l=n(48564);const c={"Content-Type":"application/json"};function d(t=!1){const e=(0,o.KT)("apps/files_sharing/api/v1/shares");return r.Ay.get(e,{headers:c,params:{shared_with_me:t,include_tags:!0}})}function u(){const t=(0,o.KT)("apps/files_sharing/api/v1/remote_shares");return r.Ay.get(t,{headers:c,params:{include_tags:!0}})}function p(){const t=(0,o.KT)("apps/files_sharing/api/v1/shares/pending");return r.Ay.get(t,{headers:c,params:{include_tags:!0}})}function h(){const t=(0,o.KT)("apps/files_sharing/api/v1/remote_shares/pending");return r.Ay.get(t,{headers:c,params:{include_tags:!0}})}function f(){const t=(0,o.KT)("apps/files_sharing/api/v1/deletedshares");return r.Ay.get(t,{headers:c,params:{include_tags:!0}})}function m(t="[]"){const e=t=>"fileRequest"===t.scope&&"enabled"===t.key&&!0===t.value;try{return JSON.parse(t).some(e)}catch(t){return l.A.error("Error while parsing share attributes",{error:t}),!1}}async function g(t=!0,e=!0,r=!1,o=!1,c=[]){const m=[];t&&m.push({promise:d(!0),unmounted:!1},{promise:u(),unmounted:!1}),e&&m.push({promise:d(),unmounted:!1}),r&&m.push({promise:p(),unmounted:!0},{promise:h(),unmounted:!0}),o&&m.push({promise:f(),unmounted:!0});const g=(await Promise.all(m.map(({promise:t})=>t))).flatMap((t,e)=>t.data.ocs.data.map(t=>({entry:t,unmounted:m[e].unmounted})));let v=(await Promise.all(g.map(({entry:t,unmounted:e})=>async function(t,e=!1){try{if(void 0!==t?.remote_id){if(!t.mimetype){const e=(await n.e(857).then(()=>n(10857))).default;t.mimetype=e.getType(t.name)}const e="dir"===t.type?"folder":t.type;t.item_type=e||(t.mimetype?"file":"folder"),t.item_mtime=t.mtime,t.file_target=t.file_target||t.mountpoint,t.file_target.includes("TemporaryMountPointName")&&(t.file_target=t.name),t.accepted||(t.item_permissions=s.aX.NONE,t.permissions=s.aX.NONE),t.uid_owner=t.owner,t.displayname_owner=t.owner}e&&(t.item_permissions=s.aX.NONE,t.permissions=s.aX.NONE);const i="folder"===t?.item_type,r=!0===t?.has_preview,o=i?s.vd:s.ZH,l=t.file_source||t.file_id||t.id,c=t.path||t.file_target||t.name,d=`${(0,a.EY)()}${(0,a.ei)()}/${c.replace(/^\/+/,"")}`;let u,p=t.item_mtime?new Date(1e3*t.item_mtime):void 0;return t?.stime>(t?.item_mtime||0)&&(p=new Date(1e3*t.stime)),"share_with"in t&&(u={sharee:{id:t.share_with,"display-name":t.share_with_displayname||t.share_with,type:t.share_type}}),new o({id:l,source:d,owner:t?.uid_owner,mime:t?.mimetype||"application/octet-stream",mtime:p,size:t?.item_size??void 0,permissions:t?.item_permissions||t?.permissions,root:(0,a.ei)(),attributes:{...t,"share-id":t.id,"has-preview":r,"hide-download":1===t?.hide_download,"owner-id":t?.uid_owner,"owner-display-name":t?.displayname_owner,"share-types":t?.share_type,"share-attributes":t?.attributes||"[]",sharees:u,favorite:t?.tags?.includes(window.OC.TAG_FAVORITE)?1:0}})}catch(t){return l.A.error("Error while parsing OCS entry",{error:t}),null}}(t,e)))).filter(t=>null!==t);var A,w;return c.length>0&&(v=v.filter(t=>c.includes(t.attributes?.share_type))),v=(A=v,w="source",Object.values(A.reduce(function(t,e){return(t[e[w]]=t[e[w]]||[]).push(e),t},{}))).map(t=>{const e=t[0];return e.attributes["share-types"]=t.map(t=>t.attributes["share-types"]),e}),{folder:new s.vd({id:0,source:`${(0,a.EY)()}${(0,a.ei)()}`,owner:(0,i.HW)()?.uid||null,root:(0,a.ei)()}),contents:v}}},48564(t,e,n){"use strict";const i=(0,n(35947).YK)().setApp("files_sharing").detectUser().build();n.d(e,["A",0,i])},89275(t,e,n){"use strict";var i=n(71354),r=n.n(i),s=n(76314),a=n.n(s)()(r());a.push([t.id,".action-items>.files-list__row-action-sharing-status{padding-inline:0 !important}.action-items>.files-list__row-action-sharing-status .button-vue__wrapper{flex-direction:row-reverse;gap:var(--default-grid-baseline)}svg.sharing-status__avatar{height:var(--button-inner-size, 32px) !important;width:var(--button-inner-size, 32px) !important;max-height:var(--button-inner-size, 32px) !important;max-width:var(--button-inner-size, 32px) !important;border-radius:var(--button-inner-size, 32px);overflow:hidden}.files-list__row-action-sharing-status .button-vue__text{color:var(--color-primary-element)}.files-list__row-action-sharing-status .button-vue__icon{color:var(--color-primary-element)}","",{version:3,sources:["webpack://./apps/files_sharing/src/files_actions/sharingStatusAction.scss"],names:[],mappings:"AAMA,qDAEC,2BAAA,CAEA,0EAEC,0BAAA,CACA,gCAAA,CAIF,2BACC,gDAAA,CACA,+CAAA,CACA,oDAAA,CACA,mDAAA,CACA,4CAAA,CACA,eAAA,CAIA,yDACC,kCAAA,CAED,yDACC,kCAAA",sourcesContent:["/*\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n // Only when rendered inline, when not enough space, this is put in the menu\n.action-items > .files-list__row-action-sharing-status {\n\t// align icons with text-less inline actions\n\tpadding-inline: 0 !important;\n\n\t.button-vue__wrapper {\n\t\t// put icon at the end of the button\n\t\tflex-direction: row-reverse;\n\t\tgap: var(--default-grid-baseline);\n\t}\n}\n\nsvg.sharing-status__avatar {\n\theight: var(--button-inner-size, 32px) !important;\n\twidth: var(--button-inner-size, 32px) !important;\n\tmax-height: var(--button-inner-size, 32px) !important;\n\tmax-width: var(--button-inner-size, 32px) !important;\n\tborder-radius: var(--button-inner-size, 32px);\n\toverflow: hidden;\n}\n\n.files-list__row-action-sharing-status {\n\t.button-vue__text {\n\t\tcolor: var(--color-primary-element);\n\t}\n\t.button-vue__icon {\n\t\tcolor: var(--color-primary-element);\n\t}\n}\n"],sourceRoot:""}]);const o=a;n.d(e,["A",0,o])},15914(t,e,n){"use strict";var i=n(71354),r=n.n(i),s=n(76314),a=n.n(s)()(r());a.push([t.id,"\n._fileListFilterAccount_ZW91g {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n}\n._fileListFilterAccount__avatar_V0YuN {\n\t/* 24px is the avatar size */\n\tmargin: calc((var(--default-clickable-area) - 24px) / 2);\n}\n._fileListFilterAccount__currentUser_PqQfx {\n\tfont-weight: normal !important;\n}\n","",{version:3,sources:["webpack://./apps/files_sharing/src/components/FileListFilterAccount.vue"],names:[],mappings:";AA4JA;CACA,aAAA;CACA,sBAAA;CACA,iCAAA;AACA;AAEA;CACA,4BAAA;CACA,wDAAA;AACA;AAEA;CACA,8BAAA;AACA",sourcesContent:["\x3c!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n--\x3e\n\n\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fileListFilterAccount\": `_fileListFilterAccount_ZW91g`,\n\t\"fileListFilterAccount__avatar\": `_fileListFilterAccount__avatar_V0YuN`,\n\t\"fileListFilterAccount__currentUser\": `_fileListFilterAccount__currentUser_PqQfx`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, N as NodeStatus, F as File, a as Folder } from \"./logger.mjs\";\nimport \"@nextcloud/paths\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\",\n \"nc:upload_time\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(timestamp, limit = 100) {\n const capabilities = getCapabilities();\n const supportsUploadTime = capabilities.dav?.search_supports_upload_time;\n const supportsLastActivity = capabilities.dav?.search_supports_last_activity;\n const orderByProp = supportsLastActivity ? \"\" : \"\";\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t${supportsUploadTime ? `\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t${timestamp}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t${timestamp}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t` : `\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t${timestamp}\n\t\t\t\t\t\n\t\t\t\t`}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${orderByProp}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t${limit}\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavProperties as a,\n defaultRemoteURL as b,\n defaultRootPath as c,\n defaultDavNamespaces as d,\n getDavNameSpaces as e,\n getDavProperties as f,\n getClient as g,\n getDefaultPropfind as h,\n getFavoriteNodes as i,\n getFavoritesReport as j,\n getRecentSearch as k,\n getRemoteURL as l,\n getRootPath as m,\n resultToNode as n,\n parsePermissions as p,\n registerDavProperty as r\n};\n//# sourceMappingURL=dav.mjs.map\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn) => {\n\tif(chunkIds) {\n\t\tdeferred.push([chunkIds, fn]);\n\t\treturn;\n\t}\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (__webpack_require__.O.j(chunkIds[j])) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\tconst promises = [];\n\t__webpack_require__.f.j(chunkId, promises);\n\treturn Promise.all(promises);\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"c78894d5df34d854f7aa\",\"1404\":\"985094b24b5014221cfb\",\"3252\":\"ae43d7767a2676202c91\",\"4227\":\"a07d0db099f8a9cb4562\",\"4655\":\"47b5282f2bc25f4d3a2d\",\"4941\":\"38be36cf13c01eec6c29\",\"7859\":\"8b3b7c211b6d4a439761\",\"8374\":\"fd40dfc3e2d96840f1fe\",\"8689\":\"7e0b1b0f0e282b712c41\",\"8826\":\"ea635c4e67b9f9f79cd0\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5928;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t5928: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(95798)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["sharesViewId","sharedWithYouViewId","sharedWithOthersViewId","sharingByLinksViewId","deletedSharesViewId","pendingSharesViewId","shares","Navigation","getNavigation","register","View","id","name","t","caption","emptyTitle","emptyCaption","icon","AccountPlusSvg","order","columns","getContents","parent","loadState","quota","AccountGroupSvg","LinkSvg","ShareType","Link","FileUploadSvg","Email","then","folder","contents","filter","node","isFileRequest","attributes","__webpack_require__","dn","action","displayName","nodes","n","length","iconSvgInline","CheckSvg","enabled","view","exec","isRemote","remote","url","generateOcsUrl","shareBase","axios","post","emit","execBatch","Promise","all","map","this","inline","includes","isFolder","type","FileType","Folder","window","OCP","Files","Router","goToRoute","fileid","String","dir","path","dirname","openfile","undefined","default","DefaultType","HIDDEN","some","remote_id","share_type","RemoteGroup","accepted","delete","options","isExternal","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","sharingStatusAction","A","locals","Object","values","flat","owner","getCurrentUser","uid","title","ownerDisplayName","sharees","sharee","User","user","Group","group","shareTypes","Array","isArray","Team","userId","isGuest","matchMedia","matches","document","querySelector","generateUrl","generateAvatarSvg","isPublicShare","permissions","Permission","SHARE","READ","getSidebar","open","showError","rawUid","getElementsByTagName","getAttribute","currentUser","components_FileListFilterAccountvue_type_script_setup_true_lang_ts","_defineComponent","__name","props","setup","__props","currentUserId","accountFilter","ref","availableAccounts","selectedAccounts","watch","accounts","value","setAccounts","onMounted","setAvailableAccounts","filterAccounts","addEventListener","resetFilter","deselect","onUnmounted","removeEventListener","shownAccounts","computed","sort","sortAccounts","queryParts","toLocaleLowerCase","trim","split","account","every","part","a","b","localeCompare","event","accountId","detail","CustomEvent","__sfc","toggleAccount","selected","find","l10n_dist","NcAvatar","NcButton","NcTextField","FileListFilterAccountvue_type_style_index_0_id_ec2dd1f8_prod_module_true_lang_css_options","FileListFilterAccountvue_type_style_index_0_id_ec2dd1f8_prod_module_true_lang_css","components_FileListFilterAccountvue_type_style_index_0_id_ec2dd1f8_prod_module_true_lang_css","FileListFilterAccount","_vm","_c","_self","_setup","_setupProxy","class","$style","fileListFilterAccount","attrs","label","model","callback","$$v","expression","_e","_v","_l","key","alignment","pressed","variant","wide","on","$event","scopedSlots","_u","fn","_b","fileListFilterAccount__avatar","size","proxy","_s","fileListFilterAccount__currentUser","context","tagName","_availableAccounts","WeakMap","_filterAccounts","AccountFilter","FileListFilter","constructor","super","_classPrivateFieldInitSpec","_defineProperty","_classPrivateFieldSet","subscribe","updateAvailableAccounts","_classPrivateFieldGet","userIds","params","deletedBy","reset","dispatchEvent","chips","text","onclick","updateChips","filterUpdated","available","Map","has","set","Boolean","Remote","sharingConfig","Config","NewFileRequestDialogVue","defineAsyncComponent","e","entry","isPublicUploadEnabled","isPublicShareAllowed","handler","content","spawnDialog","registerSharingViews","addNewFileMenuEntry","newFileRequest","registerDavProperty","nc","oc","ocs","registerFileAction","acceptShareAction","openInFilesAction","rejectShareAction","restoreShareAction","WrappedComponent","wrap","Vue","defineProperty","prototype","get","customElements","define","registerFileListFilter","registerAccountFilter","FilesHeaderNoteToRecipient","instance","registerFileListHeader","note","updated","updateFolder","render","async","el","component","extend","$mount","registerNoteToRecipient","_capabilities","getCapabilities","defaultPermissions","files_sharing","default_permissions","excludeReshareFromEdit","exclude_reshare_from_edit","public","upload","federatedShareDocLink","OC","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","days","linkDefaultExpDays","defaultExpireDate","Date","setDate","getDate","maxExpirationDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isFederationEnabled","federation","outgoing","isMailShareAllowed","sharebymail","expire_date","default_days","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","password","enforced","shouldAlwaysShowUnique","always_show_unique","allowGroupSharing","maxAutocompleteResults","parseInt","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","showFederatedSharesToTrustedServersAsInternal","showExternalSharing","headers","getShares","shareWithMe","shared_with_me","include_tags","getRemoteShares","getPendingShares","getRemotePendingShares","getDeletedShares","attribute","scope","JSON","parse","error","logger","sharedWithYou","sharedWithOthers","pendingShares","deletedshares","filterTypes","requests","push","promise","unmounted","data","flatMap","response","index","ocsEntry","mimetype","mime","getType","item_type","item_mtime","mtime","file_target","mountpoint","item_permissions","NONE","uid_owner","displayname_owner","hasPreview","has_preview","Node","File","file_source","file_id","source","getRemoteURL","getRootPath","replace","stime","share_with","share_with_displayname","item_size","root","hide_download","favorite","tags","TAG_FAVORITE","ocsEntryToNode","reduce","acc","curr","__WEBPACK_DEFAULT_EXPORT__","getLoggerBuilder","setApp","detectUser","build","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","version","sources","names","mappings","sourcesContent","sourceRoot","defaultDavProperties","defaultDavNamespaces","d","prop","namespace","_logger_mjs__WEBPACK_IMPORTED_MODULE_4__","s","davNamespaces","davProperties","namespaces","search","l","warn","startsWith","getDavProperties","join","getDavNameSpaces","keys","ns","getDefaultPropfind","getRecentSearch","timestamp","limit","capabilities","_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_5__","F","supportsUploadTime","dav","search_supports_upload_time","supportsLastActivity","search_supports_last_activity","orderByProp","_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__","HW","_nextcloud_sharing_public__WEBPACK_IMPORTED_MODULE_2__","f","G","defaultRootPath","_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__","dC","defaultRemoteURL","getClient","remoteURL","client","webdav__WEBPACK_IMPORTED_MODULE_3__","UU","setHeaders","token","requesttoken","zo","Gu","patch","headers2","method","fetch","getFavoriteNodes","davRoot","getDirectoryContents","signal","details","includeSelf","filename","result","resultToNode","filesRoot","Error","permString","P","WRITE","CREATE","UPDATE","DELETE","parsePermissions","lastmod","crtime","creationdate","nodeData","isNaN","getTime","displayname","Number","getcontentlength","status","N","FAILED","__webpack_module_cache__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","i","fulfilled","j","splice","r","getter","__esModule","cw","body","mod","definition","binding","descriptor","enumerable","o","chunkId","promises","u","obj","hasOwn","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","createElement","charset","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","x","getOwnPropertyDescriptor","writable","configurable","scriptUrl","globalThis","importScripts","location","currentScript","toUpperCase","test","p","baseURI","self","href","installedChunks","installedChunkData","resolve","reject","loadingEnded","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"files_sharing-init.js?v=bd4cf965c859e912a9bf","mappings":"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","sources":["webpack:///nextcloud/apps/files_sharing/src/files_views/shares.ts","webpack:///nextcloud/apps/files_sharing/src/files_actions/acceptShareAction.ts","webpack:///nextcloud/apps/files_sharing/src/files_actions/openInFilesAction.ts","webpack:///nextcloud/apps/files_sharing/src/files_actions/rejectShareAction.ts","webpack:///nextcloud/apps/files_sharing/src/files_actions/restoreShareAction.ts","webpack://nextcloud/./apps/files_sharing/src/files_actions/sharingStatusAction.scss?17be","webpack:///nextcloud/apps/files_sharing/src/files_actions/sharingStatusAction.ts","webpack:///nextcloud/apps/files_sharing/src/utils/AccountIcon.ts","webpack:///nextcloud/core/src/OC/currentuser.js","webpack:///nextcloud/apps/files_sharing/src/components/FileListFilterAccount.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/files_sharing/src/components/FileListFilterAccount.vue","webpack://nextcloud/./apps/files_sharing/src/components/FileListFilterAccount.vue?f338","webpack://nextcloud/./apps/files_sharing/src/components/FileListFilterAccount.vue?64e4","webpack:///nextcloud/apps/files_sharing/src/files_filters/AccountFilter.ts","webpack:///nextcloud/apps/files_sharing/src/files_newMenu/newFileRequest.ts","webpack:///nextcloud/apps/files_sharing/src/init.ts","webpack:///nextcloud/apps/files_sharing/src/files_headers/noteToRecipient.ts","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.ts","webpack:///nextcloud/apps/files_sharing/src/services/SharingService.ts","webpack:///nextcloud/apps/files_sharing/src/services/logger.ts","webpack:///nextcloud/apps/files_sharing/src/files_actions/sharingStatusAction.scss","webpack:///nextcloud/apps/files_sharing/src/components/FileListFilterAccount.vue?vue&type=style&index=0&id=ec2dd1f8&prod&module=true&lang=css","webpack:///nextcloud/node_modules/@nextcloud/files/dist/chunks/dav.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/concatenation wrap","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/set anonymous default export name","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AccountClockSvg from '@mdi/svg/svg/account-clock-outline.svg?raw';\nimport AccountGroupSvg from '@mdi/svg/svg/account-group-outline.svg?raw';\nimport AccountSvg from '@mdi/svg/svg/account-outline.svg?raw';\nimport AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw';\nimport FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw';\nimport LinkSvg from '@mdi/svg/svg/link.svg?raw';\nimport DeleteSvg from '@mdi/svg/svg/trash-can-outline.svg?raw';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { getNavigation, View } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { t } from '@nextcloud/l10n';\nimport { ShareType } from '@nextcloud/sharing';\nimport { getContents, isFileRequest } from '../services/SharingService.ts';\nexport const sharesViewId = 'shareoverview';\nexport const sharedWithYouViewId = 'sharingin';\nexport const sharedWithOthersViewId = 'sharingout';\nexport const sharingByLinksViewId = 'sharinglinks';\nexport const deletedSharesViewId = 'deletedshares';\nexport const pendingSharesViewId = 'pendingshares';\nexport const fileRequestViewId = 'filerequest';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: sharesViewId,\n name: t('files_sharing', 'Shares'),\n caption: t('files_sharing', 'Overview of shared files.'),\n emptyTitle: t('files_sharing', 'No shares'),\n emptyCaption: t('files_sharing', 'Files and folders you shared or have been shared with you will show up here'),\n icon: AccountPlusSvg,\n order: 20,\n columns: [],\n getContents: () => getContents(),\n }));\n Navigation.register(new View({\n id: sharedWithYouViewId,\n name: t('files_sharing', 'Shared with you'),\n caption: t('files_sharing', 'List of files that are shared with you.'),\n emptyTitle: t('files_sharing', 'Nothing shared with you yet'),\n emptyCaption: t('files_sharing', 'Files and folders others shared with you will show up here'),\n icon: AccountSvg,\n order: 1,\n parent: sharesViewId,\n columns: [],\n getContents: () => getContents(true, false, false, false),\n }));\n // Don't show this view if the user has no storage quota\n const storageStats = loadState('files', 'storageStats', { quota: -1 });\n if (storageStats.quota !== 0) {\n Navigation.register(new View({\n id: sharedWithOthersViewId,\n name: t('files_sharing', 'Shared with others'),\n caption: t('files_sharing', 'List of files that you shared with others.'),\n emptyTitle: t('files_sharing', 'Nothing shared yet'),\n emptyCaption: t('files_sharing', 'Files and folders you shared will show up here'),\n icon: AccountGroupSvg,\n order: 2,\n parent: sharesViewId,\n columns: [],\n getContents: () => getContents(false, true, false, false),\n }));\n }\n // Don't show this view if sharing by link is disabled.\n if (getCapabilities().files_sharing?.public.enabled) {\n Navigation.register(new View({\n id: sharingByLinksViewId,\n name: t('files_sharing', 'Shared by link'),\n caption: t('files_sharing', 'List of files that are shared by link.'),\n emptyTitle: t('files_sharing', 'No shared links'),\n emptyCaption: t('files_sharing', 'Files and folders you shared by link will show up here'),\n icon: LinkSvg,\n order: 3,\n parent: sharesViewId,\n columns: [],\n getContents: () => getContents(false, true, false, false, [ShareType.Link]),\n }));\n }\n Navigation.register(new View({\n id: fileRequestViewId,\n name: t('files_sharing', 'File requests'),\n caption: t('files_sharing', 'List of file requests.'),\n emptyTitle: t('files_sharing', 'No file requests'),\n emptyCaption: t('files_sharing', 'File requests you have created will show up here'),\n icon: FileUploadSvg,\n order: 4,\n parent: sharesViewId,\n columns: [],\n getContents: () => getContents(false, true, false, false, [ShareType.Link, ShareType.Email])\n .then(({ folder, contents }) => {\n return {\n folder,\n contents: contents.filter((node) => isFileRequest(node.attributes?.['share-attributes'] || [])),\n };\n }),\n }));\n Navigation.register(new View({\n id: deletedSharesViewId,\n name: t('files_sharing', 'Deleted shares'),\n caption: t('files_sharing', 'List of shares you left.'),\n emptyTitle: t('files_sharing', 'No deleted shares'),\n emptyCaption: t('files_sharing', 'Shares you have left will show up here'),\n icon: DeleteSvg,\n order: 5,\n parent: sharesViewId,\n columns: [],\n getContents: () => getContents(false, false, false, true),\n }));\n Navigation.register(new View({\n id: pendingSharesViewId,\n name: t('files_sharing', 'Pending shares'),\n caption: t('files_sharing', 'List of unapproved shares.'),\n emptyTitle: t('files_sharing', 'No pending shares'),\n emptyCaption: t('files_sharing', 'Shares you have received but not approved will show up here'),\n icon: AccountClockSvg,\n order: 6,\n parent: sharesViewId,\n columns: [],\n getContents: () => getContents(false, false, true, false),\n }));\n};\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport CheckSvg from '@mdi/svg/svg/check.svg?raw';\nimport axios from '@nextcloud/axios';\nimport { emit } from '@nextcloud/event-bus';\nimport { translatePlural as n } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { pendingSharesViewId } from '../files_views/shares.ts';\nexport const action = {\n id: 'accept-share',\n displayName: ({ nodes }) => n('files_sharing', 'Accept share', 'Accept shares', nodes.length),\n iconSvgInline: () => CheckSvg,\n enabled: ({ nodes, view }) => nodes.length > 0 && view.id === pendingSharesViewId,\n async exec({ nodes }) {\n try {\n const node = nodes[0];\n const isRemote = !!node.attributes.remote;\n const url = generateOcsUrl('apps/files_sharing/api/v1/{shareBase}/pending/{id}', {\n shareBase: isRemote ? 'remote_shares' : 'shares',\n id: node.attributes['share-id'],\n });\n await axios.post(url);\n // Remove from current view\n emit('files:node:deleted', node);\n return true;\n }\n catch {\n return false;\n }\n },\n async execBatch({ nodes, view, folder, contents }) {\n return Promise.all(nodes.map((node) => this.exec({\n nodes: [node],\n view,\n folder,\n contents,\n })));\n },\n order: 1,\n inline: () => true,\n};\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { DefaultType, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { sharedWithOthersViewId, sharedWithYouViewId, sharesViewId, sharingByLinksViewId } from '../files_views/shares.ts';\nexport const action = {\n id: 'files_sharing:open-in-files',\n displayName: () => t('files_sharing', 'Open in Files'),\n iconSvgInline: () => '',\n enabled: ({ view }) => [\n sharesViewId,\n sharedWithYouViewId,\n sharedWithOthersViewId,\n sharingByLinksViewId,\n // Deleted and pending shares are not\n // accessible in the files app.\n ].includes(view.id),\n async exec({ nodes }) {\n const isFolder = nodes[0].type === FileType.Folder;\n window.OCP.Files.Router.goToRoute(null, // use default route\n {\n view: 'files',\n fileid: String(nodes[0].fileid),\n }, {\n // If this node is a folder open the folder in files\n dir: isFolder ? nodes[0].path : nodes[0].dirname,\n // otherwise if this is a file, we should open it\n openfile: isFolder ? undefined : 'true',\n });\n return null;\n },\n // Before openFolderAction\n order: -1000,\n default: DefaultType.HIDDEN,\n};\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport axios from '@nextcloud/axios';\nimport { emit } from '@nextcloud/event-bus';\nimport { translatePlural as n } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { ShareType } from '@nextcloud/sharing';\nimport { pendingSharesViewId } from '../files_views/shares.ts';\nexport const action = {\n id: 'reject-share',\n displayName: ({ nodes }) => n('files_sharing', 'Reject share', 'Reject shares', nodes.length),\n iconSvgInline: () => CloseSvg,\n enabled: ({ nodes, view }) => {\n if (view.id !== pendingSharesViewId) {\n return false;\n }\n if (nodes.length === 0) {\n return false;\n }\n // disable rejecting group shares from the pending list because they anyway\n // land back into that same list after rejecting them\n if (nodes.some((node) => node.attributes.remote_id\n && node.attributes.share_type === ShareType.RemoteGroup)) {\n return false;\n }\n return true;\n },\n async exec({ nodes }) {\n try {\n const node = nodes[0];\n const isRemote = !!node.attributes.remote;\n const shareBase = isRemote ? 'remote_shares' : 'shares';\n const id = node.attributes['share-id'];\n let url;\n if (node.attributes.accepted === 0) {\n url = generateOcsUrl('apps/files_sharing/api/v1/{shareBase}/pending/{id}', {\n shareBase,\n id,\n });\n }\n else {\n url = generateOcsUrl('apps/files_sharing/api/v1/{shareBase}/{id}', {\n shareBase,\n id,\n });\n }\n await axios.delete(url);\n // Remove from current view\n emit('files:node:deleted', node);\n return true;\n }\n catch {\n return false;\n }\n },\n async execBatch({ nodes, view, folder, contents }) {\n return Promise.all(nodes.map((node) => this.exec({ nodes: [node], view, folder, contents })));\n },\n order: 2,\n inline: () => true,\n};\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport ArrowULeftTopSvg from '@mdi/svg/svg/arrow-u-left-top.svg?raw';\nimport axios from '@nextcloud/axios';\nimport { emit } from '@nextcloud/event-bus';\nimport { translatePlural as n } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { deletedSharesViewId } from '../files_views/shares.ts';\nexport const action = {\n id: 'restore-share',\n displayName: ({ nodes }) => n('files_sharing', 'Restore share', 'Restore shares', nodes.length),\n iconSvgInline: () => ArrowULeftTopSvg,\n enabled: ({ nodes, view }) => nodes.length > 0 && view.id === deletedSharesViewId,\n async exec({ nodes }) {\n try {\n const node = nodes[0];\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares/{id}', {\n id: node.attributes['share-id'],\n });\n await axios.post(url);\n // Remove from current view\n emit('files:node:deleted', node);\n return true;\n }\n catch {\n return false;\n }\n },\n async execBatch({ nodes, view, folder, contents }) {\n return Promise.all(nodes.map((node) => this.exec({ nodes: [node], view, folder, contents })));\n },\n order: 1,\n inline: () => true,\n};\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs/index.js!./sharingStatusAction.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/sass-loader/dist/cjs/index.js!./sharingStatusAction.scss\";\n export default content && content.locals ? content.locals : undefined;\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport AccountGroupSvg from '@mdi/svg/svg/account-group-outline.svg?raw';\nimport AccountPlusSvg from '@mdi/svg/svg/account-plus-outline.svg?raw';\nimport LinkSvg from '@mdi/svg/svg/link.svg?raw';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { showError } from '@nextcloud/dialogs';\nimport { getSidebar, Permission } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { ShareType } from '@nextcloud/sharing';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport CircleSvg from '../../../../core/img/apps/circles.svg?raw';\nimport { generateAvatarSvg } from '../utils/AccountIcon.ts';\nimport './sharingStatusAction.scss';\n/**\n * Check if the node is external (federated)\n *\n * @param node - The node to check\n */\nfunction isExternal(node) {\n return node.attributes?.['is-federated'] ?? false;\n}\nexport const ACTION_SHARING_STATUS = 'sharing-status';\nexport const action = {\n id: ACTION_SHARING_STATUS,\n displayName({ nodes }) {\n const node = nodes[0];\n const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat();\n if (shareTypes.length > 0\n || (node.owner !== getCurrentUser()?.uid || isExternal(node))) {\n return t('files_sharing', 'Shared');\n }\n return '';\n },\n title({ nodes }) {\n const node = nodes[0];\n if (node.owner && (node.owner !== getCurrentUser()?.uid || isExternal(node))) {\n const ownerDisplayName = node?.attributes?.['owner-display-name'];\n return t('files_sharing', 'Shared by {ownerDisplayName}', { ownerDisplayName });\n }\n const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat();\n if (shareTypes.length > 1) {\n return t('files_sharing', 'Shared multiple times with different people');\n }\n const sharees = node.attributes.sharees?.sharee;\n if (!sharees) {\n // No sharees so just show the default message to create a new share\n return t('files_sharing', 'Sharing options');\n }\n const sharee = [sharees].flat()[0]; // the property is sometimes weirdly normalized, so we need to compensate\n switch (sharee?.type) {\n case ShareType.User:\n return t('files_sharing', 'Shared with {user}', { user: sharee['display-name'] });\n case ShareType.Group:\n return t('files_sharing', 'Shared with group {group}', { group: sharee['display-name'] ?? sharee.id });\n default:\n return t('files_sharing', 'Shared with others');\n }\n },\n iconSvgInline({ nodes }) {\n const node = nodes[0];\n const shareTypes = Object.values(node?.attributes?.['share-types'] || {}).flat();\n // Mixed share types\n if (Array.isArray(node.attributes?.['share-types']) && node.attributes?.['share-types'].length > 1) {\n return AccountPlusSvg;\n }\n // Link shares\n if (shareTypes.includes(ShareType.Link)\n || shareTypes.includes(ShareType.Email)) {\n return LinkSvg;\n }\n // Group shares\n if (shareTypes.includes(ShareType.Group)\n || shareTypes.includes(ShareType.RemoteGroup)) {\n return AccountGroupSvg;\n }\n // Circle shares\n if (shareTypes.includes(ShareType.Team)) {\n return CircleSvg;\n }\n if (node.owner && (node.owner !== getCurrentUser()?.uid || isExternal(node))) {\n return generateAvatarSvg(node.owner, isExternal(node));\n }\n return AccountPlusSvg;\n },\n enabled({ nodes }) {\n if (nodes.length !== 1) {\n return false;\n }\n // Do not leak information about users to public shares\n if (isPublicShare()) {\n return false;\n }\n const node = nodes[0];\n const shareTypes = node.attributes?.['share-types'];\n const isMixed = Array.isArray(shareTypes) && shareTypes.length > 0;\n // If the node is shared multiple times with\n // different share types to the current user\n if (isMixed) {\n return true;\n }\n // If the node is shared by someone else\n if (node.owner !== getCurrentUser()?.uid || isExternal(node)) {\n return true;\n }\n // You need share permissions to share this file\n // and read permissions to see the sidebar\n return (node.permissions & Permission.SHARE) !== 0\n && (node.permissions & Permission.READ) !== 0;\n },\n async exec({ nodes }) {\n // You need read permissions to see the sidebar\n const node = nodes[0];\n if ((node.permissions & Permission.READ) !== 0) {\n const sidebar = getSidebar();\n sidebar.open(node, 'sharing');\n return null;\n }\n // Should not happen as the enabled check should prevent this\n // leaving it here for safety or in case someone calls this action directly\n showError(t('files_sharing', 'You do not have enough permissions to share this file.'));\n return null;\n },\n inline: () => true,\n};\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\n/**\n *\n */\nfunction isDarkMode() {\n return window?.matchMedia?.('(prefers-color-scheme: dark)')?.matches === true\n || document.querySelector('[data-themes*=dark]') !== null;\n}\n/**\n *\n * @param userId\n * @param isGuest\n */\nexport function generateAvatarSvg(userId, isGuest = false) {\n // normal avatar url: /avatar/{userId}/32?guestFallback=true\n // dark avatar url: /avatar/{userId}/32/dark?guestFallback=true\n // guest avatar url: /avatar/guest/{userId}/32\n // guest dark avatar url: /avatar/guest/{userId}/32/dark\n const basePath = isGuest ? `/avatar/guest/${userId}` : `/avatar/${userId}`;\n const darkModePath = isDarkMode() ? '/dark' : '';\n const guestFallback = isGuest ? '' : '?guestFallback=true';\n const url = `${basePath}/32${darkModePath}${guestFallback}`;\n const avatarUrl = generateUrl(url, { userId });\n return `\n\t\t\n\t`;\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nconst rawUid = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user')\nconst displayName = document\n\t.getElementsByTagName('head')[0]\n\t.getAttribute('data-user-displayname')\n\nexport const currentUser = rawUid !== undefined ? rawUid : false\n\n/**\n *\n */\nexport function getCurrentUser() {\n\treturn {\n\t\tuid: currentUser,\n\t\tdisplayName,\n\t}\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterAccount.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterAccount.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:_vm.$style.fileListFilterAccount},[(_setup.availableAccounts.length > 1)?_c(_setup.NcTextField,{attrs:{\"type\":\"search\",\"label\":_setup.t('files_sharing', 'Filter accounts')},model:{value:(_setup.accountFilter),callback:function ($$v) {_setup.accountFilter=$$v},expression:\"accountFilter\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_setup.shownAccounts),function(account){return _c(_setup.NcButton,{key:account.id,attrs:{\"alignment\":\"start\",\"pressed\":_setup.selectedAccounts.includes(account),\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"update:pressed\":function($event){return _setup.toggleAccount(account.id, $event)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcAvatar,_vm._b({class:_vm.$style.fileListFilterAccount__avatar,attrs:{\"size\":24,\"disable-menu\":\"\",\"hide-status\":\"\"}},'NcAvatar',account,false))]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(account.displayName)+\"\\n\\t\\t\"),(account.id === _setup.currentUserId)?_c('span',{class:_vm.$style.fileListFilterAccount__currentUser},[_vm._v(\"\\n\\t\\t\\t(\"+_vm._s(_setup.t('files', 'you'))+\")\\n\\t\\t\")]):_vm._e()])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterAccount.vue?vue&type=style&index=0&id=ec2dd1f8&prod&module=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-3.use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterAccount.vue?vue&type=style&index=0&id=ec2dd1f8&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilterAccount.vue?vue&type=template&id=ec2dd1f8\"\nimport script from \"./FileListFilterAccount.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilterAccount.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilterAccount.vue?vue&type=style&index=0&id=ec2dd1f8&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\n}\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n injectStyles,\n null,\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport svgAccountMultipleOutline from '@mdi/svg/svg/account-multiple-outline.svg?raw';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { FileListFilter, registerFileListFilter } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { ShareType } from '@nextcloud/sharing';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport wrap from '@vue/web-component-wrapper';\nimport Vue from 'vue';\nimport FileListFilterAccount from '../components/FileListFilterAccount.vue';\n// once files_sharing is migrated to the new frontend use the import instead:\n// import { TRASHBIN_VIEW_ID } from '../../../files_trashbin/src/files_views/trashbinView.ts'\nconst TRASHBIN_VIEW_ID = 'trashbin';\nconst tagName = 'files_sharing-file-list-filter-account';\n/**\n * File list filter to filter by owner / sharee\n */\nclass AccountFilter extends FileListFilter {\n #availableAccounts;\n #filterAccounts;\n displayName = t('files_sharing', 'People');\n iconSvgInline = svgAccountMultipleOutline;\n tagName = tagName;\n constructor() {\n super('files_sharing:account', 100);\n this.#availableAccounts = [];\n subscribe('files:list:updated', ({ contents }) => {\n this.updateAvailableAccounts(contents);\n });\n }\n get availableAccounts() {\n return this.#availableAccounts;\n }\n get filterAccounts() {\n return this.#filterAccounts;\n }\n filter(nodes) {\n if (!this.#filterAccounts || this.#filterAccounts.length === 0) {\n return nodes;\n }\n const userIds = this.#filterAccounts.map(({ uid }) => uid);\n // Filter if the owner of the node is in the list of filtered accounts\n return nodes.filter((node) => {\n if (window.OCP.Files.Router.params.view === TRASHBIN_VIEW_ID) {\n const deletedBy = node.attributes?.['trashbin-deleted-by-id'];\n if (deletedBy && userIds.includes(deletedBy)) {\n return true;\n }\n return false;\n }\n // if the owner matches\n if (node.owner && userIds.includes(node.owner)) {\n return true;\n }\n // Or any of the sharees (if only one share this will be an object, otherwise an array. So using `.flat()` to make it always an array)\n const sharees = node.attributes.sharees?.sharee;\n if (sharees && [sharees].flat().some(({ id }) => userIds.includes(id))) {\n return true;\n }\n // If the node provides no information lets keep it\n if (!node.owner && !sharees) {\n return true;\n }\n // Not a valid node for the current filter\n return false;\n });\n }\n reset() {\n this.dispatchEvent(new CustomEvent('reset'));\n }\n /**\n * Set accounts that should be filtered.\n *\n * @param accounts - Account to filter or undefined if inactive.\n */\n setAccounts(accounts) {\n this.#filterAccounts = accounts;\n let chips = [];\n if (this.#filterAccounts && this.#filterAccounts.length > 0) {\n chips = this.#filterAccounts.map(({ displayName, uid }) => ({\n text: displayName,\n user: uid,\n onclick: () => this.dispatchEvent(new CustomEvent('deselect', { detail: uid })),\n }));\n }\n this.updateChips(chips);\n this.filterUpdated();\n }\n /**\n * Update the accounts owning nodes or have nodes shared to them.\n *\n * @param nodes - The current content of the file list.\n */\n updateAvailableAccounts(nodes) {\n const available = new Map();\n for (const node of nodes) {\n const owner = node.owner;\n if (owner && !available.has(owner)) {\n available.set(owner, {\n uid: owner,\n displayName: node.attributes['owner-display-name'] ?? node.owner,\n });\n }\n // ensure sharees is an array (if only one share then it is just an object)\n const sharees = [node.attributes.sharees?.sharee].flat().filter(Boolean);\n for (const sharee of [sharees].flat()) {\n // Skip link shares and other without user\n if (sharee.id === '') {\n continue;\n }\n if (sharee.type !== ShareType.User && sharee.type !== ShareType.Remote) {\n continue;\n }\n // Add if not already added\n if (!available.has(sharee.id)) {\n available.set(sharee.id, {\n uid: sharee.id,\n displayName: sharee['display-name'],\n });\n }\n }\n // lets also handle trashbin\n const deletedBy = node.attributes?.['trashbin-deleted-by-id'];\n if (deletedBy) {\n available.set(deletedBy, {\n uid: deletedBy,\n displayName: node.attributes?.['trashbin-deleted-by-display-name'] || deletedBy,\n });\n }\n }\n this.#availableAccounts = [...available.values()];\n this.dispatchEvent(new CustomEvent('accounts-updated'));\n }\n}\n/**\n * Register the file list filter by owner or sharees\n */\nexport function registerAccountFilter() {\n if (isPublicShare()) {\n // We do not show the filter on public pages - it makes no sense\n return;\n }\n const WrappedComponent = wrap(Vue, FileListFilterAccount);\n // In Vue 2, wrap doesn't support disabling shadow :(\n // Disable with a hack\n Object.defineProperty(WrappedComponent.prototype, 'attachShadow', {\n value() {\n return this;\n },\n });\n Object.defineProperty(WrappedComponent.prototype, 'shadowRoot', {\n get() {\n return this;\n },\n });\n customElements.define(tagName, WrappedComponent);\n registerFileListFilter(new AccountFilter());\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw';\nimport { t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog';\nimport { defineAsyncComponent } from 'vue';\nimport Config from '../services/ConfigService.ts';\nconst sharingConfig = new Config();\nconst NewFileRequestDialogVue = defineAsyncComponent(() => import('../components/NewFileRequestDialog.vue'));\nexport const EntryId = 'file-request';\nexport const entry = {\n id: EntryId,\n displayName: t('files_sharing', 'Create file request'),\n iconSvgInline: FileUploadSvg,\n order: 10,\n enabled() {\n // not on public shares\n if (isPublicShare()) {\n return false;\n }\n if (!sharingConfig.isPublicUploadEnabled) {\n return false;\n }\n // We will check for the folder permission on the dialog\n return sharingConfig.isPublicShareAllowed;\n },\n async handler(context, content) {\n spawnDialog(NewFileRequestDialogVue, {\n context,\n content,\n });\n },\n};\n","/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { addNewFileMenuEntry, registerFileAction } from '@nextcloud/files';\nimport { registerDavProperty } from '@nextcloud/files/dav';\nimport { action as acceptShareAction } from './files_actions/acceptShareAction.ts';\nimport { action as openInFilesAction } from './files_actions/openInFilesAction.ts';\nimport { action as rejectShareAction } from './files_actions/rejectShareAction.ts';\nimport { action as restoreShareAction } from './files_actions/restoreShareAction.ts';\nimport { action as sharingStatusAction } from './files_actions/sharingStatusAction.ts';\nimport { registerAccountFilter } from './files_filters/AccountFilter.ts';\nimport registerNoteToRecipient from './files_headers/noteToRecipient.ts';\nimport { entry as newFileRequest } from './files_newMenu/newFileRequest.ts';\nimport registerSharingViews from './files_views/shares.ts';\nregisterSharingViews();\naddNewFileMenuEntry(newFileRequest);\nregisterDavProperty('nc:note', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('nc:sharees', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('nc:hide-download', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('nc:share-attributes', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('oc:share-types', { oc: 'http://owncloud.org/ns' });\nregisterDavProperty('ocs:share-permissions', { ocs: 'http://open-collaboration-services.org/ns' });\nregisterFileAction(acceptShareAction);\nregisterFileAction(openInFilesAction);\nregisterFileAction(rejectShareAction);\nregisterFileAction(restoreShareAction);\nregisterFileAction(sharingStatusAction);\nregisterAccountFilter();\n// Add \"note to recipient\" message\nregisterNoteToRecipient();\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerFileListHeader } from '@nextcloud/files';\nimport Vue from 'vue';\n/**\n * Register the \"note to recipient\" as a files list header\n */\nexport default function registerNoteToRecipient() {\n let FilesHeaderNoteToRecipient;\n let instance;\n registerFileListHeader({\n id: 'note-to-recipient',\n order: 0,\n // Always if there is a note\n enabled: (folder) => Boolean(folder.attributes.note),\n // Update the root folder if needed\n updated: (folder) => {\n if (instance) {\n instance.updateFolder(folder);\n }\n },\n // render simply spawns the component\n render: async (el, folder) => {\n if (FilesHeaderNoteToRecipient === undefined) {\n const { default: component } = await import('../views/FilesHeaderNoteToRecipient.vue');\n FilesHeaderNoteToRecipient = Vue.extend(component);\n }\n instance = new FilesHeaderNoteToRecipient().$mount(el);\n instance.updateFolder(folder);\n },\n });\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport { loadState } from '@nextcloud/initial-state';\nexport default class Config {\n _capabilities;\n constructor() {\n this._capabilities = getCapabilities();\n }\n /**\n * Get default share permissions, if any\n */\n get defaultPermissions() {\n return this._capabilities.files_sharing?.default_permissions;\n }\n /**\n * Should SHARE permission be excluded from \"Allow editing\" bundled permissions\n */\n get excludeReshareFromEdit() {\n return this._capabilities.files_sharing?.exclude_reshare_from_edit === true;\n }\n /**\n * Is public upload allowed on link shares ?\n * This covers File request and Full upload/edit option.\n */\n get isPublicUploadEnabled() {\n return this._capabilities.files_sharing?.public?.upload === true;\n }\n /**\n * Get the federated sharing documentation link\n */\n get federatedShareDocLink() {\n return window.OC.appConfig.core.federatedCloudShareDoc;\n }\n /**\n * Get the default link share expiration date\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled) {\n const days = this.linkDefaultExpDays ?? this.defaultExpireDate;\n if (days !== null) {\n return new Date(new Date().setDate(new Date().getDate() + days));\n }\n }\n return null;\n }\n /**\n * Get the maximum link share expiration date\n */\n get maxExpirationDate() {\n if (this.isDefaultExpireDateEnabled && this.defaultExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n /**\n * Get the default internal expiration date\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled && this.defaultInternalExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n /**\n * Get the default remote expiration date\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled && this.defaultRemoteExpireDate !== null) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n /**\n * Are link shares password-enforced ?\n */\n get enforcePasswordForPublicLink() {\n return window.OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n /**\n * Is password asked by default on link shares ?\n */\n get enableLinkPasswordByDefault() {\n return window.OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n /**\n * Is link shares expiration enforced ?\n */\n get isDefaultExpireDateEnforced() {\n return window.OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new link shares ?\n */\n get isDefaultExpireDateEnabled() {\n return window.OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n /**\n * Is internal shares expiration enforced ?\n */\n get isDefaultInternalExpireDateEnforced() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new internal shares ?\n */\n get isDefaultInternalExpireDateEnabled() {\n return window.OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n /**\n * Is remote shares expiration enforced ?\n */\n get isDefaultRemoteExpireDateEnforced() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n /**\n * Is there a default expiration date for new remote shares ?\n */\n get isDefaultRemoteExpireDateEnabled() {\n return window.OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n /**\n * Are users on this server allowed to send shares to other servers ?\n */\n get isRemoteShareAllowed() {\n return window.OC.appConfig.core.remoteShareAllowed === true;\n }\n /**\n * Is federation enabled ?\n */\n get isFederationEnabled() {\n return this._capabilities?.files_sharing?.federation?.outgoing === true;\n }\n /**\n * Is public sharing enabled ?\n */\n get isPublicShareAllowed() {\n return this._capabilities?.files_sharing?.public?.enabled === true;\n }\n /**\n * Is sharing my mail (link share) enabled ?\n */\n get isMailShareAllowed() {\n return this._capabilities?.files_sharing?.sharebymail?.enabled === true\n && this.isPublicShareAllowed === true;\n }\n /**\n * Get the maximum days to link shares expiration\n */\n get defaultExpireDate() {\n return window.OC.appConfig.core.defaultExpireDate;\n }\n /**\n * Get the default days to link shares expiration\n */\n get linkDefaultExpDays() {\n return this._capabilities?.files_sharing?.public?.expire_date?.default_days ?? null;\n }\n /**\n * Get the default days to internal shares expiration\n */\n get defaultInternalExpireDate() {\n return window.OC.appConfig.core.defaultInternalExpireDate;\n }\n /**\n * Get the default days to remote shares expiration\n */\n get defaultRemoteExpireDate() {\n return window.OC.appConfig.core.defaultRemoteExpireDate;\n }\n /**\n * Is resharing allowed ?\n */\n get isResharingAllowed() {\n return window.OC.appConfig.core.resharingAllowed === true;\n }\n /**\n * Is password enforced for mail shares ?\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing?.sharebymail?.password?.enforced === true;\n }\n /**\n * Always show the email or userid unique sharee label if enabled by the admin\n */\n get shouldAlwaysShowUnique() {\n return this._capabilities.files_sharing?.sharee?.always_show_unique === true;\n }\n /**\n * Is sharing with groups allowed ?\n */\n get allowGroupSharing() {\n return window.OC.appConfig.core.allowGroupSharing === true;\n }\n /**\n * Get the maximum results of a share search\n */\n get maxAutocompleteResults() {\n return parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n /**\n * Get the minimal string length\n * to initiate a share search\n */\n get minSearchStringLength() {\n return parseInt(window.OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n /**\n * Get the password policy configuration\n */\n get passwordPolicy() {\n return this._capabilities?.password_policy || {};\n }\n /**\n * Returns true if custom tokens are allowed\n */\n get allowCustomTokens() {\n return this._capabilities?.files_sharing?.public?.custom_tokens;\n }\n /**\n * Show federated shares as internal shares\n *\n * @return\n */\n get showFederatedSharesAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesAsInternal', false);\n }\n /**\n * Show federated shares to trusted servers as internal shares\n *\n * @return\n */\n get showFederatedSharesToTrustedServersAsInternal() {\n return loadState('files_sharing', 'showFederatedSharesToTrustedServersAsInternal', false);\n }\n /**\n * Show the external share ui\n */\n get showExternalSharing() {\n return loadState('files_sharing', 'showExternalSharing', true);\n }\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n// TODO: Fix this instead of disabling ESLint!!!\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { File, Folder, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport logger from './logger.ts';\nconst headers = {\n 'Content-Type': 'application/json',\n};\n/**\n *\n * @param ocsEntry\n * @param unmounted whether the share is not mounted into the filesystem (pending or deleted)\n */\nasync function ocsEntryToNode(ocsEntry, unmounted = false) {\n try {\n // Federated share handling\n if (ocsEntry?.remote_id !== undefined) {\n if (!ocsEntry.mimetype) {\n const mime = (await import('mime')).default;\n // This won't catch files without an extension, but this is the best we can do\n ocsEntry.mimetype = mime.getType(ocsEntry.name);\n }\n const type = ocsEntry.type === 'dir' ? 'folder' : ocsEntry.type;\n ocsEntry.item_type = type || (ocsEntry.mimetype ? 'file' : 'folder');\n // different naming for remote shares\n ocsEntry.item_mtime = ocsEntry.mtime;\n ocsEntry.file_target = ocsEntry.file_target || ocsEntry.mountpoint;\n if (ocsEntry.file_target.includes('TemporaryMountPointName')) {\n ocsEntry.file_target = ocsEntry.name;\n }\n // If the share is not accepted yet we don't know which permissions it will have\n if (!ocsEntry.accepted) {\n // Need to set permissions to NONE for federated shares\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n ocsEntry.uid_owner = ocsEntry.owner;\n // TODO: have the real display name stored somewhere\n ocsEntry.displayname_owner = ocsEntry.owner;\n }\n // Pending and deleted shares are not mounted into the user's filesystem,\n // so no file operation can act on them until they are accepted or restored.\n if (unmounted) {\n ocsEntry.item_permissions = Permission.NONE;\n ocsEntry.permissions = Permission.NONE;\n }\n const isFolder = ocsEntry?.item_type === 'folder';\n const hasPreview = ocsEntry?.has_preview === true;\n const Node = isFolder ? Folder : File;\n // If this is an external share that is not yet accepted,\n // we don't have an id. We can fallback to the row id temporarily\n // local shares (this server) use `file_source`, but remote shares (federated) use `file_id`\n const fileid = ocsEntry.file_source || ocsEntry.file_id || ocsEntry.id;\n // Generate path and strip double slashes\n const path = ocsEntry.path || ocsEntry.file_target || ocsEntry.name;\n const source = `${getRemoteURL()}${getRootPath()}/${path.replace(/^\\/+/, '')}`;\n let mtime = ocsEntry.item_mtime ? new Date((ocsEntry.item_mtime) * 1000) : undefined;\n // Prefer share time if more recent than item mtime\n if (ocsEntry?.stime > (ocsEntry?.item_mtime || 0)) {\n mtime = new Date((ocsEntry.stime) * 1000);\n }\n let sharees;\n if ('share_with' in ocsEntry) {\n sharees = {\n sharee: {\n id: ocsEntry.share_with,\n 'display-name': ocsEntry.share_with_displayname || ocsEntry.share_with,\n type: ocsEntry.share_type,\n },\n };\n }\n return new Node({\n id: fileid,\n source,\n owner: ocsEntry?.uid_owner,\n mime: ocsEntry?.mimetype || 'application/octet-stream',\n mtime,\n size: ocsEntry?.item_size ?? undefined,\n permissions: ocsEntry?.item_permissions || ocsEntry?.permissions,\n root: getRootPath(),\n attributes: {\n ...ocsEntry,\n // 'id' is a forbidden property name\n 'share-id': ocsEntry.id,\n 'has-preview': hasPreview,\n 'hide-download': ocsEntry?.hide_download === 1,\n // Also check the sharingStatusAction.ts code\n 'owner-id': ocsEntry?.uid_owner,\n 'owner-display-name': ocsEntry?.displayname_owner,\n 'share-types': ocsEntry?.share_type,\n 'share-attributes': ocsEntry?.attributes || '[]',\n sharees,\n favorite: ocsEntry?.tags?.includes(window.OC.TAG_FAVORITE) ? 1 : 0,\n },\n });\n }\n catch (error) {\n logger.error('Error while parsing OCS entry', { error });\n return null;\n }\n}\n/**\n *\n * @param shareWithMe\n */\nfunction getShares(shareWithMe = false) {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares');\n return axios.get(url, {\n headers,\n params: {\n shared_with_me: shareWithMe,\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getSharedWithYou() {\n return getShares(true);\n}\n/**\n *\n */\nfunction getSharedWithOthers() {\n return getShares();\n}\n/**\n *\n */\nfunction getRemoteShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getPendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getRemotePendingShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/remote_shares/pending');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n *\n */\nfunction getDeletedShares() {\n const url = generateOcsUrl('apps/files_sharing/api/v1/deletedshares');\n return axios.get(url, {\n headers,\n params: {\n include_tags: true,\n },\n });\n}\n/**\n * Check if a file request is enabled\n *\n * @param attributes the share attributes json-encoded array\n */\nexport function isFileRequest(attributes = '[]') {\n const isFileRequest = (attribute) => {\n return attribute.scope === 'fileRequest' && attribute.key === 'enabled' && attribute.value === true;\n };\n try {\n const attributesArray = JSON.parse(attributes);\n return attributesArray.some(isFileRequest);\n }\n catch (error) {\n logger.error('Error while parsing share attributes', { error });\n return false;\n }\n}\n/**\n * Group an array of objects (here Nodes) by a key\n * and return an array of arrays of them.\n *\n * @param nodes Nodes to group\n * @param key The attribute to group by\n */\nfunction groupBy(nodes, key) {\n return Object.values(nodes.reduce(function (acc, curr) {\n (acc[curr[key]] = acc[curr[key]] || []).push(curr);\n return acc;\n }, {}));\n}\n/**\n *\n * @param sharedWithYou\n * @param sharedWithOthers\n * @param pendingShares\n * @param deletedshares\n * @param filterTypes\n */\nexport async function getContents(sharedWithYou = true, sharedWithOthers = true, pendingShares = false, deletedshares = false, filterTypes = []) {\n const requests = [];\n if (sharedWithYou) {\n requests.push({ promise: getSharedWithYou(), unmounted: false }, { promise: getRemoteShares(), unmounted: false });\n }\n if (sharedWithOthers) {\n requests.push({ promise: getSharedWithOthers(), unmounted: false });\n }\n if (pendingShares) {\n requests.push({ promise: getPendingShares(), unmounted: true }, { promise: getRemotePendingShares(), unmounted: true });\n }\n if (deletedshares) {\n requests.push({ promise: getDeletedShares(), unmounted: true });\n }\n const responses = await Promise.all(requests.map(({ promise }) => promise));\n const data = responses.flatMap((response, index) => response.data.ocs.data\n .map((entry) => ({ entry, unmounted: requests[index].unmounted })));\n let contents = (await Promise.all(data.map(({ entry, unmounted }) => ocsEntryToNode(entry, unmounted))))\n .filter((node) => node !== null);\n if (filterTypes.length > 0) {\n contents = contents.filter((node) => filterTypes.includes(node.attributes?.share_type));\n }\n // Merge duplicate shares and group their attributes\n // Also check the sharingStatusAction.ts code\n contents = groupBy(contents, 'source').map((nodes) => {\n const node = nodes[0];\n node.attributes['share-types'] = nodes.map((node) => node.attributes['share-types']);\n return node;\n });\n return {\n folder: new Folder({\n id: 0,\n source: `${getRemoteURL()}${getRootPath()}`,\n owner: getCurrentUser()?.uid || null,\n root: getRootPath(),\n }),\n contents,\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files_sharing')\n .detectUser()\n .build();\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.action-items>.files-list__row-action-sharing-status{padding-inline:0 !important}.action-items>.files-list__row-action-sharing-status .button-vue__wrapper{flex-direction:row-reverse;gap:var(--default-grid-baseline)}svg.sharing-status__avatar{height:var(--button-inner-size, 32px) !important;width:var(--button-inner-size, 32px) !important;max-height:var(--button-inner-size, 32px) !important;max-width:var(--button-inner-size, 32px) !important;border-radius:var(--button-inner-size, 32px);overflow:hidden}.files-list__row-action-sharing-status .button-vue__text{color:var(--color-primary-element)}.files-list__row-action-sharing-status .button-vue__icon{color:var(--color-primary-element)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/files_actions/sharingStatusAction.scss\"],\"names\":[],\"mappings\":\"AAMA,qDAEC,2BAAA,CAEA,0EAEC,0BAAA,CACA,gCAAA,CAIF,2BACC,gDAAA,CACA,+CAAA,CACA,oDAAA,CACA,mDAAA,CACA,4CAAA,CACA,eAAA,CAIA,yDACC,kCAAA,CAED,yDACC,kCAAA\",\"sourcesContent\":[\"/*\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n // Only when rendered inline, when not enough space, this is put in the menu\\n.action-items > .files-list__row-action-sharing-status {\\n\\t// align icons with text-less inline actions\\n\\tpadding-inline: 0 !important;\\n\\n\\t.button-vue__wrapper {\\n\\t\\t// put icon at the end of the button\\n\\t\\tflex-direction: row-reverse;\\n\\t\\tgap: var(--default-grid-baseline);\\n\\t}\\n}\\n\\nsvg.sharing-status__avatar {\\n\\theight: var(--button-inner-size, 32px) !important;\\n\\twidth: var(--button-inner-size, 32px) !important;\\n\\tmax-height: var(--button-inner-size, 32px) !important;\\n\\tmax-width: var(--button-inner-size, 32px) !important;\\n\\tborder-radius: var(--button-inner-size, 32px);\\n\\toverflow: hidden;\\n}\\n\\n.files-list__row-action-sharing-status {\\n\\t.button-vue__text {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n\\t.button-vue__icon {\\n\\t\\tcolor: var(--color-primary-element);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n._fileListFilterAccount_ZW91g {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--default-grid-baseline);\n}\n._fileListFilterAccount__avatar_V0YuN {\n\t/* 24px is the avatar size */\n\tmargin: calc((var(--default-clickable-area) - 24px) / 2);\n}\n._fileListFilterAccount__currentUser_PqQfx {\n\tfont-weight: normal !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files_sharing/src/components/FileListFilterAccount.vue\"],\"names\":[],\"mappings\":\";AA4JA;CACA,aAAA;CACA,sBAAA;CACA,iCAAA;AACA;AAEA;CACA,4BAAA;CACA,wDAAA;AACA;AAEA;CACA,8BAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fileListFilterAccount\": `_fileListFilterAccount_ZW91g`,\n\t\"fileListFilterAccount__avatar\": `_fileListFilterAccount__avatar_V0YuN`,\n\t\"fileListFilterAccount__currentUser\": `_fileListFilterAccount__currentUser_PqQfx`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, N as NodeStatus, F as File, a as Folder } from \"./logger.mjs\";\nimport \"@nextcloud/paths\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n}\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\",\n \"nc:upload_time\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(timestamp, limit = 100) {\n const capabilities = getCapabilities();\n const supportsUploadTime = capabilities.dav?.search_supports_upload_time;\n const supportsLastActivity = capabilities.dav?.search_supports_last_activity;\n const orderByProp = supportsLastActivity ? \"\" : \"\";\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t${supportsUploadTime ? `\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t${timestamp}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t${timestamp}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t` : `\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t${timestamp}\n\t\t\t\t\t\n\t\t\t\t`}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${orderByProp}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t${limit}\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\n let userId = getCurrentUser()?.uid;\n if (isPublicShare()) {\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 0,\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n}\nexport {\n defaultDavProperties as a,\n defaultRemoteURL as b,\n defaultRootPath as c,\n defaultDavNamespaces as d,\n getDavNameSpaces as e,\n getDavProperties as f,\n getClient as g,\n getDefaultPropfind as h,\n getFavoriteNodes as i,\n getFavoritesReport as j,\n getRecentSearch as k,\n getRemoteURL as l,\n getRootPath as m,\n resultToNode as n,\n parsePermissions as p,\n registerDavProperty as r\n};\n//# sourceMappingURL=dav.mjs.map\n","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tconst module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","const deferred = [];\n__webpack_require__.O = (result, chunkIds, fn) => {\n\tif(chunkIds) {\n\t\tdeferred.push([chunkIds, fn]);\n\t\treturn;\n\t}\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn] = deferred[i];\n\t\tlet fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif (__webpack_require__.O.j(chunkIds[j])) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// wrap a concatenated module body as a lazy, memoized accessor; mod is\n// set before the body runs so re-entrant calls (require cycles) observe\n// the partial exports like Node.js\n__webpack_require__.cw = (body) => {\n\tvar mod;\n\treturn () => {\n\t\tif (body) {\n\t\t\tvar fn = body;\n\t\t\tbody = 0;\n\t\t\tmod = { exports: {} };\n\t\t\tfn.call(mod.exports, mod, mod.exports);\n\t\t}\n\t\treturn mod.exports;\n\t};\n};","// define getter/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tvar descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };\n\t\t\tif(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\tconst promises = [];\n\t__webpack_require__.f.j(chunkId, promises);\n\treturn Promise.all(promises);\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => (chunkId + \"-\" + chunkId + \".js?v=\" + {\"857\":\"c78894d5df34d854f7aa\",\"1404\":\"985094b24b5014221cfb\",\"3252\":\"ae43d7767a2676202c91\",\"4227\":\"a07d0db099f8a9cb4562\",\"4655\":\"47b5282f2bc25f4d3a2d\",\"4941\":\"38be36cf13c01eec6c29\",\"7859\":\"8b3b7c211b6d4a439761\",\"8374\":\"fd40dfc3e2d96840f1fe\",\"8689\":\"7e0b1b0f0e282b712c41\",\"8826\":\"ea635c4e67b9f9f79cd0\"}[chunkId] + \"\");","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop));","const inProgress = {};\nconst dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tlet script, needAttach;\n\tif(key !== undefined) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tconst s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tconst onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tconst doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode?.removeChild(script);\n\t\tdoneFns?.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tconst timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 5928;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","let scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nconst document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript?.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tconst scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tlet i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^https?:/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:|[?#].*$/g, \"\").replace(/\\/[^/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nconst installedChunks = {\n\t5928: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tlet installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tconst promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tconst error = new Error();\n\t\t\t\t\tconst loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tconst errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tconst realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\terror.event = event;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(__webpack_require__.p + __webpack_require__.u(chunkId), loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nconst chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] ||= [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(95798)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["sharesViewId","sharedWithYouViewId","sharedWithOthersViewId","sharingByLinksViewId","deletedSharesViewId","pendingSharesViewId","shares","Navigation","getNavigation","register","View","id","name","t","caption","emptyTitle","emptyCaption","icon","AccountPlusSvg","order","columns","getContents","parent","loadState","quota","AccountGroupSvg","getCapabilities","files_sharing","public","enabled","LinkSvg","ShareType","Link","FileUploadSvg","Email","then","folder","contents","filter","node","isFileRequest","attributes","__webpack_require__","dn","action","displayName","nodes","n","length","iconSvgInline","CheckSvg","view","exec","isRemote","remote","url","generateOcsUrl","shareBase","axios","post","emit","execBatch","Promise","all","map","this","inline","includes","isFolder","type","FileType","Folder","window","OCP","Files","Router","goToRoute","fileid","String","dir","path","dirname","openfile","undefined","default","DefaultType","HIDDEN","some","remote_id","share_type","RemoteGroup","accepted","delete","options","isExternal","styleTagTransform","styleTagTransform_default","setAttributes","setAttributesWithoutAttributes_default","insert","insertBySelector_default","bind","domAPI","styleDomAPI_default","insertStyleElement","insertStyleElement_default","injectStylesIntoStyleTag_default","sharingStatusAction","A","locals","Object","values","flat","owner","getCurrentUser","uid","title","ownerDisplayName","sharees","sharee","User","user","Group","group","shareTypes","Array","isArray","Team","userId","isGuest","matchMedia","matches","document","querySelector","generateUrl","generateAvatarSvg","isPublicShare","permissions","Permission","SHARE","READ","getSidebar","open","showError","rawUid","getElementsByTagName","getAttribute","currentUser","components_FileListFilterAccountvue_type_script_setup_true_lang_ts","_defineComponent","__name","props","setup","__props","currentUserId","accountFilter","ref","availableAccounts","selectedAccounts","watch","accounts","value","setAccounts","onMounted","setAvailableAccounts","filterAccounts","addEventListener","resetFilter","deselect","onUnmounted","removeEventListener","shownAccounts","computed","sort","sortAccounts","queryParts","toLocaleLowerCase","trim","split","account","every","part","a","b","localeCompare","event","accountId","detail","CustomEvent","__sfc","toggleAccount","selected","find","l10n_dist","NcAvatar","NcButton","NcTextField","FileListFilterAccountvue_type_style_index_0_id_ec2dd1f8_prod_module_true_lang_css_options","FileListFilterAccountvue_type_style_index_0_id_ec2dd1f8_prod_module_true_lang_css","components_FileListFilterAccountvue_type_style_index_0_id_ec2dd1f8_prod_module_true_lang_css","FileListFilterAccount","_vm","_c","_self","_setup","_setupProxy","class","$style","fileListFilterAccount","attrs","label","model","callback","$$v","expression","_e","_v","_l","key","alignment","pressed","variant","wide","on","$event","scopedSlots","_u","fn","_b","fileListFilterAccount__avatar","size","proxy","_s","fileListFilterAccount__currentUser","context","tagName","_availableAccounts","WeakMap","_filterAccounts","AccountFilter","FileListFilter","constructor","super","_classPrivateFieldInitSpec","_defineProperty","_classPrivateFieldSet","subscribe","updateAvailableAccounts","_classPrivateFieldGet","userIds","params","deletedBy","reset","dispatchEvent","chips","text","onclick","updateChips","filterUpdated","available","Map","has","set","Boolean","Remote","sharingConfig","Config","NewFileRequestDialogVue","defineAsyncComponent","e","entry","isPublicUploadEnabled","isPublicShareAllowed","handler","content","spawnDialog","registerSharingViews","addNewFileMenuEntry","newFileRequest","registerDavProperty","nc","oc","ocs","registerFileAction","acceptShareAction","openInFilesAction","rejectShareAction","restoreShareAction","WrappedComponent","wrap","Vue","defineProperty","prototype","get","customElements","define","registerFileListFilter","registerAccountFilter","FilesHeaderNoteToRecipient","instance","registerFileListHeader","note","updated","updateFolder","render","async","el","component","extend","$mount","registerNoteToRecipient","_capabilities","defaultPermissions","default_permissions","excludeReshareFromEdit","exclude_reshare_from_edit","upload","federatedShareDocLink","OC","appConfig","core","federatedCloudShareDoc","defaultExpirationDate","isDefaultExpireDateEnabled","days","linkDefaultExpDays","defaultExpireDate","Date","setDate","getDate","maxExpirationDate","defaultInternalExpirationDate","isDefaultInternalExpireDateEnabled","defaultInternalExpireDate","defaultRemoteExpirationDateString","isDefaultRemoteExpireDateEnabled","defaultRemoteExpireDate","enforcePasswordForPublicLink","enableLinkPasswordByDefault","isDefaultExpireDateEnforced","defaultExpireDateEnforced","defaultExpireDateEnabled","isDefaultInternalExpireDateEnforced","defaultInternalExpireDateEnforced","defaultInternalExpireDateEnabled","isDefaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnforced","defaultRemoteExpireDateEnabled","isRemoteShareAllowed","remoteShareAllowed","isFederationEnabled","federation","outgoing","isMailShareAllowed","sharebymail","expire_date","default_days","isResharingAllowed","resharingAllowed","isPasswordForMailSharesRequired","password","enforced","shouldAlwaysShowUnique","always_show_unique","allowGroupSharing","maxAutocompleteResults","parseInt","config","minSearchStringLength","passwordPolicy","password_policy","allowCustomTokens","custom_tokens","showFederatedSharesAsInternal","showFederatedSharesToTrustedServersAsInternal","showExternalSharing","headers","getShares","shareWithMe","shared_with_me","include_tags","getRemoteShares","getPendingShares","getRemotePendingShares","getDeletedShares","attribute","scope","JSON","parse","error","logger","sharedWithYou","sharedWithOthers","pendingShares","deletedshares","filterTypes","requests","push","promise","unmounted","data","flatMap","response","index","ocsEntry","mimetype","mime","getType","item_type","item_mtime","mtime","file_target","mountpoint","item_permissions","NONE","uid_owner","displayname_owner","hasPreview","has_preview","Node","File","file_source","file_id","source","getRemoteURL","getRootPath","replace","stime","share_with","share_with_displayname","item_size","root","hide_download","favorite","tags","TAG_FAVORITE","ocsEntryToNode","reduce","acc","curr","__WEBPACK_DEFAULT_EXPORT__","getLoggerBuilder","setApp","detectUser","build","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default","module","version","sources","names","mappings","sourcesContent","sourceRoot","defaultDavProperties","defaultDavNamespaces","d","prop","namespace","_logger_mjs__WEBPACK_IMPORTED_MODULE_4__","s","davNamespaces","davProperties","namespaces","search","l","warn","startsWith","getDavProperties","join","getDavNameSpaces","keys","ns","getDefaultPropfind","getRecentSearch","timestamp","limit","capabilities","_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_5__","F","supportsUploadTime","dav","search_supports_upload_time","supportsLastActivity","search_supports_last_activity","orderByProp","_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__","HW","_nextcloud_sharing_public__WEBPACK_IMPORTED_MODULE_2__","f","G","defaultRootPath","_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__","dC","defaultRemoteURL","getClient","remoteURL","client","webdav__WEBPACK_IMPORTED_MODULE_3__","UU","setHeaders","token","requesttoken","zo","Gu","patch","headers2","method","fetch","getFavoriteNodes","davRoot","getDirectoryContents","signal","details","includeSelf","filename","result","resultToNode","filesRoot","Error","permString","P","WRITE","CREATE","UPDATE","DELETE","parsePermissions","lastmod","crtime","creationdate","nodeData","isNaN","getTime","displayname","Number","getcontentlength","status","N","FAILED","__webpack_module_cache__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","deferred","O","chunkIds","i","fulfilled","j","splice","r","getter","__esModule","cw","body","mod","definition","binding","descriptor","enumerable","o","chunkId","promises","u","obj","hasOwn","inProgress","dataWebpackPrefix","done","script","needAttach","scripts","createElement","charset","setAttribute","src","onScriptComplete","prev","onerror","onload","clearTimeout","timeout","doneFns","parentNode","removeChild","forEach","setTimeout","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","x","getOwnPropertyDescriptor","writable","configurable","scriptUrl","globalThis","importScripts","location","currentScript","toUpperCase","test","p","baseURI","self","href","installedChunks","installedChunkData","resolve","reject","loadingEnded","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file