@pristy/pristy-libvue 2.11.2 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ActivityHistory-Dvbc4pJJ.js → ActivityHistory-Dod2uLRS.js} +6 -6
- package/dist/{ActivityHistory-Dvbc4pJJ.js.map → ActivityHistory-Dod2uLRS.js.map} +1 -1
- package/dist/{BookmarksComponent--MeUpzdk.js → BookmarksComponent-BZ75OZuG.js} +4 -4
- package/dist/{BookmarksComponent--MeUpzdk.js.map → BookmarksComponent-BZ75OZuG.js.map} +1 -1
- package/dist/{ChartWrapper-DTaV2iGz.js → ChartWrapper-BHzSiaHp.js} +2 -2
- package/dist/{ChartWrapper-DTaV2iGz.js.map → ChartWrapper-BHzSiaHp.js.map} +1 -1
- package/dist/{DisplayFileInDashboardComponent-BteIB_Wo.js → DisplayFileInDashboardComponent--aI8fcfV.js} +17 -17
- package/dist/{DisplayFileInDashboardComponent-BteIB_Wo.js.map → DisplayFileInDashboardComponent--aI8fcfV.js.map} +1 -1
- package/dist/{ExternalApps-DFSifuKE.js → ExternalApps-Dkpo7w49.js} +9 -9
- package/dist/{ExternalApps-DFSifuKE.js.map → ExternalApps-Dkpo7w49.js.map} +1 -1
- package/dist/{FavoriteList-986Kirck.js → FavoriteList-CfK5vTWD.js} +10 -10
- package/dist/{FavoriteList-986Kirck.js.map → FavoriteList-CfK5vTWD.js.map} +1 -1
- package/dist/{MarkdownComponent-CofjgT1-.js → MarkdownComponent-Dd3KWcDV.js} +4 -4
- package/dist/{MarkdownComponent-CofjgT1-.js.map → MarkdownComponent-Dd3KWcDV.js.map} +1 -1
- package/dist/{SearchInput-nQshufOo.js → SearchInput-DrhF_V64.js} +2 -2
- package/dist/{SearchInput-nQshufOo.js.map → SearchInput-DrhF_V64.js.map} +1 -1
- package/dist/{UnknownBlockType-ltqGOaj-.js → UnknownBlockType-8Mqo_7b4.js} +2 -2
- package/dist/{UnknownBlockType-ltqGOaj-.js.map → UnknownBlockType-8Mqo_7b4.js.map} +1 -1
- package/dist/{index-R9eTDd-U.js → index-Dj0iUeS4.js} +8765 -8681
- package/dist/index-Dj0iUeS4.js.map +1 -0
- package/dist/pristy-libvue.css +1 -1
- package/dist/pristy-libvue.es.js +76 -75
- package/dist/pristy-libvue.umd.js +20 -20
- package/dist/pristy-libvue.umd.js.map +1 -1
- package/dist/src/components/CodeMirrorEditor.vue.d.ts.map +1 -1
- package/dist/src/components/PristyIcon.vue.d.ts +3 -3
- package/dist/src/components/navigation/ContentCompactTableView.vue.d.ts +3 -3
- package/dist/src/components/navigation/ContentGridView.vue.d.ts +3 -3
- package/dist/src/components/navigation/ContentListView.vue.d.ts +3 -3
- package/dist/src/components/navigation/ContentTableView.vue.d.ts +3 -3
- package/dist/src/components/navigation/DynamicContentView.vue.d.ts +12 -12
- package/dist/src/components/navigation/GhostNodeRow.vue.d.ts +3 -3
- package/dist/src/composables/useCollabEditor.d.ts.map +1 -1
- package/dist/src/composables/useCollabWebSocket.d.ts.map +1 -1
- package/dist/src/i18n/index.d.ts +4 -0
- package/dist/src/i18n/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/services/AlfrescoProxyService.d.ts +29 -0
- package/dist/src/services/AlfrescoProxyService.d.ts.map +1 -0
- package/dist/src/services/ChatBackendService.d.ts +3 -13
- package/dist/src/services/ChatBackendService.d.ts.map +1 -1
- package/dist/src/services/DiffusionService.d.ts +61 -0
- package/dist/src/services/DiffusionService.d.ts.map +1 -0
- package/dist/src/services/WorkspaceService.d.ts +1 -1
- package/dist/src/services/WorkspaceService.d.ts.map +1 -1
- package/dist/src/stores/config.d.ts +3 -0
- package/dist/src/stores/config.d.ts.map +1 -1
- package/package.json +13 -13
- package/dist/index-R9eTDd-U.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as h, c as g, f as b, b as _ } from "./index-Dj0iUeS4.js";
|
|
2
2
|
import { mapState as H } from "pinia";
|
|
3
3
|
import T from "primevue/dataview";
|
|
4
4
|
import w from "primevue/tooltip";
|
|
@@ -162,7 +162,7 @@ const P = {
|
|
|
162
162
|
});
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
|
-
},
|
|
165
|
+
}, C = { class: "activity-content" }, D = { class: "activity-text" }, R = { class: "cursor-default" }, $ = ["innerHTML"], M = {
|
|
166
166
|
key: 0,
|
|
167
167
|
class: "activity-count"
|
|
168
168
|
}, V = { class: "activity-date" };
|
|
@@ -192,9 +192,9 @@ function x(e, t, s, r, o, i) {
|
|
|
192
192
|
class: N([i.getIcon(n.entry.activityType), "activity-icon"]),
|
|
193
193
|
"aria-hidden": "true"
|
|
194
194
|
}, null, 2),
|
|
195
|
-
d("div",
|
|
196
|
-
d("p",
|
|
197
|
-
O((u(), m("strong",
|
|
195
|
+
d("div", C, [
|
|
196
|
+
d("p", D, [
|
|
197
|
+
O((u(), m("strong", R, [
|
|
198
198
|
y(v(i.getUserDisplayName(n.entry)), 1)
|
|
199
199
|
])), [
|
|
200
200
|
[
|
|
@@ -222,4 +222,4 @@ const W = /* @__PURE__ */ h(P, [["render", x], ["__scopeId", "data-v-298133b0"]]
|
|
|
222
222
|
export {
|
|
223
223
|
W as default
|
|
224
224
|
};
|
|
225
|
-
//# sourceMappingURL=ActivityHistory-
|
|
225
|
+
//# sourceMappingURL=ActivityHistory-Dod2uLRS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActivityHistory-Dvbc4pJJ.js","sources":["../src/components/dashboard/widgets/ActivityHistory.vue"],"sourcesContent":["<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n<template>\n <div ref=\"container\" class=\"activity-container\" @click=\"onActivityClick\">\n <PrimeDataView\n :value=\"groupedActivities\"\n paginator\n :rows=\"visibleRows\"\n layout=\"list\"\n >\n <template #empty>\n {{ $t(\"emptyActivityHistory\") }}\n </template>\n <template #list=\"slotProps\">\n <div>\n <div\n v-for=\"group in slotProps.items\"\n :key=\"group.entry.id\"\n class=\"activity-row\"\n >\n <i\n :class=\"getIcon(group.entry.activityType)\"\n class=\"activity-icon\"\n aria-hidden=\"true\"\n ></i>\n\n <div class=\"activity-content\">\n <p class=\"activity-text\">\n <strong\n v-tooltip.bottom=\"group.entry.postPersonId\"\n class=\"cursor-default\"\n >\n {{ getUserDisplayName(group.entry) }}\n </strong>\n <!-- eslint-disable-next-line vue/no-v-html -- Activity messages contain safe HTML with escaped user content -->\n <span v-html=\"' ' + getActivityMessageHtml(group.entry)\"></span>\n <span v-if=\"group.count > 1\" class=\"activity-count\">\n (+{{ group.count - 1 }})\n </span>\n </p>\n <p class=\"activity-date\">\n {{ formatDateTime(group.entry.postedAt) }}\n </p>\n </div>\n </div>\n </div>\n </template>\n </PrimeDataView>\n </div>\n</template>\n\n<script>\nimport { activitiesApi } from \"@/AlfrescoApi.js\";\nimport formatService from \"@/services/FormatService.js\";\nimport { useConfigStore } from \"@/stores/config\";\nimport { mapState } from \"pinia\";\nimport DataView from \"primevue/dataview\";\nimport Tooltip from \"primevue/tooltip\";\n\nexport default {\n name: \"ActivityHistory\",\n components: {\n PrimeDataView: DataView,\n },\n directives: {\n tooltip: Tooltip,\n },\n props: {\n urlResolver: {\n type: Function,\n default: null,\n },\n },\n data() {\n return {\n activities: null,\n visibleRows: 5,\n resizeObserver: null,\n };\n },\n computed: {\n ...mapState(useConfigStore, [\"ESPACES_HOST\"]),\n groupedActivities() {\n if (!this.activities) {\n return [];\n }\n const groups = [];\n for (const activity of this.activities) {\n const prev = groups[groups.length - 1];\n if (prev && this.isSameGroup(prev.entry, activity.entry)) {\n prev.count++;\n } else {\n groups.push({ entry: activity.entry, count: 1 });\n }\n }\n return groups;\n },\n },\n mounted() {\n this.getActivity();\n this.resizeObserver = new ResizeObserver(() => this.computeVisibleRows());\n this.resizeObserver.observe(this.$refs.container);\n },\n beforeUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n },\n methods: {\n isSameGroup(a, b) {\n return (\n a.postPersonId === b.postPersonId &&\n a.activitySummary?.objectId === b.activitySummary?.objectId &&\n a.activitySummary?.objectId !== undefined\n );\n },\n computeVisibleRows() {\n const container = this.$refs.container;\n if (!container) {\n return;\n }\n const ROW_HEIGHT = 52;\n const PAGINATOR_HEIGHT = 50;\n const available = container.clientHeight - PAGINATOR_HEIGHT;\n const rows = Math.max(3, Math.floor(available / ROW_HEIGHT));\n this.visibleRows = rows;\n },\n reloadData() {\n this.getActivity();\n },\n formatDateTime(date) {\n return formatService.formatDateTime(date);\n },\n getIcon(type) {\n if (!type) {\n return \"ri-information-line\";\n }\n\n const exactIconMap = {\n \"org.alfresco.documentlibrary.file-downloaded\": \"ri-download-line\",\n \"org.alfresco.documentlibrary.file-added\": \"ri-add-circle-line\",\n \"org.alfresco.site.user-joined\": \"ri-user-add-line\",\n \"org.alfresco.site.user-left\": \"ri-user-unfollow-line\",\n \"org.alfresco.site.user-role-changed\": \"ri-user-settings-line\",\n \"org.alfresco.calendar.event-created\": \"ri-calendar-check-line\",\n \"org.alfresco.calendar.event-updated\": \"ri-calendar-line\",\n \"org.alfresco.calendar.event-deleted\": \"ri-calendar-close-line\",\n \"org.alfresco.blog.post-created\": \"ri-article-line\",\n \"org.alfresco.blog.post-updated\": \"ri-article-line\",\n \"org.alfresco.blog.post-deleted\": \"ri-delete-bin-line\",\n \"org.alfresco.links.link-created\": \"ri-link\",\n \"org.alfresco.links.link-updated\": \"ri-link\",\n \"org.alfresco.links.link-deleted\": \"ri-delete-bin-line\",\n };\n\n if (exactIconMap[type]) {\n return exactIconMap[type];\n }\n\n if (type.includes(\"deleted\")) {\n return \"ri-delete-bin-line\";\n }\n if (type.includes(\"added\") || type.includes(\"created\")) {\n return \"ri-add-circle-line\";\n }\n if (type.includes(\"updated\") || type.includes(\"edited\")) {\n return \"ri-edit-line\";\n }\n if (type.includes(\"downloaded\")) {\n return \"ri-download-line\";\n }\n if (type.includes(\"comment\")) {\n return \"ri-chat-3-line\";\n }\n if (type.includes(\"discussion\") || type.includes(\"reply\")) {\n return \"ri-discuss-line\";\n }\n if (type.includes(\"user-joined\")) {\n return \"ri-user-add-line\";\n }\n if (type.includes(\"user-left\")) {\n return \"ri-user-unfollow-line\";\n }\n if (type.includes(\"role-changed\")) {\n return \"ri-user-settings-line\";\n }\n\n return \"ri-information-line\";\n },\n getUserDisplayName(entry) {\n const summary = entry.activitySummary || {};\n if (\n entry.activityType.includes(\"user-role-changed\") ||\n entry.activityType.includes(\"user-joined\") ||\n entry.activityType.includes(\"user-left\")\n ) {\n const first = summary.memberFirstName || summary.firstName || \"\";\n const last = summary.memberLastName || summary.lastName || \"\";\n return (first + \" \" + last).trim() || entry.postPersonId;\n }\n const first = summary.firstName || \"\";\n const last = summary.lastName || \"\";\n return (first + \" \" + last).trim() || entry.postPersonId;\n },\n getObjectUrl(entry) {\n const summary = entry.activitySummary || {};\n if (!summary.objectId || !this.ESPACES_HOST) {\n return null;\n }\n if (entry.activityType.includes(\"folder\")) {\n return `${this.ESPACES_HOST}/espaces/mes-espaces/dossier/${summary.objectId}`;\n }\n return `${this.ESPACES_HOST}/espaces/${summary.objectId}`;\n },\n escapeHtml(text) {\n const div = document.createElement(\"div\");\n div.textContent = text;\n return div.innerHTML;\n },\n getActivitiesMessages() {\n // Activity type keys contain dots (e.g. \"org.alfresco.documentlibrary.file-added\")\n // which $t() interprets as nested path separators.\n // Use $tm() to get the raw message object for the \"activities\" key.\n const raw = this.$tm(\"activities\");\n if (raw && typeof raw === \"object\") {\n // $tm() returns reactive message objects; convert values to plain strings\n const messages = {};\n for (const key of Object.keys(raw)) {\n const val = raw[key];\n messages[key] =\n typeof val === \"string\" ? val : val?.toString?.() || String(val);\n }\n return messages;\n }\n return {};\n },\n getActivityMessageHtml(entry) {\n const summary = entry.activitySummary || {};\n const title = summary.title || \"\";\n const activities = this.getActivitiesMessages();\n\n const params = {\n title: title,\n firstName: summary.firstName || \"\",\n siteName: summary.siteName || \"\",\n newTitle: summary.newTitle || \"\",\n role: this.$t(`role.${summary.role}`, summary.role || \"\"),\n type: entry.activityType,\n };\n\n let message = activities[entry.activityType] || activities[\"unknown\"];\n if (!message) {\n return this.escapeHtml(entry.activityType);\n }\n\n // Interpolate all params except title\n Object.keys(params).forEach((key) => {\n if (key === \"title\") {\n return;\n }\n message = message.replace(\n new RegExp(`\\\\{${key}\\\\}`, \"g\"),\n this.escapeHtml(params[key]),\n );\n });\n\n // Escape the rest of the message\n // Split around {title} placeholders, escape each part, then rejoin with the link\n if (title) {\n const summary = entry.activitySummary || {};\n const objectId = summary.objectId;\n const escapedTitle = this.escapeHtml(title);\n let titleHtml;\n if (this.urlResolver && objectId) {\n const siteId = entry.siteId || \"\";\n titleHtml = `<a href=\"javascript:void(0)\" data-object-id=\"${this.escapeHtml(objectId)}\" data-site-id=\"${this.escapeHtml(siteId)}\" data-is-folder=\"${entry.activityType.includes(\"folder\")}\" class=\"activity-link\">${escapedTitle}</a>`;\n } else {\n const url = this.getObjectUrl(entry);\n titleHtml = url\n ? `<a href=\"${this.escapeHtml(url)}\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"activity-link\">${escapedTitle}</a>`\n : `<strong>${escapedTitle}</strong>`;\n }\n const parts = message.split(\"{title}\");\n message = parts.map((p) => this.escapeHtml(p)).join(titleHtml);\n } else {\n message = this.escapeHtml(message);\n }\n\n return message;\n },\n onActivityClick(event) {\n const link = event.target.closest(\".activity-link[data-object-id]\");\n if (!link || !this.urlResolver) {\n return;\n }\n event.preventDefault();\n const objectId = link.dataset.objectId;\n const siteId = link.dataset.siteId || \"\";\n const isFolder = link.dataset.isFolder === \"true\";\n this.urlResolver({\n id: objectId,\n siteId,\n isFolder,\n forceOverview: isFolder,\n });\n },\n getActivity() {\n let opts = {};\n return activitiesApi\n .listActivitiesForPerson(\"-me-\", opts)\n .then((data) => {\n this.activities = data.list.entries;\n });\n },\n },\n};\n</script>\n\n<style scoped>\n.activity-container {\n height: 100%;\n}\n\n.activity-row {\n display: flex;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.activity-icon {\n font-size: 1.25rem;\n color: var(--p-primary-color);\n margin-top: 0.25rem;\n}\n\n.activity-content {\n flex: 1;\n min-width: 0;\n}\n\n.activity-text {\n font-size: 0.875rem;\n margin: 0;\n}\n\n.activity-count {\n margin-left: 0.25rem;\n font-size: 0.75rem;\n color: var(--p-text-muted-color);\n}\n\n.activity-date {\n font-size: 0.75rem;\n color: var(--p-text-muted-color);\n margin: 0;\n margin-top: 0.25rem;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n:deep(.activity-link) {\n color: var(--p-primary-color);\n text-decoration: none;\n font-weight: 600;\n}\n\n:deep(.activity-link:hover) {\n text-decoration: underline;\n}\n\n:deep(.activity-link:focus-visible) {\n outline: 2px solid var(--p-primary-color);\n outline-offset: 2px;\n border-radius: 2px;\n}\n</style>\n"],"names":["_sfc_main","DataView","Tooltip","mapState","useConfigStore","groups","activity","prev","a","b","container","ROW_HEIGHT","available","rows","date","formatService","type","exactIconMap","entry","summary","first","last","text","div","raw","messages","key","val","title","activities","params","message","objectId","escapedTitle","titleHtml","siteId","url","p","event","link","isFolder","opts","activitiesApi","data","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_6","_createElementBlock","$options","args","_createVNode","_component_PrimeDataView","$data","_ctx","_withCtx","slotProps","_createElementVNode","_openBlock","_Fragment","_renderList","group","_normalizeClass","_withDirectives","_hoisted_5","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ActivityHistory-Dod2uLRS.js","sources":["../src/components/dashboard/widgets/ActivityHistory.vue"],"sourcesContent":["<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n<template>\n <div ref=\"container\" class=\"activity-container\" @click=\"onActivityClick\">\n <PrimeDataView\n :value=\"groupedActivities\"\n paginator\n :rows=\"visibleRows\"\n layout=\"list\"\n >\n <template #empty>\n {{ $t(\"emptyActivityHistory\") }}\n </template>\n <template #list=\"slotProps\">\n <div>\n <div\n v-for=\"group in slotProps.items\"\n :key=\"group.entry.id\"\n class=\"activity-row\"\n >\n <i\n :class=\"getIcon(group.entry.activityType)\"\n class=\"activity-icon\"\n aria-hidden=\"true\"\n ></i>\n\n <div class=\"activity-content\">\n <p class=\"activity-text\">\n <strong\n v-tooltip.bottom=\"group.entry.postPersonId\"\n class=\"cursor-default\"\n >\n {{ getUserDisplayName(group.entry) }}\n </strong>\n <!-- eslint-disable-next-line vue/no-v-html -- Activity messages contain safe HTML with escaped user content -->\n <span v-html=\"' ' + getActivityMessageHtml(group.entry)\"></span>\n <span v-if=\"group.count > 1\" class=\"activity-count\">\n (+{{ group.count - 1 }})\n </span>\n </p>\n <p class=\"activity-date\">\n {{ formatDateTime(group.entry.postedAt) }}\n </p>\n </div>\n </div>\n </div>\n </template>\n </PrimeDataView>\n </div>\n</template>\n\n<script>\nimport { activitiesApi } from \"@/AlfrescoApi.js\";\nimport formatService from \"@/services/FormatService.js\";\nimport { useConfigStore } from \"@/stores/config\";\nimport { mapState } from \"pinia\";\nimport DataView from \"primevue/dataview\";\nimport Tooltip from \"primevue/tooltip\";\n\nexport default {\n name: \"ActivityHistory\",\n components: {\n PrimeDataView: DataView,\n },\n directives: {\n tooltip: Tooltip,\n },\n props: {\n urlResolver: {\n type: Function,\n default: null,\n },\n },\n data() {\n return {\n activities: null,\n visibleRows: 5,\n resizeObserver: null,\n };\n },\n computed: {\n ...mapState(useConfigStore, [\"ESPACES_HOST\"]),\n groupedActivities() {\n if (!this.activities) {\n return [];\n }\n const groups = [];\n for (const activity of this.activities) {\n const prev = groups[groups.length - 1];\n if (prev && this.isSameGroup(prev.entry, activity.entry)) {\n prev.count++;\n } else {\n groups.push({ entry: activity.entry, count: 1 });\n }\n }\n return groups;\n },\n },\n mounted() {\n this.getActivity();\n this.resizeObserver = new ResizeObserver(() => this.computeVisibleRows());\n this.resizeObserver.observe(this.$refs.container);\n },\n beforeUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n },\n methods: {\n isSameGroup(a, b) {\n return (\n a.postPersonId === b.postPersonId &&\n a.activitySummary?.objectId === b.activitySummary?.objectId &&\n a.activitySummary?.objectId !== undefined\n );\n },\n computeVisibleRows() {\n const container = this.$refs.container;\n if (!container) {\n return;\n }\n const ROW_HEIGHT = 52;\n const PAGINATOR_HEIGHT = 50;\n const available = container.clientHeight - PAGINATOR_HEIGHT;\n const rows = Math.max(3, Math.floor(available / ROW_HEIGHT));\n this.visibleRows = rows;\n },\n reloadData() {\n this.getActivity();\n },\n formatDateTime(date) {\n return formatService.formatDateTime(date);\n },\n getIcon(type) {\n if (!type) {\n return \"ri-information-line\";\n }\n\n const exactIconMap = {\n \"org.alfresco.documentlibrary.file-downloaded\": \"ri-download-line\",\n \"org.alfresco.documentlibrary.file-added\": \"ri-add-circle-line\",\n \"org.alfresco.site.user-joined\": \"ri-user-add-line\",\n \"org.alfresco.site.user-left\": \"ri-user-unfollow-line\",\n \"org.alfresco.site.user-role-changed\": \"ri-user-settings-line\",\n \"org.alfresco.calendar.event-created\": \"ri-calendar-check-line\",\n \"org.alfresco.calendar.event-updated\": \"ri-calendar-line\",\n \"org.alfresco.calendar.event-deleted\": \"ri-calendar-close-line\",\n \"org.alfresco.blog.post-created\": \"ri-article-line\",\n \"org.alfresco.blog.post-updated\": \"ri-article-line\",\n \"org.alfresco.blog.post-deleted\": \"ri-delete-bin-line\",\n \"org.alfresco.links.link-created\": \"ri-link\",\n \"org.alfresco.links.link-updated\": \"ri-link\",\n \"org.alfresco.links.link-deleted\": \"ri-delete-bin-line\",\n };\n\n if (exactIconMap[type]) {\n return exactIconMap[type];\n }\n\n if (type.includes(\"deleted\")) {\n return \"ri-delete-bin-line\";\n }\n if (type.includes(\"added\") || type.includes(\"created\")) {\n return \"ri-add-circle-line\";\n }\n if (type.includes(\"updated\") || type.includes(\"edited\")) {\n return \"ri-edit-line\";\n }\n if (type.includes(\"downloaded\")) {\n return \"ri-download-line\";\n }\n if (type.includes(\"comment\")) {\n return \"ri-chat-3-line\";\n }\n if (type.includes(\"discussion\") || type.includes(\"reply\")) {\n return \"ri-discuss-line\";\n }\n if (type.includes(\"user-joined\")) {\n return \"ri-user-add-line\";\n }\n if (type.includes(\"user-left\")) {\n return \"ri-user-unfollow-line\";\n }\n if (type.includes(\"role-changed\")) {\n return \"ri-user-settings-line\";\n }\n\n return \"ri-information-line\";\n },\n getUserDisplayName(entry) {\n const summary = entry.activitySummary || {};\n if (\n entry.activityType.includes(\"user-role-changed\") ||\n entry.activityType.includes(\"user-joined\") ||\n entry.activityType.includes(\"user-left\")\n ) {\n const first = summary.memberFirstName || summary.firstName || \"\";\n const last = summary.memberLastName || summary.lastName || \"\";\n return (first + \" \" + last).trim() || entry.postPersonId;\n }\n const first = summary.firstName || \"\";\n const last = summary.lastName || \"\";\n return (first + \" \" + last).trim() || entry.postPersonId;\n },\n getObjectUrl(entry) {\n const summary = entry.activitySummary || {};\n if (!summary.objectId || !this.ESPACES_HOST) {\n return null;\n }\n if (entry.activityType.includes(\"folder\")) {\n return `${this.ESPACES_HOST}/espaces/mes-espaces/dossier/${summary.objectId}`;\n }\n return `${this.ESPACES_HOST}/espaces/${summary.objectId}`;\n },\n escapeHtml(text) {\n const div = document.createElement(\"div\");\n div.textContent = text;\n return div.innerHTML;\n },\n getActivitiesMessages() {\n // Activity type keys contain dots (e.g. \"org.alfresco.documentlibrary.file-added\")\n // which $t() interprets as nested path separators.\n // Use $tm() to get the raw message object for the \"activities\" key.\n const raw = this.$tm(\"activities\");\n if (raw && typeof raw === \"object\") {\n // $tm() returns reactive message objects; convert values to plain strings\n const messages = {};\n for (const key of Object.keys(raw)) {\n const val = raw[key];\n messages[key] =\n typeof val === \"string\" ? val : val?.toString?.() || String(val);\n }\n return messages;\n }\n return {};\n },\n getActivityMessageHtml(entry) {\n const summary = entry.activitySummary || {};\n const title = summary.title || \"\";\n const activities = this.getActivitiesMessages();\n\n const params = {\n title: title,\n firstName: summary.firstName || \"\",\n siteName: summary.siteName || \"\",\n newTitle: summary.newTitle || \"\",\n role: this.$t(`role.${summary.role}`, summary.role || \"\"),\n type: entry.activityType,\n };\n\n let message = activities[entry.activityType] || activities[\"unknown\"];\n if (!message) {\n return this.escapeHtml(entry.activityType);\n }\n\n // Interpolate all params except title\n Object.keys(params).forEach((key) => {\n if (key === \"title\") {\n return;\n }\n message = message.replace(\n new RegExp(`\\\\{${key}\\\\}`, \"g\"),\n this.escapeHtml(params[key]),\n );\n });\n\n // Escape the rest of the message\n // Split around {title} placeholders, escape each part, then rejoin with the link\n if (title) {\n const summary = entry.activitySummary || {};\n const objectId = summary.objectId;\n const escapedTitle = this.escapeHtml(title);\n let titleHtml;\n if (this.urlResolver && objectId) {\n const siteId = entry.siteId || \"\";\n titleHtml = `<a href=\"javascript:void(0)\" data-object-id=\"${this.escapeHtml(objectId)}\" data-site-id=\"${this.escapeHtml(siteId)}\" data-is-folder=\"${entry.activityType.includes(\"folder\")}\" class=\"activity-link\">${escapedTitle}</a>`;\n } else {\n const url = this.getObjectUrl(entry);\n titleHtml = url\n ? `<a href=\"${this.escapeHtml(url)}\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"activity-link\">${escapedTitle}</a>`\n : `<strong>${escapedTitle}</strong>`;\n }\n const parts = message.split(\"{title}\");\n message = parts.map((p) => this.escapeHtml(p)).join(titleHtml);\n } else {\n message = this.escapeHtml(message);\n }\n\n return message;\n },\n onActivityClick(event) {\n const link = event.target.closest(\".activity-link[data-object-id]\");\n if (!link || !this.urlResolver) {\n return;\n }\n event.preventDefault();\n const objectId = link.dataset.objectId;\n const siteId = link.dataset.siteId || \"\";\n const isFolder = link.dataset.isFolder === \"true\";\n this.urlResolver({\n id: objectId,\n siteId,\n isFolder,\n forceOverview: isFolder,\n });\n },\n getActivity() {\n let opts = {};\n return activitiesApi\n .listActivitiesForPerson(\"-me-\", opts)\n .then((data) => {\n this.activities = data.list.entries;\n });\n },\n },\n};\n</script>\n\n<style scoped>\n.activity-container {\n height: 100%;\n}\n\n.activity-row {\n display: flex;\n gap: 0.75rem;\n padding: 0.5rem 0;\n}\n\n.activity-icon {\n font-size: 1.25rem;\n color: var(--p-primary-color);\n margin-top: 0.25rem;\n}\n\n.activity-content {\n flex: 1;\n min-width: 0;\n}\n\n.activity-text {\n font-size: 0.875rem;\n margin: 0;\n}\n\n.activity-count {\n margin-left: 0.25rem;\n font-size: 0.75rem;\n color: var(--p-text-muted-color);\n}\n\n.activity-date {\n font-size: 0.75rem;\n color: var(--p-text-muted-color);\n margin: 0;\n margin-top: 0.25rem;\n}\n\n.cursor-default {\n cursor: default;\n}\n\n:deep(.activity-link) {\n color: var(--p-primary-color);\n text-decoration: none;\n font-weight: 600;\n}\n\n:deep(.activity-link:hover) {\n text-decoration: underline;\n}\n\n:deep(.activity-link:focus-visible) {\n outline: 2px solid var(--p-primary-color);\n outline-offset: 2px;\n border-radius: 2px;\n}\n</style>\n"],"names":["_sfc_main","DataView","Tooltip","mapState","useConfigStore","groups","activity","prev","a","b","container","ROW_HEIGHT","available","rows","date","formatService","type","exactIconMap","entry","summary","first","last","text","div","raw","messages","key","val","title","activities","params","message","objectId","escapedTitle","titleHtml","siteId","url","p","event","link","isFolder","opts","activitiesApi","data","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_6","_createElementBlock","$options","args","_createVNode","_component_PrimeDataView","$data","_ctx","_withCtx","slotProps","_createElementVNode","_openBlock","_Fragment","_renderList","group","_normalizeClass","_withDirectives","_hoisted_5","_toDisplayString"],"mappings":";;;;;AAyEA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,eAAeC;AAAA;EAEjB,YAAY;AAAA,IACV,SAASC;AAAA;EAEX,OAAO;AAAA,IACL,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;EAGb,OAAO;AACL,WAAO;AAAA,MACL,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,gBAAgB;AAAA;EAEpB;AAAA,EACA,UAAU;AAAA,IACR,GAAGC,EAASC,GAAgB,CAAC,cAAc,CAAC;AAAA,IAC5C,oBAAoB;AAClB,UAAI,CAAC,KAAK;AACR,eAAO,CAAA;AAET,YAAMC,IAAS,CAAA;AACf,iBAAWC,KAAY,KAAK,YAAY;AACtC,cAAMC,IAAOF,EAAOA,EAAO,SAAS,CAAC;AACrC,QAAIE,KAAQ,KAAK,YAAYA,EAAK,OAAOD,EAAS,KAAK,IACrDC,EAAK,UAELF,EAAO,KAAK,EAAE,OAAOC,EAAS,OAAO,OAAO,GAAG;AAAA,MAEnD;AACA,aAAOD;AAAA,IACT;AAAA;EAEF,UAAU;AACR,SAAK,YAAW,GAChB,KAAK,iBAAiB,IAAI,eAAe,MAAM,KAAK,mBAAkB,CAAE,GACxE,KAAK,eAAe,QAAQ,KAAK,MAAM,SAAS;AAAA,EAClD;AAAA,EACA,gBAAgB;AACd,IAAI,KAAK,kBACP,KAAK,eAAe,WAAU;AAAA,EAElC;AAAA,EACA,SAAS;AAAA,IACP,YAAYG,GAAGC,GAAG;AAChB,aACED,EAAE,iBAAiBC,EAAE,gBACrBD,EAAE,iBAAiB,aAAaC,EAAE,iBAAiB,YACnDD,EAAE,iBAAiB,aAAa;AAAA,IAEpC;AAAA,IACA,qBAAqB;AACnB,YAAME,IAAY,KAAK,MAAM;AAC7B,UAAI,CAACA;AACH;AAEF,YAAMC,IAAa,IAEbC,IAAYF,EAAU,eADH,IAEnBG,IAAO,KAAK,IAAI,GAAG,KAAK,MAAMD,IAAYD,CAAU,CAAC;AAC3D,WAAK,cAAcE;AAAA,IACrB;AAAA,IACA,aAAa;AACX,WAAK,YAAW;AAAA,IAClB;AAAA,IACA,eAAeC,GAAM;AACnB,aAAOC,EAAc,eAAeD,CAAI;AAAA,IAC1C;AAAA,IACA,QAAQE,GAAM;AACZ,UAAI,CAACA;AACH,eAAO;AAGT,YAAMC,IAAe;AAAA,QACnB,gDAAgD;AAAA,QAChD,2CAA2C;AAAA,QAC3C,iCAAiC;AAAA,QACjC,+BAA+B;AAAA,QAC/B,uCAAuC;AAAA,QACvC,uCAAuC;AAAA,QACvC,uCAAuC;AAAA,QACvC,uCAAuC;AAAA,QACvC,kCAAkC;AAAA,QAClC,kCAAkC;AAAA,QAClC,kCAAkC;AAAA,QAClC,mCAAmC;AAAA,QACnC,mCAAmC;AAAA,QACnC,mCAAmC;AAAA;AAGrC,aAAIA,EAAaD,CAAI,IACZC,EAAaD,CAAI,IAGtBA,EAAK,SAAS,SAAS,IAClB,uBAELA,EAAK,SAAS,OAAO,KAAKA,EAAK,SAAS,SAAS,IAC5C,uBAELA,EAAK,SAAS,SAAS,KAAKA,EAAK,SAAS,QAAQ,IAC7C,iBAELA,EAAK,SAAS,YAAY,IACrB,qBAELA,EAAK,SAAS,SAAS,IAClB,mBAELA,EAAK,SAAS,YAAY,KAAKA,EAAK,SAAS,OAAO,IAC/C,oBAELA,EAAK,SAAS,aAAa,IACtB,qBAELA,EAAK,SAAS,WAAW,IACpB,0BAELA,EAAK,SAAS,cAAc,IACvB,0BAGF;AAAA,IACT;AAAA,IACA,mBAAmBE,GAAO;AACxB,YAAMC,IAAUD,EAAM,mBAAmB,CAAA;AACzC,UACEA,EAAM,aAAa,SAAS,mBAAmB,KAC/CA,EAAM,aAAa,SAAS,aAAa,KACzCA,EAAM,aAAa,SAAS,WAAW,GACvC;AACA,cAAME,IAAQD,EAAQ,mBAAmBA,EAAQ,aAAa,IACxDE,IAAOF,EAAQ,kBAAkBA,EAAQ,YAAY;AAC3D,gBAAQC,IAAQ,MAAMC,GAAM,KAAI,KAAMH,EAAM;AAAA,MAC9C;AACA,YAAME,IAAQD,EAAQ,aAAa,IAC7BE,IAAOF,EAAQ,YAAY;AACjC,cAAQC,IAAQ,MAAMC,GAAM,KAAI,KAAMH,EAAM;AAAA,IAC9C;AAAA,IACA,aAAaA,GAAO;AAClB,YAAMC,IAAUD,EAAM,mBAAmB,CAAA;AACzC,aAAI,CAACC,EAAQ,YAAY,CAAC,KAAK,eACtB,OAELD,EAAM,aAAa,SAAS,QAAQ,IAC/B,GAAG,KAAK,YAAY,gCAAgCC,EAAQ,QAAQ,KAEtE,GAAG,KAAK,YAAY,YAAYA,EAAQ,QAAQ;AAAA,IACzD;AAAA,IACA,WAAWG,GAAM;AACf,YAAMC,IAAM,SAAS,cAAc,KAAK;AACxC,aAAAA,EAAI,cAAcD,GACXC,EAAI;AAAA,IACb;AAAA,IACA,wBAAwB;AAItB,YAAMC,IAAM,KAAK,IAAI,YAAY;AACjC,UAAIA,KAAO,OAAOA,KAAQ,UAAU;AAElC,cAAMC,IAAW,CAAA;AACjB,mBAAWC,KAAO,OAAO,KAAKF,CAAG,GAAG;AAClC,gBAAMG,IAAMH,EAAIE,CAAG;AACnB,UAAAD,EAASC,CAAG,IACV,OAAOC,KAAQ,WAAWA,IAAMA,GAAK,WAAQ,KAAQ,OAAOA,CAAG;AAAA,QACnE;AACA,eAAOF;AAAA,MACT;AACA,aAAO,CAAA;AAAA,IACT;AAAA,IACA,uBAAuBP,GAAO;AAC5B,YAAMC,IAAUD,EAAM,mBAAmB,CAAA,GACnCU,IAAQT,EAAQ,SAAS,IACzBU,IAAa,KAAK,sBAAqB,GAEvCC,IAAS;AAAA,QACb,OAAOF;AAAA,QACP,WAAWT,EAAQ,aAAa;AAAA,QAChC,UAAUA,EAAQ,YAAY;AAAA,QAC9B,UAAUA,EAAQ,YAAY;AAAA,QAC9B,MAAM,KAAK,GAAG,QAAQA,EAAQ,IAAI,IAAIA,EAAQ,QAAQ,EAAE;AAAA,QACxD,MAAMD,EAAM;AAAA;AAGd,UAAIa,IAAUF,EAAWX,EAAM,YAAY,KAAKW,EAAW;AAC3D,UAAI,CAACE;AACH,eAAO,KAAK,WAAWb,EAAM,YAAY;AAgB3C,UAZA,OAAO,KAAKY,CAAM,EAAE,QAAQ,CAACJ,MAAQ;AACnC,QAAIA,MAAQ,YAGZK,IAAUA,EAAQ;AAAA,UAChB,IAAI,OAAO,MAAML,CAAG,OAAO,GAAG;AAAA,UAC9B,KAAK,WAAWI,EAAOJ,CAAG,CAAC;AAAA;MAE/B,CAAC,GAIGE,GAAO;AAET,cAAMI,KADUd,EAAM,mBAAmB,CAAA,GAChB,UACnBe,IAAe,KAAK,WAAWL,CAAK;AAC1C,YAAIM;AACJ,YAAI,KAAK,eAAeF,GAAU;AAChC,gBAAMG,IAASjB,EAAM,UAAU;AAC/B,UAAAgB,IAAY,gDAAgD,KAAK,WAAWF,CAAQ,CAAC,mBAAmB,KAAK,WAAWG,CAAM,CAAC,qBAAqBjB,EAAM,aAAa,SAAS,QAAQ,CAAC,2BAA2Be,CAAY;AAAA,QAClO,OAAO;AACL,gBAAMG,IAAM,KAAK,aAAalB,CAAK;AACnC,UAAAgB,IAAYE,IACR,YAAY,KAAK,WAAWA,CAAG,CAAC,qEAAqEH,CAAY,SACjH,WAAWA,CAAY;AAAA,QAC7B;AAEA,QAAAF,IADcA,EAAQ,MAAM,SAAS,EACrB,IAAI,CAACM,MAAM,KAAK,WAAWA,CAAC,CAAC,EAAE,KAAKH,CAAS;AAAA,MAC/D;AACE,QAAAH,IAAU,KAAK,WAAWA,CAAO;AAGnC,aAAOA;AAAA,IACT;AAAA,IACA,gBAAgBO,GAAO;AACrB,YAAMC,IAAOD,EAAM,OAAO,QAAQ,gCAAgC;AAClE,UAAI,CAACC,KAAQ,CAAC,KAAK;AACjB;AAEF,MAAAD,EAAM,eAAc;AACpB,YAAMN,IAAWO,EAAK,QAAQ,UACxBJ,IAASI,EAAK,QAAQ,UAAU,IAChCC,IAAWD,EAAK,QAAQ,aAAa;AAC3C,WAAK,YAAY;AAAA,QACf,IAAIP;AAAA,QACJ,QAAAG;AAAA,QACA,UAAAK;AAAA,QACA,eAAeA;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,cAAc;AACZ,UAAIC,IAAO,CAAA;AACX,aAAOC,EACJ,wBAAwB,QAAQD,CAAI,EACpC,KAAK,CAACE,MAAS;AACd,aAAK,aAAaA,EAAK,KAAK;AAAA,MAC9B,CAAC;AAAA,IACL;AAAA;AAEJ,GAjSiBC,IAAA,EAAA,OAAM,mBAAkB,GACxBC,IAAA,EAAA,OAAM,gBAAe,GAGpBC,IAAA,EAAA,OAAM,iBAAgB;;EAMK,OAAM;GAIlCC,IAAA,EAAA,OAAM,gBAAe;;;cArCpCC,EA6CM,OAAA;AAAA,IA7CD,KAAI;AAAA,IAAY,OAAM;AAAA,IAAsB,mCAAOC,EAAA,mBAAAA,EAAA,gBAAA,GAAAC,CAAA;AAAA;IACtDC,EA2CgBC,GAAA;AAAA,MA1Cb,OAAOH,EAAA;AAAA,MACR,WAAA;AAAA,MACC,MAAMI,EAAA;AAAA,MACP,QAAO;AAAA;MAEI,SACT,MAAgC;AAAA,YAA7BC,EAAA,GAAE,sBAAA,CAAA,GAAA,CAAA;AAAA;MAEI,MAAIC,EACb,CADeC,MAAS;AAAA,QACxBC,EA+BM,OAAA,MAAA;AAAA,WA9BJC,EAAA,EAAA,GAAAV,EA6BMW,GAAA,MAAAC,EA5BYJ,EAAU,QAAnBK,YADTb,EA6BM,OAAA;AAAA,YA3BH,KAAKa,EAAM,MAAM;AAAA,YAClB,OAAM;AAAA;YAENJ,EAIK,KAAA;AAAA,cAHF,OAAKK,EAAA,CAAEb,UAAQY,EAAM,MAAM,YAAY,GAClC,eAAe,CAAA;AAAA,cACrB,eAAY;AAAA;YAGdJ,EAiBM,OAjBNb,GAiBM;AAAA,cAhBJa,EAYI,KAZJZ,GAYI;AAAA,gBAXFkB,GAAAL,EAAA,GAAAV,EAKS,UALTF,GAKS;AAAA,sBADJG,EAAA,mBAAmBY,EAAM,KAAK,CAAA,GAAA,CAAA;AAAA;;;oBAHfA,EAAM,MAAM;AAAA;oBAApB,EAAA,QAAV,GAA2C;AAAA;;gBAM7CJ,EAAgE,QAAA;AAAA,kBAA1D,WAAkD,MAApCR,EAAA,uBAAuBY,EAAM,KAAK;AAAA;gBAC1CA,EAAM,QAAK,UAAvBb,EAEO,QAFPgB,GAAoD,UAC7CH,EAAM,QAAK,CAAA,IAAO,MACzB,CAAA;;cAEFJ,EAEI,KAFJV,GAEIkB,EADChB,EAAA,eAAeY,EAAM,MAAM,QAAQ,CAAA,GAAA,CAAA;AAAA;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { openBlock as o, createElementBlock as t, createElementVNode as s, Fragment as i, renderList as c, normalizeClass as m, toDisplayString as k } from "vue";
|
|
2
|
-
import {
|
|
3
|
-
const
|
|
2
|
+
import { _ } from "./index-Dj0iUeS4.js";
|
|
3
|
+
const d = {
|
|
4
4
|
name: "BookmarksComponent",
|
|
5
5
|
props: {
|
|
6
6
|
bookmarks: {
|
|
@@ -37,8 +37,8 @@ function v(n, y, r, b, C, a) {
|
|
|
37
37
|
])
|
|
38
38
|
]);
|
|
39
39
|
}
|
|
40
|
-
const R = /* @__PURE__ */ d
|
|
40
|
+
const R = /* @__PURE__ */ _(d, [["render", v], ["__scopeId", "data-v-48871645"]]);
|
|
41
41
|
export {
|
|
42
42
|
R as default
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=BookmarksComponent
|
|
44
|
+
//# sourceMappingURL=BookmarksComponent-BZ75OZuG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookmarksComponent
|
|
1
|
+
{"version":3,"file":"BookmarksComponent-BZ75OZuG.js","sources":["../src/components/dashboard/widgets/BookmarksComponent.vue"],"sourcesContent":["<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n\n<template>\n <div class=\"bookmarks-container\">\n <ul class=\"bookmarks-list\">\n <li\n v-for=\"(bookmark, index) in bookmarks\"\n :key=\"index\"\n @click=\"navigateTo(bookmark)\"\n class=\"bookmark-item\"\n >\n <i\n :class=\"\n bookmark.type === 'folder' ? 'ri-folder-line' : 'ri-file-line'\n \"\n class=\"bookmark-icon\"\n ></i>\n <span class=\"bookmark-name\">\n {{ bookmark.name }}\n </span>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"BookmarksComponent\",\n props: {\n bookmarks: {\n type: Array,\n default: () => [],\n },\n urlResolver: {\n type: Function,\n default: null,\n },\n },\n methods: {\n navigateTo(bookmark) {\n if (this.urlResolver) {\n this.urlResolver(bookmark);\n }\n },\n },\n};\n</script>\n\n<style scoped>\n.bookmarks-container {\n width: 100%;\n}\n\n.bookmarks-list {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n\n.bookmark-item {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 0.5rem 0.75rem;\n border-radius: 0.5rem;\n cursor: pointer;\n transition:\n background-color 0.2s,\n color 0.2s;\n}\n\n.bookmark-item:hover {\n background: var(--p-highlight-background);\n color: var(--p-primary-color);\n}\n\n.bookmark-icon {\n font-size: 1.125rem;\n flex-shrink: 0;\n color: var(--p-primary-color);\n}\n\n.bookmark-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 500;\n}\n</style>\n"],"names":["_sfc_main","bookmark","_hoisted_1","_hoisted_2","_hoisted_4","_openBlock","_createElementBlock","_createElementVNode","_Fragment","_renderList","$props","index","$event","$options","_normalizeClass","_toDisplayString"],"mappings":";;AAyCA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,WAAW;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAM,CAAA;AAAA;IAEjB,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;;EAGb,SAAS;AAAA,IACP,WAAWC,GAAU;AACnB,MAAI,KAAK,eACP,KAAK,YAAYA,CAAQ;AAAA,IAE7B;AAAA;AAEJ,GA1COC,IAAA,EAAA,OAAM,sBAAqB,GAC1BC,IAAA,EAAA,OAAM,iBAAgB,oBAahBC,IAAA,EAAA,OAAM,gBAAe;;AAdjC,SAAAC,EAAA,GAAAC,EAmBM,OAnBNJ,GAmBM;AAAA,IAlBJK,EAiBK,MAjBLJ,GAiBK;AAAA,OAhBHE,EAAA,EAAA,GAAAC,EAeKE,GAAA,MAAAC,EAdyBC,EAAA,WAAS,CAA7BT,GAAUU,YADpBL,EAeK,MAAA;AAAA,QAbF,KAAKK;AAAA,QACL,SAAK,CAAAC,MAAEC,EAAA,WAAWZ,CAAQ;AAAA,QAC3B,OAAM;AAAA;QAENM,EAKK,KAAA;AAAA,UAJF,OAAKO,EAAA;AAAA,YAAeb,EAAS,SAAI,WAAA,mBAAA;AAAA,YAG5B;AAAA,UAAe,CAAA;AAAA;QAEvBM,EAEO,QAFPH,GAEOW,EADFd,EAAS,IAAI,GAAA,CAAA;AAAA;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import r from "primevue/chart";
|
|
2
2
|
import { resolveComponent as n, openBlock as p, createElementBlock as a, createVNode as s } from "vue";
|
|
3
|
-
import {
|
|
3
|
+
import { _ as i } from "./index-Dj0iUeS4.js";
|
|
4
4
|
const l = {
|
|
5
5
|
name: "ChartWrapper",
|
|
6
6
|
components: {
|
|
@@ -56,4 +56,4 @@ const y = /* @__PURE__ */ i(l, [["render", d], ["__scopeId", "data-v-e0f7b28a"]]
|
|
|
56
56
|
export {
|
|
57
57
|
y as default
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=ChartWrapper-
|
|
59
|
+
//# sourceMappingURL=ChartWrapper-BHzSiaHp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartWrapper-
|
|
1
|
+
{"version":3,"file":"ChartWrapper-BHzSiaHp.js","sources":["../src/components/dashboard/widgets/ChartWrapper.vue"],"sourcesContent":["<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n<template>\n <div class=\"chart-wrapper\">\n <PrimeChart\n class=\"chart-full-width\"\n :type=\"type\"\n :data=\"data\"\n :options=\"mergedOptions\"\n />\n </div>\n</template>\n\n<script>\nimport Chart from \"primevue/chart\";\n\nexport default {\n name: \"ChartWrapper\",\n components: {\n PrimeChart: Chart,\n },\n props: {\n type: {\n type: String,\n required: true,\n },\n data: {\n type: Object,\n required: true,\n },\n options: {\n type: Object,\n default: () => ({}),\n },\n },\n computed: {\n textColor() {\n return getComputedStyle(document.documentElement)\n .getPropertyValue(\"--p-text-color\")\n .trim();\n },\n mergedOptions() {\n return {\n ...this.options,\n plugins: {\n ...this.options?.plugins,\n legend: {\n ...this.options?.plugins?.legend,\n labels: {\n ...this.options?.plugins?.legend?.labels,\n color: this.textColor,\n },\n },\n },\n };\n },\n },\n};\n</script>\n\n<style scoped>\n.chart-wrapper {\n display: flex;\n justify-content: center;\n}\n\n.chart-full-width {\n width: 100%;\n}\n</style>\n"],"names":["_sfc_main","Chart","_hoisted_1","_openBlock","_createElementBlock","_createVNode","_component_PrimeChart","$props","$options"],"mappings":";;;AA8BA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,YAAYC;AAAA;EAEd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA;IAEZ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA;IAEZ,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA;;EAGpB,UAAU;AAAA,IACR,YAAY;AACV,aAAO,iBAAiB,SAAS,eAAe,EAC7C,iBAAiB,gBAAgB,EACjC,KAAI;AAAA,IACT;AAAA,IACA,gBAAgB;AACd,aAAO;AAAA,QACL,GAAG,KAAK;AAAA,QACR,SAAS;AAAA,UACP,GAAG,KAAK,SAAS;AAAA,UACjB,QAAQ;AAAA,YACN,GAAG,KAAK,SAAS,SAAS;AAAA,YAC1B,QAAQ;AAAA,cACN,GAAG,KAAK,SAAS,SAAS,QAAQ;AAAA,cAClC,OAAO,KAAK;AAAA;;;;IAKtB;AAAA;AAEJ,GAtDOC,IAAA,EAAA,OAAM,gBAAe;;;AAA1B,SAAAC,EAAA,GAAAC,EAOM,OAPNF,GAOM;AAAA,IANJG,EAKEC,GAAA;AAAA,MAJA,OAAM;AAAA,MACL,MAAMC,EAAA;AAAA,MACN,MAAMA,EAAA;AAAA,MACN,SAASC,EAAA;AAAA;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as l, e as m } from "./index-Dj0iUeS4.js";
|
|
2
2
|
import g from "primevue/image";
|
|
3
3
|
import { resolveComponent as d, openBlock as t, createBlock as y, createCommentVNode as p, createElementBlock as s, createVNode as c, Fragment as h, renderList as D, createElementVNode as I, toDisplayString as F } from "vue";
|
|
4
4
|
import { VuePDF as P, usePDF as k } from "@tato30/vue-pdf";
|
|
@@ -32,9 +32,9 @@ const v = {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
|
-
function C(n,
|
|
36
|
-
const
|
|
37
|
-
return o.id ? (t(), y(
|
|
35
|
+
function C(n, r, o, u, e, f) {
|
|
36
|
+
const a = d("PrimeImage");
|
|
37
|
+
return o.id ? (t(), y(a, {
|
|
38
38
|
key: 0,
|
|
39
39
|
src: e.contentUrl,
|
|
40
40
|
imageClass: "image-displayed"
|
|
@@ -71,20 +71,20 @@ const U = /* @__PURE__ */ l(v, [["render", C], ["__scopeId", "data-v-ca506b36"]]
|
|
|
71
71
|
console.error("URL is not defined");
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
|
-
const
|
|
75
|
-
this.pdf =
|
|
74
|
+
const r = k(n);
|
|
75
|
+
this.pdf = r.pdf, this.pages = r.pages;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
}, S = { key: 0 },
|
|
78
|
+
}, S = { key: 0 }, O = { key: 1 }, b = {
|
|
79
79
|
key: 0,
|
|
80
80
|
class: "pdf-pages-container"
|
|
81
|
-
},
|
|
82
|
-
function
|
|
83
|
-
const
|
|
81
|
+
}, x = { class: "pdf-pagination" };
|
|
82
|
+
function B(n, r, o, u, e, f) {
|
|
83
|
+
const a = d("OnlyImageDisplayed"), _ = d("VuePDF");
|
|
84
84
|
return o.type === "image" ? (t(), s("div", S, [
|
|
85
|
-
c(
|
|
86
|
-
])) : o.type === "pdf" ? (t(), s("div",
|
|
87
|
-
e.pdf ? (t(), s("div",
|
|
85
|
+
c(a, { id: o.id }, null, 8, ["id"])
|
|
86
|
+
])) : o.type === "pdf" ? (t(), s("div", O, [
|
|
87
|
+
e.pdf ? (t(), s("div", b, [
|
|
88
88
|
(t(!0), s(h, null, D(e.pages, (i) => (t(), s("div", { key: i }, [
|
|
89
89
|
c(_, {
|
|
90
90
|
pdf: e.pdf,
|
|
@@ -92,13 +92,13 @@ function x(n, a, o, u, e, f) {
|
|
|
92
92
|
rotation: e.rotation,
|
|
93
93
|
scale: e.scale
|
|
94
94
|
}, null, 8, ["pdf", "page", "rotation", "scale"]),
|
|
95
|
-
I("span",
|
|
95
|
+
I("span", x, F(n.$t("pdf.currentPagination", { page: i, pages: e.pages })), 1)
|
|
96
96
|
]))), 128))
|
|
97
97
|
])) : p("", !0)
|
|
98
98
|
])) : p("", !0);
|
|
99
99
|
}
|
|
100
|
-
const
|
|
100
|
+
const j = /* @__PURE__ */ l(V, [["render", B], ["__scopeId", "data-v-3430e09a"]]);
|
|
101
101
|
export {
|
|
102
|
-
|
|
102
|
+
j as default
|
|
103
103
|
};
|
|
104
|
-
//# sourceMappingURL=DisplayFileInDashboardComponent
|
|
104
|
+
//# sourceMappingURL=DisplayFileInDashboardComponent--aI8fcfV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayFileInDashboardComponent
|
|
1
|
+
{"version":3,"file":"DisplayFileInDashboardComponent--aI8fcfV.js","sources":["../src/components/dashboard/widgets/OnlyImageDisplayed.vue","../src/components/dashboard/widgets/DisplayFileInDashboardComponent.vue"],"sourcesContent":["<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n<template>\n <PrimeImage v-if=\"id\" :src=\"contentUrl\" imageClass=\"image-displayed\" />\n</template>\n<script>\nimport Image from \"primevue/image\";\nimport alfrescoFileService from \"@/services/AlfrescoFileService.js\";\n\nexport default {\n name: \"OnlyImageDisplayed\",\n components: {\n PrimeImage: Image,\n },\n props: {\n id: {\n type: String,\n default: \"\",\n },\n },\n data() {\n return {\n contentUrl: null,\n };\n },\n mounted() {\n this.loadImage();\n },\n methods: {\n loadImage() {\n this.contentUrl = alfrescoFileService.getContentUrl(this.id);\n },\n },\n computed: {\n hasContentUrl() {\n return this.contentUrl !== \"\";\n },\n },\n};\n</script>\n<style scoped>\n:deep(.image-displayed) {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n display: block;\n}\n</style>\n","<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n<template>\n <div v-if=\"type === 'image'\">\n <OnlyImageDisplayed :id=\"id\" />\n </div>\n <div v-else-if=\"type === 'pdf'\">\n <div v-if=\"pdf\" class=\"pdf-pages-container\">\n <div v-for=\"page in pages\" :key=\"page\">\n <VuePDF :pdf=\"pdf\" :page=\"page\" :rotation=\"rotation\" :scale=\"scale\" />\n <span class=\"pdf-pagination\">\n {{ $t(\"pdf.currentPagination\", { page: page, pages: pages }) }}</span\n >\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport alfrescoFileService from \"@/services/AlfrescoFileService.js\";\nimport OnlyImageDisplayed from \"@/components/dashboard/widgets/OnlyImageDisplayed.vue\";\nimport { usePDF, VuePDF } from \"@tato30/vue-pdf\";\n\nexport default {\n name: \"DisplayFileInDashboardComponent\",\n components: { VuePDF, OnlyImageDisplayed },\n props: {\n type: {\n type: String,\n default: \"pdf\",\n },\n id: {\n type: String,\n default: \"\",\n },\n },\n data() {\n return {\n pdf: null,\n pages: 0,\n rotation: 0,\n scale: 1,\n };\n },\n mounted() {\n if (this.type === \"pdf\") {\n this.loadPDF();\n }\n },\n methods: {\n loadPDF() {\n let url = alfrescoFileService.getContentUrl(this.id);\n if (!url) {\n console.error(\"URL is not defined\");\n return;\n }\n const document = usePDF(url);\n this.pdf = document.pdf;\n this.pages = document.pages;\n },\n },\n};\n</script>\n\n<style scoped>\n.pdf-pages-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 1rem;\n}\n\n.pdf-pagination {\n display: flex;\n justify-content: center;\n padding: 1rem;\n}\n</style>\n"],"names":["_sfc_main","Image","alfrescoFileService","$props","_createBlock","_component_PrimeImage","$data","VuePDF","OnlyImageDisplayed","url","document","usePDF","_hoisted_4","_createElementBlock","_hoisted_1","_createVNode","_component_OnlyImageDisplayed","_hoisted_2","_openBlock","_hoisted_3","_Fragment","_renderList","page","_component_VuePDF","_createElementVNode","_toDisplayString","_ctx"],"mappings":";;;;AAuBA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,YAAYC;AAAA;EAEd,OAAO;AAAA,IACL,IAAI;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA;;EAGb,OAAO;AACL,WAAO;AAAA,MACL,YAAY;AAAA;EAEhB;AAAA,EACA,UAAU;AACR,SAAK,UAAS;AAAA,EAChB;AAAA,EACA,SAAS;AAAA,IACP,YAAY;AACV,WAAK,aAAaC,EAAoB,cAAc,KAAK,EAAE;AAAA,IAC7D;AAAA;EAEF,UAAU;AAAA,IACR,gBAAgB;AACd,aAAO,KAAK,eAAe;AAAA,IAC7B;AAAA;AAEJ;;;SAnCoBC,EAAA,WAAlBC,EAAuEC,GAAA;AAAA;IAAhD,KAAKC,EAAA;AAAA,IAAY,YAAW;AAAA;;mFCoBhDN,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY,EAAE,QAAAO,GAAQ,oBAAAC;EACtB,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA;IAEX,IAAI;AAAA,MACF,MAAM;AAAA,MACN,SAAS;AAAA;;EAGb,OAAO;AACL,WAAO;AAAA,MACL,KAAK;AAAA,MACL,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA;EAEX;AAAA,EACA,UAAU;AACR,IAAI,KAAK,SAAS,SAChB,KAAK,QAAO;AAAA,EAEhB;AAAA,EACA,SAAS;AAAA,IACP,UAAU;AACR,UAAIC,IAAMP,EAAoB,cAAc,KAAK,EAAE;AACnD,UAAI,CAACO,GAAK;AACR,gBAAQ,MAAM,oBAAoB;AAClC;AAAA,MACF;AACA,YAAMC,IAAWC,EAAOF,CAAG;AAC3B,WAAK,MAAMC,EAAS,KACpB,KAAK,QAAQA,EAAS;AAAA,IACxB;AAAA;AAEJ;;EAtDoB,OAAM;GAGZE,IAAA,EAAA,OAAM,iBAAgB;;;SAPvBT,EAAA,SAAI,gBAAfU,EAEM,OAAAC,GAAA;AAAA,IADJC,EAA+BC,GAAA,EAAV,IAAIb,EAAA,GAAE,GAAA,MAAA,GAAA,CAAA,IAAA,CAAA;AAAA,QAEbA,EAAA,SAAI,cAApBU,EASM,OAAAI,GAAA;AAAA,IAROX,EAAA,OAAXY,KAAAL,EAOM,OAPNM,GAOM;AAAA,cANJN,EAKMO,GAAA,MAAAC,EALcf,EAAA,OAAK,CAAbgB,YAAZT,EAKM,OAAA,EALsB,KAAKS,KAAI;AAAA,QACnCP,EAAsEQ,GAAA;AAAA,UAA7D,KAAKjB,EAAA;AAAA,UAAM,MAAMgB;AAAA,UAAO,UAAUhB,EAAA;AAAA,UAAW,OAAOA,EAAA;AAAA;QAC7DkB,EAEC,QAFDZ,GAECa,EADIC,KAAE,yBAAA,EAAA,MAAkCJ,UAAahB,EAAA,MAAK,CAAA,CAAA,GAAA,CAAA;AAAA;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { openBlock as
|
|
2
|
-
import {
|
|
1
|
+
import { openBlock as o, createElementBlock as a, Fragment as t, renderList as r, normalizeStyle as s, normalizeClass as p, createElementVNode as d, toDisplayString as u } from "vue";
|
|
2
|
+
import { _ as h } from "./index-Dj0iUeS4.js";
|
|
3
3
|
const b = {
|
|
4
4
|
name: "ExternalApps",
|
|
5
5
|
props: {
|
|
@@ -57,22 +57,22 @@ const b = {
|
|
|
57
57
|
).origin}/favicon.ico`;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
},
|
|
60
|
+
}, _ = { class: "external-apps-grid" }, f = ["onClick"], g = ["src"], k = { class: "external-app-label" };
|
|
61
61
|
function m(e, l, i, v, y, c) {
|
|
62
|
-
return
|
|
63
|
-
(
|
|
62
|
+
return o(), a("div", _, [
|
|
63
|
+
(o(!0), a(t, null, r(c.mappedItems, (n) => (o(), a("div", {
|
|
64
64
|
key: n.type,
|
|
65
65
|
class: "external-app-card",
|
|
66
66
|
onClick: (x) => c.handleClick(n)
|
|
67
67
|
}, [
|
|
68
|
-
i.useFavicon ? (
|
|
68
|
+
i.useFavicon ? (o(), a("img", {
|
|
69
69
|
key: 0,
|
|
70
70
|
src: c.getFaviconUrl(n.link),
|
|
71
71
|
alt: "favicon",
|
|
72
72
|
class: "external-app-favicon",
|
|
73
73
|
width: "32",
|
|
74
74
|
height: "32"
|
|
75
|
-
}, null, 8, g)) : (
|
|
75
|
+
}, null, 8, g)) : (o(), a("i", {
|
|
76
76
|
key: 1,
|
|
77
77
|
class: p([n.customIcon || n.icon, "external-app-icon"]),
|
|
78
78
|
style: s({
|
|
@@ -80,11 +80,11 @@ function m(e, l, i, v, y, c) {
|
|
|
80
80
|
})
|
|
81
81
|
}, null, 6)),
|
|
82
82
|
d("span", k, u(n.label), 1)
|
|
83
|
-
], 8,
|
|
83
|
+
], 8, f))), 128))
|
|
84
84
|
]);
|
|
85
85
|
}
|
|
86
86
|
const F = /* @__PURE__ */ h(b, [["render", m], ["__scopeId", "data-v-a950f8e4"]]);
|
|
87
87
|
export {
|
|
88
88
|
F as default
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=ExternalApps-
|
|
90
|
+
//# sourceMappingURL=ExternalApps-Dkpo7w49.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalApps-
|
|
1
|
+
{"version":3,"file":"ExternalApps-Dkpo7w49.js","sources":["../src/components/dashboard/widgets/ExternalApps.vue"],"sourcesContent":["<!--\n Copyright (C) 2022 - Jeci SARL - https://jeci.fr\n\n This program is free software: you can redistribute it and/or modify\n it under the terms of the GNU Affero General Public License as\n published by the Free Software Foundation, either version 3 of the\n License, or (at your option) any later version.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU Affero General Public License for more details.\n\n You should have received a copy of the GNU Affero General Public License\n along with this program. If not, see https://www.gnu.org/licenses/agpl-3.0.html.\n-->\n\n<template>\n <div class=\"external-apps-grid\">\n <div\n v-for=\"item in mappedItems\"\n :key=\"item.type\"\n class=\"external-app-card\"\n @click=\"handleClick(item)\"\n >\n <template v-if=\"useFavicon\">\n <img\n :src=\"getFaviconUrl(item.link)\"\n alt=\"favicon\"\n class=\"external-app-favicon\"\n width=\"32\"\n height=\"32\"\n />\n </template>\n <template v-else>\n <i\n :class=\"item.customIcon || item.icon\"\n class=\"external-app-icon\"\n :style=\"{\n color: item.color ? `#${item.color}` : 'var(--p-text-color)',\n }\"\n ></i>\n </template>\n <span class=\"external-app-label\">{{ item.label }}</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: \"ExternalApps\",\n props: {\n config: {\n type: Array,\n required: true,\n default: () => [],\n },\n useFavicon: {\n type: Boolean,\n default: false,\n },\n },\n computed: {\n mappedItems() {\n const typeMap = {\n calendar: { label: \"Calendar\", icon: \"ri-calendar-line\" },\n chat: { label: \"Chat\", icon: \"ri-chat-3-line\" },\n contacts: { label: \"Contacts\", icon: \"ri-contacts-line\" },\n docs: { label: \"Docs\", icon: \"ri-file-text-line\" },\n email: { label: \"Email\", icon: \"ri-mail-line\" },\n storage: { label: \"File storage\", icon: \"ri-folder-line\" },\n iam: { label: \"IAM\", icon: \"ri-home-5-line\" },\n notes: { label: \"Notes\", icon: \"ri-edit-line\" },\n projects: { label: \"Projects\", icon: \"ri-focus-2-line\" },\n tasks: { label: \"Tasks\", icon: \"ri-list-check-2\" },\n video: { label: \"Video calls\", icon: \"ri-video-chat-line\" },\n wiki: { label: \"Wiki\", icon: \"ri-lightbulb-line\" },\n other: { label: \"Other\", icon: \"ri-question-line\" },\n };\n\n return this.config.map((item) => {\n const mapping = typeMap[item.type] || {\n label: item.type,\n icon: \"ri-question-line\",\n };\n return {\n ...item,\n label: item.value || mapping.label,\n icon: mapping.icon,\n customIcon: item.icon, // User-selected icon\n color: item.color, // User-selected color\n };\n });\n },\n },\n methods: {\n handleClick(item) {\n window.open(item.link, \"_blank\");\n },\n getFaviconUrl(link) {\n const url = new URL(\n link.startsWith(\"http\") ? link : window.location.origin + link,\n );\n return `${url.origin}/favicon.ico`;\n },\n },\n};\n</script>\n\n<style scoped>\n.external-apps-grid {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.75rem;\n}\n\n.external-app-card {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n padding: 0.5rem;\n background: var(--p-content-background);\n border: 1px solid var(--p-content-border-color);\n cursor: pointer;\n transition: transform 0.2s;\n width: 7rem;\n height: 7rem;\n}\n\n.external-app-card:hover {\n background: var(--p-highlight-background);\n}\n\n.external-app-favicon {\n margin-bottom: 0.5rem;\n object-fit: contain;\n}\n\n.external-app-icon {\n font-size: 1.75rem;\n margin-bottom: 0.5rem;\n}\n\n.external-app-label {\n font-size: 1rem;\n text-align: center;\n}\n</style>\n"],"names":["_sfc_main","typeMap","item","mapping","link","_hoisted_1","_hoisted_4","_openBlock","_createElementBlock","_Fragment","_renderList","$options","$event","$props","_normalizeClass","_normalizeStyle","_createElementVNode","_toDisplayString"],"mappings":";;AAiDA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM,CAAA;AAAA;IAEjB,YAAY;AAAA,MACV,MAAM;AAAA,MACN,SAAS;AAAA;;EAGb,UAAU;AAAA,IACR,cAAc;AACZ,YAAMC,IAAU;AAAA,QACd,UAAU,EAAE,OAAO,YAAY,MAAM,mBAAiB;AAAA,QACtD,MAAM,EAAE,OAAO,QAAQ,MAAM;QAC7B,UAAU,EAAE,OAAO,YAAY,MAAM,mBAAiB;AAAA,QACtD,MAAM,EAAE,OAAO,QAAQ,MAAM;QAC7B,OAAO,EAAE,OAAO,SAAS,MAAM;QAC/B,SAAS,EAAE,OAAO,gBAAgB,MAAM,iBAAe;AAAA,QACvD,KAAK,EAAE,OAAO,OAAO,MAAM;QAC3B,OAAO,EAAE,OAAO,SAAS,MAAM;QAC/B,UAAU,EAAE,OAAO,YAAY,MAAM,kBAAgB;AAAA,QACrD,OAAO,EAAE,OAAO,SAAS,MAAM;QAC/B,OAAO,EAAE,OAAO,eAAe,MAAM,qBAAmB;AAAA,QACxD,MAAM,EAAE,OAAO,QAAQ,MAAM;QAC7B,OAAO,EAAE,OAAO,SAAS,MAAM;;AAGjC,aAAO,KAAK,OAAO,IAAI,CAACC,MAAS;AAC/B,cAAMC,IAAUF,EAAQC,EAAK,IAAI,KAAK;AAAA,UACpC,OAAOA,EAAK;AAAA,UACZ,MAAM;AAAA;AAER,eAAO;AAAA,UACL,GAAGA;AAAA,UACH,OAAOA,EAAK,SAASC,EAAQ;AAAA,UAC7B,MAAMA,EAAQ;AAAA,UACd,YAAYD,EAAK;AAAA;AAAA,UACjB,OAAOA,EAAK;AAAA;AAAA;MAEhB,CAAC;AAAA,IACH;AAAA;EAEF,SAAS;AAAA,IACP,YAAYA,GAAM;AAChB,aAAO,KAAKA,EAAK,MAAM,QAAQ;AAAA,IACjC;AAAA,IACA,cAAcE,GAAM;AAIlB,aAAO,GAHK,IAAI;AAAA,QACdA,EAAK,WAAW,MAAM,IAAIA,IAAO,OAAO,SAAS,SAASA;AAAA,QAE9C,MAAM;AAAA,IACtB;AAAA;AAEJ,GAxFOC,IAAA,EAAA,OAAM,qBAAoB,iCAyBrBC,IAAA,EAAA,OAAM,qBAAoB;;AAzBpC,SAAAC,EAAA,GAAAC,EA2BM,OA3BNH,GA2BM;AAAA,YA1BJG,EAyBMC,GAAA,MAAAC,EAxBWC,EAAA,aAAW,CAAnBT,YADTM,EAyBM,OAAA;AAAA,MAvBH,KAAKN,EAAK;AAAA,MACX,OAAM;AAAA,MACL,SAAK,CAAAU,MAAED,EAAA,YAAYT,CAAI;AAAA;MAERW,EAAA,mBACdL,EAME,OAAA;AAAA;QALC,KAAKG,EAAA,cAAcT,EAAK,IAAI;AAAA,QAC7B,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,OAAM;AAAA,QACN,QAAO;AAAA,8BAITM,EAMK,KAAA;AAAA;QALF,OAAKM,EAAA,CAAEZ,EAAK,cAAcA,EAAK,MAC1B,mBAAmB,CAAA;AAAA,QACxB,OAAKa,EAAA;AAAA,UAAuB,OAAAb,EAAK,QAAK,IAAOA,EAAK,KAAK,KAAA;AAAA;;MAK5Dc,EAAwD,QAAxDV,GAAwDW,EAApBf,EAAK,KAAK,GAAA,CAAA;AAAA;;;;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { _ as f, u as C, a as S, b as g, w as T } from "./index-Dj0iUeS4.js";
|
|
2
2
|
import { mapState as F } from "pinia";
|
|
3
|
-
import
|
|
4
|
-
import { resolveDirective as
|
|
3
|
+
import y from "primevue/tooltip";
|
|
4
|
+
import { resolveDirective as b, openBlock as s, createElementBlock as o, Fragment as k, renderList as E, createElementVNode as a, normalizeClass as $, withDirectives as v, createTextVNode as w, toDisplayString as l, createCommentVNode as p, resolveComponent as h, createBlock as _ } from "vue";
|
|
5
5
|
const I = {
|
|
6
6
|
name: "FavoriteFileList",
|
|
7
7
|
directives: {
|
|
8
|
-
tooltip:
|
|
8
|
+
tooltip: y
|
|
9
9
|
},
|
|
10
10
|
props: {
|
|
11
11
|
siteId: {
|
|
@@ -62,7 +62,7 @@ const I = {
|
|
|
62
62
|
class: "file-secondary-name"
|
|
63
63
|
}, V = { key: 1 };
|
|
64
64
|
function O(e, r, i, m, c, n) {
|
|
65
|
-
const d =
|
|
65
|
+
const d = b("tooltip");
|
|
66
66
|
return n.favoriteFiles.length > 0 ? (s(), o("div", x, [
|
|
67
67
|
(s(!0), o(k, null, E(n.favoriteFiles, (t) => (s(), o("button", {
|
|
68
68
|
key: t.id,
|
|
@@ -95,7 +95,7 @@ function O(e, r, i, m, c, n) {
|
|
|
95
95
|
const D = /* @__PURE__ */ f(I, [["render", O], ["__scopeId", "data-v-3d75be70"]]), H = {
|
|
96
96
|
name: "FavoriteFolderList",
|
|
97
97
|
directives: {
|
|
98
|
-
tooltip:
|
|
98
|
+
tooltip: y
|
|
99
99
|
},
|
|
100
100
|
props: {
|
|
101
101
|
siteId: {
|
|
@@ -144,7 +144,7 @@ const D = /* @__PURE__ */ f(I, [["render", O], ["__scopeId", "data-v-3d75be70"]]
|
|
|
144
144
|
class: "folder-grid-container"
|
|
145
145
|
}, N = ["onClick", "aria-label"], z = { class: "folder-card-row" }, M = { class: "folder-info" }, U = { class: "folder-name" }, j = { key: 1 };
|
|
146
146
|
function q(e, r, i, m, c, n) {
|
|
147
|
-
const d =
|
|
147
|
+
const d = b("tooltip");
|
|
148
148
|
return n.favoriteFolders.length > 0 ? (s(), o("div", B, [
|
|
149
149
|
(s(!0), o(k, null, E(n.favoriteFolders, (t) => (s(), o("button", {
|
|
150
150
|
key: t.id,
|
|
@@ -176,7 +176,7 @@ function q(e, r, i, m, c, n) {
|
|
|
176
176
|
const G = /* @__PURE__ */ f(H, [["render", q], ["__scopeId", "data-v-c3b23970"]]), J = {
|
|
177
177
|
name: "FavoriteSiteList",
|
|
178
178
|
directives: {
|
|
179
|
-
tooltip:
|
|
179
|
+
tooltip: y
|
|
180
180
|
},
|
|
181
181
|
props: {
|
|
182
182
|
urlResolver: {
|
|
@@ -246,7 +246,7 @@ const G = /* @__PURE__ */ f(H, [["render", q], ["__scopeId", "data-v-c3b23970"]]
|
|
|
246
246
|
class: "site-grid-container"
|
|
247
247
|
}, Q = { class: "site-card-row" }, X = ["aria-label"], Y = ["onClick"], Z = { class: "site-description" }, ee = { key: 1 };
|
|
248
248
|
function te(e, r, i, m, c, n) {
|
|
249
|
-
const d =
|
|
249
|
+
const d = b("tooltip");
|
|
250
250
|
return n.favoriteSites.length > 0 ? (s(), o("div", K, [
|
|
251
251
|
(s(!0), o(k, null, E(n.favoriteSites, (t) => (s(), o("div", {
|
|
252
252
|
key: t.id,
|
|
@@ -358,4 +358,4 @@ const ce = /* @__PURE__ */ f(re, [["render", oe], ["__scopeId", "data-v-c02a615a
|
|
|
358
358
|
export {
|
|
359
359
|
ce as default
|
|
360
360
|
};
|
|
361
|
-
//# sourceMappingURL=FavoriteList-
|
|
361
|
+
//# sourceMappingURL=FavoriteList-CfK5vTWD.js.map
|