{"version":3,"file":"collectives-reference.mjs","sources":["../src/apis/collectives/search.ts","../node_modules/vue-material-design-icons/AlertOutline.vue","../node_modules/vue-material-design-icons/FilterCheckOutline.vue","../node_modules/vue-material-design-icons/FilterOutline.vue","../src/components/PagePreview.vue","../src/views/PagePicker.vue","../src/views/PageReferenceWidget.vue","../src/reference.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { apiUrl } from './urls.js'\n\n/**\n * Search recent pages across collectives\n *\n * @param query - the search query\n */\nexport function searchRecentPages(query: string) {\n\treturn axios.get(apiUrl('v1.0', 'collectives', 'search', 'recent'), {\n\t\tparams: { query },\n\t})\n}\n","<template>\n  <span v-bind=\"$attrs\"\n        :aria-hidden=\"title ? null : 'true'\"\n        :aria-label=\"title\"\n        class=\"material-design-icon alert-outline-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=\"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16\">\n        <title v-if=\"title\">{{ title }}</title>\n      </path>\n    </svg>\n  </span>\n</template>\n\n<script>\nexport default {\n  name: \"AlertOutlineIcon\",\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>","<template>\n  <span v-bind=\"$attrs\"\n        :aria-hidden=\"title ? null : 'true'\"\n        :aria-label=\"title\"\n        class=\"material-design-icon filter-check-outline-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=\"M13 19.88C13.04 20.18 12.94 20.5 12.72 20.71C12.32 21.1 11.69 21.1 11.3 20.71L7.29 16.7C7.06 16.47 6.96 16.16 7 15.87V10.75L2.21 4.62C1.87 4.19 1.95 3.56 2.38 3.22C2.57 3.08 2.78 3 3 3H17C17.22 3 17.43 3.08 17.62 3.22C18.05 3.56 18.13 4.19 17.79 4.62L13 10.75V19.88M5.04 5L9 10.07V15.58L11 17.58V10.05L14.96 5H5.04M17.75 21L15 18L16.16 16.84L17.75 18.43L21.34 14.84L22.5 16.25L17.75 21\">\n        <title v-if=\"title\">{{ title }}</title>\n      </path>\n    </svg>\n  </span>\n</template>\n\n<script>\nexport default {\n  name: \"FilterCheckOutlineIcon\",\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>","<template>\n  <span v-bind=\"$attrs\"\n        :aria-hidden=\"title ? null : 'true'\"\n        :aria-label=\"title\"\n        class=\"material-design-icon filter-outline-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=\"M15,19.88C15.04,20.18 14.94,20.5 14.71,20.71C14.32,21.1 13.69,21.1 13.3,20.71L9.29,16.7C9.06,16.47 8.96,16.16 9,15.87V10.75L4.21,4.62C3.87,4.19 3.95,3.56 4.38,3.22C4.57,3.08 4.78,3 5,3V3H19V3C19.22,3 19.43,3.08 19.62,3.22C20.05,3.56 20.13,4.19 19.79,4.62L15,10.75V19.88M7.04,5L11,10.06V15.58L13,17.58V10.05L16.96,5H7.04Z\">\n        <title v-if=\"title\">{{ title }}</title>\n      </path>\n    </svg>\n  </span>\n</template>\n\n<script>\nexport default {\n  name: \"FilterOutlineIcon\",\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: 2026 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<a\n\t\t:href=\"link\"\n\t\ttarget=\"_blank\"\n\t\tclass=\"collective-page\"\n\t\t:class=\"{ 'not-found': notFound }\"\n\t\t:style=\"pageStyle\"\n\t\t@click=\"clickLink\">\n\t\t<div class=\"collective-page--image\" :style=\"imageStyle\">\n\t\t\t<span\n\t\t\t\tv-if=\"emoji\"\n\t\t\t\tclass=\"page-emoji\"\n\t\t\t\t:style=\"emojiStyle\">\n\t\t\t\t{{ emoji }}\n\t\t\t</span>\n\t\t\t<PageIcon\n\t\t\t\tv-else\n\t\t\t\t:size=\"iconSize\" />\n\t\t</div>\n\t\t<div class=\"collective-page--info\">\n\t\t\t<div class=\"title\">\n\t\t\t\t<strong>\n\t\t\t\t\t<template v-if=\"notFound\">\n\t\t\t\t\t\t{{ t('collectives', 'Page not found') }}\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t{{ title }}\n\t\t\t\t\t</template>\n\t\t\t\t</strong>\n\t\t\t</div>\n\t\t\t<div class=\"description\">\n\t\t\t\t<template v-if=\"notFound\">\n\t\t\t\t\t{{ t('collectives', 'The page does not exist or you are not allowed to view it.') }}\n\t\t\t\t</template>\n\t\t\t\t<template v-else>\n\t\t\t\t\t{{ description }}\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t\t<div v-if=\"!notFound && !small\" class=\"last-edited\">\n\t\t\t\t{{ lastEdited }}\n\t\t\t\t<NcUserBubble\n\t\t\t\t\t:user=\"lastUserId\"\n\t\t\t\t\t:displayName=\"lastUserDisplayName\" />\n\t\t\t</div>\n\t\t</div>\n\t</a>\n</template>\n\n<script lang=\"ts\">\nimport { t } from '@nextcloud/l10n'\nimport { defineComponent } from 'vue'\nimport NcUserBubble from '@nextcloud/vue/components/NcUserBubble'\nimport PageIcon from './Icon/PageIcon.vue'\n\nexport default defineComponent({\n\tname: 'PagePreview',\n\n\tcomponents: {\n\t\tNcUserBubble,\n\t\tPageIcon,\n\t},\n\n\tprops: {\n\t\tnotFound: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\tlink: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\temoji: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\tlastEdited: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\tlastUserId: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\tlastUserDisplayName: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\tsmall: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\ticonSize() {\n\t\t\treturn this.small ? 34 : 50\n\t\t},\n\n\t\tpageStyle() {\n\t\t\tconst paddingInline = this.small ? 8 : 12\n\t\t\treturn {\n\t\t\t\t'padding-inline': `${paddingInline}px !important`,\n\t\t\t}\n\t\t},\n\n\t\timageStyle() {\n\t\t\treturn {\n\t\t\t\twidth: `${this.iconSize}px`,\n\t\t\t}\n\t\t},\n\n\t\temojiStyle() {\n\t\t\treturn {\n\t\t\t\t'font-size': `calc(${this.iconSize}px * 0.8)`,\n\t\t\t\theight: `${this.iconSize}px`,\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\tclickLink(event: Event) {\n\t\t\tif (!this.link) {\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tif (window.OCA.Collectives?.openLink) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\twindow.OCA.Collectives.openLink(this.link)\n\t\t\t}\n\t\t},\n\t},\n})\n\n</script>\n\n<style scoped lang=\"scss\">\n.collective-page {\n\twidth: 100%;\n\twhite-space: normal;\n\tpadding-block: 12px !important;\n\tdisplay: flex;\n\ttext-decoration: unset !important;\n\tcolor: var(--color-main-text) !important;\n\n\t&--image {\n\t\tmargin-inline-end: 12px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\t.page-emoji {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t}\n\t}\n\n\t.description, .last-edited {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&.not-found {\n\t\t.collective-page--image {\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\t}\n}\n</style>\n","<!--\n  - SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"modal-scroller collectives-page-picker\">\n\t\t<h2>{{ t('collectives', 'Add link to page') }}</h2>\n\t\t<div class=\"modal-inner\">\n\t\t\t<div class=\"searchbar\">\n\t\t\t\t<NcTextField\n\t\t\t\t\tref=\"searchInput\"\n\t\t\t\t\tv-model=\"query\"\n\t\t\t\t\t:label=\"t('collectives', 'Search pages…')\"\n\t\t\t\t\t:showTrailingButton=\"!!query\"\n\t\t\t\t\t:trailingButtonLabel=\"t('collectives', 'Clear search')\"\n\t\t\t\t\t@trailingButtonClick=\"query = ''\" />\n\t\t\t\t<NcActions v-if=\"!isPublic && collectiveId\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<FilterCheckOutlineIcon v-if=\"filterCollective\" :size=\"20\" />\n\t\t\t\t\t\t<FilterOutlineIcon v-else :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcActionCheckbox v-model=\"filterCollective\">\n\t\t\t\t\t\t{{ t('collectives', 'Limit to current collective') }}\n\t\t\t\t\t</NcActionCheckbox>\n\t\t\t\t\t<NcActionText v-if=\"!filterCollective\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<AlertOutlineIcon :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t{{ t('collectives', 'Other members may lack access to pages from other collectives.') }}\n\t\t\t\t\t</NcActionText>\n\t\t\t\t</NcActions>\n\t\t\t</div>\n\n\t\t\t<div class=\"page-list\">\n\t\t\t\t<ul v-if=\"pages.length > 0\">\n\t\t\t\t\t<PagePreview\n\t\t\t\t\t\tv-for=\"page in pages\"\n\t\t\t\t\t\t:key=\"page.id\"\n\t\t\t\t\t\t:title=\"page.title\"\n\t\t\t\t\t\t:description=\"description(page)\"\n\t\t\t\t\t\t:emoji=\"page.emoji!\"\n\t\t\t\t\t\t:lastUserId=\"page.lastUserId!\"\n\t\t\t\t\t\t:lastUserDisplayName=\"page.lastUserDisplayName!\"\n\t\t\t\t\t\t:small=\"true\"\n\t\t\t\t\t\tclass=\"page-preview-item\"\n\t\t\t\t\t\t@click=\"onClickPage(page)\" />\n\t\t\t\t</ul>\n\t\t\t\t<NcEmptyContent\n\t\t\t\t\tv-else-if=\"searchedPagesLoading\"\n\t\t\t\t\t:description=\"t('collectives', 'Loading pages')\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcLoadingIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t\t<NcEmptyContent v-else :description=\"t('collectives', 'No pages to link')\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<CollectivesIcon />\n\t\t\t\t\t</template>\n\t\t\t\t</NcEmptyContent>\n\t\t\t</div>\n\n\t\t\t<div class=\"modal-buttons\">\n\t\t\t\t<NcButton @click=\"close\">\n\t\t\t\t\t{{ t('collectives', 'Cancel') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport type { PageInfo } from '../types.ts'\n\nimport { t } from '@nextcloud/l10n'\nimport { generateUrl } from '@nextcloud/router'\nimport { isPublicShare } from '@nextcloud/sharing/public'\nimport debounce from 'debounce'\nimport { defineComponent } from 'vue'\nimport NcActionCheckbox from '@nextcloud/vue/components/NcActionCheckbox'\nimport NcActions from '@nextcloud/vue/components/NcActions'\nimport NcActionText from '@nextcloud/vue/components/NcActionText'\nimport NcButton from '@nextcloud/vue/components/NcButton'\nimport NcEmptyContent from '@nextcloud/vue/components/NcEmptyContent'\nimport NcLoadingIcon from '@nextcloud/vue/components/NcLoadingIcon'\nimport NcTextField from '@nextcloud/vue/components/NcTextField'\nimport AlertOutlineIcon from 'vue-material-design-icons/AlertOutline.vue'\nimport FilterCheckOutlineIcon from 'vue-material-design-icons/FilterCheckOutline.vue'\nimport FilterOutlineIcon from 'vue-material-design-icons/FilterOutline.vue'\nimport CollectivesIcon from '../components/Icon/CollectivesIcon.vue'\nimport PagePreview from '../components/PagePreview.vue'\nimport { searchRecentPages } from '../apis/collectives/index.js'\nimport { ALL_PAGES_STORE_NAME } from '../stores/pages.js'\nimport { byTimeAsc } from '../util/sortOrders.js'\n\nexport default defineComponent({\n\tname: 'PagePicker',\n\n\tcomponents: {\n\t\tAlertOutlineIcon,\n\t\tCollectivesIcon,\n\t\tFilterCheckOutlineIcon,\n\t\tFilterOutlineIcon,\n\t\tNcActionCheckbox,\n\t\tNcActions,\n\t\tNcActionText,\n\t\tNcButton,\n\t\tNcEmptyContent,\n\t\tNcLoadingIcon,\n\t\tNcTextField,\n\t\tPagePreview,\n\t},\n\n\temits: [\n\t\t'cancel',\n\t],\n\n\tsetup() {\n\t\tconst isPublic = isPublicShare()\n\t\treturn { isPublic, t }\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcollectiveId: null,\n\t\t\tfilterCollective: false,\n\t\t\tcurrentPages: [] as PageInfo[],\n\t\t\tsearchedPages: [] as PageInfo[],\n\t\t\tsearchedPagesLoading: false,\n\t\t\trootPage: null as PageInfo | null,\n\t\t\tselectedPageId: null as number | null,\n\t\t\tisLoadingPages: false,\n\t\t\tquery: '',\n\t\t\tdebouncedGetSearchedPages: debounce(this.getSearchedPages, 300),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcurrentRecentPages() {\n\t\t\tconst recentPages = this.currentPages\n\t\t\t\t.slice()\n\t\t\t\t.sort(byTimeAsc)\n\t\t\tif (!this.query) {\n\t\t\t\treturn recentPages\n\t\t\t}\n\t\t\tconst lowerQuery = this.query.toLowerCase()\n\t\t\tconst collectiveName = window.OCA.Collectives?.currentCollective?.nameWithEmoji ?? ''\n\t\t\tconst collectiveNameMatches = collectiveName.toLocaleLowerCase().includes(lowerQuery)\n\t\t\treturn recentPages.filter((p) => {\n\t\t\t\tif (p.title.toLocaleLowerCase().includes(lowerQuery)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\t// Also show landing page when the collective name matches\n\t\t\t\treturn collectiveNameMatches && p.parentId === 0\n\t\t\t})\n\t\t},\n\n\t\tpages() {\n\t\t\treturn this.filterCollective\n\t\t\t\t? this.currentRecentPages.slice(0, 10)\n\t\t\t\t: this.searchedPages.slice(0, 10)\n\t\t},\n\t},\n\n\twatch: {\n\t\tquery() {\n\t\t\tif (!this.filterCollective) {\n\t\t\t\tthis.searchedPages = []\n\t\t\t\tthis.debouncedGetSearchedPages()\n\t\t\t}\n\t\t},\n\n\t\tfilterCollective(newValue) {\n\t\t\tif (!newValue) {\n\t\t\t\tthis.getSearchedPages()\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.initCurrentPages()\n\n\t\t// Wait for NcModal enter transition and its focus trap\n\t\tsetTimeout(() => this.$refs.searchInput.focus(), 0)\n\t},\n\n\tmethods: {\n\t\tclose() {\n\t\t\tthis.$emit('cancel')\n\t\t},\n\n\t\tinitCurrentPages() {\n\t\t\tthis.collectiveId = window.OCA.Collectives?.currentCollective?.id\n\t\t\tconst storeIndex = window.OCA.Collectives?.currentCollective?.storeIndex\n\t\t\tif (this.collectiveId && storeIndex) {\n\t\t\t\tthis.filterCollective = true\n\t\t\t\tlet raw\n\t\t\t\ttry {\n\t\t\t\t\traw = localStorage.getItem(ALL_PAGES_STORE_NAME)\n\t\t\t\t\tif (raw) {\n\t\t\t\t\t\tconst allPagesMap = JSON.parse(raw)\n\t\t\t\t\t\tthis.currentPages = allPagesMap[storeIndex] ?? []\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t} catch {\n\t\t\t\t\t// Nothing found in localStorage, defer to getting pages from server\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!this.isPublic) {\n\t\t\t\tthis.getSearchedPages()\n\t\t\t}\n\t\t},\n\n\t\tonClickPage(page: PageInfo) {\n\t\t\tconst collectivePath = this.filterCollective\n\t\t\t\t? window.OCA.Collectives?.currentCollective?.path\n\t\t\t\t: page.collectivePath\n\n\t\t\tif (collectivePath) {\n\t\t\t\tconst pagePath = page.slug\n\t\t\t\t\t? `${page.slug}-${page.id}`\n\t\t\t\t\t: encodeURIComponent(page.title)\n\t\t\t\tconst pageLink = window.location.origin\n\t\t\t\t\t+ generateUrl('/apps/collectives')\n\t\t\t\t\t+ collectivePath\n\t\t\t\t\t+ '/' + pagePath\n\t\t\t\tthis.$el.dispatchEvent(new CustomEvent('submit', {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tdetail: pageLink,\n\t\t\t\t}))\n\t\t\t} else {\n\t\t\t\tconsole.error('Cannot generate page link')\n\t\t\t}\n\t\t},\n\n\t\tdescription(page: PageInfo) {\n\t\t\tconst collectiveNameWithEmoji = this.filterCollective\n\t\t\t\t? window.OCA.Collectives?.currentCollective?.nameWithEmoji || ''\n\t\t\t\t: page.collectiveNameWithEmoji\n\n\t\t\tconst collectiveAndPagePath = page.filePathString\n\t\t\t\t? collectiveNameWithEmoji + ' - ' + page.filePathString\n\t\t\t\t: collectiveNameWithEmoji\n\t\t\treturn t('collectives', 'In collective {path}', { path: collectiveAndPagePath })\n\t\t},\n\n\t\tasync getSearchedPages() {\n\t\t\tconst currentQuery = this.query\n\t\t\tthis.searchedPagesLoading = true\n\t\t\ttry {\n\t\t\t\tconst response = await searchRecentPages(currentQuery)\n\t\t\t\tif (this.query === currentQuery) {\n\t\t\t\t\tthis.searchedPages = response.data.ocs.data.pages\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tif (this.query === currentQuery) {\n\t\t\t\t\tthis.searchedPagesLoading = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.modal-scroller {\n\twidth: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\n\th2 {\n\t\tdisplay: flex;\n\t\tmargin-top: 12px;\n\t}\n}\n\n.modal-inner {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tgap: calc(3 * var(--default-grid-baseline));\n\tflex-direction: column;\n\twidth: 100%;\n\theight: 500px;\n\tpadding: calc(var(--default-grid-baseline) * 3);\n}\n\n.modal-buttons {\n\tdisplay: flex;\n\tjustify-content: flex-end;\n\tposition: sticky;\n\tbottom: 0;\n}\n\n.searchbar {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--default-grid-baseline);\n}\n\n.page-list {\n\tdisplay: inline-block;\n\twidth: 100%;\n\theight: calc(100% - 34px - 8px - 6px);\n\toverflow-y: auto;\n\tflex: 1;\n\n\tul {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: var(--default-grid-baseline);\n\t}\n}\n\n.page-preview-item {\n\tborder: 2px solid var(--color-border);\n\tborder-radius: var(--border-radius-container);\n\tmargin-inline-end: calc(3 * var(--default-grid-baseline));\n\twidth: unset;\n}\n</style>\n","<!--\n  - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n  - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<PagePreview\n\t\tv-if=\"richObject\"\n\t\t:notFound\n\t\t:link=\"richObject.link\"\n\t\t:title=\"richObject.page?.title || ''\"\n\t\t:description=\"richObject.description\"\n\t\t:emoji=\"richObject.page?.emoji\"\n\t\t:lastEdited=\"richObject.lastEdited\"\n\t\t:lastUserId=\"richObject.page?.lastUserId\"\n\t\t:lastUserDisplayName=\"richObject.page?.lastUserDisplayName\" />\n</template>\n\n<script>\nimport PagePreview from '../components/PagePreview.vue'\n\nexport default {\n\tname: 'PageReferenceWidget',\n\n\tcomponents: {\n\t\tPagePreview,\n\t},\n\n\t/* eslint-disable vue/no-unused-properties */\n\t/* eslint-disable vue/no-boolean-default */\n\tprops: {\n\t\trichObjectType: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\trichObject: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\taccessible: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tnotFound() {\n\t\t\treturn this.accessible === false\n\t\t},\n\t},\n}\n</script>\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { App } from 'vue'\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport {\n\tNcCustomPickerRenderResult,\n\tregisterCustomPickerElement,\n\tregisterWidget,\n} from '@nextcloud/vue/components/NcRichText'\nimport PagePicker from './views/PagePicker.vue'\nimport PageReferenceWidget from './views/PageReferenceWidget.vue'\n\nregisterWidget('collectives_page', (el, { richObjectType, richObject, accessible }) => {\n\tcreateApp(PageReferenceWidget, {\n\t\trichObjectType,\n\t\trichObject,\n\t\taccessible,\n\t}).mount(el)\n})\n\nregisterCustomPickerElement('collectives-ref-pages', (el, { providerId, accessible }) => {\n\tconst pinia = createPinia()\n\tconst app = createApp(PagePicker, { providerId, accessible })\n\tapp.use(pinia)\n\tapp.mount(el)\n\treturn new NcCustomPickerRenderResult(el, app)\n}, (el, renderResult) => {\n\t(renderResult.object as App)?.unmount()\n}, 'normal')\n"],"names":["searchRecentPages","query","axios","apiUrl","_sfc_main","_hoisted_3","_createElementBlock","_mergeProps","_ctx","$props","_cache","$event","_createElementVNode","_openBlock","_sfc_main$2","defineComponent","NcUserBubble","PageIcon","t","event","_hoisted_2","_hoisted_4","_normalizeClass","_normalizeStyle","args","_toDisplayString","_createBlock","_component_PageIcon","_Fragment","_createTextVNode","_hoisted_5","_createVNode","_component_NcUserBubble","_sfc_main$1","AlertOutlineIcon","CollectivesIcon","FilterCheckOutlineIcon","FilterOutlineIcon","NcActionCheckbox","NcActions","NcActionText","NcButton","NcEmptyContent","NcLoadingIcon","NcTextField","PagePreview","isPublicShare","debounce","recentPages","byTimeAsc","lowerQuery","collectiveNameMatches","p","newValue","storeIndex","raw","ALL_PAGES_STORE_NAME","allPagesMap","page","collectivePath","pagePath","pageLink","generateUrl","collectiveNameWithEmoji","collectiveAndPagePath","currentQuery","response","_hoisted_1","_hoisted_6","_component_NcTextField","_component_NcActions","_withCtx","_component_FilterCheckOutlineIcon","_component_FilterOutlineIcon","_component_NcActionCheckbox","_component_NcActionText","_component_AlertOutlineIcon","_renderList","_component_PagePreview","_component_NcEmptyContent","_component_NcLoadingIcon","_component_CollectivesIcon","_component_NcButton","$options","registerWidget","el","richObjectType","richObject","accessible","createApp","PageReferenceWidget","registerCustomPickerElement","providerId","pinia","createPinia","app","PagePicker","NcCustomPickerRenderResult","renderResult"],"mappings":"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","x_google_ignoreList":[1,2,3]}