Files
nextcloud-server-mirror/dist/mount-DSfY-vcb.chunk.mjs.map
2026-10-07 08:58:40 +00:00

1 line
137 KiB
XML

{"version":3,"mappings":"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","names":["DEFAULT_ORIENTATION","TRANSFORMS","ALL","isOrientation","value","rotateOrientation","orientation","turn","turns","mirrored","turned","SOI","SOS","EOI","DQT","APP1","APP2","APP13","EXIF_HEADER","XMP_HEADER","ICC_HEADER","IPTC_HEADER","TAG_ORIENTATION","TAG_COLOR_SPACE","TAG_EXIF_IFD","TAG_PIXEL_WIDTH","TAG_PIXEL_HEIGHT","TYPE_SHORT","TAG_YCBCR_POSITIONING","YCBCR_CENTERED","TAG_STRIP_OFFSETS","TAG_STRIP_LENGTHS","TAG_THUMBNAIL_OFFSET","TAG_THUMBNAIL_LENGTH","STANDARD_LUMINANCE","ascii","bytes","start","length","out","i","isMetadata","marker","head","readMetadataSegments","options","icc","segments","at","readLuminanceTable","end","entry","width","values","_","index","scaledTable","quality","scale","estimateJpegQuality","table","best","smallest","candidate","distance","eraseThumbnail","tiff","ifd1","eachEntry","offsets","lengths","tag","from","rewriteExif","segment","size","srgb","little","view","u16","u32","setU16","offset","visit","count","entryValues","type","base","found","ifd0","exifIfd","endOfIfd0","withMetadata","encoded","carried","total","sum","write","findExif","readIfd0","order","findOrientationEntry","readJpegOrientation","exif","newExifSegment","writeShortEntry","withOrientationEntry","added","written","setJpegOrientation","out2","elementStyle","e","_sfc_main$7","_hoisted_1$7","_hoisted_2$7","_hoisted_3$7","_hoisted_4$6","_sfc_render$6","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","mergeProps","$event","createElementVNode","toDisplayString","createCommentVNode","ChevronLeft","_export_sfc","_sfc_main$6","_hoisted_1$6","_hoisted_2$6","_hoisted_3$6","_hoisted_4$5","_sfc_render$5","DockRight","_sfc_main$5","_hoisted_1$5","_hoisted_2$5","_hoisted_3$5","_hoisted_4$4","_sfc_render$4","FileAlertOutlineIcon","_sfc_main$4","_hoisted_1$4","_hoisted_2$4","_hoisted_3$4","_hoisted_4$3","_sfc_render$3","FullscreenIcon","_sfc_main$3","_hoisted_1$3","_hoisted_2$3","_hoisted_3$3","_hoisted_4$2","_sfc_render$2","FullscreenExitIcon","_sfc_main$2","_hoisted_1$2","_hoisted_2$2","_hoisted_3$2","_hoisted_4$1","_sfc_render$1","PencilIcon","_sfc_main$1","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","_hoisted_4","_sfc_render","RotateLeftIcon","QUIET_MS","ROTATABLE_MIME","useRotation","file","onWritten","ref","saving","pending","target","timer","versions","queue","writing","canRotate","computed","Permission","rotateLeft","save","owed","node","response","axios","logger","showError","t","known","result","saved","emit","error","watch","onScopeDispose","EXCLUDED_ACTION_IDS","EXCLUDED_ACTION_PREFIXES","useViewerActions","contents","folder","context","currentFile","toValue","currentView","currentFolder","enabledActions","ctx","getFileActions","action","prefix","DefaultType","a","b","enabledSubmenuActions","record","actions","isValidMenu","actionLabel","actionIcon","execAction","getHandlerForFile","group","getHandlers","handler","isHandlerEnabled","DEFAULT","MODES","getSortingConfig","isPublicShare","generateUrl","config","client","getClient","fetchFolderContent","signal","propfindPayload","getDefaultPropfind","files","resultToNode","FileType","sortNodes","previousTitle","suffix","setViewerTitle","name","instance","restoreTitle","emittedValue","event","detail","toError","reported","fallback","renameFile","newName","oldSource","oldEncodedSource","basenameFromSource","source","_hoisted_1","_hoisted_2","_hoisted_3","SLOW_LOADING_MS","SIDEBAR_FULLSCREEN_CLASS","RENAME_ACTION_ID","_sfc_main","defineComponent","__props","__expose","ImageEditor","defineAsyncComponent","__vitePreload","resizeObserver","modal","useTemplateRef","height","loading","errorString","pendingLoads","reloadKey","slowLoading","slowLoadingTimer","isLoading","onUnmounted","retry","editedSources","ownSaves","canSwipe","isFullscreen","editing","lightBackdrop","slideshowRunning","playing","sidebarPosition","isSidebarShown","trapSidebar","imageEditor","trapElements","element","currentFileList","currentHandler","forcedHandler","handlerFor","comparisonFile","comparisonHandler","isComparing","EDITABLE_MIMES","isMobile","useIsMobile","nonAccessibleFeatures","loadState","canEdit","canDownload","shown","offerRotate","offerEdit","slideshowPaused","currentOptions","closeCallbacks","canOpenSidebar","offerSidebar","inlineActions","loadedTags","elementReady","handlers","initHandlerElement","onError","fileActions","openedSubmenu","renameDialogOpen","renameValue","onActionClick","handleAction","onBackToMenuClick","openRenameDialog","renameButtons","submitRename","triggerRef","onNodeDeleted","wasCurrent","close","wasLast","newFile","showFile","preloadNeighbors","onNodeUpdated","releaseEditedSource","onEditSaved","remaining","clearEditedSources","url","setEditing","modalName","isShown","indexOfCurrent","hasNext","canLoop","currentIndex","hasPrevious","open","handlerId","n","listed","f","h","isSameFile","onOpen","folderListing","openFolder","compare","file1","file2","handler1","handler2","neighbors","onLoad","handlerElement","previous2","onCanSwipe","onHandlerEditing","onPlaying","onClose","next","newIndex","loadingMore","loadMoreAtEnd","loadMore","isLast","moreFiles","previous","goTo","fileid","showSidebar","followInSidebar","visibleSidebar","sidebar","sidebarElement","measureSidebar","onAppSidebarOpen","onAppSidebarClose","modalElement","onClickOutside","content","onViewerResize","modalContainer","measureModal","attempt","modalContent","attachModal","onContextMenu","toggleFullScreen","onFullscreenChange","detachModal","oldFile","nextTick","onMounted","debounce","subscribe","unsubscribe","Fragment","createBlock","unref","NcModal","normalizeStyle","withCtx","NcActionButton","createVNode","createTextVNode","renderList","NcIconSvgWrapper","NcLoadingIcon","NcEmptyContent","createSlots","NcButton","withDirectives","resolveDynamicComponent","vShow","NcDialog","withModifiers","NcTextField","Viewer","plyrIcons","mount","registerAudioCustomElement","registerImageCustomElement","registerSheetmusicCustomElement","registerVideoCustomElement","ViewerApp","createApp","ViewerRoot","VideoControls","ViewerInstance","getViewer"],"ignoreList":[0,1],"sources":["../node_modules/@nextcloud/image-editor/dist/chunks/jpeg.mjs","../node_modules/@nextcloud/viewer/dist/chunks/mount.mjs"],"sourcesContent":["const DEFAULT_ORIENTATION = 1;\nconst TRANSFORMS = {\n 1: { turns: 0, mirrored: false },\n 2: { turns: 0, mirrored: true },\n 3: { turns: 2, mirrored: false },\n 4: { turns: 2, mirrored: true },\n 5: { turns: 3, mirrored: true },\n 6: { turns: 1, mirrored: false },\n 7: { turns: 1, mirrored: true },\n 8: { turns: 3, mirrored: false }\n};\nconst ALL = Object.keys(TRANSFORMS).map(Number);\nfunction isOrientation(value) {\n return Number.isInteger(value) && value >= 1 && value <= 8;\n}\nfunction rotateOrientation(orientation, turn) {\n const { turns, mirrored } = TRANSFORMS[orientation];\n const turned = (turns + (turn === \"left\" ? 3 : 1)) % 4;\n return ALL.find((value) => TRANSFORMS[value].turns === turned && TRANSFORMS[value].mirrored === mirrored) ?? orientation;\n}\nconst SOI = 216;\nconst SOS = 218;\nconst EOI = 217;\nconst DQT = 219;\nconst APP1 = 225;\nconst APP2 = 226;\nconst APP13 = 237;\nconst EXIF_HEADER = \"Exif\\0\\0\";\nconst XMP_HEADER = \"http://ns.adobe.com/xap/1.0/\\0\";\nconst ICC_HEADER = \"ICC_PROFILE\\0\";\nconst IPTC_HEADER = \"Photoshop 3.0\\0\";\nconst TAG_ORIENTATION = 274;\nconst TAG_COLOR_SPACE = 40961;\nconst TAG_EXIF_IFD = 34665;\nconst TAG_PIXEL_WIDTH = 40962;\nconst TAG_PIXEL_HEIGHT = 40963;\nconst TYPE_SHORT = 3;\nconst TAG_YCBCR_POSITIONING = 531;\nconst YCBCR_CENTERED = 1;\nconst TAG_STRIP_OFFSETS = 273;\nconst TAG_STRIP_LENGTHS = 279;\nconst TAG_THUMBNAIL_OFFSET = 513;\nconst TAG_THUMBNAIL_LENGTH = 514;\nconst STANDARD_LUMINANCE = [\n 16,\n 11,\n 12,\n 14,\n 12,\n 10,\n 16,\n 14,\n 13,\n 14,\n 18,\n 17,\n 16,\n 19,\n 24,\n 40,\n 26,\n 24,\n 22,\n 22,\n 24,\n 49,\n 35,\n 37,\n 29,\n 40,\n 58,\n 51,\n 61,\n 60,\n 57,\n 51,\n 56,\n 55,\n 64,\n 72,\n 92,\n 78,\n 64,\n 68,\n 87,\n 69,\n 55,\n 56,\n 80,\n 109,\n 81,\n 87,\n 95,\n 98,\n 103,\n 104,\n 103,\n 62,\n 77,\n 113,\n 121,\n 112,\n 100,\n 120,\n 92,\n 101,\n 103,\n 99\n];\nfunction ascii(bytes, start, length) {\n let out = \"\";\n for (let i = 0; i < length && start + i < bytes.length; i++) {\n out += String.fromCharCode(bytes[start + i]);\n }\n return out;\n}\nfunction isMetadata(marker, head) {\n if (marker === APP1) {\n return head.startsWith(EXIF_HEADER) || head.startsWith(XMP_HEADER.slice(0, 20));\n }\n if (marker === APP2) {\n return head.startsWith(ICC_HEADER);\n }\n if (marker === APP13) {\n return head.startsWith(IPTC_HEADER);\n }\n return false;\n}\nfunction readMetadataSegments(bytes, options = {}) {\n const { icc = true } = options;\n if (bytes[0] !== 255 || bytes[1] !== SOI) {\n return [];\n }\n const segments = [];\n let at = 2;\n while (at + 3 < bytes.length && bytes[at] === 255) {\n const marker = bytes[at + 1];\n if (marker === SOS || marker === EOI) {\n break;\n }\n const length = bytes[at + 2] << 8 | bytes[at + 3];\n const head = ascii(bytes, at + 4, 30);\n if (isMetadata(marker, head) && (icc || !head.startsWith(ICC_HEADER))) {\n segments.push(bytes.subarray(at, at + 2 + length));\n }\n at += 2 + length;\n }\n return segments;\n}\nfunction readLuminanceTable(bytes) {\n if (bytes[0] !== 255 || bytes[1] !== SOI) {\n return void 0;\n }\n let at = 2;\n while (at + 3 < bytes.length && bytes[at] === 255) {\n const marker = bytes[at + 1];\n if (marker === SOS || marker === EOI) {\n break;\n }\n const length = bytes[at + 2] << 8 | bytes[at + 3];\n if (marker === DQT) {\n const end = at + 2 + length;\n let entry = at + 4;\n while (entry < end) {\n const width = bytes[entry] >> 4 === 0 ? 1 : 2;\n if (entry + 1 + 64 * width > end) {\n break;\n }\n if ((bytes[entry] & 15) === 0) {\n const values = entry + 1;\n return Array.from({ length: 64 }, (_, index) => {\n const value = values + index * width;\n return width === 1 ? bytes[value] : bytes[value] << 8 | bytes[value + 1];\n });\n }\n entry += 1 + 64 * width;\n }\n }\n at += 2 + length;\n }\n return void 0;\n}\nfunction scaledTable(quality) {\n const scale = quality < 50 ? Math.floor(5e3 / quality) : 200 - quality * 2;\n return STANDARD_LUMINANCE.map((value) => Math.min(255, Math.max(1, Math.floor((value * scale + 50) / 100))));\n}\nfunction estimateJpegQuality(bytes) {\n const table = readLuminanceTable(bytes);\n if (table === void 0) {\n return void 0;\n }\n let best = 1;\n let smallest = Infinity;\n for (let quality = 1; quality <= 100; quality++) {\n const candidate = scaledTable(quality);\n let distance = 0;\n for (let index = 0; index < 64; index++) {\n distance += Math.abs(candidate[index] - table[index]);\n }\n if (distance < smallest) {\n smallest = distance;\n best = quality;\n }\n }\n return best;\n}\nfunction eraseThumbnail(out, tiff, ifd1, eachEntry, values) {\n if (ifd1 === 0) {\n return;\n }\n let offsets = [];\n let lengths = [];\n eachEntry(ifd1, (entry, tag) => {\n if (tag === TAG_THUMBNAIL_OFFSET || tag === TAG_STRIP_OFFSETS) {\n offsets = values(entry);\n }\n if (tag === TAG_THUMBNAIL_LENGTH || tag === TAG_STRIP_LENGTHS) {\n lengths = values(entry);\n }\n });\n for (let i = 0; i < Math.min(offsets.length, lengths.length); i++) {\n const from = Math.min(tiff + offsets[i], out.length);\n out.fill(0, from, Math.min(from + lengths[i], out.length));\n }\n}\nfunction rewriteExif(segment, size, srgb) {\n const out = new Uint8Array(segment);\n const tiff = 10;\n if (out.length < tiff + 8) {\n return out;\n }\n const little = ascii(out, tiff, 2) === \"II\";\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const u16 = (at) => view.getUint16(at, little);\n const u32 = (at) => view.getUint32(at, little);\n const setU16 = (at, value) => view.setUint16(at, value, little);\n function eachEntry(offset, visit) {\n const start = tiff + offset;\n if (start + 2 > out.length) {\n return start;\n }\n const count = u16(start);\n for (let i = 0; i < count; i++) {\n const entry = start + 2 + i * 12;\n if (entry + 12 > out.length) {\n break;\n }\n visit(entry, u16(entry));\n }\n return start + 2 + count * 12;\n }\n function entryValues(entry) {\n const type = u16(entry + 2);\n if (type !== 3 && type !== 4) {\n return [];\n }\n const width = type === 3 ? 2 : 4;\n const count = u32(entry + 4);\n const base = count * width <= 4 ? entry + 8 : tiff + u32(entry + 8);\n const found = [];\n for (let i = 0; i < count; i++) {\n const at = base + i * width;\n if (at + width > out.length) {\n break;\n }\n found.push(width === 2 ? u16(at) : u32(at));\n }\n return found;\n }\n const ifd0 = u32(tiff + 4);\n let exifIfd = 0;\n const endOfIfd0 = eachEntry(ifd0, (entry, tag) => {\n if (tag === TAG_ORIENTATION) {\n setU16(entry + 8, 1);\n }\n if (tag === TAG_EXIF_IFD) {\n exifIfd = u32(entry + 8);\n }\n });\n if (endOfIfd0 + 4 <= out.length) {\n eraseThumbnail(out, tiff, u32(endOfIfd0), eachEntry, entryValues);\n view.setUint32(endOfIfd0, 0, little);\n }\n if (exifIfd !== 0) {\n eachEntry(exifIfd, (entry, tag) => {\n const type = u16(entry + 2);\n if (tag === TAG_COLOR_SPACE && srgb && type === 3) {\n setU16(entry + 8, 1);\n return;\n }\n const value = tag === TAG_PIXEL_WIDTH ? size.width : tag === TAG_PIXEL_HEIGHT ? size.height : null;\n if (value === null) {\n return;\n }\n if (type === 3 && value <= 65535) {\n setU16(entry + 8, value);\n } else if (type === 4) {\n view.setUint32(entry + 8, value, little);\n }\n });\n }\n return out;\n}\nfunction withMetadata(encoded, segments, size) {\n if (segments.length === 0 || encoded[0] !== 255 || encoded[1] !== SOI) {\n return encoded;\n }\n let at = 2;\n while (at + 3 < encoded.length && encoded[at] === 255) {\n const marker = encoded[at + 1];\n if (marker === SOS || marker === EOI) {\n break;\n }\n const length = encoded[at + 2] << 8 | encoded[at + 3];\n const head = ascii(encoded, at + 4, 30);\n if (isMetadata(marker, head)) {\n break;\n }\n if (marker !== 224) {\n break;\n }\n at += 2 + length;\n }\n const srgb = !segments.some((segment) => ascii(segment, 4, ICC_HEADER.length) === ICC_HEADER);\n const carried = segments.map((segment) => ascii(segment, 4, 6) === EXIF_HEADER ? rewriteExif(segment, size, srgb) : segment);\n const total = carried.reduce((sum, segment) => sum + segment.length, 0);\n const out = new Uint8Array(encoded.length + total);\n out.set(encoded.subarray(0, at), 0);\n let write = at;\n for (const segment of carried) {\n out.set(segment, write);\n write += segment.length;\n }\n out.set(encoded.subarray(at), write);\n return out;\n}\nfunction findExif(bytes) {\n if (bytes[0] !== 255 || bytes[1] !== SOI) {\n return null;\n }\n let at = 2;\n while (at + 3 < bytes.length && bytes[at] === 255) {\n const marker = bytes[at + 1];\n if (marker === SOS || marker === EOI) {\n return null;\n }\n const length = bytes[at + 2] << 8 | bytes[at + 3];\n if (marker === APP1 && ascii(bytes, at + 4, 6) === EXIF_HEADER) {\n return { at, length };\n }\n at += 2 + length;\n }\n return null;\n}\nfunction readIfd0(bytes, tiff, end) {\n if (tiff + 8 > end) {\n return null;\n }\n const order = ascii(bytes, tiff, 2);\n if (order !== \"II\" && order !== \"MM\") {\n return null;\n }\n const little = order === \"II\";\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n const start = tiff + view.getUint32(tiff + 4, little);\n if (start < tiff + 8 || start + 2 > end) {\n return null;\n }\n const count = view.getUint16(start, little);\n if (count === 0 || start + 2 + count * 12 + 4 > end) {\n return null;\n }\n return { little, view, start, count };\n}\nfunction findOrientationEntry(bytes, tiff, end) {\n const ifd0 = readIfd0(bytes, tiff, end);\n if (ifd0 === null) {\n return null;\n }\n const { little, view, start, count } = ifd0;\n for (let i = 0; i < count; i++) {\n const entry = start + 2 + i * 12;\n if (view.getUint16(entry, little) === TAG_ORIENTATION && view.getUint16(entry + 2, little) === TYPE_SHORT && view.getUint32(entry + 4, little) === 1) {\n return entry;\n }\n }\n return null;\n}\nfunction readJpegOrientation(bytes) {\n const exif = findExif(bytes);\n if (exif === null) {\n return DEFAULT_ORIENTATION;\n }\n const tiff = exif.at + 10;\n const entry = findOrientationEntry(bytes, tiff, exif.at + 2 + exif.length);\n if (entry === null) {\n return DEFAULT_ORIENTATION;\n }\n const little = ascii(bytes, tiff, 2) === \"II\";\n const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n const value = view.getUint16(entry + 8, little);\n return isOrientation(value) ? value : DEFAULT_ORIENTATION;\n}\nfunction newExifSegment(orientation) {\n const segment = new Uint8Array(4 + 6 + 8 + 2 + 24 + 4);\n const view = new DataView(segment.buffer);\n segment[0] = 255;\n segment[1] = APP1;\n view.setUint16(2, segment.length - 2);\n for (let i = 0; i < EXIF_HEADER.length; i++) {\n segment[4 + i] = EXIF_HEADER.charCodeAt(i);\n }\n const tiff = 10;\n view.setUint16(tiff, 19789);\n view.setUint16(tiff + 2, 42);\n view.setUint32(tiff + 4, 8);\n view.setUint16(tiff + 8, 2);\n writeShortEntry(view, tiff + 10, false, TAG_ORIENTATION, orientation);\n writeShortEntry(view, tiff + 22, false, TAG_YCBCR_POSITIONING, YCBCR_CENTERED);\n return segment;\n}\nfunction withOrientationEntry(bytes, exif, orientation) {\n const tiff = exif.at + 10;\n const end = exif.at + 2 + exif.length;\n const ifd0 = readIfd0(bytes, tiff, end);\n if (ifd0 === null) {\n return null;\n }\n const { little, view, start, count } = ifd0;\n const added = 2 + (count + 1) * 12 + 4;\n if (exif.length + added > 65535) {\n return null;\n }\n const out = new Uint8Array(bytes.length + added);\n out.set(bytes.subarray(0, end), 0);\n out.set(bytes.subarray(end), end + added);\n const write = new DataView(out.buffer);\n write.setUint16(exif.at + 2, exif.length + added);\n write.setUint32(tiff + 4, end - tiff, little);\n write.setUint16(end, count + 1, little);\n let at = end + 2;\n let written = false;\n for (let i = 0; i < count; i++) {\n const entry = start + 2 + i * 12;\n if (!written && view.getUint16(entry, little) > TAG_ORIENTATION) {\n at = writeShortEntry(write, at, little, TAG_ORIENTATION, orientation);\n written = true;\n }\n out.set(bytes.subarray(entry, entry + 12), at);\n at += 12;\n }\n if (!written) {\n at = writeShortEntry(write, at, little, TAG_ORIENTATION, orientation);\n }\n write.setUint32(at, view.getUint32(start + 2 + count * 12, little), little);\n return out;\n}\nfunction writeShortEntry(view, at, little, tag, value) {\n view.setUint16(at, tag, little);\n view.setUint16(at + 2, TYPE_SHORT, little);\n view.setUint32(at + 4, 1, little);\n view.setUint16(at + 8, value, little);\n view.setUint16(at + 10, 0, little);\n return at + 12;\n}\nfunction setJpegOrientation(bytes, orientation) {\n if (!isOrientation(orientation)) {\n return null;\n }\n if (bytes[0] !== 255 || bytes[1] !== SOI) {\n return null;\n }\n const exif = findExif(bytes);\n if (exif === null) {\n const segment = newExifSegment(orientation);\n const out2 = new Uint8Array(bytes.length + segment.length);\n out2.set(bytes.subarray(0, 2), 0);\n out2.set(segment, 2);\n out2.set(bytes.subarray(2), 2 + segment.length);\n return out2;\n }\n const entry = findOrientationEntry(bytes, exif.at + 10, exif.at + 2 + exif.length);\n if (entry === null) {\n return withOrientationEntry(bytes, exif, orientation);\n }\n const out = new Uint8Array(bytes);\n const little = ascii(bytes, exif.at + 10, 2) === \"II\";\n new DataView(out.buffer).setUint16(entry + 8, orientation, little);\n return out;\n}\nexport {\n DEFAULT_ORIENTATION as D,\n readJpegOrientation as a,\n rotateOrientation as b,\n estimateJpegQuality as e,\n isOrientation as i,\n readMetadataSegments as r,\n setJpegOrientation as s,\n withMetadata as w\n};\n//# sourceMappingURL=jpeg.mjs.map\n","(function() {\n \"use strict\";\n try {\n if (typeof document != \"undefined\") {\n var elementStyle = document.createElement(\"style\");\n elementStyle.appendChild(document.createTextNode('.viewer__modal[data-v-b2769967]:not(.modal-mask--light) {\\n --color-main-text: #ffffff;\\n --color-text-maxcontrast: #d8d8d8;\\n --color-main-background: #171717;\\n color: var(--color-main-text);\\n}\\n.viewer__modal[data-v-b2769967] .modal-container__content {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n}\\n.viewer__modal[data-v-b2769967] .modal-container {\\n top: calc(var(--header-height) + 8px) !important;\\n bottom: var(--header-height) !important;\\n height: auto !important;\\n background-color: transparent !important;\\n box-shadow: none !important;\\n}\\n.viewer__loading-hint[data-v-b2769967] {\\n display: block;\\n margin-top: calc(2 * var(--default-grid-baseline));\\n text-align: center;\\n color: var(--color-text-maxcontrast);\\n}\\n.viewer__comparison[data-v-b2769967] {\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n align-items: center;\\n gap: 8px;\\n width: 100%;\\n height: 100%;\\n}body.viewer--sidebar-fullscreen #app-sidebar-vue {\\n position: fixed;\\n width: calc(var(--app-sidebar-width) + var(--body-container-margin));\\n}\\nbody.viewer--sidebar-fullscreen .app-navigation ~ #app-content-vue:has(~ #app-sidebar-vue:not([style*=\"display: none\"])) {\\n flex-basis: calc(100% - 300px - clamp(300px, 27vw, 500px));\\n}\\nbody.viewer--sidebar-fullscreen #app-content-vue:first-child:has(~ #app-sidebar-vue:not([style*=\"display: none\"])),\\nbody.viewer--sidebar-fullscreen .app-navigation--close ~ #app-content-vue:has(~ #app-sidebar-vue:not([style*=\"display: none\"])),\\nbody.viewer--sidebar-fullscreen .app-navigation--closed ~ #app-content-vue:has(~ #app-sidebar-vue:not([style*=\"display: none\"])) {\\n flex-basis: calc(100% - clamp(300px, 27vw, 500px));\\n}\\nbody.viewer--sidebar-fullscreen #header {\\n visibility: hidden;\\n}'));\n document.head.appendChild(elementStyle);\n }\n } catch (e) {\n console.error(\"vite-plugin-css-injected-by-js\", e);\n }\n})();\nimport { openBlock, createElementBlock, mergeProps, createElementVNode, toDisplayString, createCommentVNode, ref, computed, watch, onScopeDispose, toValue, defineComponent, defineAsyncComponent, useTemplateRef, onUnmounted, triggerRef, nextTick, onMounted, Fragment, createBlock, unref, normalizeStyle, withCtx, createVNode, createTextVNode, createSlots, withDirectives, resolveDynamicComponent, vShow, renderList, withModifiers, createApp } from \"vue\";\nimport { showError } from \"@nextcloud/dialogs\";\nimport { emit, subscribe, unsubscribe } from \"@nextcloud/event-bus\";\nimport { Permission, getFileActions, DefaultType, FileType, sortNodes } from \"@nextcloud/files\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { useIsMobile } from \"@nextcloud/vue/composables/useIsMobile\";\nimport debounce from \"debounce\";\nimport NcActionButton from \"@nextcloud/vue/components/NcActionButton\";\nimport NcButton from \"@nextcloud/vue/components/NcButton\";\nimport NcDialog from \"@nextcloud/vue/components/NcDialog\";\nimport NcEmptyContent from \"@nextcloud/vue/components/NcEmptyContent\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/components/NcIconSvgWrapper\";\nimport NcLoadingIcon from \"@nextcloud/vue/components/NcLoadingIcon\";\nimport NcModal from \"@nextcloud/vue/components/NcModal\";\nimport NcTextField from \"@nextcloud/vue/components/NcTextField\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport axios from \"@nextcloud/axios\";\nimport { readJpegOrientation, rotateOrientation, setJpegOrientation } from \"@nextcloud/image-editor/jpeg\";\nimport { l as logger, t, g as getHandlers, i as isHandlerEnabled, a as initHandlerElement, r as registerAudioCustomElement, b as registerImageCustomElement, c as registerSheetmusicCustomElement, d as registerVideoCustomElement, e as getViewer } from \"./index.mjs\";\nimport { getDefaultPropfind, resultToNode, getClient } from \"@nextcloud/files/dav\";\nimport { generateUrl } from \"@nextcloud/router\";\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport { c as canDownload } from \"./canDownload.mjs\";\nconst _sfc_main$7 = {\n name: \"ChevronLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$7 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$7 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$7 = { d: \"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z\" };\nconst _hoisted_4$6 = { key: 0 };\nfunction _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon chevron-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$7, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$6, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$7))\n ], 16, _hoisted_1$7);\n}\nconst ChevronLeft = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$6 = {\n name: \"DockRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$6 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$6 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$6 = { d: \"M20 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V6A2 2 0 0 0 20 4M15 18H4V6H15Z\" };\nconst _hoisted_4$5 = { key: 0 };\nfunction _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon dock-right-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$6, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$5, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$6))\n ], 16, _hoisted_1$6);\n}\nconst DockRight = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$5 = {\n name: \"FileAlertOutlineIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$5 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$5 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$5 = { d: \"M20 17H22V15H20V17M20 7V13H22V7M4 2C2.89 2 2 2.89 2 4V20C2 21.11 2.89 22 4 22H16C17.11 22 18 21.11 18 20V8L12 2M4 4H11V9H16V20H4Z\" };\nconst _hoisted_4$4 = { key: 0 };\nfunction _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon file-alert-outline-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$5, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$5))\n ], 16, _hoisted_1$5);\n}\nconst FileAlertOutlineIcon = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$4 = {\n name: \"FullscreenIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$4 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$4 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$4 = { d: \"M5,5H10V7H7V10H5V5M14,5H19V10H17V7H14V5M17,14H19V19H14V17H17V14M10,17V19H5V14H7V17H10Z\" };\nconst _hoisted_4$3 = { key: 0 };\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon fullscreen-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$4, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$3, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$4))\n ], 16, _hoisted_1$4);\n}\nconst FullscreenIcon = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$3 = {\n name: \"FullscreenExitIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$3 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$3 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$3 = { d: \"M14,14H19V16H16V19H14V14M5,14H10V19H8V16H5V14M8,5H10V10H5V8H8V5M19,8V10H14V5H16V8H19Z\" };\nconst _hoisted_4$2 = { key: 0 };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon fullscreen-exit-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$3, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$3))\n ], 16, _hoisted_1$3);\n}\nconst FullscreenExitIcon = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$2 = {\n name: \"PencilIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$2 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$2 = { d: \"M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z\" };\nconst _hoisted_4$1 = { key: 0 };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon pencil-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$2, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$2))\n ], 16, _hoisted_1$2);\n}\nconst PencilIcon = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$1]]);\nconst _sfc_main$1 = {\n name: \"RotateLeftIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nconst _hoisted_1$1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M13,4.07V1L8.45,5.55L13,10V6.09C15.84,6.57 18,9.03 18,12C18,14.97 15.84,17.43 13,17.91V19.93C16.95,19.44 20,16.08 20,12C20,7.92 16.95,4.56 13,4.07M7.1,18.32C8.26,19.22 9.61,19.76 11,19.93V17.9C10.13,17.75 9.29,17.41 8.54,16.87L7.1,18.32M6.09,13H4.07C4.24,14.39 4.79,15.73 5.69,16.89L7.1,15.47C6.58,14.72 6.23,13.88 6.09,13M7.11,8.53L5.7,7.11C4.8,8.27 4.24,9.61 4.07,11H6.09C6.23,10.13 6.58,9.28 7.11,8.53Z\" };\nconst _hoisted_4 = { key: 0 };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"span\", mergeProps(_ctx.$attrs, {\n \"aria-hidden\": $props.title ? null : \"true\",\n \"aria-label\": $props.title,\n class: \"material-design-icon rotate-left-icon\",\n role: \"img\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), [\n (openBlock(), createElementBlock(\"svg\", {\n fill: $props.fillColor,\n class: \"material-design-icon__svg\",\n width: $props.size,\n height: $props.size,\n viewBox: \"0 0 24 24\"\n }, [\n createElementVNode(\"path\", _hoisted_3$1, [\n $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_2$1))\n ], 16, _hoisted_1$1);\n}\nconst RotateLeftIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst QUIET_MS = 1200;\nconst ROTATABLE_MIME = \"image/jpeg\";\nfunction useRotation(file, onWritten) {\n const turns = ref(0);\n const saving = ref(false);\n let pending = 0;\n let target;\n let timer;\n const versions = /* @__PURE__ */ new Map();\n let written;\n let queue = Promise.resolve();\n let writing = 0;\n const canRotate = computed(() => file.value?.mime === ROTATABLE_MIME && ((file.value?.permissions ?? Permission.NONE) & Permission.UPDATE) !== 0);\n function rotateLeft() {\n if (file.value === void 0 || !canRotate.value) {\n return;\n }\n if (target !== void 0 && target.source !== file.value.source) {\n void save();\n }\n target = file.value;\n pending++;\n turns.value = (turns.value + 1) % 4;\n clearTimeout(timer);\n timer = setTimeout(() => void save(), QUIET_MS);\n }\n function save() {\n clearTimeout(timer);\n const owed = pending % 4;\n const node = target;\n pending = 0;\n target = void 0;\n if (node === void 0 || owed === 0) {\n return queue;\n }\n writing++;\n saving.value = true;\n queue = queue.then(() => write(node, owed));\n return queue;\n }\n async function write(node, owed) {\n try {\n let bytes;\n if (written?.source === node.source) {\n bytes = written.bytes;\n } else {\n const response = await axios.get(node.encodedSource, { responseType: \"arraybuffer\" });\n bytes = new Uint8Array(response.data);\n }\n let orientation = readJpegOrientation(bytes);\n for (let turn = 0; turn < owed; turn++) {\n orientation = rotateOrientation(orientation, \"left\");\n }\n const turned = setJpegOrientation(bytes, orientation);\n if (turned === null) {\n logger.error(\"Could not write the orientation of this JPEG\", { source: node.source });\n showError(t(\"This image could not be rotated\"));\n return;\n }\n const known = versions.get(node.source) ?? node.attributes?.etag;\n const result = await axios.put(node.encodedSource, new Blob([turned], { type: ROTATABLE_MIME }), {\n headers: known ? { \"If-Match\": `\"${String(known).replace(/&quot;|\"/g, \"\")}\"` } : void 0\n });\n const saved = result.headers?.[\"oc-etag\"] ?? result.headers?.etag;\n if (saved) {\n versions.set(node.source, String(saved).replace(/\"/g, \"\"));\n }\n written = { source: node.source, bytes: turned };\n onWritten?.(node);\n emit(\"files:node:updated\", node);\n } catch (error) {\n logger.error(\"Failed to rotate the image\", { error });\n if (error.response?.status === 412) {\n showError(t(\"The file was changed elsewhere. Reload the page to rotate it.\"));\n } else {\n showError(t(\"Could not rotate the image\"));\n }\n } finally {\n writing--;\n saving.value = writing > 0;\n }\n }\n watch(() => file.value?.source, () => {\n void save();\n turns.value = 0;\n });\n onScopeDispose(() => {\n void save();\n });\n return { canRotate, rotateLeft, saving, turns };\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst EXCLUDED_ACTION_IDS = /* @__PURE__ */ new Set([\"details\"]);\nconst EXCLUDED_ACTION_PREFIXES = [\"viewer-open\"];\nfunction useViewerActions(file, contents, view, folder) {\n const context = computed(() => {\n const currentFile = toValue(file);\n const currentView = toValue(view);\n const currentFolder = toValue(folder);\n if (!currentFile || !currentView || !currentFolder) {\n return null;\n }\n return {\n nodes: [currentFile],\n view: currentView,\n folder: currentFolder,\n contents: toValue(contents)\n };\n });\n const enabledActions = computed(() => {\n const ctx = context.value;\n if (!ctx) {\n return [];\n }\n return getFileActions().filter((action) => !EXCLUDED_ACTION_IDS.has(action.id)).filter((action) => !EXCLUDED_ACTION_PREFIXES.some((prefix) => action.id.startsWith(prefix))).filter((action) => typeof action.renderInline !== \"function\").filter((action) => action.default !== DefaultType.HIDDEN).filter((action) => {\n try {\n return action.enabled?.(ctx) ?? true;\n } catch (error) {\n logger.error(\"Error while checking viewer action\", { action: action.id, error });\n return false;\n }\n }).filter((action) => {\n try {\n return action.displayName(ctx).trim() !== \"\";\n } catch (error) {\n logger.error(\"Error while resolving viewer action label\", { action: action.id, error });\n return false;\n }\n }).sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n });\n const enabledSubmenuActions = computed(() => {\n const record = {};\n for (const action of enabledActions.value) {\n if (action.parent) {\n (record[action.parent] ??= []).push(action);\n }\n }\n return record;\n });\n const actions = computed(() => enabledActions.value.filter((action) => !action.parent));\n function isValidMenu(action) {\n return (enabledSubmenuActions.value[action.id]?.length ?? 0) > 0;\n }\n function actionLabel(action) {\n return context.value ? action.displayName(context.value) : \"\";\n }\n function actionIcon(action) {\n return context.value ? action.iconSvgInline(context.value) : \"\";\n }\n async function execAction(action) {\n if (!context.value) {\n return;\n }\n try {\n await action.exec(context.value);\n } catch (error) {\n logger.error(\"Error while executing viewer action\", { action: action.id, error });\n }\n }\n return { actions, enabledSubmenuActions, isValidMenu, actionLabel, actionIcon, execAction };\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction getHandlerForFile(file, group) {\n const handlers = Array.from(getHandlers().values());\n return handlers.find((handler) => {\n return isHandlerEnabled(handler, [file]);\n });\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst DEFAULT = { sortingMode: \"basename\", sortingOrder: \"asc\" };\nconst MODES = { mtime: \"lastmod\" };\nasync function getSortingConfig() {\n if (isPublicShare()) {\n return DEFAULT;\n }\n try {\n const response = await axios.get(generateUrl(\"apps/files/api/v1/views\"));\n const config = response.data?.ocs?.data?.files ?? response.data?.data?.files;\n if (!config) {\n return DEFAULT;\n }\n return {\n sortingMode: MODES[config.sorting_mode] ?? config.sorting_mode ?? DEFAULT.sortingMode,\n sortingOrder: config.sorting_direction === \"desc\" ? \"desc\" : \"asc\"\n };\n } catch (error) {\n logger.debug(\"Could not read the files list sorting, falling back to name\", { error });\n return DEFAULT;\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst client = getClient();\nasync function fetchFolderContent(folder, signal) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.getDirectoryContents(`${folder.root}${folder.path}`, {\n details: true,\n data: propfindPayload,\n signal\n });\n const files = result.data.map((node) => resultToNode(node)).filter((node) => node.type === FileType.File);\n return sortNodes(files, await getSortingConfig());\n}\n/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nlet previousTitle = null;\nfunction suffix() {\n const themed = window.OCA?.Theming?.name;\n return themed ?? previousTitle ?? \"\";\n}\nfunction setViewerTitle(name) {\n previousTitle ??= document.title;\n const instance = suffix();\n document.title = instance ? `${name} - ${instance}` : name;\n}\nfunction restoreTitle() {\n if (previousTitle !== null) {\n document.title = previousTitle;\n previousTitle = null;\n }\n}\nfunction emittedValue(event) {\n if (typeof CustomEvent !== \"undefined\" && event instanceof CustomEvent) {\n const { detail } = event;\n const value = Array.isArray(detail) ? detail[0] : detail;\n return value ?? void 0;\n }\n if (typeof Event !== \"undefined\" && event instanceof Event) {\n return void 0;\n }\n return event;\n}\nfunction toError(reported, fallback) {\n if (reported instanceof Error) {\n return reported.message ? reported : new Error(fallback);\n }\n if (typeof reported === \"string\" && reported.trim() !== \"\") {\n return new Error(reported);\n }\n return new Error(fallback);\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nasync function renameFile(file, newName) {\n const name = newName.trim();\n if (name === \"\" || name === file.basename) {\n return false;\n }\n if (name.includes(\"/\")) {\n throw new Error(t('The name must not contain \"/\".'));\n }\n const oldSource = file.source;\n const oldEncodedSource = file.encodedSource;\n file.rename(name);\n try {\n await axios({\n method: \"MOVE\",\n url: oldEncodedSource,\n headers: {\n Destination: file.encodedSource,\n Overwrite: \"F\"\n }\n });\n } catch (error) {\n file.rename(basenameFromSource(oldSource));\n logger.error(\"Failed to rename file\", { error, oldSource });\n throw new Error(t(\"Could not rename the file.\"), { cause: error });\n }\n emit(\"files:node:updated\", file);\n emit(\"files:node:renamed\", file);\n emit(\"files:node:moved\", { node: file, oldSource });\n return true;\n}\nfunction basenameFromSource(source) {\n return decodeURIComponent(source.split(\"/\").pop() ?? \"\");\n}\nconst _hoisted_1 = {\n key: 0,\n class: \"viewer__loading\"\n};\nconst _hoisted_2 = {\n class: \"viewer__loading-hint\",\n role: \"status\"\n};\nconst _hoisted_3 = {\n key: 2,\n class: \"viewer__comparison\"\n};\nconst SLOW_LOADING_MS = 5e3;\nconst SIDEBAR_FULLSCREEN_CLASS = \"viewer--sidebar-fullscreen\";\nconst RENAME_ACTION_ID = \"rename\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ name: \"ViewerModal\" },\n __name: \"Viewer\",\n setup(__props, { expose: __expose }) {\n const ImageEditor = defineAsyncComponent(() => import(\"./ImageEditor.mjs\"));\n let resizeObserver = null;\n const modal = useTemplateRef(\"modal\");\n const height = ref(0);\n const width = ref(0);\n const loading = ref(true);\n const errorString = ref(null);\n const pendingLoads = ref(0);\n const reloadKey = ref(0);\n const slowLoading = ref(false);\n let slowLoadingTimer;\n watch(loading, (isLoading) => {\n clearTimeout(slowLoadingTimer);\n slowLoading.value = false;\n if (isLoading) {\n slowLoadingTimer = setTimeout(() => {\n slowLoading.value = true;\n }, SLOW_LOADING_MS);\n }\n }, { immediate: true });\n onUnmounted(() => clearTimeout(slowLoadingTimer));\n function retry() {\n errorString.value = null;\n loading.value = true;\n pendingLoads.value = 1;\n reloadKey.value++;\n }\n const editedSources = ref({});\n const ownSaves = /* @__PURE__ */ new Set();\n const canSwipe = ref(true);\n const isFullscreen = ref(false);\n const editing = ref(false);\n const lightBackdrop = ref(false);\n const slideshowRunning = ref(false);\n const playing = ref(false);\n const sidebarPosition = ref(0);\n const isSidebarShown = computed(() => sidebarPosition.value > 0);\n const trapSidebar = ref(null);\n const imageEditor = useTemplateRef(\"imageEditor\");\n const trapElements = computed(() => [trapSidebar.value, imageEditor.value?.$el].filter((element) => element instanceof HTMLElement));\n const currentFile = ref();\n const currentFileList = ref([]);\n const currentHandler = ref();\n const forcedHandler = ref();\n function handlerFor(file) {\n if (forcedHandler.value !== void 0 && isHandlerEnabled(forcedHandler.value, [file])) {\n return forcedHandler.value;\n }\n return getHandlerForFile(file);\n }\n const comparisonFile = ref();\n const comparisonHandler = ref();\n const isComparing = computed(() => !!comparisonFile.value);\n const EDITABLE_MIMES = [\"image/jpeg\", \"image/png\", \"image/webp\"];\n const isMobile = useIsMobile();\n const nonAccessibleFeatures = loadState(\"core\", \"config\", {})[\"enable_non-accessible_features\"] !== false;\n const canEdit = computed(() => {\n const file = currentFile.value;\n return currentHandler.value?.canEdit === true && file !== void 0 && EDITABLE_MIMES.includes(file.mime ?? \"\") && ((file.permissions ?? Permission.NONE) & Permission.UPDATE) !== 0 && canDownload(file) && !isComparing.value && !isMobile.value && nonAccessibleFeatures;\n });\n const { canRotate, rotateLeft, turns } = useRotation(currentFile, (node) => {\n if (node.fileid !== void 0 && node.fileid === currentFile.value?.fileid) {\n ownSaves.add(node.fileid);\n }\n });\n const shown = computed(() => !loading.value && !errorString.value);\n const offerRotate = computed(() => canRotate.value && shown.value && !editing.value && !isComparing.value);\n const offerEdit = computed(() => canEdit.value && shown.value && !editing.value);\n const slideshowPaused = computed(() => editing.value || playing.value || loading.value);\n const currentOptions = ref({});\n const closeCallbacks = /* @__PURE__ */ new Set();\n const canOpenSidebar = computed(() => currentOptions.value.enableSidebar !== false);\n const offerSidebar = computed(() => !isSidebarShown.value && currentFile.value !== void 0 && canOpenSidebar.value);\n const inlineActions = computed(() => (offerRotate.value ? 1 : 0) + (offerEdit.value ? 1 : 0) + (isMobile.value ? 0 : 1 + (offerSidebar.value ? 1 : 0)));\n const loadedTags = ref(/* @__PURE__ */ new Set());\n function elementReady(handler) {\n return handler !== void 0 && (handler.onInit === void 0 || loadedTags.value.has(handler.tagName) || window.customElements.get(handler.tagName) !== void 0);\n }\n watch([currentHandler, comparisonHandler], (handlers) => {\n for (const handler of handlers) {\n if (handler === void 0 || elementReady(handler)) {\n continue;\n }\n initHandlerElement(handler).then(() => {\n loadedTags.value = /* @__PURE__ */ new Set([...loadedTags.value, handler.tagName]);\n }, (error) => {\n logger.error(\"Could not initialize a handler\", { handler: handler.id, error });\n onError(error);\n });\n }\n }, { immediate: true, flush: \"sync\" });\n const { actions: fileActions, enabledSubmenuActions, isValidMenu, actionLabel, actionIcon, execAction } = useViewerActions(\n () => currentFile.value,\n () => currentFileList.value,\n () => currentOptions.value.view,\n () => currentOptions.value.folder\n );\n const openedSubmenu = ref(null);\n const renameDialogOpen = ref(false);\n const renameValue = ref(\"\");\n function onActionClick(action) {\n if (isValidMenu(action)) {\n openedSubmenu.value = action;\n return;\n }\n handleAction(action);\n }\n function onBackToMenuClick() {\n openedSubmenu.value = null;\n }\n function handleAction(action) {\n openedSubmenu.value = null;\n if (action.id === RENAME_ACTION_ID) {\n openRenameDialog();\n return;\n }\n execAction(action);\n }\n const renameButtons = computed(() => [\n {\n label: t(\"Cancel\"),\n callback: () => {\n renameDialogOpen.value = false;\n }\n },\n {\n label: t(\"Rename\"),\n variant: \"primary\",\n callback: submitRename\n }\n ]);\n function openRenameDialog() {\n if (!currentFile.value) {\n return;\n }\n renameValue.value = currentFile.value.basename;\n renameDialogOpen.value = true;\n }\n async function submitRename() {\n const file = currentFile.value;\n if (!file) {\n return;\n }\n try {\n await renameFile(file, renameValue.value);\n triggerRef(currentFile);\n triggerRef(currentFileList);\n renameDialogOpen.value = false;\n } catch (error) {\n showError(error.message);\n }\n }\n function onNodeDeleted(node) {\n const index = currentFileList.value.findIndex((file) => file.fileid === node.fileid || file.source === node.source);\n if (index === -1) {\n return;\n }\n const wasCurrent = currentFileList.value[index]?.fileid === currentFile.value?.fileid;\n currentFileList.value = currentFileList.value.filter((_, i) => i !== index);\n if (!wasCurrent) {\n return;\n }\n if (currentFileList.value.length === 0) {\n close();\n return;\n }\n const wasLast = index >= currentFileList.value.length;\n const newFile = currentFileList.value[Math.min(index, currentFileList.value.length - 1)];\n showFile(newFile);\n if (wasLast) {\n currentOptions.value.onPrev?.(newFile);\n } else {\n currentOptions.value.onNext?.(newFile);\n }\n preloadNeighbors();\n }\n function onNodeUpdated(node) {\n if (node.type === FileType.File && node.fileid !== void 0 && node.fileid !== currentFile.value?.fileid) {\n currentFileList.value = currentFileList.value.map((file) => file.fileid === node.fileid ? node : file);\n }\n if (node.fileid !== void 0 && ownSaves.delete(node.fileid)) {\n return;\n }\n if (currentFile.value !== void 0 && node.fileid === currentFile.value.fileid) {\n releaseEditedSource(currentFile.value.source);\n reloadKey.value++;\n }\n }\n function onEditSaved(source) {\n const file = currentFile.value;\n if (file?.fileid === void 0) {\n return;\n }\n releaseEditedSource(file.source);\n ownSaves.add(file.fileid);\n editedSources.value = { ...editedSources.value, [file.source]: source };\n }\n function releaseEditedSource(source) {\n if (!editedSources.value[source]) {\n return;\n }\n URL.revokeObjectURL(editedSources.value[source]);\n const remaining = { ...editedSources.value };\n delete remaining[source];\n editedSources.value = remaining;\n }\n function clearEditedSources() {\n for (const url of Object.values(editedSources.value)) {\n URL.revokeObjectURL(url);\n }\n editedSources.value = {};\n ownSaves.clear();\n }\n function setEditing(value) {\n editing.value = value && canEdit.value;\n }\n watch(editing, (value) => {\n currentOptions.value.onEditingChange?.(value);\n }, { flush: \"sync\" });\n const modalName = computed(() => {\n if (isComparing.value) {\n return t(\"Comparing {file1} and {file2}\", {\n file1: currentFile.value?.displayname ?? \"\",\n file2: comparisonFile.value?.displayname ?? \"\"\n });\n }\n return currentFile.value?.displayname || \"\";\n });\n function showFile(file) {\n const isShown = file.source === currentFile.value?.source;\n currentHandler.value = handlerFor(file);\n currentFile.value = file;\n if (isShown) {\n return;\n }\n errorString.value = null;\n loading.value = true;\n pendingLoads.value = 1;\n }\n function indexOfCurrent() {\n const source = currentFile.value?.source;\n return source === void 0 ? -1 : currentFileList.value.findIndex((file) => file.source === source);\n }\n const hasNext = computed(() => {\n const canLoop = currentOptions.value.canLoop ?? true;\n const currentIndex = indexOfCurrent();\n if (currentIndex === -1) {\n return false;\n }\n if (currentIndex < currentFileList.value.length - 1) {\n return true;\n }\n if (canLoop && currentIndex === currentFileList.value.length - 1 && currentFileList.value.length > 1) {\n return true;\n }\n return false;\n });\n const hasPrevious = computed(() => {\n const canLoop = currentOptions.value.canLoop ?? true;\n const currentIndex = indexOfCurrent();\n if (currentIndex === -1) {\n return false;\n }\n if (currentIndex > 0) {\n return true;\n }\n if (canLoop && currentIndex === 0 && currentFileList.value.length > 1) {\n return true;\n }\n return false;\n });\n const open = async (files, file, options, handlerId) => {\n logger.debug(\"Opening files\", { files, file, options, handlerId });\n files = files.filter((n) => n.type === FileType.File);\n if (files.length === 0 && !file) {\n logger.error(\"No files provided to open\");\n errorString.value = t(\"No files were provided to open.\");\n return;\n }\n if (handlerId && !getHandlers().has(handlerId)) {\n logger.error(\"There is no handler matching the given handler ID\");\n errorString.value = t(\"There was no plugin available to open this file.\");\n return;\n }\n if (!file) {\n file = files[0];\n } else {\n const listed = files.find((node) => node.source === file.source);\n if (listed) {\n file = listed;\n } else {\n files = [file, ...files];\n }\n }\n if (!file) {\n logger.error(\"No file provided to open\");\n errorString.value = t(\"No files were provided to open.\");\n return;\n }\n const handler = handlerId ? getHandlers().get(handlerId) : getHandlerForFile(file);\n if (!handler) {\n logger.error(\"No handler found for the given file\", { file, files });\n errorString.value = t(\"There was no plugin available to open this file.\");\n return;\n }\n forcedHandler.value = handlerId ? handler : void 0;\n currentFileList.value = files.filter((f) => {\n const h = handlerFor(f);\n if (h === void 0) {\n return false;\n }\n return h.id === handler.id || handler.group !== void 0 && h.group === handler.group;\n });\n if (currentFileList.value.length === 0) {\n currentFileList.value = [file];\n }\n if (currentFileList.value.length !== files.length) {\n logger.debug(`Found ${currentFileList.value.length} files for the current handler/group out of ${files.length} provided files`, {\n filtered: currentFileList.value,\n provided: files\n });\n }\n const isSameFile = currentFile.value?.source === file.source && currentHandler.value?.id === handler.id && comparisonFile.value === void 0;\n if (currentFile.value === void 0) {\n closeCallbacks.clear();\n }\n comparisonFile.value = void 0;\n comparisonHandler.value = void 0;\n currentHandler.value = handler;\n currentFile.value = file;\n currentOptions.value = options ?? {};\n if (currentOptions.value.onClose) {\n closeCallbacks.add(currentOptions.value.onClose);\n }\n if (!isSameFile) {\n loading.value = true;\n pendingLoads.value = 1;\n }\n errorString.value = null;\n editing.value = Boolean(options?.editing) && canEdit.value;\n if (options?.startSlideshow && currentFileList.value.length > 1) {\n slideshowRunning.value = true;\n }\n onOpen();\n preloadNeighbors();\n };\n let folderListing = null;\n const openFolder = async (folder, file, options, handlerId) => {\n logger.debug(\"Opening folder\", { folder, file, options, handlerId });\n loading.value = true;\n if (handlerId && !getHandlers().has(handlerId)) {\n logger.error(\"There is no handler matching the given handler ID\");\n errorString.value = t(\"We were not able to open the file.\");\n return;\n }\n if (!folder || folder.type !== FileType.Folder) {\n logger.error(\"The provided folder is not a directory\", { folder });\n errorString.value = t(\"We were not able to open the file.\");\n return;\n }\n folderListing?.abort();\n folderListing = new AbortController();\n const { signal } = folderListing;\n try {\n const files = await fetchFolderContent(folder, signal);\n return open(files, file, options, handlerId);\n } catch (error) {\n if (signal.aborted) {\n logger.debug(\"Folder listing dropped, the viewer moved on\", { folder });\n return;\n }\n logger.error(\"Failed to fetch folder contents\", { folder, error });\n errorString.value = t(\"We were not able to open the file.\");\n return;\n }\n };\n const compare = async (file1, file2, handlerId) => {\n logger.debug(\"Comparing files\", { file1, file2, handlerId });\n loading.value = true;\n if (handlerId && !getHandlers().has(handlerId)) {\n logger.error(\"There is no handler matching the given handler ID\");\n errorString.value = t(\"We were not able to open the file.\");\n return;\n }\n if (!file1 || !file2 || file1.type !== FileType.File || file2.type !== FileType.File) {\n logger.error(\"Two files are required to compare\", { file1, file2 });\n errorString.value = t(\"We were not able to open the file.\");\n return;\n }\n const handler1 = handlerId ? getHandlers().get(handlerId) : getHandlerForFile(file1);\n const handler2 = handlerId ? getHandlers().get(handlerId) : getHandlerForFile(file2);\n if (!handler1 || !handler2) {\n logger.error(\"No handler found for one of the files to compare\", { file1, file2 });\n errorString.value = t(\"There was no plugin available to open this file.\");\n return;\n }\n currentFileList.value = [];\n forcedHandler.value = void 0;\n currentOptions.value = {};\n currentHandler.value = handler1;\n currentFile.value = file1;\n comparisonHandler.value = handler2;\n comparisonFile.value = file2;\n pendingLoads.value = 2;\n errorString.value = null;\n onOpen();\n };\n function onOpen() {\n lightBackdrop.value = (currentHandler.value?.theme ?? \"default\") === \"light\";\n }\n function preloadNeighbors() {\n const currentIndex = indexOfCurrent();\n if (currentIndex === -1) {\n return;\n }\n const neighbors = [\n currentFileList.value[currentIndex - 1],\n currentFileList.value[currentIndex + 1]\n ].filter((f) => Boolean(f));\n for (const node of neighbors) {\n const handler = handlerFor(node);\n if (!handler?.preload) {\n continue;\n }\n Promise.resolve().then(() => handler.preload(node, { width: width.value, height: height.value })).catch((error) => {\n logger.debug(\"Failed to preload neighbor file\", { node, error });\n });\n }\n }\n function onLoad() {\n errorString.value = null;\n pendingLoads.value = Math.max(0, pendingLoads.value - 1);\n if (pendingLoads.value === 0) {\n loading.value = false;\n }\n }\n function onError(reported) {\n const error = toError(emittedValue(reported), t(\"An unknown error occurred while loading the file.\"));\n logger.error(\"Error while loading file in viewer\", { error });\n loading.value = false;\n pendingLoads.value = 0;\n errorString.value = error.message;\n }\n const handlerElement = useTemplateRef(\"handlerElement\");\n watch(handlerElement, (element, previous2) => {\n if (previous2) {\n previous2.removeEventListener(\"update:canSwipe\", onCanSwipe);\n previous2.removeEventListener(\"update:editing\", onHandlerEditing);\n previous2.removeEventListener(\"update:playing\", onPlaying);\n }\n if (element) {\n element.addEventListener(\"update:canSwipe\", onCanSwipe);\n element.addEventListener(\"update:editing\", onHandlerEditing);\n element.addEventListener(\"update:playing\", onPlaying);\n }\n playing.value = false;\n });\n function onCanSwipe(reported) {\n canSwipe.value = emittedValue(reported) !== false;\n }\n function onHandlerEditing(reported) {\n setEditing(emittedValue(reported) === true);\n }\n function onPlaying(reported) {\n playing.value = emittedValue(reported) === true;\n }\n function close() {\n editing.value = false;\n restoreTitle();\n if (document.fullscreenElement) {\n document.exitFullscreen().catch(() => {\n });\n }\n for (const onClose of closeCallbacks) {\n try {\n onClose();\n } catch (error) {\n logger.error(\"An onClose callback threw\", { error });\n }\n }\n closeCallbacks.clear();\n currentFile.value = void 0;\n currentFileList.value = [];\n currentHandler.value = void 0;\n forcedHandler.value = void 0;\n comparisonFile.value = void 0;\n comparisonHandler.value = void 0;\n currentOptions.value = {};\n errorString.value = null;\n loading.value = true;\n canSwipe.value = true;\n slideshowRunning.value = false;\n playing.value = false;\n pendingLoads.value = 0;\n openedSubmenu.value = null;\n folderListing?.abort();\n clearEditedSources();\n document.body.classList.remove(SIDEBAR_FULLSCREEN_CLASS);\n }\n async function next() {\n const canLoop = currentOptions.value.canLoop ?? true;\n const currentIndex = indexOfCurrent();\n let newIndex = currentIndex + 1;\n if (currentIndex === -1) {\n logger.error(\"Current file not found in the file list\", { currentFile: currentFile.value, fileList: currentFileList.value });\n return;\n }\n if (!canLoop && currentIndex >= currentFileList.value.length - 1) {\n return;\n }\n if (canLoop && newIndex >= currentFileList.value.length) {\n newIndex = 0;\n }\n const newFile = currentFileList.value[newIndex];\n if (!newFile) {\n logger.error(\"Next file not found in the file list\", { newIndex, fileList: currentFileList.value });\n return;\n }\n showFile(newFile);\n currentOptions.value.onNext?.(newFile);\n preloadNeighbors();\n }\n let loadingMore = false;\n async function loadMoreAtEnd() {\n const loadMore = currentOptions.value.loadMore;\n const isLast = currentFile.value !== void 0 && indexOfCurrent() === currentFileList.value.length - 1;\n if (loadMore === void 0 || !isLast || loadingMore) {\n return;\n }\n loadingMore = true;\n try {\n const moreFiles = await loadMore();\n if (moreFiles.length > 0) {\n currentFileList.value = currentFileList.value.concat(moreFiles);\n }\n } catch (error) {\n logger.error(\"Failed to load more files\", { error });\n } finally {\n loadingMore = false;\n }\n }\n watch(currentFile, loadMoreAtEnd);\n function previous() {\n const canLoop = currentOptions.value.canLoop ?? true;\n const currentIndex = indexOfCurrent();\n let newIndex = currentIndex - 1;\n if (currentIndex === -1) {\n logger.error(\"Current file not found in the file list\", { currentFile: currentFile.value, fileList: currentFileList.value });\n return;\n }\n if (!canLoop && currentIndex <= 0) {\n return;\n }\n if (canLoop && newIndex < 0) {\n newIndex = currentFileList.value.length - 1;\n }\n const newFile = currentFileList.value[newIndex];\n if (!newFile) {\n logger.error(\"Previous file not found in the file list\", { newIndex, fileList: currentFileList.value });\n return;\n }\n showFile(newFile);\n currentOptions.value.onPrev?.(newFile);\n preloadNeighbors();\n }\n function goTo(fileid) {\n const newFile = currentFileList.value.find((f) => f.fileid === fileid);\n if (!newFile) {\n logger.warn(\"Cannot go to file, not in the current list\", { fileid });\n return;\n }\n if (newFile.source === currentFile.value?.source) {\n return;\n }\n showFile(newFile);\n preloadNeighbors();\n }\n function showSidebar() {\n if (!currentFile.value) {\n return;\n }\n followInSidebar(currentFile.value);\n }\n function followInSidebar(file) {\n emit(\"viewer:sidebar:open\", file);\n }\n function visibleSidebar() {\n const sidebar = document.querySelector(\"aside.app-sidebar\");\n return sidebar !== null && getComputedStyle(sidebar).display !== \"none\" ? sidebar : null;\n }\n let sidebarElement = null;\n function measureSidebar() {\n if (sidebarElement === null) {\n return;\n }\n sidebarPosition.value = sidebarElement.getBoundingClientRect().left;\n }\n function onAppSidebarOpen() {\n sidebarElement = document.querySelector(\"aside.app-sidebar\");\n if (sidebarElement) {\n trapSidebar.value = sidebarElement;\n measureSidebar();\n resizeObserver?.observe(sidebarElement);\n }\n if (currentFile.value) {\n document.body.classList.add(SIDEBAR_FULLSCREEN_CLASS);\n }\n }\n function onAppSidebarClose() {\n if (sidebarElement) {\n resizeObserver?.unobserve(sidebarElement);\n sidebarElement = null;\n }\n sidebarPosition.value = 0;\n trapSidebar.value = null;\n document.body.classList.remove(SIDEBAR_FULLSCREEN_CLASS);\n }\n watch(currentFile, (file) => {\n if (file === void 0 || visibleSidebar() === null) {\n return;\n }\n if (sidebarElement === null) {\n onAppSidebarOpen();\n }\n if (canOpenSidebar.value) {\n followInSidebar(file);\n }\n }, { flush: \"post\" });\n function modalElement() {\n const element = modal.value?.$el;\n if (element instanceof Element) {\n return element;\n }\n return document.querySelector(\".viewer__modal\");\n }\n function onClickOutside(event) {\n const content = modalElement()?.querySelector(\".modal-container__content\");\n if (event.target === content) {\n logger.debug(\"Clicked outside the viewer, closing viewer\");\n close();\n }\n }\n function onViewerResize() {\n const modalContainer = modalElement()?.querySelector(\".modal-container\");\n height.value = modalContainer?.clientHeight || 0;\n width.value = modalContainer?.clientWidth || 0;\n measureSidebar();\n logger.debug(\"Screen resized, updating viewer dimensions\", { height: height.value, width: width.value });\n }\n function measureModal(attempt = 0) {\n onViewerResize();\n if (width.value === 0 && attempt < 10) {\n requestAnimationFrame(() => measureModal(attempt + 1));\n }\n }\n let modalContent = null;\n function attachModal() {\n const element = modalElement();\n if (element === null) {\n return;\n }\n resizeObserver?.observe(element);\n modalContent = element.querySelector(\".modal-container__content\");\n modalContent?.addEventListener(\"click\", onClickOutside);\n modalContent?.addEventListener(\"contextmenu\", onContextMenu);\n logger.debug(\"Resize observer initialized for viewer\");\n }\n async function toggleFullScreen() {\n if (document.fullscreenElement) {\n await document.exitFullscreen();\n return;\n }\n await document.documentElement.requestFullscreen();\n }\n function onFullscreenChange() {\n isFullscreen.value = document.fullscreenElement !== null;\n }\n function onContextMenu(event) {\n if (currentFile.value && !canDownload(currentFile.value)) {\n event.preventDefault();\n }\n }\n function detachModal() {\n resizeObserver?.disconnect();\n modalContent?.removeEventListener(\"click\", onClickOutside);\n modalContent?.removeEventListener(\"contextmenu\", onContextMenu);\n modalContent = null;\n }\n watch(currentFile, async (newFile, oldFile) => {\n openedSubmenu.value = null;\n if (newFile) {\n setViewerTitle(newFile.displayname);\n }\n if (newFile && !oldFile) {\n await nextTick();\n attachModal();\n measureModal();\n } else if (!newFile) {\n detachModal();\n }\n });\n onMounted(() => {\n resizeObserver = new ResizeObserver(debounce(() => {\n onViewerResize();\n }, 100));\n attachModal();\n document.addEventListener(\"fullscreenchange\", onFullscreenChange);\n subscribe(\"files:sidebar:opened\", onAppSidebarOpen);\n subscribe(\"files:sidebar:closed\", onAppSidebarClose);\n subscribe(\"files:node:deleted\", onNodeDeleted);\n subscribe(\"files:node:updated\", onNodeUpdated);\n });\n onUnmounted(() => {\n restoreTitle();\n detachModal();\n document.removeEventListener(\"fullscreenchange\", onFullscreenChange);\n unsubscribe(\"files:sidebar:opened\", onAppSidebarOpen);\n unsubscribe(\"files:sidebar:closed\", onAppSidebarClose);\n unsubscribe(\"files:node:deleted\", onNodeDeleted);\n unsubscribe(\"files:node:updated\", onNodeUpdated);\n document.body.classList.remove(SIDEBAR_FULLSCREEN_CLASS);\n });\n __expose({\n open,\n openFolder,\n compare,\n goTo,\n close,\n setEditing\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n !!currentFile.value || !!errorString.value ? (openBlock(), createBlock(unref(NcModal), {\n key: 0,\n ref_key: \"modal\",\n ref: modal,\n slideshowRunning: slideshowRunning.value,\n \"onUpdate:slideshowRunning\": _cache[1] || (_cache[1] = ($event) => slideshowRunning.value = $event),\n additionalTrapElements: trapElements.value,\n clearViewDelay: -1,\n closeButtonOutside: true,\n dark: true,\n \"data-handler\": currentHandler.value?.id,\n disableSwipe: !canSwipe.value || editing.value,\n enableSlideshow: !isComparing.value && (hasPrevious.value || hasNext.value),\n hasNext: !isComparing.value && hasNext.value,\n hasPrevious: !isComparing.value && hasPrevious.value,\n inlineActions: inlineActions.value,\n lightBackdrop: lightBackdrop.value,\n name: modalName.value,\n show: !!currentFile.value || !!errorString.value,\n slideshowPaused: slideshowPaused.value,\n spreadNavigation: true,\n style: normalizeStyle({ width: isSidebarShown.value ? `${sidebarPosition.value}px` : null }),\n class: \"viewer__modal\",\n size: \"full\",\n onClose: close,\n onPrevious: previous,\n onNext: next\n }, {\n actions: withCtx(() => [\n offerRotate.value ? (openBlock(), createBlock(unref(NcActionButton), {\n key: 0,\n closeAfterClick: false,\n onClick: unref(rotateLeft)\n }, {\n icon: withCtx(() => [\n createVNode(RotateLeftIcon, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Rotate left\")), 1)\n ]),\n _: 1\n }, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n offerEdit.value ? (openBlock(), createBlock(unref(NcActionButton), {\n key: 1,\n closeAfterClick: \"\",\n onClick: _cache[0] || (_cache[0] = ($event) => editing.value = true)\n }, {\n icon: withCtx(() => [\n createVNode(PencilIcon, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Edit\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n createVNode(unref(NcActionButton), {\n closeAfterClick: \"\",\n onClick: toggleFullScreen\n }, {\n icon: withCtx(() => [\n isFullscreen.value ? (openBlock(), createBlock(FullscreenExitIcon, {\n key: 0,\n size: 20\n })) : (openBlock(), createBlock(FullscreenIcon, {\n key: 1,\n size: 20\n }))\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(isFullscreen.value ? unref(t)(\"Exit full screen\") : unref(t)(\"Full screen\")), 1)\n ]),\n _: 1\n }),\n offerSidebar.value ? (openBlock(), createBlock(unref(NcActionButton), {\n key: 2,\n closeAfterClick: \"\",\n onClick: showSidebar\n }, {\n icon: withCtx(() => [\n createVNode(DockRight, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(t)(\"Open sidebar\")), 1)\n ]),\n _: 1\n })) : createCommentVNode(\"\", true),\n !openedSubmenu.value ? (openBlock(true), createElementBlock(Fragment, { key: 3 }, renderList(unref(fileActions), (action) => {\n return openBlock(), createBlock(unref(NcActionButton), {\n key: action.id,\n isMenu: unref(isValidMenu)(action),\n closeAfterClick: !unref(isValidMenu)(action),\n onClick: ($event) => onActionClick(action)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: unref(actionIcon)(action),\n size: 20\n }, null, 8, [\"svg\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(actionLabel)(action)), 1)\n ]),\n _: 2\n }, 1032, [\"isMenu\", \"closeAfterClick\", \"onClick\"]);\n }), 128)) : (openBlock(), createElementBlock(Fragment, { key: 4 }, [\n createVNode(unref(NcActionButton), { onClick: onBackToMenuClick }, {\n icon: withCtx(() => [\n createVNode(ChevronLeft, { size: 20 })\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(actionLabel)(openedSubmenu.value)), 1)\n ]),\n _: 1\n }),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(enabledSubmenuActions)[openedSubmenu.value.id], (action) => {\n return openBlock(), createBlock(unref(NcActionButton), {\n key: action.id,\n closeAfterClick: \"\",\n onClick: ($event) => handleAction(action)\n }, {\n icon: withCtx(() => [\n createVNode(unref(NcIconSvgWrapper), {\n svg: unref(actionIcon)(action),\n size: 20\n }, null, 8, [\"svg\"])\n ]),\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(unref(actionLabel)(action)), 1)\n ]),\n _: 2\n }, 1032, [\"onClick\"]);\n }), 128))\n ], 64))\n ]),\n default: withCtx(() => [\n loading.value && !errorString.value ? (openBlock(), createElementBlock(\"span\", _hoisted_1, [\n createVNode(unref(NcLoadingIcon), {\n appearance: lightBackdrop.value ? \"dark\" : \"light\",\n size: 32\n }, null, 8, [\"appearance\"]),\n createElementVNode(\"span\", _hoisted_2, [\n slowLoading.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createTextVNode(toDisplayString(unref(t)(\"Still loading…\")), 1)\n ], 64)) : createCommentVNode(\"\", true)\n ])\n ])) : errorString.value ? (openBlock(), createBlock(unref(NcEmptyContent), {\n key: 1,\n name: errorString.value,\n description: unref(t)(\"We were unable to display the requested file.\")\n }, createSlots({\n icon: withCtx(() => [\n createVNode(FileAlertOutlineIcon)\n ]),\n _: 2\n }, [\n currentFile.value ? {\n name: \"action\",\n fn: withCtx(() => [\n createVNode(unref(NcButton), { onClick: retry }, {\n default: withCtx(() => [\n createTextVNode(toDisplayString(unref(t)(\"Try again\")), 1)\n ]),\n _: 1\n })\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"name\", \"description\"])) : createCommentVNode(\"\", true),\n isComparing.value ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_3, [\n currentFile.value && elementReady(currentHandler.value) ? (openBlock(), createBlock(resolveDynamicComponent(currentHandler.value?.tagName), {\n key: 0,\n file: currentFile.value,\n files: [],\n \"is-sidebar-shown\": isSidebarShown.value,\n \"max-height\": height.value,\n \"max-width\": width.value / 2,\n editing: false,\n onLoaded: onLoad,\n onErrored: onError\n }, null, 40, [\"file\", \"is-sidebar-shown\", \"max-height\", \"max-width\"])) : createCommentVNode(\"\", true),\n comparisonFile.value && elementReady(comparisonHandler.value) ? (openBlock(), createBlock(resolveDynamicComponent(comparisonHandler.value?.tagName), {\n key: 1,\n file: comparisonFile.value,\n files: [],\n \"is-sidebar-shown\": isSidebarShown.value,\n \"max-height\": height.value,\n \"max-width\": width.value / 2,\n editing: false,\n onLoaded: onLoad,\n onErrored: onError\n }, null, 40, [\"file\", \"is-sidebar-shown\", \"max-height\", \"max-width\"])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, !loading.value && !errorString.value]\n ]) : currentFile.value && elementReady(currentHandler.value) ? withDirectives((openBlock(), createBlock(resolveDynamicComponent(currentHandler.value?.tagName), {\n key: `${currentFile.value.source}-${reloadKey.value}`,\n ref_key: \"handlerElement\",\n ref: handlerElement,\n \"can-swipe\": canSwipe.value,\n file: currentFile.value,\n files: currentFileList.value,\n \"is-sidebar-shown\": isSidebarShown.value,\n \"max-height\": height.value,\n \"max-width\": width.value,\n editing: editing.value,\n turns: unref(turns),\n \"local-source\": editedSources.value[currentFile.value.source],\n onLoaded: onLoad,\n onErrored: onError\n }, null, 40, [\"can-swipe\", \"file\", \"files\", \"is-sidebar-shown\", \"max-height\", \"max-width\", \"editing\", \"turns\", \"local-source\"])), [\n [vShow, !loading.value && !errorString.value]\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"slideshowRunning\", \"additionalTrapElements\", \"data-handler\", \"disableSwipe\", \"enableSlideshow\", \"hasNext\", \"hasPrevious\", \"inlineActions\", \"lightBackdrop\", \"name\", \"show\", \"slideshowPaused\", \"style\"])) : createCommentVNode(\"\", true),\n editing.value && currentFile.value && canEdit.value ? (openBlock(), createBlock(unref(ImageEditor), {\n key: 1,\n ref_key: \"imageEditor\",\n ref: imageEditor,\n file: currentFile.value,\n onSaved: onEditSaved,\n onClose: _cache[2] || (_cache[2] = ($event) => editing.value = false)\n }, null, 8, [\"file\"])) : createCommentVNode(\"\", true),\n createVNode(unref(NcDialog), {\n open: renameDialogOpen.value,\n name: unref(t)(\"Rename file\"),\n size: \"small\",\n buttons: renameButtons.value,\n \"onUpdate:open\": _cache[4] || (_cache[4] = ($event) => renameDialogOpen.value = $event)\n }, {\n default: withCtx(() => [\n createElementVNode(\"form\", {\n onSubmit: withModifiers(submitRename, [\"prevent\"])\n }, [\n createVNode(unref(NcTextField), {\n modelValue: renameValue.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => renameValue.value = $event),\n label: unref(t)(\"New name\"),\n labelVisible: \"\"\n }, null, 8, [\"modelValue\", \"label\"])\n ], 32)\n ]),\n _: 1\n }, 8, [\"open\", \"name\", \"buttons\"])\n ], 64);\n };\n }\n});\nconst Viewer = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-b2769967\"]]);\nconst plyrIcons = '<?xml version=\"1.0\" encoding=\"UTF-8\"?><!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><symbol id=\"plyr-airplay\" viewBox=\"0 0 18 18\"><path d=\"M16 1H2a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h3v-2H3V3h12v8h-2v2h3a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1\"/><path d=\"M4 17h10l-5-6z\"/></symbol><symbol id=\"plyr-captions-off\" viewBox=\"0 0 18 18\"><path fill-opacity=\".5\" fill-rule=\"evenodd\" d=\"M1 1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h4.6l2.7 2.7c.2.2.4.3.7.3s.5-.1.7-.3l2.7-2.7H17c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm4.52 10.15c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41C8.47 4.96 7.46 3.76 5.5 3.76c-1.9 0-3.61 1.44-3.61 3.7s1.65 3.69 3.63 3.69m7.57 0c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41c-.28-1.15-1.29-2.35-3.25-2.35-1.9 0-3.61 1.44-3.61 3.7s1.65 3.69 3.63 3.69\"/></symbol><symbol id=\"plyr-captions-on\" viewBox=\"0 0 18 18\"><path fill-rule=\"evenodd\" d=\"M1 1c-.6 0-1 .4-1 1v11c0 .6.4 1 1 1h4.6l2.7 2.7c.2.2.4.3.7.3s.5-.1.7-.3l2.7-2.7H17c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1zm4.52 10.15c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41C8.47 4.96 7.46 3.76 5.5 3.76c-1.9 0-3.61 1.44-3.61 3.7s1.65 3.69 3.63 3.69m7.57 0c1.99 0 3.01-1.32 3.28-2.41l-1.29-.39c-.19.66-.78 1.45-1.99 1.45-1.14 0-2.2-.83-2.2-2.34 0-1.61 1.12-2.37 2.18-2.37 1.23 0 1.78.75 1.95 1.43l1.3-.41c-.28-1.15-1.29-2.35-3.25-2.35-1.9 0-3.61 1.44-3.61 3.7s1.65 3.69 3.63 3.69\"/></symbol><symbol id=\"plyr-download\" viewBox=\"0 0 18 18\"><path d=\"M9 13c.3 0 .5-.1.7-.3L15.4 7 14 5.6l-4 4V1H8v8.6l-4-4L2.6 7l5.7 5.7c.2.2.4.3.7.3m-7 2h14v2H2z\"/></symbol><symbol id=\"plyr-enter-fullscreen\" viewBox=\"0 0 18 18\"><path d=\"M10 3h3.6l-4 4L11 8.4l4-4V8h2V1h-7zM7 9.6l-4 4V10H1v7h7v-2H4.4l4-4z\"/></symbol><symbol id=\"plyr-exit-fullscreen\" viewBox=\"0 0 18 18\"><path d=\"M1 12h3.6l-4 4L2 17.4l4-4V17h2v-7H1zM16 .6l-4 4V1h-2v7h7V6h-3.6l4-4z\"/></symbol><symbol id=\"plyr-fast-forward\" viewBox=\"0 0 18 18\"><path d=\"M7.875 7.171 0 1v16l7.875-6.171V17L18 9 7.875 1z\"/></symbol><symbol id=\"plyr-logo-vimeo\" viewBox=\"0 0 18 18\"><path d=\"M17 5.3c-.1 1.6-1.2 3.7-3.3 6.4-2.2 2.8-4 4.2-5.5 4.2-.9 0-1.7-.9-2.4-2.6C5 10.9 4.4 6 3 6c-.1 0-.5.3-1.2.8l-.8-1c.8-.7 3.5-3.4 4.7-3.5S7.7 3 8 4.8c.3 2 .8 6.1 1.8 6.1.9 0 2.5-3.4 2.6-4 .1-.9-.3-1.9-2.3-1.1.8-2.6 2.3-3.8 4.5-3.8q2.55.15 2.4 3.3\"/></symbol><symbol id=\"plyr-logo-youtube\" viewBox=\"0 0 18 18\"><path d=\"M16.8 5.8c-.2-1.3-.8-2.2-2.2-2.4C12.4 3 9 3 9 3s-3.4 0-5.6.4C2 3.6 1.3 4.5 1.2 5.8 1 7.1 1 9 1 9s0 1.9.2 3.2.8 2.2 2.2 2.4C5.6 15 9 15 9 15s3.4 0 5.6-.4c1.4-.3 2-1.1 2.2-2.4S17 9 17 9s0-1.9-.2-3.2M7 12V6l5 3z\"/></symbol><symbol id=\"plyr-muted\" viewBox=\"0 0 18 18\"><path d=\"m12.4 12.5 2.1-2.1 2.1 2.1 1.4-1.4L15.9 9 18 6.9l-1.4-1.4-2.1 2.1-2.1-2.1L11 6.9 13.1 9 11 11.1zM3.786 6.008H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601z\"/></symbol><symbol id=\"plyr-pause\" viewBox=\"0 0 18 18\"><path d=\"M6 1H3c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1m6 0c-.6 0-1 .4-1 1v14c0 .6.4 1 1 1h3c.6 0 1-.4 1-1V2c0-.6-.4-1-1-1z\"/></symbol><symbol id=\"plyr-pip\" viewBox=\"0 0 18 18\"><path d=\"M13.293 3.293 7.022 9.564l1.414 1.414 6.271-6.271L17 7V1h-6z\"/><path d=\"M13 15H3V5h5V3H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-6h-2z\"/></symbol><symbol id=\"plyr-play\" viewBox=\"0 0 18 18\"><path d=\"M15.562 8.1 3.87.225c-.818-.562-1.87 0-1.87.9v15.75c0 .9 1.052 1.462 1.87.9L15.563 9.9c.584-.45.584-1.35 0-1.8\"/></symbol><symbol id=\"plyr-restart\" viewBox=\"0 0 18 18\"><path d=\"m9.7 1.2.7 6.4 2.1-2.1c1.9 1.9 1.9 5.1 0 7-.9 1-2.2 1.5-3.5 1.5s-2.6-.5-3.5-1.5c-1.9-1.9-1.9-5.1 0-7 .6-.6 1.4-1.1 2.3-1.3l-.6-1.9C6 2.6 4.9 3.2 4 4.1 1.3 6.8 1.3 11.2 4 14c1.3 1.3 3.1 2 4.9 2 1.9 0 3.6-.7 4.9-2 2.7-2.7 2.7-7.1 0-9.9L16 1.9z\"/></symbol><symbol id=\"plyr-rewind\" viewBox=\"0 0 18 18\"><path d=\"M10.125 1 0 9l10.125 8v-6.171L18 17V1l-7.875 6.171z\"/></symbol><symbol id=\"plyr-settings\" viewBox=\"0 0 18 18\"><path d=\"M16.135 7.784a2 2 0 0 1-1.23-2.969c.322-.536.225-.998-.094-1.316l-.31-.31c-.318-.318-.78-.415-1.316-.094a2 2 0 0 1-2.969-1.23C10.065 1.258 9.669 1 9.219 1h-.438c-.45 0-.845.258-.997.865a2 2 0 0 1-2.969 1.23c-.536-.322-.999-.225-1.317.093l-.31.31c-.318.318-.415.781-.093 1.317a2 2 0 0 1-1.23 2.969C1.26 7.935 1 8.33 1 8.781v.438c0 .45.258.845.865.997a2 2 0 0 1 1.23 2.969c-.322.536-.225.998.094 1.316l.31.31c.319.319.782.415 1.316.094a2 2 0 0 1 2.969 1.23c.151.607.547.865.997.865h.438c.45 0 .845-.258.997-.865a2 2 0 0 1 2.969-1.23c.535.321.997.225 1.316-.094l.31-.31c.318-.318.415-.781.094-1.316a2 2 0 0 1 1.23-2.969c.607-.151.865-.547.865-.997v-.438c0-.451-.26-.846-.865-.997M9 12a3 3 0 1 1 0-6 3 3 0 0 1 0 6\"/></symbol><symbol id=\"plyr-volume\" viewBox=\"0 0 18 18\"><path d=\"M15.6 3.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4C15.4 5.9 16 7.4 16 9s-.6 3.1-1.8 4.3c-.4.4-.4 1 0 1.4.2.2.5.3.7.3.3 0 .5-.1.7-.3C17.1 13.2 18 11.2 18 9s-.9-4.2-2.4-5.7\"/><path d=\"M11.282 5.282a.91.91 0 0 0 0 1.316c.735.735.995 1.458.995 2.402 0 .936-.425 1.917-.995 2.487a.91.91 0 0 0 0 1.316c.145.145.636.262 1.018.156a.7.7 0 0 0 .298-.156C13.773 11.733 14.13 10.16 14.13 9q.001-.255-.011-.51c-.053-.992-.319-2.005-1.522-3.208a.91.91 0 0 0-1.316 0m-7.495.726H.714C.286 6.008 0 6.31 0 6.76v4.512c0 .452.286.752.714.752h3.072l4.071 3.858c.5.3 1.143 0 1.143-.602V2.752c0-.601-.643-.977-1.143-.601z\"/></symbol></svg>';\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nasync function mount() {\n await Promise.all([\n registerAudioCustomElement(),\n registerImageCustomElement(),\n registerSheetmusicCustomElement(),\n registerVideoCustomElement()\n ]);\n const ViewerApp = createApp(Viewer);\n const ViewerRoot = document.createElement(\"div\");\n ViewerRoot.id = \"viewer\";\n document.body.appendChild(ViewerRoot);\n const VideoControls = document.createElement(\"div\");\n VideoControls.innerHTML = plyrIcons;\n VideoControls.style.display = \"none\";\n document.body.appendChild(VideoControls);\n const ViewerInstance = ViewerApp.mount(ViewerRoot);\n getViewer()._setViewer(ViewerInstance);\n logger.info(\"Viewer mounted\", { ViewerInstance });\n}\nexport {\n mount\n};\n//# sourceMappingURL=mount.mjs.map\n"],"file":"mount-DSfY-vcb.chunk.mjs"}