{"version":3,"file":"educai-main.mjs","sources":["../node_modules/nanoid/non-secure/index.js","../node_modules/@linusborg/vue-simple-portal/dist/index.esm.js","../node_modules/@nextcloud/vue/dist/chunks/NcContent-BuTh0ZPb.mjs","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/ArrowLeft-DuT2LZOm.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-CY2b9hgN.mjs","../node_modules/@nextcloud/vue/dist/chunks/appName-qk1L3dsY.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-DAN0qPID.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/components/PublicBotCard.vue","../src/components/BotDetailModal.vue","../src/components/BotTalkStartModal.vue","../src/components/PublicBotList.vue","../src/views/App.vue","../src/main.js"],"sourcesContent":["let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size | 0\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nexport { nanoid, customAlphabet }\n","\n/**\n * vue-simple-portal\n * version: 0.1.5,\n * (c) Thorsten Lünborg, 2021 - present\n * LICENCE: Apache-2.0\n * http://github.com/linusborg/vue-simple-portal\n*/\nimport Vue from 'vue';\nimport { nanoid } from 'nanoid/non-secure';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar config = {\n selector: \"vue-portal-target-\".concat(nanoid())\n};\nvar setSelector = function setSelector(selector) {\n return config.selector = selector;\n};\nvar isBrowser = typeof window !== 'undefined' && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) !== undefined;\n\nvar TargetContainer = Vue.extend({\n // as an abstract component, it doesn't appear in\n // the $parent chain of components.\n // which means the next parent of any component rendered inside of this oen\n // will be the parent from which is was sent\n // @ts-expect-error\n abstract: true,\n name: 'PortalOutlet',\n props: ['nodes', 'tag'],\n data: function data(vm) {\n return {\n updatedNodes: vm.nodes\n };\n },\n render: function render(h) {\n var nodes = this.updatedNodes && this.updatedNodes();\n if (!nodes) return h();\n return nodes.length === 1 && !nodes[0].text ? nodes : h(this.tag || 'DIV', nodes);\n },\n destroyed: function destroyed() {\n var el = this.$el;\n el && el.parentNode.removeChild(el);\n }\n});\n\nvar Portal = Vue.extend({\n name: 'VueSimplePortal',\n props: {\n disabled: {\n type: Boolean\n },\n prepend: {\n type: Boolean\n },\n selector: {\n type: String,\n default: function _default() {\n return \"#\".concat(config.selector);\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n }\n },\n render: function render(h) {\n if (this.disabled) {\n var nodes = this.$scopedSlots && this.$scopedSlots.default();\n if (!nodes) return h();\n return nodes.length < 2 && !nodes[0].text ? nodes : h(this.tag, nodes);\n }\n\n return h();\n },\n created: function created() {\n if (!this.getTargetEl()) {\n this.insertTargetEl();\n }\n },\n updated: function updated() {\n var _this = this;\n\n // We only update the target container component\n // if the scoped slot function is a fresh one\n // The new slot syntax (since Vue 2.6) can cache unchanged slot functions\n // and we want to respect that here.\n this.$nextTick(function () {\n if (!_this.disabled && _this.slotFn !== _this.$scopedSlots.default) {\n _this.container.updatedNodes = _this.$scopedSlots.default;\n }\n\n _this.slotFn = _this.$scopedSlots.default;\n });\n },\n beforeDestroy: function beforeDestroy() {\n this.unmount();\n },\n watch: {\n disabled: {\n immediate: true,\n handler: function handler(disabled) {\n disabled ? this.unmount() : this.$nextTick(this.mount);\n }\n }\n },\n methods: {\n // This returns the element into which the content should be mounted.\n getTargetEl: function getTargetEl() {\n if (!isBrowser) return;\n return document.querySelector(this.selector);\n },\n insertTargetEl: function insertTargetEl() {\n if (!isBrowser) return;\n var parent = document.querySelector('body');\n var child = document.createElement(this.tag);\n child.id = this.selector.substring(1);\n parent.appendChild(child);\n },\n mount: function mount() {\n if (!isBrowser) return;\n var targetEl = this.getTargetEl();\n var el = document.createElement('DIV');\n\n if (this.prepend && targetEl.firstChild) {\n targetEl.insertBefore(el, targetEl.firstChild);\n } else {\n targetEl.appendChild(el);\n }\n\n this.container = new TargetContainer({\n el: el,\n parent: this,\n propsData: {\n tag: this.tag,\n nodes: this.$scopedSlots.default\n }\n });\n },\n unmount: function unmount() {\n if (this.container) {\n this.container.$destroy();\n delete this.container;\n }\n }\n }\n});\n\nfunction install(_Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _Vue.component(options.name || 'portal', Portal);\n\n if (options.defaultSelector) {\n setSelector(options.defaultSelector);\n }\n}\n\nif (typeof window !== 'undefined' && window.Vue && window.Vue === Vue) {\n // plugin was inlcuded directly in a browser\n Vue.use(install);\n}\n\nexport default install;\nexport { Portal, config, setSelector };\n","import '../assets/NcContent-URJTZQq1.css';\nimport { Portal } from \"@linusborg/vue-simple-portal\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { N as NcButton } from \"./NcButton-CCWEL9Ci.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { useIsMobile } from \"../Composables/useIsMobile.mjs\";\nimport { r as register, I as t29, a as t } from \"./_l10n-DVz9Qdzk.mjs\";\nimport { i as isLegacy34 } from \"./legacy-DV3mGZdh.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t29);\nconst contentSvg = '\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n';\nconst navigationSvg = '\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n';\nconst _sfc_main = {\n name: \"NcContent\",\n components: {\n NcButton,\n NcIconSvgWrapper,\n Teleport: Portal\n },\n provide() {\n return {\n appName: this.appName,\n \"NcContent:setHasAppNavigation\": this.setAppNavigation,\n \"NcContent:selector\": \"#content-vue\"\n };\n },\n props: {\n /**\n * The application name to use.\n * This is used to scope all content (content, sidebar, navigation) to the application.\n */\n appName: {\n type: String,\n required: true\n }\n },\n setup() {\n const isMobile = useIsMobile();\n return {\n isMobile,\n isLegacy34\n };\n },\n data() {\n return {\n hasAppNavigation: false,\n currentFocus: \"\"\n // unknown\n };\n },\n computed: {\n currentImage() {\n if (this.currentFocus === \"navigation\") {\n return navigationSvg;\n }\n return contentSvg;\n }\n },\n beforeMount() {\n const container = document.getElementById(\"skip-actions\");\n if (container) {\n container.innerHTML = \"\";\n container.classList.add(\"vue-skip-actions\");\n }\n },\n methods: {\n t,\n openAppNavigation() {\n emit(\"toggle-navigation\", { open: true });\n this.$nextTick(() => {\n window.location.hash = \"app-navigation-vue\";\n document.getElementById(\"app-navigation-vue\").focus();\n });\n },\n setAppNavigation(value) {\n this.hasAppNavigation = value;\n if (this.currentFocus === \"\") {\n this.currentFocus = \"navigation\";\n }\n }\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"div\", { staticClass: \"content\", class: [`app-${_vm.appName.toLowerCase()}`, { \"content--legacy\": _vm.isLegacy34 }], attrs: { \"id\": \"content-vue\" } }, [_c(\"Teleport\", { attrs: { \"selector\": \"#skip-actions\" } }, [_c(\"div\", { staticClass: \"vue-skip-actions__container\" }, [_c(\"div\", { staticClass: \"vue-skip-actions__headline\" }, [_vm._v(\" \" + _vm._s(_vm.t(\"Keyboard navigation help\")) + \" \")]), _c(\"div\", { staticClass: \"vue-skip-actions__buttons\" }, [_c(\"NcButton\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.hasAppNavigation, expression: \"hasAppNavigation\" }], attrs: { \"href\": \"#app-navigation-vue\", \"variant\": \"tertiary\" }, on: { \"click\": function($event) {\n $event.preventDefault();\n return _vm.openAppNavigation.apply(null, arguments);\n }, \"focusin\": function($event) {\n _vm.currentFocus = \"navigation\";\n }, \"mouseover\": function($event) {\n _vm.currentFocus = \"navigation\";\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Skip to app navigation\")) + \" \")]), _c(\"NcButton\", { attrs: { \"href\": \"#app-content-vue\", \"variant\": \"tertiary\" }, on: { \"focusin\": function($event) {\n _vm.currentFocus = \"content\";\n }, \"mouseover\": function($event) {\n _vm.currentFocus = \"content\";\n } } }, [_vm._v(\" \" + _vm._s(_vm.t(\"Skip to main content\")) + \" \")])], 1), _c(\"NcIconSvgWrapper\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !_vm.isMobile, expression: \"!isMobile\" }], staticClass: \"vue-skip-actions__image\", attrs: { \"svg\": _vm.currentImage, \"size\": \"auto\" } })], 1), _vm._v(\"  \")]), _vm._t(\"default\")], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"ffbd7561\"\n);\nconst NcContent = __component__.exports;\nexport {\n NcContent as N\n};\n//# sourceMappingURL=NcContent-BuTh0ZPb.mjs.map\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar splitpanes_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __vue2_script$1 = {\n name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean },\n pushOtherPanes: { type: Boolean, default: true },\n dblClickSplitter: { type: Boolean, default: true },\n rtl: { type: Boolean, default: false },\n firstSplitter: { type: Boolean }\n },\n provide() {\n return {\n requestUpdate: this.requestUpdate,\n onPaneAdd: this.onPaneAdd,\n onPaneRemove: this.onPaneRemove,\n onPaneClick: this.onPaneClick\n };\n },\n data: () => ({\n container: null,\n ready: false,\n panes: [],\n touch: {\n mouseDown: false,\n dragging: false,\n activeSplitter: null\n },\n splitterTaps: {\n splitter: null,\n timeoutId: null\n }\n }),\n computed: {\n panesCount() {\n return this.panes.length;\n },\n indexedPanes() {\n return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});\n }\n },\n methods: {\n updatePaneComponents() {\n this.panes.forEach((pane2) => {\n pane2.update && pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n },\n bindEvents() {\n document.addEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.addEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"touchend\", this.onMouseUp);\n }\n },\n unbindEvents() {\n document.removeEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.removeEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"touchend\", this.onMouseUp);\n }\n },\n onMouseDown(event, splitterIndex) {\n this.bindEvents();\n this.touch.mouseDown = true;\n this.touch.activeSplitter = splitterIndex;\n },\n onMouseMove(event) {\n if (this.touch.mouseDown) {\n event.preventDefault();\n this.touch.dragging = true;\n this.calculatePanesSize(this.getCurrentMouseDrag(event));\n this.$emit(\"resize\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n },\n onMouseUp() {\n if (this.touch.dragging) {\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n this.touch.mouseDown = false;\n setTimeout(() => {\n this.touch.dragging = false;\n this.unbindEvents();\n }, 100);\n },\n onSplitterClick(event, splitterIndex) {\n if (\"ontouchstart\" in window) {\n event.preventDefault();\n if (this.dblClickSplitter) {\n if (this.splitterTaps.splitter === splitterIndex) {\n clearTimeout(this.splitterTaps.timeoutId);\n this.splitterTaps.timeoutId = null;\n this.onSplitterDblClick(event, splitterIndex);\n this.splitterTaps.splitter = null;\n } else {\n this.splitterTaps.splitter = splitterIndex;\n this.splitterTaps.timeoutId = setTimeout(() => {\n this.splitterTaps.splitter = null;\n }, 500);\n }\n }\n }\n if (!this.touch.dragging)\n this.$emit(\"splitter-click\", this.panes[splitterIndex]);\n },\n onSplitterDblClick(event, splitterIndex) {\n let totalMinSizes = 0;\n this.panes = this.panes.map((pane2, i) => {\n pane2.size = i === splitterIndex ? pane2.max : pane2.min;\n if (i !== splitterIndex)\n totalMinSizes += pane2.min;\n return pane2;\n });\n this.panes[splitterIndex].size -= totalMinSizes;\n this.$emit(\"pane-maximize\", this.panes[splitterIndex]);\n },\n onPaneClick(event, paneId) {\n this.$emit(\"pane-click\", this.indexedPanes[paneId]);\n },\n getCurrentMouseDrag(event) {\n const rect = this.container.getBoundingClientRect();\n const { clientX, clientY } = \"ontouchstart\" in window && event.touches ? event.touches[0] : event;\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n };\n },\n getCurrentDragPercentage(drag) {\n drag = drag[this.horizontal ? \"y\" : \"x\"];\n const containerSize = this.container[this.horizontal ? \"clientHeight\" : \"clientWidth\"];\n if (this.rtl && !this.horizontal)\n drag = containerSize - drag;\n return drag * 100 / containerSize;\n },\n calculatePanesSize(drag) {\n const splitterIndex = this.touch.activeSplitter;\n let sums = {\n prevPanesSize: this.sumPrevPanesSize(splitterIndex),\n nextPanesSize: this.sumNextPanesSize(splitterIndex),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);\n const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);\n const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);\n let panesToResize = [splitterIndex, splitterIndex + 1];\n let paneBefore = this.panes[panesToResize[0]] || null;\n let paneAfter = this.panes[panesToResize[1]] || null;\n const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;\n const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n if (paneBeforeMaxReached) {\n paneBefore.size = paneBefore.max;\n paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);\n } else {\n paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);\n paneAfter.size = paneAfter.max;\n }\n return;\n }\n if (this.pushOtherPanes) {\n const vars = this.doPushOtherPanes(sums, dragPercentage);\n if (!vars)\n return;\n ({ sums, panesToResize } = vars);\n paneBefore = this.panes[panesToResize[0]] || null;\n paneAfter = this.panes[panesToResize[1]] || null;\n }\n if (paneBefore !== null) {\n paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);\n }\n if (paneAfter !== null) {\n paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);\n }\n },\n doPushOtherPanes(sums, dragPercentage) {\n const splitterIndex = this.touch.activeSplitter;\n const panesToResize = [splitterIndex, splitterIndex + 1];\n if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {\n panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;\n sums.prevReachedMinPanes = 0;\n if (panesToResize[0] < splitterIndex) {\n this.panes.forEach((pane2, i) => {\n if (i > panesToResize[0] && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n }\n sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);\n if (panesToResize[0] === void 0) {\n sums.prevReachedMinPanes = 0;\n this.panes[0].size = this.panes[0].min;\n this.panes.forEach((pane2, i) => {\n if (i > 0 && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;\n return null;\n }\n }\n if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {\n panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;\n sums.nextReachedMinPanes = 0;\n if (panesToResize[1] > splitterIndex + 1) {\n this.panes.forEach((pane2, i) => {\n if (i > splitterIndex && i < panesToResize[1]) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n }\n sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);\n if (panesToResize[1] === void 0) {\n sums.nextReachedMinPanes = 0;\n this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;\n this.panes.forEach((pane2, i) => {\n if (i < this.panesCount - 1 && i >= splitterIndex + 1) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;\n return null;\n }\n }\n return { sums, panesToResize };\n },\n sumPrevPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);\n },\n sumNextPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);\n },\n findPrevExpandedPane(splitterIndex) {\n const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);\n return pane2 || {};\n },\n findNextExpandedPane(splitterIndex) {\n const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);\n return pane2 || {};\n },\n checkSplitpanesNodes() {\n const children = Array.from(this.container.children);\n children.forEach((child) => {\n const isPane = child.classList.contains(\"splitpanes__pane\");\n const isSplitter = child.classList.contains(\"splitpanes__splitter\");\n if (!isPane && !isSplitter) {\n child.parentNode.removeChild(child);\n console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\");\n return;\n }\n });\n },\n addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {\n const splitterIndex = paneIndex - 1;\n const elm = document.createElement(\"div\");\n elm.classList.add(\"splitpanes__splitter\");\n if (!isVeryFirst) {\n elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);\n if (typeof window !== \"undefined\" && \"ontouchstart\" in window) {\n elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);\n }\n elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);\n }\n if (this.dblClickSplitter) {\n elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);\n }\n nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);\n },\n removeSplitter(node) {\n node.onmousedown = void 0;\n node.onclick = void 0;\n node.ondblclick = void 0;\n node.parentNode.removeChild(node);\n },\n redoSplitters() {\n const children = Array.from(this.container.children);\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__splitter\"))\n this.removeSplitter(el);\n });\n let paneIndex = 0;\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__pane\")) {\n if (!paneIndex && this.firstSplitter)\n this.addSplitter(paneIndex, el, true);\n else if (paneIndex)\n this.addSplitter(paneIndex, el);\n paneIndex++;\n }\n });\n },\n requestUpdate(_a) {\n var _b = _a, { target } = _b, args = __objRest(_b, [\"target\"]);\n const pane2 = this.indexedPanes[target._uid];\n Object.entries(args).forEach(([key, value]) => pane2[key] = value);\n },\n onPaneAdd(pane2) {\n let index = -1;\n Array.from(pane2.$el.parentNode.children).some((el) => {\n if (el.className.includes(\"splitpanes__pane\"))\n index++;\n return el === pane2.$el;\n });\n const min = parseFloat(pane2.minSize);\n const max = parseFloat(pane2.maxSize);\n this.panes.splice(index, 0, {\n id: pane2._uid,\n index,\n min: isNaN(min) ? 0 : min,\n max: isNaN(max) ? 100 : max,\n size: pane2.size === null ? null : parseFloat(pane2.size),\n givenSize: pane2.size,\n update: pane2.update\n });\n this.panes.forEach((p, i) => p.index = i);\n if (this.ready) {\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ addedPane: this.panes[index] });\n this.$emit(\"pane-add\", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n }\n },\n onPaneRemove(pane2) {\n const index = this.panes.findIndex((p) => p.id === pane2._uid);\n const removed = this.panes.splice(index, 1)[0];\n this.panes.forEach((p, i) => p.index = i);\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });\n this.$emit(\"pane-remove\", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n },\n resetPaneSizes(changedPanes = {}) {\n if (!changedPanes.addedPane && !changedPanes.removedPane)\n this.initialPanesSizing();\n else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))\n this.equalizeAfterAddOrRemove(changedPanes);\n else\n this.equalize();\n if (this.ready)\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n },\n equalize() {\n const equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n this.panes.forEach((pane2) => {\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n initialPanesSizing() {\n 100 / this.panesCount;\n let leftToAllocate = 100;\n let ungrowable = [];\n let unshrinkable = [];\n let definedSizes = 0;\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size !== null)\n definedSizes++;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n let leftToAllocate2 = 100;\n if (leftToAllocate > 0.1) {\n this.panes.forEach((pane2) => {\n if (pane2.size === null) {\n pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);\n }\n leftToAllocate2 -= pane2.size;\n });\n if (leftToAllocate2 > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n }\n },\n equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {\n let equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n if (addedPane && addedPane.givenSize !== null) {\n equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);\n }\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (Math.abs(leftToAllocate) < 0.1)\n return;\n this.panes.forEach((pane2) => {\n if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)\n ;\n else\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n readjustSizes(leftToAllocate, ungrowable, unshrinkable) {\n let equalSpaceToAllocate;\n if (leftToAllocate > 0)\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);\n else\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);\n this.panes.forEach((pane2, i) => {\n if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n } else if (!unshrinkable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n }\n pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n if (Math.abs(leftToAllocate) > 0.1) {\n this.$nextTick(() => {\n if (this.ready) {\n console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n }\n });\n }\n }\n },\n watch: {\n panes: {\n deep: true,\n immediate: false,\n handler() {\n this.updatePaneComponents();\n }\n },\n horizontal() {\n this.updatePaneComponents();\n },\n firstSplitter() {\n this.redoSplitters();\n },\n dblClickSplitter(enable) {\n const splitters = [...this.container.querySelectorAll(\".splitpanes__splitter\")];\n splitters.forEach((splitter, i) => {\n splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;\n });\n }\n },\n beforeDestroy() {\n this.ready = false;\n },\n mounted() {\n this.container = this.$refs.container;\n this.checkSplitpanesNodes();\n this.redoSplitters();\n this.resetPaneSizes();\n this.$emit(\"ready\");\n this.ready = true;\n },\n render(h) {\n return h(\"div\", {\n ref: \"container\",\n class: [\n \"splitpanes\",\n `splitpanes--${this.horizontal ? \"horizontal\" : \"vertical\"}`,\n {\n \"splitpanes--dragging\": this.touch.dragging\n }\n ]\n }, this.$slots.default);\n }\n};\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar splitpanes = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"splitpanes__pane\", style: _vm.style, on: { \"click\": function($event) {\n return _vm.onPaneClick($event, _vm._uid);\n } } }, [_vm._t(\"default\")], 2);\n};\nvar staticRenderFns = [];\nconst __vue2_script = {\n name: \"pane\",\n inject: [\"requestUpdate\", \"onPaneAdd\", \"onPaneRemove\", \"onPaneClick\"],\n props: {\n size: { type: [Number, String], default: null },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n data: () => ({\n style: {}\n }),\n mounted() {\n this.onPaneAdd(this);\n },\n beforeDestroy() {\n this.onPaneRemove(this);\n },\n methods: {\n update(style) {\n this.style = style;\n }\n },\n computed: {\n sizeNumber() {\n return this.size || this.size === 0 ? parseFloat(this.size) : null;\n },\n minSizeNumber() {\n return parseFloat(this.minSize);\n },\n maxSizeNumber() {\n return parseFloat(this.maxSize);\n }\n },\n watch: {\n sizeNumber(size) {\n this.requestUpdate({ target: this, size });\n },\n minSizeNumber(min) {\n this.requestUpdate({ target: this, min });\n },\n maxSizeNumber(max) {\n this.requestUpdate({ target: this, max });\n }\n }\n};\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar pane = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { pane as Pane, splitpanes as Splitpanes };\n","import { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"ArrowLeftIcon\",\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};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon arrow-left-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst ArrowLeft = __component__.exports;\nexport {\n ArrowLeft as A\n};\n//# sourceMappingURL=ArrowLeft-DuT2LZOm.mjs.map\n","import { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nconst _sfc_main = {\n name: \"ArrowRightIcon\",\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};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon arrow-right-icon\", attrs: { \"aria-hidden\": _vm.title ? null : \"true\", \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n null\n);\nconst ArrowRight = __component__.exports;\nexport {\n ArrowRight as A\n};\n//# sourceMappingURL=ArrowRight-CY2b9hgN.mjs.map\n","import { loadState } from \"@nextcloud/initial-state\";\nimport { inject } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction once(func) {\n let wasCalled = false;\n let result;\n return (...args) => {\n if (!wasCalled) {\n wasCalled = true;\n result = func(...args);\n }\n return result;\n };\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nlet realAppName = \"missing-app-name\";\ntry {\n realAppName = appName;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appName`.\");\n}\nconst APP_NAME = realAppName;\nlet realAppVersion = \"\";\ntry {\n realAppVersion = appVersion;\n} catch {\n logger.error(\"The `@nextcloud/vue` library was used without setting / replacing the `appVersion`.\");\n}\nconst APP_VERSION = realAppVersion;\nfunction useAppName() {\n return inject(\"appName\", APP_NAME);\n}\nconst useLocalizedAppName = once(() => {\n const apps = loadState(\"core\", \"apps\", []);\n const realAppName2 = useAppName();\n return apps.find(({ id }) => id === realAppName2)?.name ?? realAppName2;\n});\nexport {\n APP_VERSION as A,\n useAppName as a,\n useLocalizedAppName as u\n};\n//# sourceMappingURL=appName-qk1L3dsY.mjs.map\n","import '../assets/NcAppContent-CKJUs-ZZ.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { A as ArrowLeft } from \"./ArrowLeft-DuT2LZOm.mjs\";\nimport { A as ArrowRight } from \"./ArrowRight-CY2b9hgN.mjs\";\nimport { useIsMobile } from \"../Composables/useIsMobile.mjs\";\nimport { r as register, J as t26, a as t } from \"./_l10n-DVz9Qdzk.mjs\";\nimport { isRTL } from \"@nextcloud/l10n\";\nimport { N as NcButton } from \"./NcButton-CCWEL9Ci.mjs\";\nimport { n as normalizeComponent } from \"./_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nimport { u as useLocalizedAppName, a as useAppName } from \"./appName-qk1L3dsY.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\nregister(t26);\nconst isRtl = isRTL();\nconst _sfc_main$1 = {\n name: \"NcAppContentDetailsToggle\",\n components: {\n ArrowRight,\n ArrowLeft,\n NcButton\n },\n setup() {\n return {\n isRtl,\n isMobile: useIsMobile()\n };\n },\n computed: {\n title() {\n return t(\"Go back to the list\");\n }\n },\n watch: {\n isMobile: function() {\n this.toggleAppNavigationButton(this.isMobile);\n }\n },\n mounted() {\n this.toggleAppNavigationButton(this.isMobile);\n },\n beforeDestroy() {\n if (this.isMobile) {\n this.toggleAppNavigationButton(false);\n }\n },\n methods: {\n toggleAppNavigationButton(hide = true) {\n const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n if (appNavigationToggle) {\n appNavigationToggle.style.display = hide ? \"none\" : null;\n if (hide === true) {\n emit(\"toggle-navigation\", { open: false });\n }\n }\n }\n }\n};\nvar _sfc_render$1 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"NcButton\", { staticClass: \"app-details-toggle\", class: { \"app-details-toggle--mobile\": _vm.isMobile }, attrs: { \"aria-label\": _vm.title, \"title\": _vm.title, \"variant\": \"tertiary\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_vm.isRtl ? _c(\"ArrowLeft\", { attrs: { \"size\": 20 } }) : _c(\"ArrowRight\", { attrs: { \"size\": 20 } })];\n }, proxy: true }]) });\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"d0b1a8bc\"\n);\nconst NcAppContentDetailsToggle = __component__$1.exports;\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst instanceName = getCapabilities().theming?.name ?? \"Nextcloud\";\nconst _sfc_main = {\n name: \"NcAppContent\",\n components: {\n NcAppContentDetailsToggle,\n Pane,\n Splitpanes\n },\n props: {\n /**\n * Allows to disable the control by swipe of the app navigation open state\n *\n * @deprecated will be removed with the next version - use `disableSwipe` instead\n */\n allowSwipeNavigation: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Allows to disable the control by swipe of the app navigation open state.\n */\n disableSwipe: {\n type: Boolean,\n default: false\n },\n /**\n * Allows you to set the default width of the resizable list in % on vertical-split\n * or respectively the default height on horizontal-split.\n *\n * Must be between `listMinWidth` and `listMaxWidth`.\n */\n listSize: {\n type: Number,\n default: 20\n },\n /**\n * Allows you to set the minimum width of the list column in % on vertical-split\n * or respectively the minimum height on horizontal-split.\n */\n listMinWidth: {\n type: Number,\n default: 15\n },\n /**\n * Allows you to set the maximum width of the list column in % on vertical-split\n * or respectively the maximum height on horizontal-split.\n */\n listMaxWidth: {\n type: Number,\n default: 40\n },\n /**\n * Specify the config key for the pane config sizes\n * Default is the global var appName if you use the webpack-vue-config\n */\n paneConfigKey: {\n type: String,\n default: \"\"\n },\n /**\n * When in mobile view, only the list or the details are shown.\n *\n * If you provide a list, you need to provide a variable\n * that will be set to true by the user when an element of\n * the list gets selected. The details will then show a back\n * arrow to return to the list that will update this prop to false.\n */\n showDetails: {\n type: Boolean,\n // eslint-disable-next-line vue/no-boolean-default\n default: true\n },\n /**\n * Content layout used when there is a list together with content:\n * - `vertical-split` - a 2-column layout with list and default content separated vertically\n * - `no-split` - a single column layout; List is shown when `showDetails` is `false`, otherwise the default slot content is shown with a back button to return to the list.\n * - 'horizontal-split' - a 2-column layout with list and default content separated horizontally\n * On mobile screen `no-split` layout is forced.\n */\n layout: {\n type: String,\n default: \"vertical-split\",\n validator(value) {\n return [\"no-split\", \"vertical-split\", \"horizontal-split\"].includes(value);\n }\n },\n /**\n * Specify the `

` page heading\n */\n pageHeading: {\n type: String,\n default: null\n },\n /**\n * Allow setting the page's ``\n *\n * If a page heading is set it defaults to `{pageHeading} - {appName} - {instanceName}` e.g. `Favorites - Files - MyPersonalCloud`.\n * When the page heading and the app name is the same only one is used, e.g. `Files - Files - MyPersonalCloud` is shown as `Files - MyPersonalCloud`.\n * When setting the prop then the following format will be used: `{pageTitle} - {instanceName}`\n */\n pageTitle: {\n type: String,\n default: null\n }\n },\n emits: [\n \"update:showDetails\",\n \"resize-list\",\n \"resize:list\"\n ],\n setup() {\n return {\n appName: useAppName(),\n localizedAppName: useLocalizedAppName(),\n isMobile: useIsMobile(),\n isRtl\n };\n },\n data() {\n return {\n contentHeight: 0,\n swiping: {},\n listPaneSize: this.restorePaneConfig()\n };\n },\n computed: {\n paneConfigID() {\n if (this.paneConfigKey !== \"\") {\n return `pane-list-size-${this.paneConfigKey}`;\n }\n try {\n return `pane-list-size-${this.appName}`;\n } catch {\n logger.info(\"[NcAppContent]: falling back to global nextcloud pane config\");\n return \"pane-list-size-nextcloud\";\n }\n },\n detailsPaneSize() {\n if (this.listPaneSize) {\n return 100 - this.listPaneSize;\n }\n return this.paneDefaults.details.size;\n },\n paneDefaults() {\n return {\n list: {\n size: this.listSize,\n min: this.listMinWidth,\n max: this.listMaxWidth\n },\n // set the inverse values of the details column\n // based on the provided (or default) values of the list column\n details: {\n size: 100 - this.listSize,\n min: 100 - this.listMaxWidth,\n max: 100 - this.listMinWidth\n }\n };\n },\n realPageTitle() {\n const entries = /* @__PURE__ */ new Set();\n if (this.pageTitle) {\n for (const part of this.pageTitle.split(\" - \")) {\n entries.add(part);\n }\n } else if (this.pageHeading) {\n for (const part of this.pageHeading.split(\" - \")) {\n entries.add(part);\n }\n if (entries.size > 0) {\n entries.add(this.localizedAppName);\n }\n } else {\n return null;\n }\n entries.add(instanceName);\n return [...entries.values()].join(\" - \");\n }\n },\n watch: {\n realPageTitle: {\n immediate: true,\n handler() {\n if (this.realPageTitle !== null) {\n document.title = this.realPageTitle;\n }\n }\n },\n paneConfigKey: {\n immediate: true,\n handler() {\n this.restorePaneConfig();\n }\n }\n },\n mounted() {\n if (this.allowSwipeNavigation && !this.disableSwipe) {\n this.swiping = useSwipe(this.$el, {\n onSwipeEnd: this.handleSwipe\n });\n }\n this.restorePaneConfig();\n },\n methods: {\n /**\n * handle the swipe event\n *\n * @param {TouchEvent} e The touch event\n * @param {import('@vueuse/core').SwipeDirection} direction The swipe direction of the event\n */\n handleSwipe(e, direction) {\n const minSwipeX = 70;\n const touchZone = 300;\n if (Math.abs(this.swiping.lengthX) > minSwipeX) {\n if (this.swiping.coordsStart.x < touchZone / 2 && direction === \"right\") {\n emit(\"toggle-navigation\", {\n open: true\n });\n } else if (this.swiping.coordsStart.x < touchZone * 1.5 && direction === \"left\") {\n emit(\"toggle-navigation\", {\n open: false\n });\n }\n }\n },\n handlePaneResize(event) {\n const listPaneSize = parseInt(event[0].size, 10);\n browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n this.listPaneSize = listPaneSize;\n this.$emit(\"resize:list\", { size: listPaneSize });\n this.$emit(\"resize-list\", { size: listPaneSize });\n logger.debug(\"AppContent pane config\", { size: listPaneSize });\n },\n // browserStorage is not reactive, we need to update this manually\n restorePaneConfig() {\n const listPaneSize = parseInt(browserStorage.getItem(this.paneConfigID), 10);\n if (!isNaN(listPaneSize) && listPaneSize !== this.listPaneSize) {\n logger.debug(\"AppContent pane config\", listPaneSize);\n this.listPaneSize = listPaneSize;\n return listPaneSize;\n }\n },\n /**\n * The user clicked the back arrow from the details view\n */\n hideDetails() {\n this.$emit(\"update:showDetails\", false);\n }\n }\n};\nvar _sfc_render = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"main\", { staticClass: \"app-content no-snapper\", class: { \"app-content--has-list\": !!_vm.$scopedSlots.list }, attrs: { \"id\": \"app-content-vue\" } }, [_vm.pageHeading ? _c(\"h1\", { staticClass: \"hidden-visually\" }, [_vm._v(\" \" + _vm._s(_vm.pageHeading) + \" \")]) : _vm._e(), !!_vm.$scopedSlots.list ? [_vm.isMobile || _vm.layout === \"no-split\" ? _c(\"div\", { staticClass: \"app-content-wrapper app-content-wrapper--no-split\", class: {\n \"app-content-wrapper--show-details\": _vm.showDetails,\n \"app-content-wrapper--show-list\": !_vm.showDetails,\n \"app-content-wrapper--mobile\": _vm.isMobile\n } }, [_vm.showDetails ? _c(\"NcAppContentDetailsToggle\", { nativeOn: { \"click\": function($event) {\n $event.stopPropagation();\n $event.preventDefault();\n return _vm.hideDetails.apply(null, arguments);\n } } }) : _vm._e(), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !_vm.showDetails, expression: \"!showDetails\" }], staticClass: \"app-content-wrapper__list\" }, [_vm._t(\"list\")], 2), _vm.showDetails ? _vm._t(\"default\") : _vm._e()], 2) : _vm.layout === \"vertical-split\" || _vm.layout === \"horizontal-split\" ? _c(\"div\", { staticClass: \"app-content-wrapper\" }, [_c(\"Splitpanes\", { staticClass: \"default-theme\", class: {\n \"splitpanes--horizontal\": _vm.layout === \"horizontal-split\",\n \"splitpanes--vertical\": _vm.layout === \"vertical-split\"\n }, attrs: { \"horizontal\": _vm.layout === \"horizontal-split\", \"rtl\": _vm.isRtl }, on: { \"resized\": _vm.handlePaneResize } }, [_c(\"Pane\", { staticClass: \"splitpanes__pane-list\", attrs: { \"size\": _vm.listPaneSize || _vm.paneDefaults.list.size, \"min-size\": _vm.paneDefaults.list.min, \"max-size\": _vm.paneDefaults.list.max } }, [_vm._t(\"list\")], 2), _c(\"Pane\", { staticClass: \"splitpanes__pane-details\", attrs: { \"size\": _vm.detailsPaneSize, \"min-size\": _vm.paneDefaults.details.min, \"max-size\": _vm.paneDefaults.details.max } }, [_vm._t(\"default\")], 2)], 1)], 1) : _vm._e()] : _vm._e(), !_vm.$scopedSlots.list ? _vm._t(\"default\") : _vm._e()], 2);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"342489c9\"\n);\nconst NcAppContent = __component__.exports;\nexport {\n NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-DAN0qPID.mjs.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon content-copy-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import './utils/ensureOcFilePath.js'\n\nimport App from './views/App.vue'\nimport Vue from 'vue'\nimport { syncEducAiAppIconFromSettings } from './utils/appIconRuntime.js'\n\nVue.mixin({ methods: { t, n } })\n\nconst VueApp = Vue.extend(App)\nnew VueApp().$mount('#content')\nsyncEducAiAppIconFromSettings()\n"],"names":["urlAlphabet","nanoid","size","id","i","_typeof","obj","config","setSelector","selector","isBrowser","TargetContainer","Vue","vm","h","nodes","el","Portal","_this","disabled","parent","child","targetEl","install","_Vue","options","register","t29","contentSvg","navigationSvg","_sfc_main","NcButton","NcIconSvgWrapper","useIsMobile","isLegacy34","container","t","emit","value","_sfc_render","_vm","_c","$event","_sfc_staticRenderFns","__component__","normalizeComponent","NcContent","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","key","__spreadValues","a","b","prop","__spreadProps","__objRest","source","exclude","target","scriptExports","render2","staticRenderFns2","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","originalRender","context","existing","__vue2_script$1","pane2","event","splitterIndex","totalMinSizes","paneId","rect","clientX","clientY","drag","containerSize","sums","minDrag","maxDrag","dragPercentage","panesToResize","paneBefore","paneAfter","paneBeforeMaxReached","paneAfterMaxReached","vars","total","p","isPane","isSplitter","paneIndex","nextPaneNode","isVeryFirst","elm","node","children","_a","_b","args","index","min","max","pane3","removed","changedPanes","equalSpace","leftToAllocate","ungrowable","unshrinkable","definedSizes","leftToAllocate2","addedPane","removedPane","equalSpaceToAllocate","newPaneSize","allocated","enable","splitter","__vue2_render","__vue2_staticRenderFns","__cssModules$1","__component__$1","__vue2_injectStyles$1","o","splitpanes","render","_h","staticRenderFns","__vue2_script","style","__cssModules","__vue2_injectStyles","pane","ArrowLeft","ArrowRight","once","func","wasCalled","result","realAppName","appName","logger","APP_NAME","realAppVersion","appVersion","useAppName","inject","useLocalizedAppName","apps","loadState","realAppName2","t26","isRtl","isRTL","_sfc_main$1","hide","appNavigationToggle","_sfc_render$1","_sfc_staticRenderFns$1","NcAppContentDetailsToggle","browserStorage","getBuilder","instanceName","getCapabilities","Pane","Splitpanes","entries","part","useSwipe","e","direction","listPaneSize","NcAppContent","IconContentCopy","desc","v","reason","mentionName","mention","textarea","showSuccess","error","showError","timestamp","response","axios","generateUrl","APP_DISPLAY_NAME","room","mode","moderatorRoom","talkUrl","fallback","PublicBotCard","BotDetailModal","BotTalkStartModal","av","bv","rank","bot","PublicBotList","VueApp","App","syncEducAiAppIconFromSettings"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}