HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/domains/files.wb-cloud.nl/public_html/apps/activity/js/activity-app.mjs.map
{"version":3,"file":"activity-app.mjs","sources":["../node_modules/@nextcloud/vue/dist/composables/useIsMobile/index.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcContent-DtM8j8ub.mjs","../src/views/ActivityApp.vue","../node_modules/@nextcloud/vue/dist/chunks/Close-D6ngJ4t9.mjs","../node_modules/splitpanes/dist/splitpanes.es.js","../node_modules/@nextcloud/vue/dist/chunks/NcAppContent-DRhM7Gyz.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronDown-FiGpp0KT.mjs","../node_modules/@nextcloud/vue/dist/chunks/ArrowRight-DRKHUZMH.mjs","../src/components/ActivityGroup.vue","../img/activity-dark.svg?raw","../src/views/ActivityAppFeed.vue","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationList-DX_Yo23V.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationToggle-CFw3W3_o.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigation-BVXVi9JQ.mjs","../node_modules/@nextcloud/vue/dist/chunks/ChevronUp-DPXFp1ss.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcInputConfirmCancel-C1K1gyQA.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationItem-s3GC1n4o.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppNavigationSettings-GeCb9tlR.mjs","../node_modules/vue-material-design-icons/ContentCopy.vue","../src/views/ActivityAppNavigation.vue","../src/routes.ts","../src/app.ts"],"sourcesContent":["import { ref, readonly } from \"vue\";\nconst MOBILE_BREAKPOINT = 1024;\nconst MOBILE_SMALL_BREAKPOINT = MOBILE_BREAKPOINT / 2;\nconst isLessThanBreakpoint = (breakpoint) => document.documentElement.clientWidth < breakpoint;\nconst isMobile = ref(isLessThanBreakpoint(MOBILE_BREAKPOINT));\nconst isSmallMobile = ref(isLessThanBreakpoint(MOBILE_SMALL_BREAKPOINT));\nwindow.addEventListener(\"resize\", () => {\n  isMobile.value = isLessThanBreakpoint(MOBILE_BREAKPOINT);\n  isSmallMobile.value = isLessThanBreakpoint(MOBILE_SMALL_BREAKPOINT);\n}, { passive: true });\nfunction useIsMobile() {\n  return readonly(isMobile);\n}\nfunction useIsSmallMobile() {\n  return readonly(isSmallMobile);\n}\nexport {\n  MOBILE_BREAKPOINT,\n  MOBILE_SMALL_BREAKPOINT,\n  useIsMobile,\n  useIsSmallMobile\n};\n//# sourceMappingURL=index.mjs.map\n","import '../assets/NcContent-cRwic6r5.css';\nimport { emit } from \"@nextcloud/event-bus\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { r as register, z as t29, a as t } from \"./_l10n-Bg-fZ9R0.mjs\";\nimport { N as NcButton } from \"./NcButton-Byg8-ta1.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BOiCKv0b.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, normalizeClass, createBlock, renderSlot, Teleport, createElementVNode, withDirectives, toDisplayString, createVNode, withModifiers, withCtx, createTextVNode, vShow } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t29);\nconst contentSvg = '<!--\\n  - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n  - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM140 44C132.268 44 126 50.268 126 58V292C126 299.732 132.268 306 140 306H372C379.732 306 386 299.732 386 292V58C386 50.268 379.732 44 372 44H140Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst navigationSvg = '<!--\\n  - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n  - SPDX-License-Identifier: AGPL-3.0-or-later\\n-->\\n<svg width=\"395\" height=\"314\" viewBox=\"0 0 395 314\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\\n<rect width=\"395\" height=\"314\" rx=\"11\" fill=\"#439DCD\"/>\\n<rect x=\"13\" y=\"51\" width=\"366\" height=\"248\" rx=\"8\" fill=\"white\"/>\\n<rect x=\"22\" y=\"111\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"127\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"63\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"191\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"143\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"79\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"159\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"95\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<rect x=\"22\" y=\"175\" width=\"92\" height=\"12\" rx=\"6\" fill=\"#DEDEDE\"/>\\n<path d=\"M288 145C277.56 147.8 265.32 149 254 149C242.68 149 230.44 147.8 220 145L218 153C225.44 155 234 156.32 242 157V209H250V185H258V209H266V157C274 156.32 282.56 155 290 153L288 145ZM254 145C258.4 145 262 141.4 262 137C262 132.6 258.4 129 254 129C249.6 129 246 132.6 246 137C246 141.4 249.6 145 254 145Z\" fill=\"#DEDEDE\"/>\\n<path d=\"M43.5358 13C38.6641 13 34.535 16.2415 33.2552 20.6333C32.143 18.3038 29.7327 16.6718 26.9564 16.6718C23.1385 16.6718 20 19.7521 20 23.4993C20 27.2465 23.1385 30.3282 26.9564 30.3282C29.7327 30.3282 32.1429 28.6952 33.2552 26.3653C34.535 30.7575 38.6641 34 43.5358 34C48.3715 34 52.4796 30.8064 53.7921 26.4637C54.9249 28.7407 57.3053 30.3282 60.0421 30.3282C63.8601 30.3282 67 27.2465 67 23.4993C67 19.7521 63.8601 16.6718 60.0421 16.6718C57.3053 16.6718 54.9249 18.2583 53.7921 20.5349C52.4796 16.1926 48.3715 13 43.5358 13ZM43.5358 17.0079C47.2134 17.0079 50.1512 19.8899 50.1512 23.4993C50.1512 27.1087 47.2134 29.9921 43.5358 29.9921C39.8583 29.9921 36.9218 27.1087 36.9218 23.4993C36.9218 19.8899 39.8583 17.0079 43.5358 17.0079ZM26.9564 20.6797C28.5677 20.6797 29.8307 21.9179 29.8307 23.4993C29.8307 25.0807 28.5677 26.3203 26.9564 26.3203C25.3452 26.3203 24.0836 25.0807 24.0836 23.4993C24.0836 21.9179 25.3452 20.6797 26.9564 20.6797ZM60.0421 20.6797C61.6534 20.6797 62.9164 21.9179 62.9164 23.4993C62.9164 25.0807 61.6534 26.3203 60.0421 26.3203C58.4309 26.3203 57.1693 25.0807 57.1693 23.4993C57.1693 21.9179 58.4309 20.6797 60.0421 20.6797Z\" fill=\"white\"/>\\n<rect x=\"79\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"99\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"119\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"139\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"159\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<rect x=\"179\" y=\"20\" width=\"8\" height=\"8\" rx=\"4\" fill=\"white\"/>\\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 0C5.37258 0 0 5.37259 0 12V302C0 308.627 5.37259 314 12 314H383C389.627 314 395 308.627 395 302V12C395 5.37258 389.627 0 383 0H12ZM112 44C119.732 44 126 50.268 126 58V292C126 299.732 119.732 306 112 306H20C12.268 306 6 299.732 6 292V58C6 50.268 12.268 44 20 44H112Z\" fill=\"black\" fill-opacity=\"0.35\"/>\\n</svg>\\n';\nconst _sfc_main = {\n  name: \"NcContent\",\n  components: {\n    NcButton,\n    NcIconSvgWrapper\n  },\n  provide() {\n    return {\n      \"NcContent:setHasAppNavigation\": this.setAppNavigation,\n      \"NcContent:selector\": \"#content-vue\"\n    };\n  },\n  props: {\n    appName: {\n      type: String,\n      required: true\n    }\n  },\n  setup() {\n    const isMobile = useIsMobile();\n    return {\n      isMobile\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};\nconst _hoisted_1 = { class: \"vue-skip-actions__container\" };\nconst _hoisted_2 = { class: \"vue-skip-actions__headline\" };\nconst _hoisted_3 = { class: \"vue-skip-actions__buttons\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_NcButton = resolveComponent(\"NcButton\");\n  const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n  return openBlock(), createElementBlock(\"div\", {\n    id: \"content-vue\",\n    class: normalizeClass([\"content\", `app-${$props.appName.toLowerCase()}`])\n  }, [\n    (openBlock(), createBlock(Teleport, { to: \"#skip-actions\" }, [\n      createElementVNode(\"div\", _hoisted_1, [\n        createElementVNode(\"div\", _hoisted_2, toDisplayString($options.t(\"Keyboard navigation help\")), 1),\n        createElementVNode(\"div\", _hoisted_3, [\n          withDirectives(createVNode(_component_NcButton, {\n            href: \"#app-navigation-vue\",\n            variant: \"tertiary\",\n            onClick: withModifiers($options.openAppNavigation, [\"prevent\"]),\n            onFocusin: _cache[0] || (_cache[0] = ($event) => $data.currentFocus = \"navigation\"),\n            onMouseover: _cache[1] || (_cache[1] = ($event) => $data.currentFocus = \"navigation\")\n          }, {\n            default: withCtx(() => [\n              createTextVNode(toDisplayString($options.t(\"Skip to app navigation\")), 1)\n            ]),\n            _: 1\n          }, 8, [\"onClick\"]), [\n            [vShow, $data.hasAppNavigation]\n          ]),\n          createVNode(_component_NcButton, {\n            href: \"#app-content-vue\",\n            variant: \"tertiary\",\n            onFocusin: _cache[2] || (_cache[2] = ($event) => $data.currentFocus = \"content\"),\n            onMouseover: _cache[3] || (_cache[3] = ($event) => $data.currentFocus = \"content\")\n          }, {\n            default: withCtx(() => [\n              createTextVNode(toDisplayString($options.t(\"Skip to main content\")), 1)\n            ]),\n            _: 1\n          })\n        ]),\n        withDirectives(createVNode(_component_NcIconSvgWrapper, {\n          class: \"vue-skip-actions__image\",\n          svg: $options.currentImage,\n          size: \"auto\"\n        }, null, 8, [\"svg\"]), [\n          [vShow, !$setup.isMobile]\n        ])\n      ])\n    ])),\n    renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n  ], 2);\n}\nconst NcContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-50a8547c\"]]);\nexport {\n  NcContent as N\n};\n//# sourceMappingURL=NcContent-DtM8j8ub.mjs.map\n","<!--\n  - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcContent app-name=\"activity\">\n\t\t<router-view name=\"navigation\" />\n\t\t<router-view />\n\t</NcContent>\n</template>\n\n<script setup lang=\"ts\">\nimport NcContent from '@nextcloud/vue/components/NcContent'\n</script>\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n  name: \"CloseIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" };\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 close-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, [\n        $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2))\n  ], 16, _hoisted_1);\n}\nconst IconClose = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n  IconClose as I\n};\n//# sourceMappingURL=Close-D6ngJ4t9.mjs.map\n","import { useSlots as ce, ref as k, computed as z, watch as B, onMounted as G, onBeforeUnmount as X, provide as g, createBlock as ve, openBlock as Y, resolveDynamicComponent as me, nextTick as T, h as fe, inject as w, getCurrentInstance as de, createElementBlock as pe, normalizeStyle as ze, unref as he, renderSlot as xe } from \"vue\";\nconst Pe = {\n  __name: \"splitpanes\",\n  props: {\n    horizontal: { type: Boolean, default: !1 },\n    pushOtherPanes: { type: Boolean, default: !0 },\n    maximizePanes: { type: Boolean, default: !0 },\n    // Maximize pane on splitter double click/tap.\n    rtl: { type: Boolean, default: !1 },\n    // Right to left direction.\n    firstSplitter: { type: Boolean, default: !1 }\n  },\n  emits: [\n    \"ready\",\n    \"resize\",\n    \"resized\",\n    \"pane-click\",\n    \"pane-maximize\",\n    \"pane-add\",\n    \"pane-remove\",\n    \"splitter-click\",\n    \"splitter-dblclick\"\n  ],\n  setup(D, { emit: h }) {\n    const y = h, u = D, E = ce(), l = k([]), M = z(() => l.value.reduce((e, n) => (e[~~n.id] = n) && e, {})), m = z(() => l.value.length), x = k(null), S = k(!1), c = k({\n      mouseDown: !1,\n      dragging: !1,\n      activeSplitter: null,\n      cursorOffset: 0\n      // Cursor offset within the splitter.\n    }), f = k({\n      // Used to detect double click on touch devices.\n      splitter: null,\n      timeoutId: null\n    }), _ = z(() => ({\n      [`splitpanes splitpanes--${u.horizontal ? \"horizontal\" : \"vertical\"}`]: !0,\n      \"splitpanes--dragging\": c.value.dragging\n    })), R = () => {\n      document.addEventListener(\"mousemove\", r, { passive: !1 }), document.addEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.addEventListener(\"touchmove\", r, { passive: !1 }), document.addEventListener(\"touchend\", P));\n    }, O = () => {\n      document.removeEventListener(\"mousemove\", r, { passive: !1 }), document.removeEventListener(\"mouseup\", P), \"ontouchstart\" in window && (document.removeEventListener(\"touchmove\", r, { passive: !1 }), document.removeEventListener(\"touchend\", P));\n    }, b = (e, n) => {\n      const t = e.target.closest(\".splitpanes__splitter\");\n      if (t) {\n        const { left: i, top: a } = t.getBoundingClientRect(), { clientX: s, clientY: o } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n        c.value.cursorOffset = u.horizontal ? o - a : s - i;\n      }\n      R(), c.value.mouseDown = !0, c.value.activeSplitter = n;\n    }, r = (e) => {\n      c.value.mouseDown && (e.preventDefault(), c.value.dragging = !0, requestAnimationFrame(() => {\n        K(I(e)), d(\"resize\", { event: e }, !0);\n      }));\n    }, P = (e) => {\n      c.value.dragging && (window.getSelection().removeAllRanges(), d(\"resized\", { event: e }, !0)), c.value.mouseDown = !1, c.value.activeSplitter = null, setTimeout(() => {\n        c.value.dragging = !1, O();\n      }, 100);\n    }, A = (e, n) => {\n      \"ontouchstart\" in window && (e.preventDefault(), f.value.splitter === n ? (clearTimeout(f.value.timeoutId), f.value.timeoutId = null, U(e, n), f.value.splitter = null) : (f.value.splitter = n, f.value.timeoutId = setTimeout(() => f.value.splitter = null, 500))), c.value.dragging || d(\"splitter-click\", { event: e, index: n }, !0);\n    }, U = (e, n) => {\n      if (d(\"splitter-dblclick\", { event: e, index: n }, !0), u.maximizePanes) {\n        let t = 0;\n        l.value = l.value.map((i, a) => (i.size = a === n ? i.max : i.min, a !== n && (t += i.min), i)), l.value[n].size -= t, d(\"pane-maximize\", { event: e, index: n, pane: l.value[n] }), d(\"resized\", { event: e, index: n }, !0);\n      }\n    }, W = (e, n) => {\n      d(\"pane-click\", {\n        event: e,\n        index: M.value[n].index,\n        pane: M.value[n]\n      });\n    }, I = (e) => {\n      const n = x.value.getBoundingClientRect(), { clientX: t, clientY: i } = \"ontouchstart\" in window && e.touches ? e.touches[0] : e;\n      return {\n        x: t - (u.horizontal ? 0 : c.value.cursorOffset) - n.left,\n        y: i - (u.horizontal ? c.value.cursorOffset : 0) - n.top\n      };\n    }, J = (e) => {\n      e = e[u.horizontal ? \"y\" : \"x\"];\n      const n = x.value[u.horizontal ? \"clientHeight\" : \"clientWidth\"];\n      return u.rtl && !u.horizontal && (e = n - e), e * 100 / n;\n    }, K = (e) => {\n      const n = c.value.activeSplitter;\n      let t = {\n        prevPanesSize: $(n),\n        nextPanesSize: N(n),\n        prevReachedMinPanes: 0,\n        nextReachedMinPanes: 0\n      };\n      const i = 0 + (u.pushOtherPanes ? 0 : t.prevPanesSize), a = 100 - (u.pushOtherPanes ? 0 : t.nextPanesSize), s = Math.max(Math.min(J(e), a), i);\n      let o = [n, n + 1], v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n      const H = v.max < 100 && s >= v.max + t.prevPanesSize, ue = p.max < 100 && s <= 100 - (p.max + N(n + 1));\n      if (H || ue) {\n        H ? (v.size = v.max, p.size = Math.max(100 - v.max - t.prevPanesSize - t.nextPanesSize, 0)) : (v.size = Math.max(100 - p.max - t.prevPanesSize - N(n + 1), 0), p.size = p.max);\n        return;\n      }\n      if (u.pushOtherPanes) {\n        const j = Q(t, s);\n        if (!j) return;\n        ({ sums: t, panesToResize: o } = j), v = l.value[o[0]] || null, p = l.value[o[1]] || null;\n      }\n      v !== null && (v.size = Math.min(Math.max(s - t.prevPanesSize - t.prevReachedMinPanes, v.min), v.max)), p !== null && (p.size = Math.min(Math.max(100 - s - t.nextPanesSize - t.nextReachedMinPanes, p.min), p.max));\n    }, Q = (e, n) => {\n      const t = c.value.activeSplitter, i = [t, t + 1];\n      return n < e.prevPanesSize + l.value[i[0]].min && (i[0] = V(t).index, e.prevReachedMinPanes = 0, i[0] < t && l.value.forEach((a, s) => {\n        s > i[0] && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n      }), e.prevPanesSize = $(i[0]), i[0] === void 0) ? (e.prevReachedMinPanes = 0, l.value[0].size = l.value[0].min, l.value.forEach((a, s) => {\n        s > 0 && s <= t && (a.size = a.min, e.prevReachedMinPanes += a.min);\n      }), l.value[i[1]].size = 100 - e.prevReachedMinPanes - l.value[0].min - e.prevPanesSize - e.nextPanesSize, null) : n > 100 - e.nextPanesSize - l.value[i[1]].min && (i[1] = Z(t).index, e.nextReachedMinPanes = 0, i[1] > t + 1 && l.value.forEach((a, s) => {\n        s > t && s < i[1] && (a.size = a.min, e.nextReachedMinPanes += a.min);\n      }), e.nextPanesSize = N(i[1] - 1), i[1] === void 0) ? (e.nextReachedMinPanes = 0, l.value.forEach((a, s) => {\n        s < m.value - 1 && s >= t + 1 && (a.size = a.min, e.nextReachedMinPanes += a.min);\n      }), l.value[i[0]].size = 100 - e.prevPanesSize - N(i[0] - 1), null) : { sums: e, panesToResize: i };\n    }, $ = (e) => l.value.reduce((n, t, i) => n + (i < e ? t.size : 0), 0), N = (e) => l.value.reduce((n, t, i) => n + (i > e + 1 ? t.size : 0), 0), V = (e) => [...l.value].reverse().find((t) => t.index < e && t.size > t.min) || {}, Z = (e) => l.value.find((t) => t.index > e + 1 && t.size > t.min) || {}, ee = () => {\n      var n;\n      const e = Array.from(((n = x.value) == null ? void 0 : n.children) || []);\n      for (const t of e) {\n        const i = t.classList.contains(\"splitpanes__pane\"), a = t.classList.contains(\"splitpanes__splitter\");\n        !i && !a && (t.remove(), console.warn(\"Splitpanes: Only <pane> elements are allowed at the root of <splitpanes>. One of your DOM nodes was removed.\"));\n      }\n    }, F = (e, n, t = !1) => {\n      const i = e - 1, a = document.createElement(\"div\");\n      a.classList.add(\"splitpanes__splitter\"), t || (a.onmousedown = (s) => b(s, i), typeof window < \"u\" && \"ontouchstart\" in window && (a.ontouchstart = (s) => b(s, i)), a.onclick = (s) => A(s, i + 1)), a.ondblclick = (s) => U(s, i + 1), n.parentNode.insertBefore(a, n);\n    }, ne = (e) => {\n      e.onmousedown = void 0, e.onclick = void 0, e.ondblclick = void 0, e.remove();\n    }, C = () => {\n      var t;\n      const e = Array.from(((t = x.value) == null ? void 0 : t.children) || []);\n      for (const i of e)\n        i.className.includes(\"splitpanes__splitter\") && ne(i);\n      let n = 0;\n      for (const i of e)\n        i.className.includes(\"splitpanes__pane\") && (!n && u.firstSplitter ? F(n, i, !0) : n && F(n, i), n++);\n    }, ie = ({ uid: e, ...n }) => {\n      const t = M.value[e];\n      for (const [i, a] of Object.entries(n)) t[i] = a;\n    }, te = (e) => {\n      var t;\n      let n = -1;\n      Array.from(((t = x.value) == null ? void 0 : t.children) || []).some((i) => (i.className.includes(\"splitpanes__pane\") && n++, i.isSameNode(e.el))), l.value.splice(n, 0, { ...e, index: n }), l.value.forEach((i, a) => i.index = a), S.value && T(() => {\n        C(), L({ addedPane: l.value[n] }), d(\"pane-add\", { pane: l.value[n] });\n      });\n    }, ae = (e) => {\n      const n = l.value.findIndex((i) => i.id === e);\n      l.value[n].el = null;\n      const t = l.value.splice(n, 1)[0];\n      l.value.forEach((i, a) => i.index = a), T(() => {\n        C(), d(\"pane-remove\", { pane: t }), L({ removedPane: { ...t } });\n      });\n    }, L = (e = {}) => {\n      !e.addedPane && !e.removedPane ? le() : l.value.some((n) => n.givenSize !== null || n.min || n.max < 100) ? oe(e) : se(), S.value && d(\"resized\");\n    }, se = () => {\n      const e = 100 / m.value;\n      let n = 0;\n      const t = [], i = [];\n      for (const a of l.value)\n        a.size = Math.max(Math.min(e, a.max), a.min), n -= a.size, a.size >= a.max && t.push(a.id), a.size <= a.min && i.push(a.id);\n      n > 0.1 && q(n, t, i);\n    }, le = () => {\n      let e = 100;\n      const n = [], t = [];\n      let i = 0;\n      for (const s of l.value)\n        e -= s.size, s.givenSize !== null && i++, s.size >= s.max && n.push(s.id), s.size <= s.min && t.push(s.id);\n      let a = 100;\n      if (e > 0.1) {\n        for (const s of l.value)\n          s.givenSize === null && (s.size = Math.max(Math.min(e / (m.value - i), s.max), s.min)), a -= s.size;\n        a > 0.1 && q(a, n, t);\n      }\n    }, oe = ({ addedPane: e, removedPane: n } = {}) => {\n      let t = 100 / m.value, i = 0;\n      const a = [], s = [];\n      ((e == null ? void 0 : e.givenSize) ?? null) !== null && (t = (100 - e.givenSize) / (m.value - 1));\n      for (const o of l.value)\n        i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n      if (!(Math.abs(i) < 0.1)) {\n        for (const o of l.value)\n          (e == null ? void 0 : e.givenSize) !== null && (e == null ? void 0 : e.id) === o.id || (o.size = Math.max(Math.min(t, o.max), o.min)), i -= o.size, o.size >= o.max && a.push(o.id), o.size <= o.min && s.push(o.id);\n        i > 0.1 && q(i, a, s);\n      }\n    }, q = (e, n, t) => {\n      let i;\n      e > 0 ? i = e / (m.value - n.length) : i = e / (m.value - t.length), l.value.forEach((a, s) => {\n        if (e > 0 && !n.includes(a.id)) {\n          const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n          e -= v, a.size = o;\n        } else if (!t.includes(a.id)) {\n          const o = Math.max(Math.min(a.size + i, a.max), a.min), v = o - a.size;\n          e -= v, a.size = o;\n        }\n      }), Math.abs(e) > 0.1 && T(() => {\n        S.value && console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n      });\n    }, d = (e, n = void 0, t = !1) => {\n      const i = (n == null ? void 0 : n.index) ?? c.value.activeSplitter ?? null;\n      y(e, {\n        ...n,\n        ...i !== null && { index: i },\n        ...t && i !== null && {\n          prevPane: l.value[i - (u.firstSplitter ? 1 : 0)],\n          nextPane: l.value[i + (u.firstSplitter ? 0 : 1)]\n        },\n        panes: l.value.map((a) => ({ min: a.min, max: a.max, size: a.size }))\n      });\n    };\n    B(() => u.firstSplitter, () => C()), G(() => {\n      ee(), C(), L(), d(\"ready\"), S.value = !0;\n    }), X(() => S.value = !1);\n    const re = () => {\n      var e;\n      return fe(\n        \"div\",\n        { ref: x, class: _.value },\n        (e = E.default) == null ? void 0 : e.call(E)\n      );\n    };\n    return g(\"panes\", l), g(\"indexedPanes\", M), g(\"horizontal\", z(() => u.horizontal)), g(\"requestUpdate\", ie), g(\"onPaneAdd\", te), g(\"onPaneRemove\", ae), g(\"onPaneClick\", W), (e, n) => (Y(), ve(me(re)));\n  }\n}, ge = {\n  __name: \"pane\",\n  props: {\n    size: { type: [Number, String] },\n    minSize: { type: [Number, String], default: 0 },\n    maxSize: { type: [Number, String], default: 100 }\n  },\n  setup(D) {\n    var b;\n    const h = D, y = w(\"requestUpdate\"), u = w(\"onPaneAdd\"), E = w(\"horizontal\"), l = w(\"onPaneRemove\"), M = w(\"onPaneClick\"), m = (b = de()) == null ? void 0 : b.uid, x = w(\"indexedPanes\"), S = z(() => x.value[m]), c = k(null), f = z(() => {\n      const r = isNaN(h.size) || h.size === void 0 ? 0 : parseFloat(h.size);\n      return Math.max(Math.min(r, R.value), _.value);\n    }), _ = z(() => {\n      const r = parseFloat(h.minSize);\n      return isNaN(r) ? 0 : r;\n    }), R = z(() => {\n      const r = parseFloat(h.maxSize);\n      return isNaN(r) ? 100 : r;\n    }), O = z(() => {\n      var r;\n      return `${E.value ? \"height\" : \"width\"}: ${(r = S.value) == null ? void 0 : r.size}%`;\n    });\n    return B(() => f.value, (r) => y({ uid: m, size: r })), B(() => _.value, (r) => y({ uid: m, min: r })), B(() => R.value, (r) => y({ uid: m, max: r })), G(() => {\n      u({\n        id: m,\n        el: c.value,\n        min: _.value,\n        max: R.value,\n        // The given size (useful to know the user intention).\n        givenSize: h.size === void 0 ? null : f.value,\n        size: f.value\n        // The computed current size at any time.\n      });\n    }), X(() => l(m)), (r, P) => (Y(), pe(\"div\", {\n      ref_key: \"paneEl\",\n      ref: c,\n      class: \"splitpanes__pane\",\n      onClick: P[0] || (P[0] = (A) => he(M)(A, r._.uid)),\n      style: ze(O.value)\n    }, [\n      xe(r.$slots, \"default\")\n    ], 4));\n  }\n};\nexport {\n  ge as Pane,\n  Pe as Splitpanes\n};\n","import '../assets/NcAppContent-Di-SbMxO.css';\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { emit } from \"@nextcloud/event-bus\";\nimport { loadState } from \"@nextcloud/initial-state\";\nimport { useSwipe } from \"@vueuse/core\";\nimport { Splitpanes, Pane } from \"splitpanes\";\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { i as isRtl } from \"./rtl-v0UOPAM7.mjs\";\nimport { defineComponent, watch, onBeforeUnmount, createBlock, openBlock, unref, normalizeClass, withCtx, createVNode, resolveComponent, createElementBlock, createCommentVNode, renderSlot, toDisplayString, Fragment, withDirectives, withModifiers, createElementVNode, vShow } from \"vue\";\nimport { b as mdiArrowRight } from \"./mdi-CR-3gwdl.mjs\";\nimport { N as NcButton } from \"./NcButton-Byg8-ta1.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BOiCKv0b.mjs\";\nimport { r as register, a as t } from \"./_l10n-Bg-fZ9R0.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport \"splitpanes/dist/splitpanes.css\";\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;\nregister();\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n  __name: \"NcAppDetailsToggle\",\n  setup(__props) {\n    const isMobile = useIsMobile();\n    watch(isMobile, toggleAppNavigationButton, { immediate: true });\n    onBeforeUnmount(() => {\n      if (isMobile.value) {\n        toggleAppNavigationButton(false);\n      }\n    });\n    function toggleAppNavigationButton(hide = true) {\n      const appNavigationToggle = document.querySelector(\".app-navigation .app-navigation-toggle\");\n      if (appNavigationToggle) {\n        appNavigationToggle.style.display = hide ? \"none\" : \"\";\n        if (hide === true) {\n          emit(\"toggle-navigation\", { open: false });\n        }\n      }\n    }\n    return (_ctx, _cache) => {\n      return openBlock(), createBlock(unref(NcButton), {\n        \"aria-label\": unref(t)(\"Go back to the list\"),\n        class: normalizeClass([\"app-details-toggle\", { \"app-details-toggle--mobile\": unref(isMobile) }]),\n        title: unref(t)(\"Go back to the list\"),\n        variant: \"tertiary\"\n      }, {\n        icon: withCtx(() => [\n          createVNode(unref(NcIconSvgWrapper), {\n            directional: \"\",\n            path: unref(mdiArrowRight)\n          }, null, 8, [\"path\"])\n        ]),\n        _: 1\n      }, 8, [\"aria-label\", \"class\", \"title\"]);\n    };\n  }\n});\nconst NcAppDetailsToggle = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"__scopeId\", \"data-v-fd81a9f4\"]]);\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst { name: productName } = loadState(\"theming\", \"data\", { name: \"Nextcloud\" });\nconst activeApp = loadState(\"core\", \"active-app\", APP_NAME);\nconst localizedAppName = loadState(\"core\", \"apps\", {})[activeApp]?.name ?? APP_NAME;\nconst _sfc_main = {\n  name: \"NcAppContent\",\n  components: {\n    NcAppDetailsToggle,\n    Pane,\n    Splitpanes\n  },\n  props: {\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     * Allows you to set the default height of the resizable list in % on horizontal-split\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     * Allows you to set the minimum height of the list column in % 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     * Allows you to set the maximum height of the list column in % 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      default: true\n    },\n    /**\n     * Specify the `<h1>` page heading\n     */\n    pageHeading: {\n      type: String,\n      default: null\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     * Allow setting the page's `<title>`\n     *\n     * If a page heading is set it defaults to `{pageHeading} - {appName} - {productName}` e.g. `Favorites - Files - Nextcloud`.\n     * When the page heading and the app name is the same only one is used, e.g. `Files - Files - Nextcloud` is shown as `Files - Nextcloud`.\n     * When setting the prop then the following format will be used: `{pageTitle} - {pageHeading || appName} - {productName}`\n     */\n    pageTitle: {\n      type: String,\n      default: null\n    }\n  },\n  emits: [\n    \"update:showDetails\",\n    \"resize:list\"\n  ],\n  setup() {\n    return {\n      isMobile: useIsMobile(),\n      isRtl\n    };\n  },\n  data() {\n    return {\n      contentHeight: 0,\n      hasList: false,\n      hasContent: false,\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-${APP_NAME}`;\n      } catch (e) {\n        console.info(\"[INFO] AppContent:\", \"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        entries.add(this.pageTitle);\n      }\n      if (this.pageHeading) {\n        entries.add(this.pageHeading);\n      }\n      if (entries.size === 0) {\n        return null;\n      }\n      if (entries.size < 2) {\n        entries.add(localizedAppName);\n      }\n      entries.add(productName);\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  },\n  updated() {\n    this.checkSlots();\n  },\n  mounted() {\n    if (!this.disableSwipe) {\n      this.swiping = useSwipe(this.$el, {\n        onSwipeEnd: this.handleSwipe\n      });\n    }\n    this.checkSlots();\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.panes[0].size, 10);\n      browserStorage.setItem(this.paneConfigID, JSON.stringify(listPaneSize));\n      this.listPaneSize = listPaneSize;\n      this.$emit(\"resize:list\", { size: listPaneSize });\n      console.debug(\"AppContent pane config\", listPaneSize);\n    },\n    // $slots is not reactive, we need to update this manually\n    checkSlots() {\n      this.hasList = !!this.$slots.list;\n      this.hasContent = !!this.$slots.default;\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        console.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};\nconst _hoisted_1 = {\n  key: 0,\n  class: \"hidden-visually\"\n};\nconst _hoisted_2 = {\n  key: 1,\n  class: \"app-content-wrapper\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_NcAppDetailsToggle = resolveComponent(\"NcAppDetailsToggle\");\n  const _component_Pane = resolveComponent(\"Pane\");\n  const _component_Splitpanes = resolveComponent(\"Splitpanes\");\n  return openBlock(), createElementBlock(\"main\", {\n    id: \"app-content-vue\",\n    class: normalizeClass([\"app-content no-snapper\", { \"app-content--has-list\": $data.hasList }])\n  }, [\n    $props.pageHeading ? (openBlock(), createElementBlock(\"h1\", _hoisted_1, toDisplayString($props.pageHeading), 1)) : createCommentVNode(\"\", true),\n    $data.hasList ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n      $setup.isMobile || $props.layout === \"no-split\" ? (openBlock(), createElementBlock(\"div\", {\n        key: 0,\n        class: normalizeClass([\"app-content-wrapper app-content-wrapper--no-split\", {\n          \"app-content-wrapper--show-details\": $props.showDetails,\n          \"app-content-wrapper--show-list\": !$props.showDetails,\n          \"app-content-wrapper--mobile\": $setup.isMobile\n        }])\n      }, [\n        $props.showDetails ? (openBlock(), createBlock(_component_NcAppDetailsToggle, {\n          key: 0,\n          onClick: withModifiers($options.hideDetails, [\"stop\", \"prevent\"])\n        }, null, 8, [\"onClick\"])) : createCommentVNode(\"\", true),\n        withDirectives(createElementVNode(\"div\", null, [\n          renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n        ], 512), [\n          [vShow, !$props.showDetails]\n        ]),\n        $props.showDetails ? renderSlot(_ctx.$slots, \"default\", { key: 1 }, void 0, true) : createCommentVNode(\"\", true)\n      ], 2)) : $props.layout === \"vertical-split\" || $props.layout === \"horizontal-split\" ? (openBlock(), createElementBlock(\"div\", _hoisted_2, [\n        createVNode(_component_Splitpanes, {\n          horizontal: $props.layout === \"horizontal-split\",\n          class: normalizeClass([\"default-theme\", {\n            \"splitpanes--horizontal\": $props.layout === \"horizontal-split\",\n            \"splitpanes--vertical\": $props.layout === \"vertical-split\"\n          }]),\n          rtl: $setup.isRtl,\n          onResized: $options.handlePaneResize\n        }, {\n          default: withCtx(() => [\n            createVNode(_component_Pane, {\n              class: \"splitpanes__pane-list\",\n              size: $data.listPaneSize || $options.paneDefaults.list.size,\n              \"min-size\": $options.paneDefaults.list.min,\n              \"max-size\": $options.paneDefaults.list.max\n            }, {\n              default: withCtx(() => [\n                renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n              ]),\n              _: 3\n            }, 8, [\"size\", \"min-size\", \"max-size\"]),\n            createVNode(_component_Pane, {\n              class: \"splitpanes__pane-details\",\n              size: $options.detailsPaneSize,\n              \"min-size\": $options.paneDefaults.details.min,\n              \"max-size\": $options.paneDefaults.details.max\n            }, {\n              default: withCtx(() => [\n                renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n              ]),\n              _: 3\n            }, 8, [\"size\", \"min-size\", \"max-size\"])\n          ]),\n          _: 3\n        }, 8, [\"horizontal\", \"class\", \"rtl\", \"onResized\"])\n      ])) : createCommentVNode(\"\", true)\n    ], 64)) : createCommentVNode(\"\", true),\n    !$data.hasList ? renderSlot(_ctx.$slots, \"default\", { key: 2 }, void 0, true) : createCommentVNode(\"\", true)\n  ], 2);\n}\nconst NcAppContent = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3a1a29de\"]]);\nexport {\n  NcAppContent as N\n};\n//# sourceMappingURL=NcAppContent-DRhM7Gyz.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n  name: \"ChevronDownIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z\" };\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 chevron-down-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, [\n        $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2))\n  ], 16, _hoisted_1);\n}\nconst ChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n  ChevronDown as C\n};\n//# sourceMappingURL=ChevronDown-FiGpp0KT.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.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};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" };\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 arrow-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, [\n        $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2))\n  ], 16, _hoisted_1);\n}\nconst IconArrowRight = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n  IconArrowRight as I\n};\n//# sourceMappingURL=ArrowRight-DRKHUZMH.mjs.map\n","<!--\n  - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<h2 class=\"activity-group__heading\" :title=\"fullDate\">\n\t\t{{ dateText }}\n\t</h2>\n\t<ul>\n\t\t<ActivityComponent\n\t\t\tv-for=\"activity in activities\"\n\t\t\t:key=\"activity.id\"\n\t\t\t:activity=\"activity\"\n\t\t\t:show-previews=\"true\" />\n\t</ul>\n</template>\n\n<script setup lang=\"ts\">\nimport type ActivityModel from '../models/ActivityModel.ts'\n\nimport { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { computed } from 'vue'\nimport ActivityComponent from './ActivityComponent.vue'\n\nconst props = defineProps<{\n\tactivities: ActivityModel[]\n}>()\n\n/**\n * Title to show for the date either Today, Yesterday or the full date\n */\nconst dateText = computed(() => {\n\tconst today = moment()\n\tconst yesterday = moment().subtract(1, 'day')\n\tconst first = moment(props.activities[0].datetime)\n\n\tif (first.isSame(today, 'day')) {\n\t\treturn t('activity', 'Today')\n\t} else if (first.isSame(yesterday, 'day')) {\n\t\treturn t('activity', 'Yesterday')\n\t}\n\treturn first.format('LL')\n})\n\n/**\n * If the heading is yesterday or today, show the full date as title, otherwise no title is shown\n */\nconst fullDate = computed(() => {\n\tconst formatted = moment(props.activities[0].datetime).format('LL')\n\treturn formatted !== dateText.value ? formatted : undefined\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-group {\n\t&__heading {\n\t\tline-height: 1.5;\n\t\tmargin-block: 30px 12px;\n\n\t\t&:first-of-type {\n\t\t\t// Already padding from h1\n\t\t\tmargin-block-start: 0;\n\t\t}\n\t}\n}\n</style>\n","export default \"<svg viewBox=\\\"0 0 32 32\\\" height=\\\"32\\\" width=\\\"32\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xml:space=\\\"preserve\\\" style=\\\"fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2\\\"><path d=\\\"m8 22 1-7H4l9-13h2l-1 8h6L10 22H8Z\\\" style=\\\"fill-rule:nonzero\\\" transform=\\\"matrix(1.5 0 0 1.5 -2 -2)\\\"/></svg>\"","<!--\n  - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcAppContent class=\"activity-app\">\n\t\t<h1 class=\"activity-app__heading\">\n\t\t\t{{ headingTitle }}\n\t\t</h1>\n\t\t<NcEmptyContent\n\t\t\tv-if=\"hasMoreActivites && allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'Loading activities')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<NcEmptyContent\n\t\t\tv-else-if=\"allActivities.length === 0\"\n\t\t\tclass=\"activity-app__empty-content\"\n\t\t\t:name=\"t('activity', 'No activity yet')\"\n\t\t\t:description=\"t('activity', 'This stream will show events like additions, changes & shares')\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"appIconSVG\" :size=\"36\" />\n\t\t\t</template>\n\t\t</NcEmptyContent>\n\t\t<div ref=\"container\" class=\"activity-app__container\">\n\t\t\t<ActivityGroup v-for=\"activities, date of groupedActivities\" :key=\"date\" :activities=\"activities\" />\n\t\t\t<!-- Only show if not showing the inital empty content for loading -->\n\t\t\t<NcLoadingIcon\n\t\t\t\tv-if=\"hasMoreActivites && allActivities.length > 0\"\n\t\t\t\t:name=\"t('activity', 'Loading more activities')\"\n\t\t\t\t:size=\"64\"\n\t\t\t\tclass=\"activity-app__loading-indicator\" />\n\t\t\t<div\n\t\t\t\tv-else-if=\"!hasMoreActivites && allActivities.length > 0\"\n\t\t\t\tclass=\"activity-app__loading-indicator\">\n\t\t\t\t{{ t('activity', 'No more activities.') }}\n\t\t\t</div>\n\t\t</div>\n\t</NcAppContent>\n</template>\n\n<script setup lang=\"ts\">\nimport ncAxios from '@nextcloud/axios'\nimport { showError } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { useInfiniteScroll } from '@vueuse/core'\nimport axios from 'axios'\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport { useRoute } from 'vue-router'\nimport NcAppContent from '@nextcloud/vue/components/NcAppContent'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcIconSvgWrapper from '@nextcloud/vue/components/NcIconSvgWrapper'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport ActivityGroup from '../components/ActivityGroup.vue'\nimport appIconSVG from '../../img/activity-dark.svg?raw'\nimport ActivityModel from '../models/ActivityModel.ts'\nimport logger from '../utils/logger.ts'\n\ninterface INavigationEntry {\n\tid: string\n\ticon?: string\n\tname: string\n\turl: string\n}\n\nconst navigationList = loadState<INavigationEntry[]>(appName, 'navigationList')\n\nconst route = useRoute()\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * The currently active activities filter\n\t */\n\tfilter?: string\n}>(), {\n\t// default to 'all'\n\tfilter: 'all',\n})\n\n/**\n * Whether activities are currently being loaded\n */\nconst loading = ref(false)\n\n/**\n * Whether more activites can be loaded\n */\nconst hasMoreActivites = ref(true)\n\n/**\n * All loaded actvities\n */\nconst allActivities = ref<ActivityModel[]>([])\n\n/**\n * Last loaded activity\n * This is set by the backend in the API result as a header value for pagination\n */\nconst lastActivityLoaded = ref<string>()\n\n/**\n * Container element for the activites\n */\nconst container = ref<HTMLDivElement>()\n\n/**\n * Use infinite scroll for the container and load activities when reaching the bottom\n */\nuseInfiniteScroll(container, async () => {\n\tif (hasMoreActivites.value) {\n\t\tawait loadActivities()\n\t}\n}, {\n\tdistance: 100,\n})\n\n/**\n * Activities grouped by date\n */\nconst groupedActivities = computed(() => {\n\tconst groups = {} as Record<string, ActivityModel[]>\n\tfor (const activity of allActivities.value) {\n\t\tconst date = moment(activity.datetime).format('LL')\n\t\tif (groups[date] === undefined) {\n\t\t\tgroups[date] = [activity]\n\t\t} else {\n\t\t\tgroups[date].push(activity)\n\t\t}\n\t}\n\treturn groups\n})\n\nconst headingTitle = computed(() => {\n\treturn navigationList.find((navigationEl) => navigationEl.id === route.params.filter).name\n})\n\n/**\n * Load activites for current filter or load more if already loaded\n */\nasync function loadActivities() {\n\t// Skip if already loading\n\tif (loading.value) {\n\t\treturn\n\t}\n\n\ttry {\n\t\tconst since = lastActivityLoaded.value ?? '0'\n\t\tloading.value = true\n\t\tconst response = await ncAxios.get(generateOcsUrl('apps/activity/api/v2/activity/{filter}?format=json&previews=true&since={since}', { filter: props.filter, since }))\n\t\tallActivities.value.push(...response.data.ocs.data.map((raw) => new ActivityModel(raw)))\n\t\tlastActivityLoaded.value = response.headers['x-activity-last-given']\n\t\thasMoreActivites.value = true\n\n\t\tnextTick(async () => {\n\t\t\tif (container.value && container.value.clientHeight === container.value.scrollHeight) {\n\t\t\t\t// Container is non-scrollable, thus useInfiniteScroll isn't triggered\n\t\t\t\t// Do it manually to ensure there are no activities to fetch anymore\n\t\t\t\tawait loadActivities()\n\t\t\t}\n\t\t})\n\t} catch (error) {\n\t\t// Skip if no activites are available\n\t\tif (axios.isAxiosError(error) && error.response?.status === 304) {\n\t\t\thasMoreActivites.value = false\n\t\t\treturn\n\t\t}\n\n\t\tlogger.error(error as Error)\n\t\tshowError(t('activity', 'Could not load activities'))\n\t} finally {\n\t\tloading.value = false\n\t}\n}\n\n/**\n * Load activites when mounted\n */\nonMounted(() => {\n\tloadActivities()\n})\n\n/**\n * Reload activities when filter changed\n */\nwatch(props, () => {\n\tallActivities.value = []\n\tlastActivityLoaded.value = undefined\n\tloadActivities()\n})\n</script>\n\n<style scoped lang=\"scss\">\n.activity-app {\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n\n\t&__empty-content {\n\t\theight: 100%;\n\t}\n\n\t&__loading-indicator {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tjustify-self: center;\n\t\tmargin-block: 30px 6px;\n\t\ttext-align: center;\n\t}\n\n\t&__container {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\n\t\theight: 100%;\n\t\twidth: min(100%, 924px);\n\t\tmax-width: 924px;\n\t\tmargin: 0 auto;\n\t\tpadding-inline: 12px;\n\t\toverflow-y: scroll;\n\t}\n\n\t&__heading {\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 44px; // to align height with the app navigation toggle\n\t\t// Align with app navigation toggle\n\t\tmargin-top: 1px;\n\t\tmargin-inline: calc(2 * var(--app-navigation-padding, 8px) + 44px) var(--app-navigation-padding, 8px);\n\t}\n}\n</style>\n","import '../assets/NcAppNavigationList-CLLHyHIn.css';\nimport { createElementBlock, openBlock, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n  name: \"NcAppNavigationList\"\n};\nconst _hoisted_1 = { class: \"app-navigation-list\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  return openBlock(), createElementBlock(\"ul\", _hoisted_1, [\n    renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n  ]);\n}\nconst NcAppNavigationList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-57437e4a\"]]);\nexport {\n  NcAppNavigationList as N\n};\n//# sourceMappingURL=NcAppNavigationList-DX_Yo23V.mjs.map\n","import '../assets/NcAppNavigationToggle-DnTKNSH7.css';\nimport { N as NcButton } from \"./NcButton-Byg8-ta1.mjs\";\nimport { r as register, w as t19, a as t } from \"./_l10n-Bg-fZ9R0.mjs\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createVNode, withCtx, createBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t19);\nconst _sfc_main$2 = {\n  name: \"MenuIcon\",\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$1 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3$1 = { d: \"M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z\" };\nconst _hoisted_4$1 = { 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 menu-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$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2$1))\n  ], 16, _hoisted_1$2);\n}\nconst MenuIcon = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nconst _sfc_main$1 = {\n  name: \"MenuOpenIcon\",\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 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M21,15.61L19.59,17L14.58,12L19.59,7L21,8.39L17.44,12L21,15.61M3,6H16V8H3V6M3,13V11H13V13H3M3,18V16H16V18H3Z\" };\nconst _hoisted_4 = { 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 menu-open-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, [\n        $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2))\n  ], 16, _hoisted_1$1);\n}\nconst MenuOpenIcon = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1]]);\nconst _sfc_main = {\n  name: \"NcAppNavigationToggle\",\n  components: {\n    NcButton,\n    MenuIcon,\n    MenuOpenIcon\n  },\n  props: {\n    /**\n     * Tracks whether the toggle has been clicked or not.\n     * If it has been clicked, switches between the different MenuIcons\n     * and emits a boolean indicating its opened status\n     */\n    open: {\n      type: Boolean,\n      required: true\n    }\n  },\n  emits: [\"update:open\"],\n  computed: {\n    label() {\n      return this.open ? t(\"Close navigation\") : t(\"Open navigation\");\n    }\n  },\n  methods: {\n    /**\n     * Once the toggle has been clicked, emits the toggle status\n     * so parent components can gauge the status of the navigation button\n     */\n    toggleNavigation() {\n      this.$emit(\"update:open\", !this.open);\n    }\n  }\n};\nconst _hoisted_1 = { class: \"app-navigation-toggle-wrapper\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_MenuOpenIcon = resolveComponent(\"MenuOpenIcon\");\n  const _component_MenuIcon = resolveComponent(\"MenuIcon\");\n  const _component_NcButton = resolveComponent(\"NcButton\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n    createVNode(_component_NcButton, {\n      class: \"app-navigation-toggle\",\n      \"aria-controls\": \"app-navigation-vue\",\n      \"aria-expanded\": $props.open ? \"true\" : \"false\",\n      \"aria-keyshortcuts\": _ctx.disableKeyboardShortcuts ? \"\" : \"n\",\n      \"aria-label\": $options.label,\n      title: $options.label,\n      onClick: $options.toggleNavigation\n    }, {\n      icon: withCtx(() => [\n        $props.open ? (openBlock(), createBlock(_component_MenuOpenIcon, {\n          key: 0,\n          size: 20\n        })) : (openBlock(), createBlock(_component_MenuIcon, {\n          key: 1,\n          size: 20\n        }))\n      ]),\n      _: 1\n    }, 8, [\"aria-expanded\", \"aria-keyshortcuts\", \"aria-label\", \"title\", \"onClick\"])\n  ]);\n}\nconst NcAppNavigationToggle = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-e311a67a\"]]);\nexport {\n  NcAppNavigationToggle as N\n};\n//# sourceMappingURL=NcAppNavigationToggle-CFw3W3_o.mjs.map\n","import '../assets/NcAppNavigation-BXItV5BV.css';\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { g as getTrapStack } from \"./focusTrap-DmkaYJTC.mjs\";\nimport { emit, unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { createFocusTrap } from \"focus-trap\";\nimport { N as NcAppNavigationList } from \"./NcAppNavigationList-DX_Yo23V.mjs\";\nimport { N as NcAppNavigationToggle } from \"./NcAppNavigationToggle-CFw3W3_o.mjs\";\nimport { warn, resolveComponent, createElementBlock, openBlock, normalizeClass, createElementVNode, createVNode, withKeys, createBlock, createCommentVNode, renderSlot, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n  name: \"NcAppNavigation\",\n  components: {\n    NcAppNavigationList,\n    NcAppNavigationToggle\n  },\n  // Injected from NcContent\n  inject: {\n    setHasAppNavigation: {\n      default: () => () => warn(\"NcAppNavigation is not mounted inside NcContent, this is probably an error.\"),\n      from: \"NcContent:setHasAppNavigation\"\n    }\n  },\n  props: {\n    /**\n     * The aria label to describe the navigation\n     */\n    ariaLabel: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * aria-labelledby attribute to describe the navigation\n     */\n    ariaLabelledby: {\n      type: String,\n      default: \"\"\n    }\n  },\n  setup() {\n    return {\n      isMobile: useIsMobile()\n    };\n  },\n  data() {\n    return {\n      open: !this.isMobile,\n      focusTrap: null\n    };\n  },\n  watch: {\n    isMobile() {\n      this.open = !this.isMobile;\n      this.toggleFocusTrap();\n    },\n    open() {\n      this.toggleFocusTrap();\n    }\n  },\n  mounted() {\n    this.setHasAppNavigation(true);\n    subscribe(\"toggle-navigation\", this.toggleNavigationByEventBus);\n    emit(\"navigation-toggled\", {\n      open: this.open\n    });\n    this.focusTrap = createFocusTrap(this.$refs.appNavigationContainer, {\n      allowOutsideClick: true,\n      fallbackFocus: this.$refs.appNavigationContainer,\n      trapStack: getTrapStack(),\n      escapeDeactivates: false\n    });\n    this.toggleFocusTrap();\n  },\n  unmounted() {\n    this.setHasAppNavigation(false);\n    unsubscribe(\"toggle-navigation\", this.toggleNavigationByEventBus);\n    this.focusTrap.deactivate();\n  },\n  methods: {\n    /**\n     * Toggle the navigation\n     *\n     * @param {boolean} [state] set the state instead of inverting the current one\n     */\n    toggleNavigation(state) {\n      if (this.open === state) {\n        emit(\"navigation-toggled\", {\n          open: this.open\n        });\n        return;\n      }\n      this.open = typeof state === \"undefined\" ? !this.open : state;\n      const bodyStyles = getComputedStyle(document.body);\n      const animationLength = parseInt(bodyStyles.getPropertyValue(\"--animation-quick\")) || 100;\n      setTimeout(() => {\n        emit(\"navigation-toggled\", {\n          open: this.open\n        });\n      }, 1.5 * animationLength);\n    },\n    toggleNavigationByEventBus({ open }) {\n      this.toggleNavigation(open);\n    },\n    /**\n     * Activate focus trap if it is currently needed, otherwise deactivate\n     */\n    toggleFocusTrap() {\n      if (this.isMobile && this.open) {\n        this.focusTrap.activate();\n      } else {\n        this.focusTrap.deactivate();\n      }\n    },\n    handleEsc() {\n      if (this.isMobile) {\n        this.toggleNavigation(false);\n      }\n    }\n  }\n};\nconst _hoisted_1 = [\"aria-hidden\", \"aria-label\", \"aria-labelledby\", \"inert\"];\nconst _hoisted_2 = { class: \"app-navigation__search\" };\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_NcAppNavigationList = resolveComponent(\"NcAppNavigationList\");\n  const _component_NcAppNavigationToggle = resolveComponent(\"NcAppNavigationToggle\");\n  return openBlock(), createElementBlock(\"div\", {\n    ref: \"appNavigationContainer\",\n    class: normalizeClass([\"app-navigation\", { \"app-navigation--close\": !$data.open }])\n  }, [\n    createElementVNode(\"nav\", {\n      id: \"app-navigation-vue\",\n      \"aria-hidden\": $data.open ? \"false\" : \"true\",\n      \"aria-label\": $props.ariaLabel || void 0,\n      \"aria-labelledby\": $props.ariaLabelledby || void 0,\n      class: \"app-navigation__content\",\n      inert: !$data.open || void 0,\n      onKeydown: _cache[0] || (_cache[0] = withKeys((...args) => $options.handleEsc && $options.handleEsc(...args), [\"esc\"]))\n    }, [\n      createElementVNode(\"div\", _hoisted_2, [\n        renderSlot(_ctx.$slots, \"search\", {}, void 0, true)\n      ]),\n      createElementVNode(\"div\", {\n        class: normalizeClass([\"app-navigation__body\", { \"app-navigation__body--no-list\": !_ctx.$slots.list }])\n      }, [\n        renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n      ], 2),\n      _ctx.$slots.list ? (openBlock(), createBlock(_component_NcAppNavigationList, {\n        key: 0,\n        class: \"app-navigation__list\"\n      }, {\n        default: withCtx(() => [\n          renderSlot(_ctx.$slots, \"list\", {}, void 0, true)\n        ]),\n        _: 3\n      })) : createCommentVNode(\"\", true),\n      renderSlot(_ctx.$slots, \"footer\", {}, void 0, true)\n    ], 40, _hoisted_1),\n    createVNode(_component_NcAppNavigationToggle, {\n      open: $data.open,\n      \"onUpdate:open\": $options.toggleNavigation\n    }, null, 8, [\"open\", \"onUpdate:open\"])\n  ], 2);\n}\nconst NcAppNavigation = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-a249486e\"]]);\nexport {\n  NcAppNavigation as N\n};\n//# sourceMappingURL=NcAppNavigation-BVXVi9JQ.mjs.map\n","import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n  name: \"ChevronUpIcon\",\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 = [\"aria-hidden\", \"aria-label\"];\nconst _hoisted_2 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z\" };\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 chevron-up-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, [\n        $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2))\n  ], 16, _hoisted_1);\n}\nconst ChevronUp = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n  ChevronUp as C\n};\n//# sourceMappingURL=ChevronUp-DPXFp1ss.mjs.map\n","import '../assets/NcInputConfirmCancel-9YyvRYjw.css';\nimport { r as register, l as t13, a as t } from \"./_l10n-Bg-fZ9R0.mjs\";\nimport { I as IconArrowRight } from \"./ArrowRight-DRKHUZMH.mjs\";\nimport { I as IconClose } from \"./Close-D6ngJ4t9.mjs\";\nimport { N as NcButton } from \"./NcButton-Byg8-ta1.mjs\";\nimport { resolveComponent, createElementBlock, openBlock, createElementVNode, withModifiers, withKeys, withDirectives, createVNode, vModelText, withCtx } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nregister(t13);\nconst _sfc_main = {\n  name: \"NcInputConfirmCancel\",\n  components: {\n    IconArrowRight,\n    IconClose,\n    NcButton\n  },\n  props: {\n    /**\n     * If this element is used on a primary element set to true for primary styling.\n     */\n    primary: {\n      default: false,\n      type: Boolean\n    },\n    placeholder: {\n      default: \"\",\n      type: String\n    },\n    modelValue: {\n      default: \"\",\n      type: String\n    }\n  },\n  emits: [\n    \"cancel\",\n    \"confirm\",\n    \"update:modelValue\"\n  ],\n  data() {\n    return {\n      labelConfirm: t(\"Confirm changes\"),\n      labelCancel: t(\"Cancel changes\")\n    };\n  },\n  computed: {\n    valueModel: {\n      get() {\n        return this.modelValue;\n      },\n      set(newValue) {\n        this.$emit(\"update:modelValue\", newValue);\n      }\n    }\n  },\n  methods: {\n    confirm() {\n      this.$emit(\"confirm\");\n    },\n    cancel() {\n      this.$emit(\"cancel\");\n    },\n    focusInput() {\n      this.$refs.input.focus();\n    }\n  }\n};\nconst _hoisted_1 = { class: \"app-navigation-input-confirm\" };\nconst _hoisted_2 = [\"placeholder\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_IconArrowRight = resolveComponent(\"IconArrowRight\");\n  const _component_NcButton = resolveComponent(\"NcButton\");\n  const _component_IconClose = resolveComponent(\"IconClose\");\n  return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n    createElementVNode(\"form\", {\n      onSubmit: _cache[1] || (_cache[1] = withModifiers((...args) => $options.confirm && $options.confirm(...args), [\"prevent\"])),\n      onKeydown: _cache[2] || (_cache[2] = withKeys(withModifiers((...args) => $options.cancel && $options.cancel(...args), [\"exact\", \"stop\", \"prevent\"]), [\"esc\"])),\n      onClick: _cache[3] || (_cache[3] = withModifiers(() => {\n      }, [\"stop\", \"prevent\"]))\n    }, [\n      withDirectives(createElementVNode(\"input\", {\n        ref: \"input\",\n        \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $options.valueModel = $event),\n        type: \"text\",\n        class: \"app-navigation-input-confirm__input\",\n        placeholder: $props.placeholder\n      }, null, 8, _hoisted_2), [\n        [vModelText, $options.valueModel]\n      ]),\n      createVNode(_component_NcButton, {\n        \"aria-label\": $data.labelConfirm,\n        type: \"submit\",\n        variant: \"primary\",\n        onClick: withModifiers($options.confirm, [\"stop\", \"prevent\"])\n      }, {\n        icon: withCtx(() => [\n          createVNode(_component_IconArrowRight, { size: 20 })\n        ]),\n        _: 1\n      }, 8, [\"aria-label\", \"onClick\"]),\n      createVNode(_component_NcButton, {\n        \"aria-label\": $data.labelCancel,\n        type: \"reset\",\n        variant: $props.primary ? \"primary\" : \"tertiary\",\n        onClick: withModifiers($options.cancel, [\"stop\", \"prevent\"])\n      }, {\n        icon: withCtx(() => [\n          createVNode(_component_IconClose, { size: 20 })\n        ]),\n        _: 1\n      }, 8, [\"aria-label\", \"variant\", \"onClick\"])\n    ], 32)\n  ]);\n}\nconst NcInputConfirmCancel = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-4def7aba\"]]);\nexport {\n  NcInputConfirmCancel as N\n};\n//# sourceMappingURL=NcInputConfirmCancel-C1K1gyQA.mjs.map\n","import { defineComponent } from \"vue\";\nconst _sfc_main = defineComponent({\n  name: \"NcVNodes\",\n  props: {\n    /**\n     * The vnodes to render\n     */\n    vnodes: {\n      type: [Array, Object],\n      default: null\n    }\n  },\n  /**\n   * The render function to display the component\n   */\n  render() {\n    return this.vnodes || this.$slots?.default?.({});\n  }\n});\nexport {\n  _sfc_main as _\n};\n//# sourceMappingURL=NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map\n","import '../assets/NcAppNavigationItem-Cq6ZYdmT.css';\nimport { useIsMobile } from \"../composables/useIsMobile/index.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { r as register, d as t46, E as t21, F as t20, a as t } from \"./_l10n-Bg-fZ9R0.mjs\";\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, createBlock, normalizeClass, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps, renderSlot, withKeys, withModifiers, createVNode, createTextVNode } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcActions } from \"./NcActions-DS88I6qk.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton-CnX0dQzz.mjs\";\nimport { N as NcButton } from \"./NcButton-Byg8-ta1.mjs\";\nimport { C as ChevronDown } from \"./ChevronDown-FiGpp0KT.mjs\";\nimport { C as ChevronUp } from \"./ChevronUp-DPXFp1ss.mjs\";\nimport { N as NcInputConfirmCancel } from \"./NcInputConfirmCancel-C1K1gyQA.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon-CsMn1bFR.mjs\";\nimport { _ as _sfc_main$4 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nregister(t21, t46);\nconst _sfc_main$3 = {\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$2 = { 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 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$2, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2$2))\n  ], 16, _hoisted_1$2);\n}\nconst Pencil = /* @__PURE__ */ _export_sfc(_sfc_main$3, [[\"render\", _sfc_render$3]]);\nconst _sfc_main$2 = {\n  name: \"UndoIcon\",\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: \"M12.5,8C9.85,8 7.45,9 5.6,10.6L2,7V16H11L7.38,12.38C8.77,11.22 10.54,10.5 12.5,10.5C16.04,10.5 19.05,12.81 20.1,16L22.47,15.22C21.08,11.03 17.15,8 12.5,8Z\" };\nconst _hoisted_4$1 = { 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 undo-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$1, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2$1))\n  ], 16, _hoisted_1$1);\n}\nconst Undo = /* @__PURE__ */ _export_sfc(_sfc_main$2, [[\"render\", _sfc_render$2]]);\nregister(t20);\nconst _sfc_main$1 = {\n  name: \"NcAppNavigationIconCollapsible\",\n  components: {\n    NcButton,\n    ChevronDown,\n    ChevronUp\n  },\n  props: {\n    open: {\n      type: Boolean,\n      default: true\n    }\n  },\n  emits: [\"click\"],\n  computed: {\n    labelButton() {\n      return this.open ? t(\"Collapse menu\") : t(\"Open menu\");\n    }\n  },\n  methods: {\n    onClick(e) {\n      this.$emit(\"click\", e);\n    }\n  }\n};\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_ChevronUp = resolveComponent(\"ChevronUp\");\n  const _component_ChevronDown = resolveComponent(\"ChevronDown\");\n  const _component_NcButton = resolveComponent(\"NcButton\");\n  return openBlock(), createBlock(_component_NcButton, {\n    class: normalizeClass([\"icon-collapse\", { \"icon-collapse--open\": $props.open }]),\n    \"aria-label\": $options.labelButton,\n    variant: \"tertiary\",\n    onClick: $options.onClick\n  }, {\n    icon: withCtx(() => [\n      $props.open ? (openBlock(), createBlock(_component_ChevronUp, {\n        key: 0,\n        size: 20\n      })) : (openBlock(), createBlock(_component_ChevronDown, {\n        key: 1,\n        size: 20\n      }))\n    ]),\n    _: 1\n  }, 8, [\"class\", \"aria-label\", \"onClick\"]);\n}\nconst NcAppNavigationIconCollapsible = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render$1], [\"__scopeId\", \"data-v-a22b5c4b\"]]);\nconst _sfc_main = {\n  name: \"NcAppNavigationItem\",\n  components: {\n    NcActions,\n    NcActionButton,\n    NcAppNavigationIconCollapsible,\n    NcInputConfirmCancel,\n    NcLoadingIcon,\n    NcVNodes: _sfc_main$4,\n    Pencil,\n    Undo\n  },\n  props: {\n    /**\n     * If you are not using vue-router you can use the property to set this item as the active navigation entry.\n     * When using vue-router and the `to` property this is set automatically.\n     */\n    active: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * The main text content of the entry.\n     */\n    name: {\n      type: String,\n      required: true\n    },\n    /**\n     * The title attribute of the element.\n     */\n    title: {\n      type: String,\n      default: null\n    },\n    /**\n     * id attribute of the list item element\n     */\n    id: {\n      type: String,\n      default: () => createElementId(),\n      validator: (id) => id.trim() !== \"\"\n    },\n    /**\n     * Refers to the icon on the left, this prop accepts a class\n     * like 'icon-category-enabled'.\n     */\n    icon: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Displays a loading animated icon on the left of the element\n     * instead of the icon.\n     */\n    loading: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Passing in a route will make the root element of this\n     * component a `<router-link />` that points to that route.\n     * By leaving this blank, the root element will be a `<li>`.\n     */\n    to: {\n      type: [String, Object],\n      default: null\n    },\n    /**\n     * A direct link. This will be used as the `href` attribute.\n     * This will ignore any `to` prop being defined.\n     */\n    href: {\n      type: String,\n      default: null\n    },\n    /**\n     * Gives the possibility to collapse the children elements into the\n     * parent element (true) or expands the children elements (false).\n     */\n    allowCollapse: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Makes the name of the item editable by providing an `ActionButton`\n     * component that toggles a form\n     */\n    editable: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Only for 'editable' items, sets label for the edit action button.\n     */\n    editLabel: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Only for items in 'editable' mode, sets the placeholder text for the editing form.\n     */\n    editPlaceholder: {\n      type: String,\n      default: \"\"\n    },\n    /**\n     * Pins the item to the bottom left area, above the settings. Do not\n     * place 'non-pinned' `AppnavigationItem` components below `pinned`\n     * ones.\n     */\n    pinned: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Puts the item in the 'undo' state.\n     */\n    undo: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * The navigation collapsible state (synced)\n     */\n    open: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * The actions menu open state (synced)\n     */\n    menuOpen: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Force the actions to display in a three dot menu\n     */\n    forceMenu: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * The action's menu default icon\n     */\n    menuIcon: {\n      type: String,\n      default: void 0\n    },\n    /**\n     * The action's menu direction\n     */\n    menuPlacement: {\n      type: String,\n      default: \"bottom\"\n    },\n    /**\n     * Entry aria details\n     */\n    ariaDescription: {\n      type: String,\n      default: null\n    },\n    /**\n     * To be used only when the elements in the actions menu are very important\n     */\n    forceDisplayActions: {\n      type: Boolean,\n      default: false\n    },\n    /**\n     * Number of action items outside the menu\n     */\n    inlineActions: {\n      type: Number,\n      default: 0\n    }\n  },\n  emits: [\n    \"update:menuOpen\",\n    \"update:open\",\n    \"update:name\",\n    \"click\",\n    \"undo\"\n  ],\n  setup() {\n    return {\n      isMobile: useIsMobile()\n    };\n  },\n  data() {\n    return {\n      actionsBoundariesElement: void 0,\n      editingValue: \"\",\n      opened: this.open,\n      // Collapsible state\n      editingActive: false,\n      /**\n       * Tracks the open state of the actions menu\n       */\n      menuOpenLocalValue: false,\n      focused: false\n    };\n  },\n  computed: {\n    isRouterLink() {\n      return this.to && !this.href;\n    },\n    // Checks if the component is already a children of another\n    // instance of AppNavigationItem\n    canHaveChildren() {\n      if (this.$parent.$options._componentTag === \"AppNavigationItem\") {\n        return false;\n      } else {\n        return true;\n      }\n    },\n    editButtonAriaLabel() {\n      return this.editLabel ? this.editLabel : t(\"Edit item\");\n    },\n    undoButtonAriaLabel() {\n      return t(\"Undo changes\");\n    }\n  },\n  watch: {\n    open(newVal) {\n      this.opened = newVal;\n    }\n  },\n  mounted() {\n    this.actionsBoundariesElement = document.querySelector(\"#content-vue\") || void 0;\n  },\n  methods: {\n    // sync opened menu state with prop\n    onMenuToggle(state) {\n      this.$emit(\"update:menuOpen\", state);\n      this.menuOpenLocalValue = state;\n    },\n    // toggle the collapsible state\n    toggleCollapse() {\n      this.opened = !this.opened;\n      this.$emit(\"update:open\", this.opened);\n    },\n    /**\n     * Handle link click\n     *\n     * @param {PointerEvent} event - Native click event\n     * @param {Function} [navigate] - VueRouter link's navigate if any\n     * @param {string} [routerLinkHref] - VueRouter link's href\n     */\n    onClick(event, navigate, routerLinkHref) {\n      this.$emit(\"click\", event);\n      if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n        return;\n      }\n      if (routerLinkHref) {\n        navigate?.(event);\n        event.preventDefault();\n      }\n    },\n    // Edition methods\n    handleEdit() {\n      this.editingValue = this.name;\n      this.editingActive = true;\n      this.onMenuToggle(false);\n      this.$nextTick(() => {\n        this.$refs.editingInput.focusInput();\n      });\n    },\n    cancelEditing() {\n      this.editingActive = false;\n    },\n    handleEditingDone() {\n      this.$emit(\"update:name\", this.editingValue);\n      this.editingValue = \"\";\n      this.editingActive = false;\n    },\n    // Undo methods\n    handleUndo() {\n      this.$emit(\"undo\");\n    },\n    /**\n     * Show actions upon focus\n     */\n    handleFocus() {\n      this.focused = true;\n    },\n    handleBlur() {\n      this.focused = false;\n    },\n    /**\n     * This method checks if the root element of the component is focused and\n     * if that's the case it focuses the actions button if available\n     *\n     * @param {Event} e the keydown event\n     */\n    handleTab(e) {\n      if (!this.$refs.actions) {\n        return;\n      }\n      if (this.focused) {\n        e.preventDefault();\n        this.$refs.actions.$refs.menuButton.$el.focus();\n        this.focused = false;\n      } else {\n        this.$refs.actions.$refs.menuButton.$el.blur();\n      }\n    },\n    /**\n     * Is this an external link\n     *\n     * @param {string} href The link to check\n     * @return {boolean} Whether it is external or not\n     */\n    isExternal(href) {\n      return href && href.match(/[a-z]+:\\/\\//i);\n    }\n  }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = [\"aria-current\", \"aria-description\", \"aria-expanded\", \"href\", \"target\", \"title\", \"onClick\"];\nconst _hoisted_3 = {\n  key: 0,\n  class: \"editingContainer\"\n};\nconst _hoisted_4 = {\n  key: 1,\n  class: \"app-navigation-entry__deleted\"\n};\nconst _hoisted_5 = { class: \"app-navigation-entry__deleted-description\" };\nconst _hoisted_6 = {\n  key: 0,\n  class: \"app-navigation-entry__counter-wrapper\"\n};\nconst _hoisted_7 = {\n  key: 0,\n  class: \"app-navigation-entry__children\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n  const _component_NcInputConfirmCancel = resolveComponent(\"NcInputConfirmCancel\");\n  const _component_Pencil = resolveComponent(\"Pencil\");\n  const _component_NcActionButton = resolveComponent(\"NcActionButton\");\n  const _component_Undo = resolveComponent(\"Undo\");\n  const _component_NcActions = resolveComponent(\"NcActions\");\n  const _component_NcAppNavigationIconCollapsible = resolveComponent(\"NcAppNavigationIconCollapsible\");\n  return openBlock(), createElementBlock(\"li\", {\n    id: $props.id,\n    class: normalizeClass([{\n      \"app-navigation-entry--opened\": $data.opened,\n      \"app-navigation-entry--pinned\": $props.pinned,\n      \"app-navigation-entry--collapsible\": $props.allowCollapse && !!_ctx.$slots.default\n    }, \"app-navigation-entry-wrapper\"])\n  }, [\n    (openBlock(), createBlock(resolveDynamicComponent($options.isRouterLink ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$options.isRouterLink && { custom: true, to: $props.to } })), {\n      default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n        createElementVNode(\"div\", {\n          class: normalizeClass([{\n            \"app-navigation-entry--editing\": $data.editingActive,\n            \"app-navigation-entry--deleted\": $props.undo,\n            \"active\": isActive && $props.to || $props.active\n          }, \"app-navigation-entry\"])\n        }, [\n          !$props.undo ? (openBlock(), createElementBlock(\"a\", {\n            key: 0,\n            class: \"app-navigation-entry-link\",\n            \"aria-current\": $props.active || isActive && $props.to ? \"page\" : void 0,\n            \"aria-description\": $props.ariaDescription,\n            \"aria-expanded\": !!_ctx.$slots.default ? $data.opened.toString() : void 0,\n            href: $props.href || routerLinkHref || \"#\",\n            target: $options.isExternal($props.href) ? \"_blank\" : void 0,\n            title: $props.title || $props.name,\n            onBlur: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n            onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n            onFocus: _cache[2] || (_cache[2] = (...args) => $options.handleFocus && $options.handleFocus(...args)),\n            onKeydown: _cache[3] || (_cache[3] = withKeys(withModifiers((...args) => $options.handleTab && $options.handleTab(...args), [\"exact\"]), [\"tab\"]))\n          }, [\n            createElementVNode(\"div\", {\n              class: normalizeClass([{ [$props.icon]: $props.icon }, \"app-navigation-entry-icon\"])\n            }, [\n              $props.loading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : renderSlot(_ctx.$slots, \"icon\", { key: 1 }, void 0, true)\n            ], 2),\n            createElementVNode(\"span\", {\n              class: normalizeClass([\"app-navigation-entry__name\", { \"hidden-visually\": $data.editingActive }])\n            }, toDisplayString($props.name), 3),\n            $data.editingActive ? (openBlock(), createElementBlock(\"div\", _hoisted_3, [\n              createVNode(_component_NcInputConfirmCancel, {\n                ref: \"editingInput\",\n                modelValue: $data.editingValue,\n                \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => $data.editingValue = $event),\n                placeholder: $props.editPlaceholder !== \"\" ? $props.editPlaceholder : $props.name,\n                primary: isActive && $props.to || $props.active,\n                onCancel: $options.cancelEditing,\n                onConfirm: $options.handleEditingDone\n              }, null, 8, [\"modelValue\", \"placeholder\", \"primary\", \"onCancel\", \"onConfirm\"])\n            ])) : createCommentVNode(\"\", true)\n          ], 40, _hoisted_2)) : createCommentVNode(\"\", true),\n          $props.undo ? (openBlock(), createElementBlock(\"div\", _hoisted_4, [\n            createElementVNode(\"div\", _hoisted_5, toDisplayString($props.name), 1)\n          ])) : createCommentVNode(\"\", true),\n          (!!_ctx.$slots.actions || !!_ctx.$slots.counter || $props.editable || $props.undo) && !$data.editingActive ? (openBlock(), createElementBlock(\"div\", {\n            key: 2,\n            class: normalizeClass([\"app-navigation-entry__utils\", { \"app-navigation-entry__utils--display-actions\": $props.forceDisplayActions || $data.menuOpenLocalValue || $props.menuOpen }])\n          }, [\n            !!_ctx.$slots.counter ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n              renderSlot(_ctx.$slots, \"counter\", {}, void 0, true)\n            ])) : createCommentVNode(\"\", true),\n            !!_ctx.$slots.actions || $props.editable && !$data.editingActive || $props.undo ? (openBlock(), createBlock(_component_NcActions, {\n              key: 1,\n              ref: \"actions\",\n              inline: $props.inlineActions,\n              class: \"app-navigation-entry__actions\",\n              container: \"#app-navigation-vue\",\n              \"boundaries-element\": $data.actionsBoundariesElement,\n              placement: $props.menuPlacement,\n              open: $props.menuOpen,\n              \"force-menu\": $props.forceMenu,\n              \"default-icon\": $props.menuIcon,\n              variant: isActive && $props.to || $props.active ? \"primary\" : null,\n              \"onUpdate:open\": $options.onMenuToggle\n            }, {\n              icon: withCtx(() => [\n                renderSlot(_ctx.$slots, \"menu-icon\", {}, void 0, true)\n              ]),\n              default: withCtx(() => [\n                $props.editable && !$data.editingActive ? (openBlock(), createBlock(_component_NcActionButton, {\n                  key: 0,\n                  \"aria-label\": $options.editButtonAriaLabel,\n                  onClick: $options.handleEdit\n                }, {\n                  icon: withCtx(() => [\n                    createVNode(_component_Pencil, { size: 20 })\n                  ]),\n                  default: withCtx(() => [\n                    createTextVNode(\" \" + toDisplayString($props.editLabel), 1)\n                  ]),\n                  _: 1\n                }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n                $props.undo ? (openBlock(), createBlock(_component_NcActionButton, {\n                  key: 1,\n                  \"aria-label\": $options.undoButtonAriaLabel,\n                  onClick: $options.handleUndo\n                }, {\n                  icon: withCtx(() => [\n                    createVNode(_component_Undo, { size: 20 })\n                  ]),\n                  _: 1\n                }, 8, [\"aria-label\", \"onClick\"])) : createCommentVNode(\"\", true),\n                renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n              ]),\n              _: 2\n            }, 1032, [\"inline\", \"boundaries-element\", \"placement\", \"open\", \"force-menu\", \"default-icon\", \"variant\", \"onUpdate:open\"])) : createCommentVNode(\"\", true)\n          ], 2)) : createCommentVNode(\"\", true),\n          $props.allowCollapse && !!_ctx.$slots.default ? (openBlock(), createBlock(_component_NcAppNavigationIconCollapsible, {\n            key: 3,\n            open: $data.opened,\n            onClick: withModifiers($options.toggleCollapse, [\"prevent\", \"stop\"])\n          }, null, 8, [\"open\", \"onClick\"])) : createCommentVNode(\"\", true),\n          renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n        ], 2)\n      ]),\n      _: 3\n    }, 16)),\n    $options.canHaveChildren && !!_ctx.$slots.default ? (openBlock(), createElementBlock(\"ul\", _hoisted_7, [\n      renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n    ])) : createCommentVNode(\"\", true)\n  ], 10, _hoisted_1);\n}\nconst NcAppNavigationItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-995ba421\"]]);\nexport {\n  NcAppNavigationItem as N\n};\n//# sourceMappingURL=NcAppNavigationItem-s3GC1n4o.mjs.map\n","import '../assets/NcAppNavigationSettings-BDc6Mtek.css';\nimport { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, defineComponent, ref, useTemplateRef, computed, normalizeClass, createVNode, unref, withCtx, createTextVNode, Transition, withDirectives, renderSlot, vShow } from \"vue\";\nimport { onClickOutside } from \"@vueuse/core\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { r as register, a as t } from \"./_l10n-Bg-fZ9R0.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { N as NcButton } from \"./NcButton-Byg8-ta1.mjs\";\nregister();\nconst _sfc_main$1 = {\n  name: \"CogIcon\",\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 = [\"fill\", \"width\", \"height\"];\nconst _hoisted_3 = { d: \"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\" };\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 cog-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, [\n        $props.title ? (openBlock(), createElementBlock(\"title\", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode(\"\", true)\n      ])\n    ], 8, _hoisted_2))\n  ], 16, _hoisted_1$1);\n}\nconst IconCog = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n  __name: \"NcAppNavigationSettings\",\n  props: {\n    excludeClickOutsideSelectors: { default: () => [] },\n    name: { default: () => t(\"Settings\") }\n  },\n  setup(__props) {\n    const contentId = createElementId();\n    const open = ref(false);\n    const container2 = useTemplateRef(\"wrapperElement\");\n    const ignore = computed(\n      () => Array.isArray(__props.excludeClickOutsideSelectors) ? __props.excludeClickOutsideSelectors : __props.excludeClickOutsideSelectors.split(\" \")\n    );\n    onClickOutside(container2, () => {\n      open.value = false;\n    }, { ignore });\n    return (_ctx, _cache) => {\n      return openBlock(), createElementBlock(\"div\", {\n        ref: \"wrapperElement\",\n        class: normalizeClass(_ctx.$style.container)\n      }, [\n        createElementVNode(\"div\", {\n          class: normalizeClass(_ctx.$style.header)\n        }, [\n          createVNode(NcButton, {\n            \"aria-controls\": unref(contentId),\n            \"aria-expanded\": open.value ? \"true\" : \"false\",\n            onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)\n          }, {\n            icon: withCtx(() => [\n              createVNode(IconCog, { size: 20 })\n            ]),\n            default: withCtx(() => [\n              createTextVNode(\" \" + toDisplayString(_ctx.name), 1)\n            ]),\n            _: 1\n          }, 8, [\"aria-controls\", \"aria-expanded\"])\n        ], 2),\n        createVNode(Transition, {\n          \"enter-active-class\": _ctx.$style.animationActive,\n          \"leave-active-class\": _ctx.$style.animationActive,\n          \"enter-from-class\": _ctx.$style.animationStop,\n          \"leave-to-class\": _ctx.$style.animationStop\n        }, {\n          default: withCtx(() => [\n            withDirectives(createElementVNode(\"div\", {\n              id: unref(contentId),\n              class: normalizeClass(_ctx.$style.content)\n            }, [\n              renderSlot(_ctx.$slots, \"default\")\n            ], 10, _hoisted_1), [\n              [vShow, open.value]\n            ])\n          ]),\n          _: 3\n        }, 8, [\"enter-active-class\", \"leave-active-class\", \"enter-from-class\", \"leave-to-class\"])\n      ], 2);\n    };\n  }\n});\nconst container = \"_container_1v0ql_2\";\nconst header = \"_header_1v0ql_7\";\nconst content = \"_content_1v0ql_12\";\nconst animationActive = \"_animationActive_1v0ql_24\";\nconst animationStop = \"_animationStop_1v0ql_30\";\nconst style0 = {\n  container,\n  header,\n  content,\n  animationActive,\n  animationStop\n};\nconst cssModules = {\n  \"$style\": style0\n};\nconst NcAppNavigationSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n  NcAppNavigationSettings as N\n};\n//# sourceMappingURL=NcAppNavigationSettings-GeCb9tlR.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 }}</title>\n      </path>\n    </svg>\n  </span>\n</template>\n\n<script>\nexport default {\n  name: \"ContentCopyIcon\",\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}\n</script>","<!--\n  - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<NcAppNavigation :aria-label=\"t('activity', 'Activity')\">\n\t\t<template #list>\n\t\t\t<NcAppNavigationItem\n\t\t\t\tv-for=\"navigationItem in navigationList\"\n\t\t\t\t:key=\"navigationItem.id\"\n\t\t\t\t:data-navigation=\"navigationItem.id\"\n\t\t\t\t:to=\"navigationItem.id\"\n\t\t\t\t:name=\"navigationItem.name\">\n\t\t\t\t<template v-if=\"navigationItem.icon\" #icon>\n\t\t\t\t\t<img\n\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t:src=\"navigationItem.icon\"\n\t\t\t\t\t\tclass=\"navigation-icon\"\n\t\t\t\t\t\trole=\"presentation\">\n\t\t\t\t</template>\n\t\t\t</NcAppNavigationItem>\n\t\t</template>\n\t\t<template #footer>\n\t\t\t<NcAppNavigationSettings :name=\"t('activity', 'Activity settings')\">\n\t\t\t\t<NcCheckboxRadioSwitch type=\"switch\" v-model=\"hasRSSLink\" @update:model-value=\"toggleRSSLink\">\n\t\t\t\t\t{{ t('activity', 'Enable RSS feed') }}\n\t\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t\t<NcInputField\n\t\t\t\t\tv-if=\"hasRSSLink\"\n\t\t\t\t\tv-model=\"rssLink\"\n\t\t\t\t\t:label=\"t('activity', 'RSS feed')\"\n\t\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t\t:trailing-button-label=\"t('activity', 'Copy RSS feed link')\"\n\t\t\t\t\treadonly=\"readonly\"\n\t\t\t\t\t@trailing-button-click=\"copyRSSLink\">\n\t\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t\t<IconContentCopy :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcInputField>\n\t\t\t\t<NcButton\n\t\t\t\t\tclass=\"settings-link\"\n\t\t\t\t\t:href=\"personalSettingsLink\"\n\t\t\t\t\t:title=\"t('activity', 'Personal notification settings')\"\n\t\t\t\t\tvariant=\"tertiary\">\n\t\t\t\t\t{{ t('activity', 'Personal notification settings') }}\n\t\t\t\t</NcButton>\n\t\t\t</NcAppNavigationSettings>\n\t\t</template>\n\t</NcAppNavigation>\n</template>\n\n<script setup lang=\"ts\">\nimport axios from '@nextcloud/axios'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { computed, ref } from 'vue'\nimport NcAppNavigation from '@nextcloud/vue/components/NcAppNavigation'\nimport NcAppNavigationItem from '@nextcloud/vue/components/NcAppNavigationItem'\nimport NcAppNavigationSettings from '@nextcloud/vue/components/NcAppNavigationSettings'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'\nimport NcInputField from '@nextcloud/vue/components/NcInputField'\nimport IconContentCopy from 'vue-material-design-icons/ContentCopy.vue'\nimport logger from '../utils/logger.ts'\n\n// Types\ninterface INavigationEntry {\n\tid: string\n\ticon?: string\n\tname: string\n\turl: string\n}\n\ninterface IActivitySettings {\n\tenableAvatars: boolean\n\trssLink: string\n\tpersonalSettingsLink: string\n}\n\n// Variables and methods\nconst {\n\trssLink: initialRSSLink,\n\tpersonalSettingsLink,\n} = loadState<IActivitySettings>(appName, 'settings')\n\nconst navigationList = loadState<INavigationEntry[]>(appName, 'navigationList')\n\n/**\n * The current rss link, either a valid URL or an empty string\n */\nconst rssLink = ref(initialRSSLink)\n\n/**\n * True if a RSS link is configures / enabled. False otherwise.\n */\nconst hasRSSLink = computed(() => !!rssLink.value)\n\n/**\n * Toggle the enabled state of the RSS link\n */\nasync function toggleRSSLink() {\n\ttry {\n\t\tconst { data } = await axios.post<{ data: { rsslink: string } }>(generateUrl('/apps/activity/settings/feed'), {\n\t\t\tenable: !hasRSSLink.value,\n\t\t})\n\t\trssLink.value = data.data.rsslink\n\t} catch (e) {\n\t\tshowError(t('activity', 'Could not enable RSS link'))\n\t\tlogger.error(e as Error)\n\t}\n}\n\n/**\n * Copy the RSS link to the clipboard\n */\nasync function copyRSSLink() {\n\ttry {\n\t\twindow.navigator.clipboard.writeText(rssLink.value)\n\t\tshowSuccess(t('activity', 'RSS link copied to clipboard'))\n\t} catch (e) {\n\t\tlogger.debug(e as Error)\n\t\t// If the user is running Nextcloud in a non secure context (secure = HTTPS or HTTP on localhost) then Clipboard API fail and the user must copy manually\n\t\twindow.prompt(t('activity', 'Could not copy the RSS link, please copy manually:'), rssLink.value)\n\t}\n}\n</script>\n\n<style lang=\"scss\">\n.app-activity {\n\t.settings-link {\n\t\tmax-width: 100%;\n\t}\n\n\t.app-navigation-entry {\n\t\t&.active .navigation-icon {\n\t\t\tfilter: var(--primary-invert-if-dark);\n\t\t}\n\n\t\t&:not(.active) .navigation-icon {\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n\n\t.navigation-icon {\n\t\theight: 16px;\n\t\twidth: 16px;\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { RouteRecordRaw } from 'vue-router'\n\nimport ActivityAppFeed from './views/ActivityAppFeed.vue'\nimport ActivityAppNavigation from './views/ActivityAppNavigation.vue'\n\nexport const routes = [\n\t{\n\t\tpath: '/',\n\t\tname: 'root',\n\t\tredirect: { path: '/all' },\n\t},\n\t{\n\t\tpath: '/:filter?',\n\t\tcomponents: {\n\t\t\tdefault: ActivityAppFeed,\n\t\t\tnavigation: ActivityAppNavigation,\n\t\t},\n\t\tprops: {\n\t\t\tdefault: true,\n\t\t},\n\t},\n] as RouteRecordRaw[]\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport ActivityApp from './views/ActivityApp.vue'\nimport { routes } from './routes.ts'\n\nconst router = createRouter({\n\thistory: createWebHistory(generateUrl('/apps/activity')),\n\tlinkActiveClass: 'active',\n\troutes,\n})\n\nconst app = createApp(ActivityApp)\napp.use(router)\napp.mount('#content')\n"],"names":["MOBILE_BREAKPOINT","MOBILE_SMALL_BREAKPOINT","isLessThanBreakpoint","breakpoint","isMobile","ref","isSmallMobile","useIsMobile","readonly","register","t29","contentSvg","navigationSvg","_sfc_main","NcButton","NcIconSvgWrapper","container","t","emit","value","_hoisted_1","_hoisted_2","_hoisted_3","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_NcButton","resolveComponent","_component_NcIconSvgWrapper","openBlock","createElementBlock","normalizeClass","createBlock","Teleport","createElementVNode","toDisplayString","withDirectives","createVNode","withModifiers","$event","withCtx","createTextVNode","vShow","renderSlot","NcContent","_export_sfc","_createBlock","_unref","_createVNode","_component_router_view","_hoisted_4","mergeProps","createCommentVNode","IconClose","Pe","D","h","y","u","E","ce","l","k","M","z","e","n","m","x","S","c","f","_","R","r","P","O","b","i","a","s","o","K","I","d","A","U","W","J","$","N","v","p","H","ue","j","Q","V","Z","ee","F","ne","C","ie","te","T","L","ae","le","oe","se","q","B","G","X","re","fe","g","Y","ve","me","ge","w","de","pe","he","ze","xe","realAppName","appName","logger","APP_NAME","_sfc_main$1","defineComponent","__props","watch","toggleAppNavigationButton","onBeforeUnmount","hide","appNavigationToggle","unref","mdiArrowRight","NcAppDetailsToggle","browserStorage","getBuilder","productName","loadState","activeApp","localizedAppName","Pane","Splitpanes","isRtl","entries","useSwipe","direction","event","listPaneSize","_component_NcAppDetailsToggle","_component_Pane","_component_Splitpanes","Fragment","NcAppContent","ChevronDown","IconArrowRight","props","dateText","computed","today","moment","yesterday","first","fullDate","formatted","_createElementVNode","_createElementBlock","_Fragment","_renderList","activities","activity","ActivityComponent","appIconSVG","navigationList","route","useRoute","loading","hasMoreActivites","allActivities","lastActivityLoaded","useInfiniteScroll","loadActivities","groupedActivities","groups","date","headingTitle","navigationEl","since","response","ncAxios","generateOcsUrl","raw","ActivityModel","nextTick","error","axios","showError","onMounted","_toDisplayString","NcEmptyContent","NcLoadingIcon","_openBlock","ActivityGroup","NcAppNavigationList","t19","_sfc_main$2","_hoisted_1$2","_hoisted_2$1","_hoisted_3$1","_hoisted_4$1","_sfc_render$2","MenuIcon","_hoisted_1$1","_sfc_render$1","MenuOpenIcon","_component_MenuOpenIcon","_component_MenuIcon","NcAppNavigationToggle","warn","subscribe","createFocusTrap","getTrapStack","unsubscribe","state","bodyStyles","animationLength","open","_component_NcAppNavigationList","_component_NcAppNavigationToggle","withKeys","args","NcAppNavigation","ChevronUp","t13","newValue","_component_IconArrowRight","_component_IconClose","vModelText","NcInputConfirmCancel","t21","t46","_sfc_main$3","_hoisted_2$2","_hoisted_3$2","_hoisted_4$2","_sfc_render$3","Pencil","Undo","t20","_component_ChevronUp","_component_ChevronDown","NcAppNavigationIconCollapsible","NcActions","NcActionButton","_sfc_main$4","createElementId","id","newVal","navigate","routerLinkHref","href","_hoisted_5","_hoisted_6","_hoisted_7","_component_NcLoadingIcon","_component_NcInputConfirmCancel","_component_Pencil","_component_NcActionButton","_component_Undo","_component_NcActions","_component_NcAppNavigationIconCollapsible","resolveDynamicComponent","normalizeProps","guardReactiveProps","isActive","NcAppNavigationItem","IconCog","contentId","container2","useTemplateRef","ignore","onClickOutside","Transition","header","content","animationActive","animationStop","style0","cssModules","NcAppNavigationSettings","_mergeProps","initialRSSLink","personalSettingsLink","rssLink","hasRSSLink","toggleRSSLink","data","generateUrl","copyRSSLink","showSuccess","navigationItem","NcCheckboxRadioSwitch","NcInputField","IconContentCopy","routes","ActivityAppFeed","ActivityAppNavigation","router","createRouter","createWebHistory","app","createApp","ActivityApp"],"mappings":"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","x_google_ignoreList":[0,1,3,4,5,6,7,11,12,13,14,15,16,17,18,19]}