{"version":3,"file":"SessionList-CEjn9R56.chunk.mjs","sources":["../node_modules/vue-material-design-icons/AccountMultipleOutline.vue","../src/composables/useSessions.ts","../node_modules/vue-material-design-icons/AccountOutline.vue","../src/components/Editor/AvatarWrapper.vue","../src/components/Editor/GuestNameDialog.vue","../src/components/Editor/SessionList.vue"],"sourcesContent":["\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport {\n\tcomputed,\n\tonMounted,\n\tonUnmounted,\n\treadonly,\n\tref,\n\tshallowRef,\n\twatch,\n\ttype ShallowRef,\n} from 'vue'\nimport type { OpenData } from '../apis/connect.js'\nimport {\n\tCOLLABORATOR_DISCONNECT_TIME,\n\tisGuest,\n\tSyncService,\n\ttype Session,\n} from '../services/SyncService.js'\nimport { useConnection } from './useConnection.js'\n\n/**\n * Get the sessions from the sync service.\n *\n * @param syncService to watch for changes to the sessions.\n */\nexport function useSessions(syncService: SyncService) {\n\tconst { openData } = useConnection() as {\n\t\topenData: ShallowRef\n\t}\n\tconst currentSession = ref(openData.value?.session)\n\tconst sessions = shallowRef([])\n\n\twatch(openData, (val) => {\n\t\tif (val?.session) {\n\t\t\tcurrentSession.value = val.session\n\t\t}\n\t})\n\n\tconst currentGuestSession = computed({\n\t\tget() {\n\t\t\tif (currentSession.value && isGuest(currentSession.value)) {\n\t\t\t\treturn currentSession.value\n\t\t\t}\n\t\t},\n\t\tset(newValue) {\n\t\t\tcurrentSession.value = newValue\n\t\t},\n\t})\n\n\tconst updateSessions = ({ sessions: updated }: { sessions: Session[] }) => {\n\t\tconst cutoff = Date.now() / 1000 - COLLABORATOR_DISCONNECT_TIME\n\t\tsessions.value = updated\n\t\t\t.filter((session) => session.lastContact > cutoff)\n\t\t\t.sort((a, b) => b.lastContact - a.lastContact)\n\t\t\t.filter(uniqueUserId)\n\n\t\t// Make sure we get our own session updated\n\t\tconst currentUpdatedSession = sessions.value.find(\n\t\t\t(session) => session.id === currentSession.value?.id,\n\t\t)\n\t\tif (currentUpdatedSession) {\n\t\t\tcurrentSession.value = currentUpdatedSession\n\t\t}\n\t}\n\tonMounted(() => {\n\t\tsyncService.bus.on('change', updateSessions)\n\t})\n\tonUnmounted(() => {\n\t\tsyncService.bus.off('change', updateSessions)\n\t})\n\treturn {\n\t\tcurrentGuestSession,\n\t\tcurrentSession: readonly(currentSession),\n\t\tsessions: readonly(sessions),\n\t}\n}\n\n/**\n * Return true for entries with a unique user id or with no user id (Guests).\n *\n * To be used in filter. Will keep the first entry and remove duplicates.\n *\n * @param val the current value\n * @param idx index of the current value\n * @param arr the entire array\n */\nfunction uniqueUserId(val: Session, idx: number, arr: Session[]): boolean {\n\tif (!('userId' in val)) {\n\t\treturn true\n\t}\n\treturn !arr\n\t\t.slice(0, idx)\n\t\t.some((session) => 'userId' in session && session.userId === val.userId)\n}\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n"],"names":["_sfc_main","useSessions","syncService","openData","useConnection","currentSession","ref","sessions","shallowRef","watch","val","currentGuestSession","computed","isGuest","newValue","updateSessions","updated","cutoff","COLLABORATOR_DISCONNECT_TIME","session","a","b","uniqueUserId","currentUpdatedSession","onMounted","onUnmounted","readonly","idx","arr","NcAvatar","AccountOutlineIcon","connection","editor","useEditor","updateUser","useEditorMethods","editing","loading","guestName","props","newName","showError","t","previousGuestName","update","e","emit","error","showWarning","AccountMultipleOutlineIcon","AvatarWrapper","GuestNameDialog","NcButton","NcPopover","isPublic","useEditorFlags","useSyncService","COLLABORATOR_IDLE_TIME"],"mappings":"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","x_google_ignoreList":[0,2]}