f7cloud_client/apps/text/js/files--k339mQ3.chunk.mjs.map
2026-03-05 13:40:40 +00:00

1 line
12 KiB
Plaintext

{"version":3,"mappings":"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","names":["TextSvg","FILE_ACTION_IDENTIFIER","registerFileActionFallback","sharingToken","getSharingToken","filesTable","ViewerRoot","registerAction","mime","imagePath","filename","file","__vitePreload","n","imports","path","Vue","Editor","h","t","i","openMimetypes","addMenuRichWorkspace","descriptionFile","loadState","addNewFileMenuEntry","NewMenuEntryCategory","context","Permission","content","node","showError","source","response","axios","fileid","File","getCurrentUser","showSuccess","emit","FilesHeaderRichWorkspaceView","FilesHeaderRichWorkspaceInstance","latestFolder","enabled","_","view","FilesWorkspaceHeader","Header","el","folder","hasRichWorkspace"],"ignoreList":[0],"sources":["../node_modules/@mdi/svg/svg/text.svg?raw","../src/helpers/files.js"],"sourcesContent":["export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" id=\\\"mdi-text\\\" viewBox=\\\"0 0 24 24\\\"><path d=\\\"M21,6V8H3V6H21M3,18H12V16H3V18M3,13H21V11H3V13Z\\\" /></svg>\"","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { emit } from '@nextcloud/event-bus'\nimport {\n\taddNewFileMenuEntry,\n\tFile,\n\tHeader,\n\tNewMenuEntryCategory,\n\tPermission,\n} from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { imagePath } from '@nextcloud/router'\nimport { getSharingToken } from '@nextcloud/sharing/public'\n\nimport TextSvg from '@mdi/svg/svg/text.svg?raw'\n\nimport { t } from '@nextcloud/l10n'\nimport Vue from 'vue'\nimport { openMimetypes } from './mime.js'\n\nconst FILE_ACTION_IDENTIFIER = 'Edit with text app'\n\nconst registerFileCreate = () => {\n\tconst newFileMenuPlugin = {\n\t\tattach(menu) {\n\t\t\tconst fileList = menu.fileList\n\n\t\t\t// only attach to main file list, public view is not supported yet\n\t\t\tif (fileList.id !== 'files' && fileList.id !== 'files.public') {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// register the new menu entry\n\t\t\tmenu.addMenuEntry({\n\t\t\t\tid: 'file',\n\t\t\t\tdisplayName: t('text', 'New text file'),\n\t\t\t\ttemplateName:\n\t\t\t\t\tt('text', 'New text file')\n\t\t\t\t\t+ '.'\n\t\t\t\t\t+ loadState('text', 'default_file_extension'),\n\t\t\t\ticonClass: 'icon-filetype-text',\n\t\t\t\tfileType: 'file',\n\t\t\t\tactionLabel: t('text', 'Create new text file'),\n\t\t\t\tactionHandler(name) {\n\t\t\t\t\tfileList.createFile(name).then(function (status, data) {\n\t\t\t\t\t\tconst fileInfoModel = new OCA.Files.FileInfoModel(data)\n\t\t\t\t\t\tif (typeof OCA.Viewer !== 'undefined') {\n\t\t\t\t\t\t\tOCA.Files.fileActions.triggerAction(\n\t\t\t\t\t\t\t\t'view',\n\t\t\t\t\t\t\t\tfileInfoModel,\n\t\t\t\t\t\t\t\tfileList,\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else if (typeof OCA.Viewer === 'undefined') {\n\t\t\t\t\t\t\tOCA.Files.fileActions.triggerAction(\n\t\t\t\t\t\t\t\tFILE_ACTION_IDENTIFIER,\n\t\t\t\t\t\t\t\tfileInfoModel,\n\t\t\t\t\t\t\t\tfileList,\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},\n\t\t\t})\n\t\t},\n\t}\n\tOC.Plugins.register('OCA.Files.NewFileMenu', newFileMenuPlugin)\n}\n\nconst registerFileActionFallback = () => {\n\tconst sharingToken = getSharingToken()\n\tconst filesTable = document.querySelector('#preview table.files-filestable')\n\tif (!sharingToken || !filesTable) {\n\t\tconst ViewerRoot = document.createElement('div')\n\t\tViewerRoot.id = 'text-viewer-fallback'\n\t\tdocument.body.appendChild(ViewerRoot)\n\t\tconst registerAction = (mime) =>\n\t\t\tOCA.Files.fileActions.register(\n\t\t\t\tmime,\n\t\t\t\tFILE_ACTION_IDENTIFIER,\n\t\t\t\tOC.PERMISSION_UPDATE | OC.PERMISSION_READ,\n\t\t\t\timagePath('core', 'actions/rename'),\n\t\t\t\t(filename) => {\n\t\t\t\t\tconst file = window.FileList.findFile(filename)\n\t\t\t\t\tPromise.all([\n\t\t\t\t\t\timport('vue'),\n\t\t\t\t\t\timport(\n\t\t\t\t\t\t\t/* webpackChunkName: \"files-modal\" */ './../components/PublicFilesEditor.vue'\n\t\t\t\t\t\t),\n\t\t\t\t\t]).then((imports) => {\n\t\t\t\t\t\tconst path =\n\t\t\t\t\t\t\twindow.FileList.getCurrentDirectory() + '/' + filename\n\t\t\t\t\t\tconst Vue = imports[0].default\n\t\t\t\t\t\tconst Editor = imports[1].default\n\t\t\t\t\t\tconst vm = new Vue({\n\t\t\t\t\t\t\trender: (h) => {\n\t\t\t\t\t\t\t\t// eslint-disable-line\n\t\t\t\t\t\t\t\tconst self = this\n\t\t\t\t\t\t\t\treturn h(Editor, {\n\t\t\t\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\t\t\t\tfileId: file ? file.id : null,\n\t\t\t\t\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\t\t\t\t\tshareToken: sharingToken,\n\t\t\t\t\t\t\t\t\t\trelativePath: path,\n\t\t\t\t\t\t\t\t\t\tmimeType: file.mimetype,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\ton: {\n\t\t\t\t\t\t\t\t\t\tclose: () => {\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-line\n\t\t\t\t\t\t\t\t\t\t\tself.$destroy()\n\t\t\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},\n\t\t\t\t\t\t})\n\t\t\t\t\t\tvm.$mount(ViewerRoot)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tt('text', 'Edit'),\n\t\t\t)\n\n\t\tfor (let i = 0; i < openMimetypes.length; i++) {\n\t\t\tregisterAction(openMimetypes[i])\n\t\t\tOCA.Files.fileActions.setDefault(\n\t\t\t\topenMimetypes[i],\n\t\t\t\tFILE_ACTION_IDENTIFIER,\n\t\t\t)\n\t\t}\n\t}\n}\n\nexport const addMenuRichWorkspace = () => {\n\tconst descriptionFile =\n\t\tt('text', 'Readme') + '.' + loadState('text', 'default_file_extension')\n\taddNewFileMenuEntry({\n\t\tid: 'rich-workspace-init',\n\t\tdisplayName: t('text', 'Add folder description'),\n\t\tcategory: NewMenuEntryCategory.Other,\n\t\tenabled(context) {\n\t\t\tif (!window?.OCA?.Text?.RichWorkspaceEnabled) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\tif (Number(context.attributes['rich-workspace-file'])) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn (context.permissions & Permission.CREATE) !== 0\n\t\t},\n\t\ticonSvgInline: TextSvg,\n\t\tasync handler(context, content) {\n\t\t\tconst contentNames = content.map((node) => node.basename)\n\n\t\t\tif (contentNames.includes(descriptionFile)) {\n\t\t\t\tshowError(\n\t\t\t\t\tt('text', '\"{name}\" already exist!', { name: descriptionFile }),\n\t\t\t\t)\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst source =\n\t\t\t\tcontext.encodedSource + '/' + encodeURIComponent(descriptionFile)\n\t\t\tconst response = await axios({\n\t\t\t\tmethod: 'PUT',\n\t\t\t\turl: source,\n\t\t\t\theaders: {\n\t\t\t\t\tOverwrite: 'F',\n\t\t\t\t},\n\t\t\t})\n\t\t\tconst fileid = parseInt(response.headers['oc-fileid'])\n\t\t\tconst file = new File({\n\t\t\t\tsource: context.source + '/' + descriptionFile,\n\t\t\t\tid: fileid,\n\t\t\t\tmtime: new Date(),\n\t\t\t\tmime: 'text/markdown',\n\t\t\t\towner: getCurrentUser()?.uid || null,\n\t\t\t\tpermissions: Permission.ALL,\n\t\t\t\troot: context?.root || '/files/' + getCurrentUser()?.uid,\n\t\t\t})\n\n\t\t\tshowSuccess(t('text', 'Created \"{name}\"', { name: descriptionFile }))\n\n\t\t\tcontext.attributes['rich-workspace-file'] = fileid\n\t\t\tcontext.attributes['rich-workspace'] = ''\n\n\t\t\temit('files:node:created', file)\n\t\t\temit('files:node:updated', context)\n\t\t},\n\t})\n}\n\nlet FilesHeaderRichWorkspaceView\nlet FilesHeaderRichWorkspaceInstance\nlet latestFolder\n\nconst enabled = (_, view) => {\n\treturn ['files', 'favorites', 'public-share'].includes(view.id)\n}\n\nexport const FilesWorkspaceHeader = new Header({\n\tid: 'workspace',\n\torder: 10,\n\tenabled,\n\n\trender: async (el, folder) => {\n\t\tlatestFolder = folder\n\t\t// Import the RichWorkspace component only when needed\n\t\tif (!FilesHeaderRichWorkspaceView) {\n\t\t\tFilesHeaderRichWorkspaceView = (\n\t\t\t\tawait import('../views/RichWorkspace.vue')\n\t\t\t).default\n\t\t}\n\n\t\t// If an instance already exists, destroy it before creating a new one\n\t\tif (FilesHeaderRichWorkspaceInstance) {\n\t\t\tFilesHeaderRichWorkspaceInstance.$destroy()\n\t\t\tconsole.debug('Destroying existing FilesHeaderRichWorkspaceInstance')\n\t\t}\n\n\t\tconst hasRichWorkspace = !!latestFolder.attributes['rich-workspace-file']\n\t\tconst content = latestFolder.attributes['rich-workspace'] || ''\n\t\tconst path = latestFolder.path || ''\n\n\t\t// Create a new instance of the RichWorkspace component\n\t\tFilesHeaderRichWorkspaceInstance = new Vue({\n\t\t\textends: FilesHeaderRichWorkspaceView,\n\t\t\tpropsData: {\n\t\t\t\tcontent,\n\t\t\t\thasRichWorkspace,\n\t\t\t\tpath,\n\t\t\t},\n\t\t}).$mount(el)\n\n\t\twindow.FilesHeaderRichWorkspaceInstance = FilesHeaderRichWorkspaceInstance\n\t},\n\n\tupdated(folder, view) {\n\t\tlatestFolder = folder\n\t\tif (!FilesHeaderRichWorkspaceInstance) {\n\t\t\tconsole.error('No vue instance found for FilesWorkspaceHeader')\n\t\t\treturn\n\t\t}\n\n\t\tconst hasRichWorkspace =\n\t\t\t!!folder.attributes['rich-workspace-file'] && enabled(folder, view)\n\t\tFilesHeaderRichWorkspaceInstance.hasRichWorkspace = hasRichWorkspace\n\t\tFilesHeaderRichWorkspaceInstance.content =\n\t\t\tfolder.attributes['rich-workspace'] || ''\n\t\tFilesHeaderRichWorkspaceInstance.path = folder.path || ''\n\t},\n})\n\nexport { FILE_ACTION_IDENTIFIER, registerFileActionFallback, registerFileCreate }\n"],"file":"files--k339mQ3.chunk.mjs"}