{"version":3,"mappings":"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","names":["encodeAttachmentFilename","filename","c","apiVersion","TextEditorEmbed","#vm","#data","vm","data","#registerDebug","#getEditorComponent","onCreateCallback","content","onLoadedCallback","onUpdateCallback","onSearchCallback","subscribe","onTocToggleCallback","onTocPinCallback","onAttachmentsUpdatedCallback","el","element","query","matchAll","value","emit","pageId","oldName","newName","oldSrc","newSrc","view","state","doc","schema","tr","modified","node","pos","name","src","yjsData","fileId","useSession","filePath","shareToken","readOnly","autofocus","readonlyBar","onCreate","markdown","onLoaded","onUpdate","onTocToggle","visible","onOutlineToggle","onTocPin","keep","onFileInsert","onMentionSearch","onMentionInsert","openLinkHandler","onSearch","onAttachmentsUpdated","attachmentSrcs","MarkdownContentEditor","Editor","__vitePreload","n","Vue","sessionEditor","ACTION_ATTACHMENT_PROMPT","EDITOR_UPLOAD","HOOK_MENTION_SEARCH","HOOK_MENTION_INSERT","OPEN_LINK_HANDLER","openLink","ATTACHMENT_RESOLVER","preferRaw","h","scopedSlots","PlainTableContentEditor"],"ignoreList":[],"sources":["../src/helpers/attachmentFilename.ts","../src/editor.js"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Encode filename the same way as at `insertAttachment` in MediaHandler.vue\n *\n * @param filename - The filename to encode\n */\nexport function encodeAttachmentFilename(filename: string) {\n\treturn encodeURIComponent(filename).replace(/[!'()*]/g, (c) => {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase()\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { emit, subscribe } from '@nextcloud/event-bus'\nimport Vue from 'vue'\nimport {\n\tATTACHMENT_RESOLVER,\n\tEDITOR_UPLOAD,\n\tHOOK_MENTION_INSERT,\n\tHOOK_MENTION_SEARCH,\n\tOPEN_LINK_HANDLER,\n} from './components/Editor.provider.ts'\nimport { ACTION_ATTACHMENT_PROMPT } from './components/Editor/MediaHandler.provider.js'\nimport { encodeAttachmentFilename } from './helpers/attachmentFilename.ts'\nimport { openLink } from './helpers/links.js'\n// eslint-disable-next-line import/no-unresolved, n/no-missing-import\nimport 'vite/modulepreload-polyfill'\n\nconst apiVersion = '1.4'\n\nwindow.OCA.Text = {\n\t...window.OCA.Text,\n}\n\nclass TextEditorEmbed {\n\t#vm\n\t#data\n\tconstructor(vm, data) {\n\t\tthis.#vm = vm\n\t\tthis.#data = data\n\t\tthis.#registerDebug()\n\t\treturn this\n\t}\n\n\t#getEditorComponent() {\n\t\treturn this.#vm.$children[0]\n\t}\n\n\tonCreate(onCreateCallback = () => {}) {\n\t\tthis.#vm.$on('create:content', (content) => {\n\t\t\tonCreateCallback(content)\n\t\t})\n\t\treturn this\n\t}\n\n\tonLoaded(onLoadedCallback = () => {}) {\n\t\tthis.#vm.$on('ready', () => {\n\t\t\tonLoadedCallback()\n\t\t})\n\t\treturn this\n\t}\n\n\tonUpdate(onUpdateCallback = () => {}) {\n\t\tthis.#vm.$on('update:content', (content) => {\n\t\t\tonUpdateCallback(content)\n\t\t})\n\t\treturn this\n\t}\n\n\tonSearch(onSearchCallback = () => {}) {\n\t\tsubscribe('text:editor:search-results', onSearchCallback)\n\t\treturn this\n\t}\n\n\tonTocToggle(onTocToggleCallback = () => {}) {\n\t\tsubscribe('text:toc:toggled', onTocToggleCallback)\n\t\treturn this\n\t}\n\n\tonTocPin(onTocPinCallback = () => {}) {\n\t\tsubscribe('text:toc:pin', onTocPinCallback)\n\t\treturn this\n\t}\n\n\tonAttachmentsUpdated(onAttachmentsUpdatedCallback = () => {}) {\n\t\tsubscribe('text:editor:attachments:updated', onAttachmentsUpdatedCallback)\n\t\treturn this\n\t}\n\n\trender(el) {\n\t\tel.innerHTML = ''\n\t\tconst element = document.createElement('div')\n\t\tel.appendChild(element)\n\t\tthis.#vm.$mount(element)\n\t\treturn this\n\t}\n\n\tdestroy() {\n\t\tthis.#vm.$destroy()\n\t\tthis.#vm.$el.innerHTML = ''\n\t}\n\n\tsetContent(content) {\n\t\t// Update reactive prop for MarkdownContentEditor\n\t\tthis.#vm.$set(this.#data, 'content', content)\n\t\t// Call setContent for file based Editor\n\t\tthis.#getEditorComponent()?.setContent?.(content)\n\t\treturn this\n\t}\n\n\tgetHTML() {\n\t\tconst editor = this.#getEditorComponent()?.editor\n\t\treturn editor?.getHTML()\n\t}\n\n\tsetSearchQuery(query, matchAll) {\n\t\tconst editor = this.#getEditorComponent()?.editor\n\t\teditor?.commands.setSearchQuery(query, matchAll)\n\t}\n\n\tsearchNext() {\n\t\tconst editor = this.#getEditorComponent()?.editor\n\t\teditor?.commands.nextMatch()\n\t}\n\n\tsearchPrevious() {\n\t\tconst editor = this.#getEditorComponent()?.editor\n\t\teditor?.commands.previousMatch()\n\t}\n\n\tasync save() {\n\t\treturn this.#getEditorComponent().save?.()\n\t}\n\n\tsetShowOutline(value) {\n\t\temit('text:toc:toggle', { visible: value })\n\t\treturn this\n\t}\n\n\tsetReadOnly(value) {\n\t\tthis.#vm.$set(this.#data, 'readOnly', value)\n\t\treturn this\n\t}\n\n\tupdateReadonlyBarProps(value) {\n\t\tthis.#vm.$set(this.#data, 'readonlyBarProps', value)\n\t\treturn this\n\t}\n\n\tinsertAtCursor(content) {\n\t\tthis.#getEditorComponent()\n\t\t\t.editor?.chain()\n\t\t\t.insertContent(content)\n\t\t\t.focus()\n\t\t\t.run()\n\t}\n\n\treplaceAttachmentFilename(pageId, oldName, newName) {\n\t\tconst oldSrc =\n\t\t\t'.attachments.' + pageId + '/' + encodeAttachmentFilename(oldName)\n\t\tconst newSrc =\n\t\t\t'.attachments.' + pageId + '/' + encodeAttachmentFilename(newName)\n\t\tconst { view, state } = this.#getEditorComponent().editor\n\t\tconst { doc, schema, tr } = state\n\t\tlet modified = false\n\n\t\tdoc.descendants((node, pos) => {\n\t\t\tif (!node.type === schema.nodes.image || node.attrs.src !== oldSrc) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttr.setNodeMarkup(pos, undefined, {\n\t\t\t\t...node.attrs,\n\t\t\t\tsrc: newSrc,\n\t\t\t\talt: node.attrs.alt.replace(oldName, newName),\n\t\t\t})\n\t\t\tmodified = true\n\t\t})\n\n\t\tif (modified) {\n\t\t\tview.dispatch(tr)\n\t\t\tthis.save()\n\t\t}\n\t}\n\n\tremoveAttachmentReferences(pageId, name) {\n\t\tconst src = '.attachments.' + pageId + '/' + encodeAttachmentFilename(name)\n\t\tconst { view, state } = this.#getEditorComponent().editor\n\t\tconst { doc, schema, tr } = state\n\t\tlet modified = false\n\n\t\tdoc.descendants((node, pos) => {\n\t\t\tif (!node.type === schema.nodes.image || node.attrs.src !== src) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttr.delete(pos, pos + node.nodeSize)\n\t\t\tmodified = true\n\t\t})\n\n\t\tif (modified) {\n\t\t\tview.dispatch(tr)\n\t\t\tthis.save()\n\t\t}\n\t}\n\n\tfocus() {\n\t\tthis.#getEditorComponent().editor?.commands.focus()\n\t}\n\n\tdebugYjs() {\n\t\tconst yjsData = this.#getEditorComponent().debugYjsData()\n\n\t\tconst intro =\n\t\t\t'Editor Yjs debug data. Copy the object below that starts with \"clientId\".'\n\t\tconst introChrome = '- In Chrome, select \"Copy\" at the end of the line.'\n\t\tconst introFirefox =\n\t\t\t'- In Firefox, right-click on the object and select \"Copy object\".'\n\t\tconst styleBold = 'font-weight: bold;'\n\t\tconst styleItalic = 'font-weight: normal; font-style: italic;'\n\t\tconsole.warn(JSON.stringify(yjsData, null, ' '))\n\t\tconsole.warn(\n\t\t\t'%c%s\\n%c%s\\n%s',\n\t\t\tstyleBold,\n\t\t\tintro,\n\t\t\tstyleItalic,\n\t\t\tintroChrome,\n\t\t\tintroFirefox,\n\t\t)\n\t}\n\n\t#registerDebug() {\n\t\tif (window?._oc_debug) {\n\t\t\tthis.vm = this.#vm\n\t\t\twindow.OCA.Text._debug = [...(window.OCA.Text._debug ?? []), this]\n\t\t}\n\t}\n}\n\nwindow.OCA.Text.apiVersion = apiVersion\nwindow.OCA.Text.createEditor = async function ({\n\t// Element to render the editor to\n\tel,\n\n\t// Session editor with file mode is enabled by setting the fileId and useSession.\n\t// Otherwise, content needs to be provided.\n\tfileId = undefined,\n\tuseSession = true,\n\tfilePath = undefined,\n\tshareToken = null,\n\n\tcontent = '',\n\n\treadOnly = false,\n\tautofocus = true,\n\treadonlyBar = {\n\t\tcomponent: null,\n\t\tprops: null,\n\t},\n\n\tonCreate = ({ markdown }) => {},\n\tonLoaded = () => {},\n\tonUpdate = ({ markdown }) => {},\n\tonTocToggle = (visible) => {},\n\tonOutlineToggle = (visible) => {}, // deprecated, use `onTocToggle`\n\tonTocPin = (fileId, keep) => {},\n\tonFileInsert = undefined,\n\tonMentionSearch = undefined,\n\tonMentionInsert = undefined,\n\topenLinkHandler = undefined,\n\tonSearch = undefined,\n\tonAttachmentsUpdated = ({ attachmentSrcs }) => {},\n}) {\n\tconst { default: MarkdownContentEditor } = await import(\n\t\t'./components/Editor/MarkdownContentEditor.vue'\n\t)\n\tconst { default: Editor } = await import('./components/Editor.vue')\n\n\tconst data = Vue.observable({\n\t\treadonlyBarProps: readonlyBar.props,\n\t\treadOnly,\n\t\tcontent,\n\t})\n\n\tconst sessionEditor = fileId && useSession\n\n\tconst vm = new Vue({\n\t\tprovide() {\n\t\t\treturn {\n\t\t\t\t[ACTION_ATTACHMENT_PROMPT]: onFileInsert,\n\t\t\t\t[EDITOR_UPLOAD]: !!sessionEditor,\n\t\t\t\t[HOOK_MENTION_SEARCH]: sessionEditor ? true : onMentionSearch,\n\t\t\t\t[HOOK_MENTION_INSERT]: sessionEditor ? true : onMentionInsert,\n\t\t\t\t[OPEN_LINK_HANDLER]: {\n\t\t\t\t\topenLink: openLinkHandler || openLink,\n\t\t\t\t},\n\t\t\t\t[ATTACHMENT_RESOLVER]: {\n\t\t\t\t\tresolve(src, preferRaw) {\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t\t\turl: src,\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\tdata() {\n\t\t\treturn data\n\t\t},\n\t\trender: (h) => {\n\t\t\tconst scopedSlots = readonlyBar?.component\n\t\t\t\t? {\n\t\t\t\t\t\treadonlyBar: () => {\n\t\t\t\t\t\t\treturn h(readonlyBar.component, {\n\t\t\t\t\t\t\t\tprops: data.readonlyBarProps,\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\n\t\t\treturn sessionEditor\n\t\t\t\t? h(Editor, {\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tfileId,\n\t\t\t\t\t\t\trelativePath: filePath,\n\t\t\t\t\t\t\tshareToken,\n\t\t\t\t\t\t\tmime: 'text/markdown',\n\t\t\t\t\t\t\tactive: true,\n\t\t\t\t\t\t\tautofocus,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscopedSlots,\n\t\t\t\t\t})\n\t\t\t\t: h(MarkdownContentEditor, {\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tfileId,\n\t\t\t\t\t\t\tcontent: data.content,\n\t\t\t\t\t\t\trelativePath: filePath,\n\t\t\t\t\t\t\tshareToken,\n\t\t\t\t\t\t\treadOnly: data.readOnly,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tscopedSlots,\n\t\t\t\t\t})\n\t\t},\n\t})\n\n\treturn new TextEditorEmbed(vm, data)\n\t\t.onCreate(onCreate)\n\t\t.onLoaded(onLoaded)\n\t\t.onUpdate(onUpdate)\n\t\t.onSearch(onSearch)\n\t\t.onTocToggle(onOutlineToggle)\n\t\t.onTocToggle(onTocToggle)\n\t\t.onTocPin(onTocPin)\n\t\t.onAttachmentsUpdated(onAttachmentsUpdated)\n\t\t.render(el)\n}\n\nwindow.OCA.Text.createTable = async function ({\n\t// Element to render the editor to\n\tel,\n\n\tcontent = '',\n\n\treadOnly = false,\n\tautofocus = true,\n\n\tonCreate = ({ markdown }) => {},\n\tonLoaded = () => {},\n\tonUpdate = ({ markdown }) => {},\n}) {\n\tconst { default: PlainTableContentEditor } = await import(\n\t\t'./components/Editor/PlainTableContentEditor.vue'\n\t)\n\n\tconst data = Vue.observable({\n\t\treadOnly,\n\t\tcontent,\n\t})\n\n\tconst vm = new Vue({\n\t\tdata() {\n\t\t\treturn data\n\t\t},\n\t\trender: (h) => {\n\t\t\treturn h(PlainTableContentEditor, {\n\t\t\t\tprops: {\n\t\t\t\t\tcontent: data.content,\n\t\t\t\t\treadOnly: data.readOnly,\n\t\t\t\t},\n\t\t\t})\n\t\t},\n\t})\n\n\treturn new TextEditorEmbed(vm, data)\n\t\t.onCreate(onCreate)\n\t\t.onLoaded(onLoaded)\n\t\t.onUpdate(onUpdate)\n\t\t.render(el)\n}\n"],"file":"text-editor.mjs"}