@piveau/piveau-hub-ui-modules 4.7.3 → 4.7.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DatasetDetailsPages.vue.mjs","sources":["../../../lib/datasetDetails/features/DatasetDetailsPages.vue"],"sourcesContent":["<template>\n <div class=\"dsd-feature d-flex flex-column mt-3\">\n <dataset-details-feature-header\n :title=\"`${$t('message.metadata.documentations')} (${getPages ? getPages.length.toLocaleString('fi') : 0})`\"\n :arrowDown=\"!pages.isVisible\"\n tag=\"documentation-toggle\"\n :onClick=\"togglePage\"\n />\n <div v-if=\"pages.isVisible\">\n <!-- Mobile Sort Controls -->\n <div class=\"mobile-sort-controls d-md-none mb-3\">\n <button class=\"sort-button\" @click=\"toggleTitleSort\" :aria-label=\"$t('message.metadata.title') + ' sortieren'\">\n Sort\n <div class=\"sort-arrows\">\n <svg class=\"sort-arrow sort-arrow-up\" :class=\"{ active: sortOrder === 'asc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 1 L9 6 L1 6 Z\" fill=\"currentColor\" />\n </svg>\n <svg class=\"sort-arrow sort-arrow-down\" :class=\"{ active: sortOrder === 'desc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 7 L1 2 L9 2 Z\" fill=\"currentColor\" />\n </svg>\n </div>\n </button>\n </div>\n <!-- Desktop Table View -->\n <div class=\"table-responsive-wrapper d-none d-md-block mt-3\" data-cy=\"documentation\">\n <div class=\"pages-wrapper\">\n <div class=\"pages-grid\">\n <!-- Header -->\n <div class=\"grid-header\">\n <div class=\"grid-col title-col\">\n <button class=\"sort-button\" @click=\"toggleTitleSort\" :aria-label=\"$t('message.metadata.title') + ' sortieren'\">\n {{ $t('message.metadata.title') }}\n <div class=\"sort-arrows\">\n <svg class=\"sort-arrow sort-arrow-up\" :class=\"{ active: sortOrder === 'asc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 1 L9 6 L1 6 Z\" fill=\"currentColor\" />\n </svg>\n <svg class=\"sort-arrow sort-arrow-down\" :class=\"{ active: sortOrder === 'desc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 7 L1 2 L9 2 Z\" fill=\"currentColor\" />\n </svg>\n </div>\n </button>\n </div>\n <div class=\"grid-col format-col\">{{ $t('message.metadata.format') }}</div>\n <div class=\"grid-col date-col\">{{ $t('message.metadata.updated') }}</div>\n <div class=\"grid-col actions-col\">{{ $t('message.dataupload.menu.actions') }}</div>\n </div>\n\n <!-- Page rows -->\n <div v-for=\"(page, index) in visiblePages\" :key=\"index\" class=\"page-item\" :class=\"{ 'accordion-open': expandedItems[index] }\">\n <div class=\"grid-row page-header\">\n <div class=\"grid-col title-col\">\n <div class=\"title-with-arrow\">\n <button \n :id=\"`accordion-button-${index}`\" \n class=\"accordion-title\"\n :aria-expanded=\"expandedItems[index] || false\" \n :aria-controls=\"`accordion-content-${index}`\"\n type=\"button\" \n @click=\"toggleAccordion(index)\"\n @keydown.enter=\"toggleAccordion(index)\"\n @keydown.space.prevent=\"toggleAccordion(index)\">\n <h3 class=\"m-0 page-title\">{{ getPageTitle(page) }}</h3>\n <svg :class=\"`accordion-arrow ${expandedItems[index] ? 'rotated' : ''}`\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n </button>\n </div>\n </div>\n <div class=\"grid-col format-col\">\n <PvBadge v-if=\"page.format\" class=\"format-badge\" :value=\"page.format\"\n :type=\"page.format.id\">\n </PvBadge>\n <span v-else class=\"badge badge-secondary\" \n :data-toggle=\"pageFormatTruncated(page) ? 'tooltip' : false\"\n :data-placement=\"pageFormatTruncated(page) ? 'top' : false\"\n :title=\"pageFormatTruncated(page) ? getPageFormat(page) : false\">\n {{ truncate(getPageFormat(page), 10, true) }}\n </span>\n </div>\n <div class=\"grid-col date-col\">\n {{ formatDate(getPageModified(page)) }}\n </div>\n <div class=\"grid-col actions-col\">\n <app-link \n class=\"action-btns\" \n :to=\"page.resource\"\n target=\"_blank\"\n rel=\"dcat:distribution noopener\"\n matomo-track-download\n @after-click=\"trackGoto\">\n {{ $t('message.datasetDetails.access') }}\n </app-link>\n </div>\n </div>\n\n <!-- Accordion Content -->\n <div v-if=\"expandedItems[index]\" \n :id=\"`accordion-content-${index}`\"\n :aria-labelledby=\"`accordion-button-${index}`\" \n class=\"accordion-content\" \n role=\"region\">\n <div class=\"expanded-details\">\n <dl class=\"details-list\">\n <dt v-if=\"getPageDescription(page)\">{{ $t('message.metadata.description') }}</dt>\n <dd v-if=\"getPageDescription(page)\">{{ getPageDescription(page) }}</dd>\n \n <dt>{{ $t('message.metadata.format') }}</dt>\n <dd>{{ getPageFormat(page) }}</dd>\n \n <dt v-if=\"getPageModified(page)\">{{ $t('message.metadata.updated') }}</dt>\n <dd v-if=\"getPageModified(page)\">{{ formatDate(getPageModified(page)) }}</dd>\n \n <dt>{{ $t('message.metadata.accessUrl') }}</dt>\n <dd>\n <a :href=\"page.resource\" target=\"_blank\" rel=\"noopener\">\n {{ (page.resource || '').substring(0, 80) + '...' }}\n <svg class=\"outgoing-icon ml-1\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" stroke=\"currentColor\" stroke-width=\"2\" />\n <polyline points=\"15,3 21,3 21,9\" stroke=\"currentColor\" stroke-width=\"2\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </a>\n </dd>\n </dl>\n </div>\n </div>\n </div>\n\n <!-- Empty state -->\n <div v-if=\"!getPages || getPages.length === 0\" class=\"grid-row empty-state\">\n <div class=\"grid-col-full text-center text-muted\">\n {{ $t('message.metadata.noDocumentationsAvailable') }}\n </div>\n </div>\n </div>\n </div>\n\n <div v-if=\"!showingAll\" class=\"fade-overlay\"></div>\n </div>\n\n <!-- Mobile Card View -->\n <div class=\"pages-cards d-md-none\">\n <div v-for=\"(page, index) in visiblePages\" :key=\"index\" class=\"page-card\" :class=\"{ 'expanded': expandedItems[index] }\">\n \n <!-- Card Header -->\n <div class=\"card-header\" @click=\"toggleAccordion(index)\">\n <div class=\"card-title-section\">\n <h3 class=\"page-title\">{{ getPageTitle(page) }}</h3>\n <div class=\"card-meta\">\n <span class=\"badge badge-secondary\">{{ truncate(getPageFormat(page), 10, true) }}</span>\n <span class=\"date\">{{ formatDate(getPageModified(page)) }}</span>\n </div>\n </div>\n <svg class=\"accordion-arrow\" :class=\"{ 'rotated': expandedItems[index] }\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\">\n <app-link \n class=\"card-action-btn access-btn\" \n :to=\"page.resource\"\n target=\"_blank\"\n rel=\"dcat:distribution noopener\"\n matomo-track-download\n @after-click=\"trackGoto\">\n <svg class=\"btn-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" stroke=\"currentColor\" stroke-width=\"2\" />\n <polyline points=\"15,3 21,3 21,9\" stroke=\"currentColor\" stroke-width=\"2\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n {{ $t('message.datasetDetails.access') }}\n </app-link>\n </div>\n\n <!-- Expanded Content -->\n <div v-if=\"expandedItems[index]\" class=\"card-expanded-content\">\n <div class=\"expanded-details\">\n <dl class=\"details-list\">\n <dt v-if=\"getPageDescription(page)\">{{ $t('message.metadata.description') }}</dt>\n <dd v-if=\"getPageDescription(page)\">{{ getPageDescription(page) }}</dd>\n \n <dt>{{ $t('message.metadata.format') }}</dt>\n <dd>{{ getPageFormat(page) }}</dd>\n \n <dt v-if=\"getPageModified(page)\">{{ $t('message.metadata.updated') }}</dt>\n <dd v-if=\"getPageModified(page)\">{{ formatDate(getPageModified(page)) }}</dd>\n \n <dt>{{ $t('message.metadata.accessUrl') }}</dt>\n <dd>\n <a :href=\"page.resource\" target=\"_blank\" rel=\"noopener\">\n {{ (page.resource || '').substring(0, 80) + '...' }}\n <svg class=\"outgoing-icon ml-1\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" stroke=\"currentColor\" stroke-width=\"2\" />\n <polyline points=\"15,3 21,3 21,9\" stroke=\"currentColor\" stroke-width=\"2\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </a>\n </dd>\n </dl>\n </div>\n </div>\n </div>\n\n <!-- Empty state for mobile -->\n <div v-if=\"!getPages || getPages.length === 0\" class=\"empty-state-card\">\n <div class=\"text-center text-muted\">\n {{ $t('message.metadata.noDocumentationsAvailable') }}\n </div>\n </div>\n </div>\n\n <!-- Show More / Show All / Show Less Buttons -->\n <div v-if=\"hasMorePages || showingMoreThanInitial\" class=\"show-all-container\">\n <button v-if=\"!showingAll && hasMorePages\" class=\"show-more-btn\" @click=\"showMorePages\">\n <svg class=\"arrow-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n {{ $t('message.metadata.showXMore', { increment: remainingCount }) }}\n </button>\n\n <button v-if=\"showingAll || showingMoreThanInitial\" class=\"show-more-btn\" :class=\"{ 'ml-2': !showingAll }\" @click=\"resetView\">\n <svg class=\"arrow-icon rotated\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n {{ $t('message.metadata.showLess') }}\n </button>\n\n <button v-if=\"!showingAll && hasMorePages\" class=\"show-all-btn ml-2\" @click=\"showAllPages\">\n <svg class=\"arrow-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n {{ $t('message.metadata.showAll') }}\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport $ from \"jquery\";\nimport {getTranslationFor, truncate} from \"../../utils/helpers\";\nimport {has, isNil} from \"lodash\";\nimport AppLink from \"../../widgets/AppLink\";\nimport {mapGetters} from \"vuex\";\nimport PvBadge from \"../../PvBadge/PvBadge.vue\";\n// DatasetDetailsFeatureHeader is imported globally\n// import DatasetDetailsFeatureHeader\n// from \"../../datasetDetails/features/DatasetDetailsFeatureHeader\";\n\nexport default {\n name: \"DatasetDetailsPages\",\n components: {\n // DatasetDetailsFeatureHeader,\n AppLink,\n PvBadge,\n },\n props: {\n pages: Object,\n increaseNumDisplayedPages: Function,\n nonOverflowingIncrementsForPages: Function,\n trackGoto: Function\n },\n data() {\n return {\n expandedPageDescriptions: [],\n expandedPages: [],\n expandedItems: [],\n visibleCount: 8,\n incrementSize: 10,\n initialVisibleCount: 8,\n sortOrder: 'asc'\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getPages'\n ]),\n sortedAndFilteredPages() {\n if (!this.getPages) return [];\n\n let pages = [...this.getPages];\n\n if (this.sortOrder) {\n pages.sort((a, b) => {\n const titleA = this.getPageTitle(a).toLowerCase();\n const titleB = this.getPageTitle(b).toLowerCase();\n\n if (this.sortOrder === 'asc') {\n return titleA.localeCompare(titleB);\n } else {\n return titleB.localeCompare(titleA);\n }\n });\n }\n\n return pages;\n },\n visiblePages() {\n if (!this.getPages) return [];\n return this.sortedAndFilteredPages.slice(0, this.visibleCount);\n },\n displayedPages() {\n return this.visiblePages;\n },\n showingMoreThanInitial() {\n return this.visibleCount > this.initialVisibleCount;\n },\n hasMorePages() {\n return this.sortedAndFilteredPages && this.sortedAndFilteredPages.length > this.initialVisibleCount;\n },\n showingAll() {\n return this.visibleCount >= this.sortedAndFilteredPages?.length;\n },\n isPagesAllDisplayed() {\n return this.showingAll;\n },\n remainingPages() {\n return this.getPages.length - this.visibleCount;\n },\n remainingCount() {\n if (!this.sortedAndFilteredPages) return 0;\n const remaining = this.sortedAndFilteredPages.length - this.visibleCount;\n return Math.min(remaining, this.incrementSize);\n }\n },\n methods: {\n truncate,\n toggleTitleSort() {\n if (this.sortOrder === 'asc') {\n this.sortOrder = 'desc';\n } else {\n this.sortOrder = 'asc';\n }\n this.expandedItems = [];\n },\n togglePageDescription(id) {\n const index = this.expandedPageDescriptions.indexOf(id);\n if (index > -1) this.expandedPageDescriptions.splice(index, 1);\n else this.expandedPageDescriptions.push(id);\n },\n togglePage() {\n this.pages.isVisible = !this.pages.isVisible;\n this.initTooltips();\n },\n toggleAccordion(index) {\n const newExpandedItems = {};\n\n if (!this.expandedItems[index]) {\n newExpandedItems[index] = true;\n }\n\n this.expandedItems = newExpandedItems;\n\n this.$nextTick(() => {\n this.initTooltips();\n });\n },\n pageDescriptionIsExpanded(id) {\n return this.expandedPageDescriptions.includes(id);\n },\n pageDescriptionIsExpandable(description) {\n return isNil(description) ? false : description.length > this.pages.descriptionMaxChars;\n },\n pageIsExpanded(id) {\n return this.expandedPages.includes(id);\n },\n getPageFormat(page) {\n return has(page, 'format.label') && !isNil(page.format.label) ? page.format.label : 'UNKNOWN';\n },\n pageFormatTruncated(page) {\n return this.getPageFormat(page).length > 10;\n },\n getPageTitle(page) {\n return page.title ? getTranslationFor(page.title, this.$route.query.locale, this.getLanguages) : truncate(page.resource, 50);\n },\n getPageDescription(page) {\n return (has(page, 'description') && !isNil(page.description)) ? getTranslationFor(page.description, this.$route.query.locale, this.getLanguages) : '';\n },\n getPageModified(page) {\n return has(page, 'modified') && !isNil(page.modified) ? page.modified : (has(page, 'issued') && !isNil(page.issued) ? page.issued : null);\n },\n formatDate(dateString) {\n if (!dateString) return '-';\n\n try {\n const date = new Date(dateString);\n if (isNaN(date.getTime())) return dateString;\n\n return date.toLocaleDateString('en-GB', {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n });\n } catch (error) {\n console.warn('Error formatting date:', dateString, error);\n return dateString;\n }\n },\n showMorePages() {\n this.visibleCount = Math.min(\n this.visibleCount + this.incrementSize,\n this.sortedAndFilteredPages.length\n );\n },\n showAllPages() {\n this.visibleCount = this.sortedAndFilteredPages.length;\n },\n resetView() {\n this.visibleCount = this.initialVisibleCount;\n this.$el.querySelector('.pages-grid')?.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n },\n initTooltips() {\n if (typeof $ !== 'undefined') {\n $('.tooltip').remove();\n $('[data-toggle=\"tooltip\"]').tooltip('dispose');\n\n this.$nextTick(() => {\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n html: true\n });\n });\n }\n }\n },\n mounted() {\n this.initTooltips();\n },\n updated() {\n this.initTooltips();\n },\n beforeUnmount() {\n if (typeof $ !== 'undefined') {\n $('.tooltip').remove();\n $('[data-toggle=\"tooltip\"]').tooltip('dispose');\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.page-title {\n font-size: 16px !important;\n}\n\n.format-badge {\n font-size: 12px !important;\n}\n\n.badge-secondary {\n font-size: 12px !important;\n}\n.sort-button {\n background: none;\n border: none;\n display: flex;\n align-items: center;\n gap: 0.2rem;\n font-weight: bold;\n cursor: pointer;\n padding: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n\n &:hover {\n color: #0E47CB;\n\n .sort-arrows .sort-arrow {\n opacity: 0.7;\n }\n }\n}\n\n\n\n.sort-arrows {\n display: flex;\n flex-direction: column;\n gap: 1px;\n margin-left: 0.25rem;\n}\n\n.sort-arrow {\n color: #3b3b3b;\n opacity: 0.8;\n transition: all 0.2s ease;\n\n &.active {\n color: #0E47CB;\n opacity: 1;\n }\n\n &:not(.active):hover {\n opacity: 0.7;\n }\n}\n\n.sort-arrow-up {\n margin-bottom: -1px;\n}\n\n.sort-arrow-down {\n margin-top: -1px;\n}\n\n.dsd-feature {\n margin-bottom: 0rem;\n}\n\n.pages-wrapper {\n position: relative;\n}\n\n.show-all-container {\n display: flex;\n justify-content: left;\n gap: 0.5rem;\n padding: 1.5rem 0 0rem;\n}\n\n.show-more-btn {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n background-color: #fff;\n border: 2px solid #0e47cb;\n color: #0e47cb;\n border-radius: 4px;\n padding: 0.5rem 1rem;\n font-weight: 400;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n\n &:hover {\n background-color: #3e6cd5;\n border-color: #3e6cd5;\n color: #fff;\n\n .arrow-icon {\n color: #fff;\n }\n }\n\n .arrow-icon {\n color: #0E47CB;\n transition: transform 0.3s ease;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.show-all-btn {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n background-color: #0e47cb;\n border: 1px solid #0e47cb;\n color: #fff;\n border-radius: 4px;\n padding: 0.5rem 1rem;\n font-weight: 400;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n\n &:hover {\n background-color: #3e6cd5;\n border-color: #3e6cd5;\n\n .arrow-icon {\n color: #fff;\n }\n }\n\n .arrow-icon {\n color: #fff;\n transition: transform 0.3s ease;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.fade-overlay {\n position: absolute;\n bottom: 70px;\n left: 0;\n right: 0;\n height: 45px;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 50%, rgba(255, 255, 255, 1) 100%);\n pointer-events: none;\n z-index: 1;\n}\n\n.accordion-title {\n background: none;\n border: none;\n display: contents;\n cursor: pointer;\n}\n\n.action-btns {\n font-family: Arial;\n font-weight: 400;\n font-size: 16px !important;\n line-height: 24px;\n letter-spacing: 0px;\n color: #0E47CB;\n background: none;\n border: none;\n cursor: pointer;\n text-decoration: none;\n\n &:hover {\n text-decoration: none;\n }\n}\n\n.table-responsive-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n width: 100%;\n\n @media (min-width: 992px) {\n overflow-x: visible;\n }\n}\n\n.page-title {\n font-family: Arial;\n font-weight: 700;\n font-size: 16px;\n line-height: 24px;\n letter-spacing: 0px;\n color: #0E47CB;\n white-space: nowrap;\n text-align: left;\n}\n\n.title-with-arrow {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n text-align: left;\n}\n\n.accordion-arrow {\n color: #0E47CB;\n transition: transform 0.3s ease;\n flex-shrink: 0;\n\n &.rotated {\n transform: rotate(180deg);\n }\n}\n\n.page-header {\n display: contents;\n background: none;\n border: none;\n font-family: inherit;\n text-align: left;\n width: 100%;\n\n &:hover .grid-col {\n background-color: #f8f9fa !important;\n }\n\n &:focus {\n outline: none;\n\n .grid-col {\n outline: 2px solid #0E47CB;\n outline-offset: -2px;\n }\n }\n}\n\n.page-item {\n display: contents;\n\n &.accordion-open .grid-col {\n border-bottom: none !important;\n }\n}\n\n.accordion-content {\n grid-column: 1 / -1;\n padding: 1rem;\n border-bottom: 1px solid #dee2e6;\n animation: slideDown 0.2s ease-out;\n\n .expanded-details {\n width: 100%;\n\n h4 {\n margin-bottom: 1rem;\n color: #0E47CB;\n font-size: 1.1rem;\n }\n\n .details-list {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0px 0.8rem;\n margin: 0;\n font-size: 12px;\n\n dt {\n font-weight: 600;\n color: #333;\n }\n\n dd {\n margin: 0;\n word-break: break-all;\n }\n }\n }\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n }\n\n to {\n opacity: 1;\n max-height: 200px;\n }\n}\n\n.pages-grid {\n display: grid;\n gap: 0;\n grid-template-columns: minmax(200px, 1fr) 70px 90px minmax(120px, auto);\n min-width: 590px;\n width: max-content;\n\n @media (min-width: 992px) {\n grid-template-columns: 55% 10% 15% 20%;\n min-width: auto;\n width: 100%;\n }\n\n .grid-header {\n display: contents;\n\n .grid-col {\n background-color: #F3F6FC;\n font-weight: bold;\n padding: 0.75rem;\n white-space: nowrap;\n border-bottom: 2px solid #dee2e6;\n display: flex;\n align-items: center;\n\n &:last-child {\n border-right: none;\n }\n }\n }\n\n .grid-row {\n display: contents;\n\n .grid-col {\n padding: 0.75rem;\n border-bottom: 1px solid #dee2e6;\n display: flex;\n align-items: center;\n white-space: nowrap;\n background-color: white;\n\n &:last-child {\n border-right: none;\n }\n\n @media (min-width: 992px) {\n white-space: normal;\n }\n }\n }\n\n .grid-col-full {\n grid-column: 1 / -1;\n padding: 2rem;\n border-bottom: 1px solid #dee2e6;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n }\n}\n\n@media (min-width: 992px) {\n .page-title {\n white-space: normal;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.badge {\n font-size: 0.875rem;\n}\n\n.outgoing-icon {\n color: #0E47CB;\n}\n\n/* Mobile Sort Controls */\n.mobile-sort-controls {\n padding: 0.75rem;\n background-color: #F3F6FC;\n border-radius: 4px;\n margin-top: 10px;\n \n .sort-button {\n background: none;\n border: none;\n display: flex;\n align-items: center;\n gap: 0.2rem;\n font-weight: bold;\n cursor: pointer;\n padding: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n }\n}\n\n/* Mobile Card Styles */\n.pages-cards {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.page-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n transition: box-shadow 0.2s ease;\n margin-bottom: 20px;\n\n &.expanded {\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n\n .page-title {\n font-family: Arial;\n font-weight: 700;\n font-size: 16px;\n line-height: 24px;\n color: #0E47CB;\n margin: 0 0 0.5rem 0;\n word-wrap: break-word;\n \n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.card-header {\n padding: 1rem;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n cursor: pointer;\n border-bottom: 1px solid #f0f0f0;\n background-color: #F3F6FC;\n\n &:hover {\n background-color: #F3F6FC;\n }\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-meta {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n flex-wrap: wrap;\n\n .badge {\n font-size: 12px !important;\n }\n\n .date {\n font-size: 14px;\n color: #6c757d;\n }\n}\n\n.card-actions {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.card-action-btn {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n border-radius: 4px;\n text-decoration: none;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n border: 1px solid #0E47CB;\n text-align: center;\n justify-content: center;\n\n .btn-icon {\n flex-shrink: 0;\n color: #0E47CB;\n }\n\n &.access-btn {\n background-color: white;\n color: #0E47CB;\n\n &:hover {\n background-color: #0E47CB;\n color: white;\n text-decoration: none;\n\n .btn-icon {\n color: white;\n }\n }\n }\n}\n\n.card-expanded-content {\n padding: 1rem;\n background-color: #F3F6FC;\n border-top: 1px solid #dee2e6;\n\n .details-list {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0.5rem 1rem;\n margin: 0;\n font-size: 14px;\n\n dt {\n font-weight: 600;\n color: #333;\n }\n\n dd {\n margin: 0;\n word-break: break-word;\n }\n }\n}\n\n.empty-state-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 2rem;\n text-align: center;\n}\n\n/* Responsive adjustments */\n@media (max-width: 576px) {\n .page-title {\n font-size: 14px;\n line-height: 20px;\n }\n\n .card-header {\n padding: 0.75rem;\n }\n\n .card-actions {\n padding: 0.75rem;\n }\n\n .card-action-btn {\n padding: 0.625rem 0.875rem;\n font-size: 14px;\n }\n}\n</style>\n"],"names":["_sfc_main","AppLink","PvBadge","mapGetters","pages","a","b","titleA","titleB","_a","remaining","truncate","id","index","newExpandedItems","description","isNil","page","has","getTranslationFor","dateString","date","error","$","_hoisted_1","_hoisted_3","_hoisted_5","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_24","_hoisted_26","_hoisted_27","_hoisted_34","_hoisted_36","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_45","_hoisted_46","_hoisted_53","_openBlock","_createElementBlock","_createVNode","_component_dataset_details_feature_header","_ctx","$props","$options","_hoisted_2","_createElementVNode","args","_normalizeClass","$data","_hoisted_6","_createTextVNode","_toDisplayString","_Fragment","_renderList","$event","_withKeys","_withModifiers","_createBlock","_component_PvBadge","_hoisted_22","_component_app_link","_hoisted_29","_hoisted_31","_hoisted_33","_hoisted_35","_hoisted_44","_hoisted_48","_hoisted_50","_hoisted_52","_hoisted_54"],"mappings":"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"}
1
+ {"version":3,"file":"DatasetDetailsPages.vue.mjs","sources":["../../../lib/datasetDetails/features/DatasetDetailsPages.vue"],"sourcesContent":["<template>\n <div class=\"dsd-feature d-flex flex-column mt-3\">\n <dataset-details-feature-header\n :title=\"`${$t('message.metadata.documentations')} (${getPages ? getPages.length.toLocaleString('fi') : 0})`\"\n :arrowDown=\"!pages.isVisible\"\n tag=\"documentation-toggle\"\n :onClick=\"togglePage\"\n /> \n <div v-if=\"pages.isVisible\">\n <!-- Mobile Sort Controls -->\n <div class=\"mobile-sort-controls d-md-none mb-3\">\n <button class=\"sort-button\" @click=\"toggleTitleSort\" :aria-label=\"$t('message.metadata.title') + ' sortieren'\">\n Sort\n <div class=\"sort-arrows\">\n <svg class=\"sort-arrow sort-arrow-up\" :class=\"{ active: sortOrder === 'asc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 1 L9 6 L1 6 Z\" fill=\"currentColor\" />\n </svg>\n <svg class=\"sort-arrow sort-arrow-down\" :class=\"{ active: sortOrder === 'desc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 7 L1 2 L9 2 Z\" fill=\"currentColor\" />\n </svg>\n </div>\n </button>\n </div>\n <!-- Desktop Table View -->\n <div class=\"table-responsive-wrapper d-none d-md-block mt-3\" data-cy=\"documentation\">\n <div class=\"pages-wrapper\">\n <div class=\"pages-grid\">\n <!-- Header -->\n <div class=\"grid-header\">\n <div class=\"grid-col title-col\">\n <button class=\"sort-button\" @click=\"toggleTitleSort\" :aria-label=\"$t('message.metadata.title') + ' sortieren'\">\n {{ $t('message.metadata.title') }}\n <div class=\"sort-arrows\">\n <svg class=\"sort-arrow sort-arrow-up\" :class=\"{ active: sortOrder === 'asc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 1 L9 6 L1 6 Z\" fill=\"currentColor\" />\n </svg>\n <svg class=\"sort-arrow sort-arrow-down\" :class=\"{ active: sortOrder === 'desc' }\" width=\"10\" height=\"8\" viewBox=\"0 0 10 8\">\n <path d=\"M5 7 L1 2 L9 2 Z\" fill=\"currentColor\" />\n </svg>\n </div>\n </button>\n </div>\n <div class=\"grid-col format-col\">{{ $t('message.metadata.format') }}</div>\n <div class=\"grid-col date-col\">{{ $t('message.metadata.updated') }}</div>\n <div class=\"grid-col actions-col\">{{ $t('message.dataupload.menu.actions') }}</div>\n </div>\n\n <!-- Page rows -->\n <div v-for=\"(page, index) in visiblePages\" :key=\"index\" class=\"page-item\" :class=\"{ 'accordion-open': expandedItems[index] }\">\n <div class=\"grid-row page-header\">\n <div class=\"grid-col title-col\">\n <div class=\"title-with-arrow\">\n <button \n :id=\"`accordion-button-${index}`\" \n class=\"accordion-title\"\n :aria-expanded=\"expandedItems[index] || false\" \n :aria-controls=\"`accordion-content-${index}`\"\n type=\"button\" \n @click=\"toggleAccordion(index)\"\n @keydown.enter=\"toggleAccordion(index)\"\n @keydown.space.prevent=\"toggleAccordion(index)\">\n <h3 class=\"m-0 page-title\">{{ getPageTitle(page) }}</h3>\n <svg :class=\"`accordion-arrow ${expandedItems[index] ? 'rotated' : ''}`\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n </button>\n </div>\n </div>\n <div class=\"grid-col format-col\">\n <PvBadge v-if=\"page.format\" class=\"format-badge\" :value=\"page.format\"\n :type=\"page.format.id\">\n </PvBadge>\n <span v-else class=\"badge badge-secondary\" \n :data-toggle=\"pageFormatTruncated(page) ? 'tooltip' : false\"\n :data-placement=\"pageFormatTruncated(page) ? 'top' : false\"\n :title=\"pageFormatTruncated(page) ? getPageFormat(page) : false\">\n {{ truncate(getPageFormat(page), 10, true) }}\n </span>\n </div>\n <div class=\"grid-col date-col\">\n {{ formatDate(getPageModified(page)) }}\n </div>\n <div class=\"grid-col actions-col\">\n <app-link \n class=\"action-btns\" \n :to=\"page.resource\"\n target=\"_blank\"\n rel=\"dcat:distribution noopener\"\n matomo-track-download\n @after-click=\"trackGoto\">\n {{ $t('message.datasetDetails.access') }}\n </app-link>\n </div>\n </div>\n\n <!-- Accordion Content -->\n <div v-if=\"expandedItems[index]\" \n :id=\"`accordion-content-${index}`\"\n :aria-labelledby=\"`accordion-button-${index}`\" \n class=\"accordion-content\" \n role=\"region\">\n <div class=\"expanded-details\">\n <dl class=\"details-list\">\n <dt v-if=\"getPageDescription(page)\">{{ $t('message.metadata.description') }}</dt>\n <dd v-if=\"getPageDescription(page)\">{{ getPageDescription(page) }}</dd>\n \n <dt>{{ $t('message.metadata.format') }}</dt>\n <dd>{{ getPageFormat(page) }}</dd>\n \n <dt v-if=\"getPageModified(page)\">{{ $t('message.metadata.updated') }}</dt>\n <dd v-if=\"getPageModified(page)\">{{ formatDate(getPageModified(page)) }}</dd>\n \n <dt>{{ $t('message.metadata.accessUrl') }}</dt>\n <dd>\n <a :href=\"page.resource\" target=\"_blank\" rel=\"noopener\">\n {{ (page.resource || '').substring(0, 80) + '...' }}\n <svg class=\"outgoing-icon ml-1\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" stroke=\"currentColor\" stroke-width=\"2\" />\n <polyline points=\"15,3 21,3 21,9\" stroke=\"currentColor\" stroke-width=\"2\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </a>\n </dd>\n </dl>\n </div>\n </div>\n </div>\n\n <!-- Empty state -->\n <div v-if=\"!getPages || getPages.length === 0\" class=\"grid-row empty-state\">\n <div class=\"grid-col-full text-center text-muted\">\n {{ $t('message.metadata.noDocumentationsAvailable') }}\n </div>\n </div>\n </div>\n </div>\n\n <div v-if=\"!showingAll\" class=\"fade-overlay\"></div>\n </div>\n\n <!-- Mobile Card View -->\n <div class=\"pages-cards d-md-none\">\n <div v-for=\"(page, index) in visiblePages\" :key=\"index\" class=\"page-card\" :class=\"{ 'expanded': expandedItems[index] }\">\n \n <!-- Card Header -->\n <div class=\"card-header\" @click=\"toggleAccordion(index)\">\n <div class=\"card-title-section\">\n <h3 class=\"page-title\">{{ getPageTitle(page) }}</h3>\n <div class=\"card-meta\">\n <span class=\"badge badge-secondary\">{{ truncate(getPageFormat(page), 10, true) }}</span>\n <span class=\"date\">{{ formatDate(getPageModified(page)) }}</span>\n </div>\n </div>\n <svg class=\"accordion-arrow\" :class=\"{ 'rotated': expandedItems[index] }\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n </div>\n\n <!-- Card Actions -->\n <div class=\"card-actions\">\n <app-link \n class=\"card-action-btn access-btn\" \n :to=\"page.resource\"\n target=\"_blank\"\n rel=\"dcat:distribution noopener\"\n matomo-track-download\n @after-click=\"trackGoto\">\n <svg class=\"btn-icon\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" stroke=\"currentColor\" stroke-width=\"2\" />\n <polyline points=\"15,3 21,3 21,9\" stroke=\"currentColor\" stroke-width=\"2\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n {{ $t('message.datasetDetails.access') }}\n </app-link>\n </div>\n\n <!-- Expanded Content -->\n <div v-if=\"expandedItems[index]\" class=\"card-expanded-content\">\n <div class=\"expanded-details\">\n <dl class=\"details-list\">\n <dt v-if=\"getPageDescription(page)\">{{ $t('message.metadata.description') }}</dt>\n <dd v-if=\"getPageDescription(page)\">{{ getPageDescription(page) }}</dd>\n \n <dt>{{ $t('message.metadata.format') }}</dt>\n <dd>{{ getPageFormat(page) }}</dd>\n \n <dt v-if=\"getPageModified(page)\">{{ $t('message.metadata.updated') }}</dt>\n <dd v-if=\"getPageModified(page)\">{{ formatDate(getPageModified(page)) }}</dd>\n \n <dt>{{ $t('message.metadata.accessUrl') }}</dt>\n <dd>\n <a :href=\"page.resource\" target=\"_blank\" rel=\"noopener\">\n {{ (page.resource || '').substring(0, 80) + '...' }}\n <svg class=\"outgoing-icon ml-1\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\" stroke=\"currentColor\" stroke-width=\"2\" />\n <polyline points=\"15,3 21,3 21,9\" stroke=\"currentColor\" stroke-width=\"2\" />\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\" stroke=\"currentColor\" stroke-width=\"2\" />\n </svg>\n </a>\n </dd>\n </dl>\n </div>\n </div>\n </div>\n <!-- Empty state for mobile -->\n <div v-if=\"!getPages || getPages.length === 0\" class=\"empty-state-card\">\n <div class=\"text-center text-muted\">\n {{ $t('message.metadata.noDocumentationsAvailable') }}\n </div>\n </div>\n </div>\n <!-- Show More / Show All / Show Less Buttons -->\n <div v-if=\"hasMorePages || showingMoreThanInitial\" class=\"show-all-container\">\n <button v-if=\"!showingAll && hasMorePages\" class=\"show-more-btn\" @click=\"showMorePages\">\n <svg class=\"arrow-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n {{ $t('message.metadata.showXMore', { increment: remainingCount }) }}\n </button>\n\n <button v-if=\"showingAll || showingMoreThanInitial\" class=\"show-more-btn\" :class=\"{ 'ml-2': !showingAll }\" @click=\"resetView\">\n <svg class=\"arrow-icon rotated\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n {{ $t('message.metadata.showLess') }}\n </button>\n\n <button v-if=\"!showingAll && hasMorePages\" class=\"show-all-btn ml-2\" @click=\"showAllPages\">\n <svg class=\"arrow-icon\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <path d=\"M4 6l4 4 4-4\" stroke=\"currentColor\" stroke-width=\"2\" fill=\"none\" />\n </svg>\n {{ $t('message.metadata.showAll') }}\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport $ from \"jquery\";\nimport {getTranslationFor, truncate} from \"../../utils/helpers\";\nimport {has, isNil} from \"lodash\";\nimport AppLink from \"../../widgets/AppLink\";\nimport {mapGetters} from \"vuex\";\nimport PvBadge from \"../../PvBadge/PvBadge.vue\";\n// DatasetDetailsFeatureHeader is imported globally\n// import DatasetDetailsFeatureHeader\n// from \"../../datasetDetails/features/DatasetDetailsFeatureHeader\";\n\nexport default {\n name: \"DatasetDetailsPages\",\n components: {\n // DatasetDetailsFeatureHeader,\n AppLink,\n PvBadge,\n },\n props: {\n pages: Object,\n increaseNumDisplayedPages: Function,\n nonOverflowingIncrementsForPages: Function,\n trackGoto: Function\n },\n data() {\n return {\n expandedPageDescriptions: [],\n expandedPages: [],\n expandedItems: [],\n visibleCount: 8,\n incrementSize: 10,\n initialVisibleCount: 8,\n sortOrder: 'asc'\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getPages'\n ]),\n sortedAndFilteredPages() {\n if (!this.getPages) return [];\n\n let pages = [...this.getPages];\n\n if (this.sortOrder) {\n pages.sort((a, b) => {\n const titleA = this.getPageTitle(a).toLowerCase();\n const titleB = this.getPageTitle(b).toLowerCase();\n\n if (this.sortOrder === 'asc') {\n return titleA.localeCompare(titleB);\n } else {\n return titleB.localeCompare(titleA);\n }\n });\n }\n\n return pages;\n },\n visiblePages() {\n if (!this.getPages) return [];\n return this.sortedAndFilteredPages.slice(0, this.visibleCount);\n },\n displayedPages() {\n return this.visiblePages;\n },\n showingMoreThanInitial() {\n return this.visibleCount > this.initialVisibleCount;\n },\n hasMorePages() {\n return this.sortedAndFilteredPages && this.sortedAndFilteredPages.length > this.initialVisibleCount;\n },\n showingAll() {\n return this.visibleCount >= this.sortedAndFilteredPages?.length;\n },\n isPagesAllDisplayed() {\n return this.showingAll;\n },\n remainingPages() {\n return this.getPages.length - this.visibleCount;\n },\n remainingCount() {\n if (!this.sortedAndFilteredPages) return 0;\n const remaining = this.sortedAndFilteredPages.length - this.visibleCount;\n return Math.min(remaining, this.incrementSize);\n }\n },\n methods: {\n truncate,\n toggleTitleSort() {\n if (this.sortOrder === 'asc') {\n this.sortOrder = 'desc';\n } else {\n this.sortOrder = 'asc';\n }\n this.expandedItems = [];\n },\n togglePageDescription(id) {\n const index = this.expandedPageDescriptions.indexOf(id);\n if (index > -1) this.expandedPageDescriptions.splice(index, 1);\n else this.expandedPageDescriptions.push(id);\n },\n togglePage() {\n this.pages.isVisible = !this.pages.isVisible;\n this.initTooltips();\n },\n toggleAccordion(index) {\n const newExpandedItems = {};\n\n if (!this.expandedItems[index]) {\n newExpandedItems[index] = true;\n }\n\n this.expandedItems = newExpandedItems;\n\n this.$nextTick(() => {\n this.initTooltips();\n });\n },\n pageDescriptionIsExpanded(id) {\n return this.expandedPageDescriptions.includes(id);\n },\n pageDescriptionIsExpandable(description) {\n return isNil(description) ? false : description.length > this.pages.descriptionMaxChars;\n },\n pageIsExpanded(id) {\n return this.expandedPages.includes(id);\n },\n getPageFormat(page) {\n return has(page, 'format.label') && !isNil(page.format.label) ? page.format.label : 'UNKNOWN';\n },\n pageFormatTruncated(page) {\n return this.getPageFormat(page).length > 10;\n },\n getPageTitle(page) {\n return page.title ? getTranslationFor(page.title, this.$route.query.locale, this.getLanguages) : truncate(page.resource, 50);\n },\n getPageDescription(page) {\n return (has(page, 'description') && !isNil(page.description)) ? getTranslationFor(page.description, this.$route.query.locale, this.getLanguages) : '';\n },\n getPageModified(page) {\n return has(page, 'modified') && !isNil(page.modified) ? page.modified : (has(page, 'issued') && !isNil(page.issued) ? page.issued : null);\n },\n formatDate(dateString) {\n if (!dateString) return '-';\n\n try {\n const date = new Date(dateString);\n if (isNaN(date.getTime())) return dateString;\n\n return date.toLocaleDateString('en-GB', {\n day: 'numeric',\n month: 'long',\n year: 'numeric'\n });\n } catch (error) {\n console.warn('Error formatting date:', dateString, error);\n return dateString;\n }\n },\n showMorePages() {\n this.visibleCount = Math.min(\n this.visibleCount + this.incrementSize,\n this.sortedAndFilteredPages.length\n );\n },\n showAllPages() {\n this.visibleCount = this.sortedAndFilteredPages.length;\n },\n resetView() {\n this.visibleCount = this.initialVisibleCount;\n this.$el.querySelector('.pages-grid')?.scrollIntoView({\n behavior: 'smooth',\n block: 'start'\n });\n },\n initTooltips() {\n if (typeof $ !== 'undefined') {\n $('.tooltip').remove();\n $('[data-toggle=\"tooltip\"]').tooltip('dispose');\n\n this.$nextTick(() => {\n $('[data-toggle=\"tooltip\"]').tooltip({\n container: 'body',\n html: true\n });\n });\n }\n }\n },\n mounted() {\n this.pages.isVisible = true;\n this.initTooltips();\n },\n updated() {\n this.initTooltips();\n },\n beforeUnmount() {\n if (typeof $ !== 'undefined') {\n $('.tooltip').remove();\n $('[data-toggle=\"tooltip\"]').tooltip('dispose');\n }\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.page-title {\n font-size: 16px !important;\n}\n\n.format-badge {\n font-size: 12px !important;\n}\n\n.badge-secondary {\n font-size: 12px !important;\n}\n.sort-button {\n background: none;\n border: none;\n display: flex;\n align-items: center;\n gap: 0.2rem;\n font-weight: bold;\n cursor: pointer;\n padding: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n\n &:hover {\n color: #0E47CB;\n\n .sort-arrows .sort-arrow {\n opacity: 0.7;\n }\n }\n}\n\n\n\n.sort-arrows {\n display: flex;\n flex-direction: column;\n gap: 1px;\n margin-left: 0.25rem;\n}\n\n.sort-arrow {\n color: #3b3b3b;\n opacity: 0.8;\n transition: all 0.2s ease;\n\n &.active {\n color: #0E47CB;\n opacity: 1;\n }\n\n &:not(.active):hover {\n opacity: 0.7;\n }\n}\n\n.sort-arrow-up {\n margin-bottom: -1px;\n}\n\n.sort-arrow-down {\n margin-top: -1px;\n}\n\n.dsd-feature {\n margin-bottom: 0rem;\n}\n\n.pages-wrapper {\n position: relative;\n}\n\n.show-all-container {\n display: flex;\n justify-content: left;\n gap: 0.5rem;\n padding: 1.5rem 0 0rem;\n}\n\n.show-more-btn {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n background-color: #fff;\n border: 2px solid #0e47cb;\n color: #0e47cb;\n border-radius: 4px;\n padding: 0.5rem 1rem;\n font-weight: 400;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n\n &:hover {\n background-color: #3e6cd5;\n border-color: #3e6cd5;\n color: #fff;\n\n .arrow-icon {\n color: #fff;\n }\n }\n\n .arrow-icon {\n color: #0E47CB;\n transition: transform 0.3s ease;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.show-all-btn {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n background-color: #0e47cb;\n border: 1px solid #0e47cb;\n color: #fff;\n border-radius: 4px;\n padding: 0.5rem 1rem;\n font-weight: 400;\n font-size: 16px;\n cursor: pointer;\n transition: all 0.2s ease;\n\n &:hover {\n background-color: #3e6cd5;\n border-color: #3e6cd5;\n\n .arrow-icon {\n color: #fff;\n }\n }\n\n .arrow-icon {\n color: #fff;\n transition: transform 0.3s ease;\n\n &.rotated {\n transform: rotate(180deg);\n }\n }\n}\n\n.fade-overlay {\n position: absolute;\n bottom: 70px;\n left: 0;\n right: 0;\n height: 45px;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.95) 50%, rgba(255, 255, 255, 1) 100%);\n pointer-events: none;\n z-index: 1;\n}\n\n.accordion-title {\n background: none;\n border: none;\n display: contents;\n cursor: pointer;\n}\n\n.action-btns {\n font-family: Arial;\n font-weight: 400;\n font-size: 16px !important;\n line-height: 24px;\n letter-spacing: 0px;\n color: #0E47CB;\n background: none;\n border: none;\n cursor: pointer;\n text-decoration: none;\n\n &:hover {\n text-decoration: none;\n }\n}\n\n.table-responsive-wrapper {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n width: 100%;\n\n @media (min-width: 992px) {\n overflow-x: visible;\n }\n}\n\n.page-title {\n font-family: Arial;\n font-weight: 700;\n font-size: 16px;\n line-height: 24px;\n letter-spacing: 0px;\n color: #0E47CB;\n white-space: nowrap;\n text-align: left;\n}\n\n.title-with-arrow {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n width: 100%;\n text-align: left;\n}\n\n.accordion-arrow {\n color: #0E47CB;\n transition: transform 0.3s ease;\n flex-shrink: 0;\n\n &.rotated {\n transform: rotate(180deg);\n }\n}\n\n.page-header {\n display: contents;\n background: none;\n border: none;\n font-family: inherit;\n text-align: left;\n width: 100%;\n\n &:hover .grid-col {\n background-color: #f8f9fa !important;\n }\n\n &:focus {\n outline: none;\n\n .grid-col {\n outline: 2px solid #0E47CB;\n outline-offset: -2px;\n }\n }\n}\n\n.page-item {\n display: contents;\n\n &.accordion-open .grid-col {\n border-bottom: none !important;\n }\n}\n\n.accordion-content {\n grid-column: 1 / -1;\n padding: 1rem;\n border-bottom: 1px solid #dee2e6;\n animation: slideDown 0.2s ease-out;\n\n .expanded-details {\n width: 100%;\n\n h4 {\n margin-bottom: 1rem;\n color: #0E47CB;\n font-size: 1.1rem;\n }\n\n .details-list {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0px 0.8rem;\n margin: 0;\n font-size: 12px;\n\n dt {\n font-weight: 600;\n color: #333;\n }\n\n dd {\n margin: 0;\n word-break: break-all;\n }\n }\n }\n}\n\n@keyframes slideDown {\n from {\n opacity: 0;\n max-height: 0;\n }\n\n to {\n opacity: 1;\n max-height: 200px;\n }\n}\n\n.pages-grid {\n display: grid;\n gap: 0;\n grid-template-columns: minmax(200px, 1fr) 70px 90px minmax(120px, auto);\n min-width: 590px;\n width: max-content;\n\n @media (min-width: 992px) {\n grid-template-columns: 55% 10% 15% 20%;\n min-width: auto;\n width: 100%;\n }\n\n .grid-header {\n display: contents;\n\n .grid-col {\n background-color: #F3F6FC;\n font-weight: bold;\n padding: 0.75rem;\n white-space: nowrap;\n border-bottom: 2px solid #dee2e6;\n display: flex;\n align-items: center;\n\n &:last-child {\n border-right: none;\n }\n }\n }\n\n .grid-row {\n display: contents;\n\n .grid-col {\n padding: 0.75rem;\n border-bottom: 1px solid #dee2e6;\n display: flex;\n align-items: center;\n white-space: nowrap;\n background-color: white;\n\n &:last-child {\n border-right: none;\n }\n\n @media (min-width: 992px) {\n white-space: normal;\n }\n }\n }\n\n .grid-col-full {\n grid-column: 1 / -1;\n padding: 2rem;\n border-bottom: 1px solid #dee2e6;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n }\n}\n\n@media (min-width: 992px) {\n .page-title {\n white-space: normal;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.badge {\n font-size: 0.875rem;\n}\n\n.outgoing-icon {\n color: #0E47CB;\n}\n\n/* Mobile Sort Controls */\n.mobile-sort-controls {\n padding: 0.75rem;\n background-color: #F3F6FC;\n border-radius: 4px;\n margin-top: 10px;\n \n .sort-button {\n background: none;\n border: none;\n display: flex;\n align-items: center;\n gap: 0.2rem;\n font-weight: bold;\n cursor: pointer;\n padding: 0;\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n }\n}\n\n/* Mobile Card Styles */\n.pages-cards {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.page-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);\n transition: box-shadow 0.2s ease;\n margin-bottom: 20px;\n\n &.expanded {\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);\n }\n\n .page-title {\n font-family: Arial;\n font-weight: 700;\n font-size: 16px;\n line-height: 24px;\n color: #0E47CB;\n margin: 0 0 0.5rem 0;\n word-wrap: break-word;\n \n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.card-header {\n padding: 1rem;\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n cursor: pointer;\n border-bottom: 1px solid #f0f0f0;\n background-color: #F3F6FC;\n\n &:hover {\n background-color: #F3F6FC;\n }\n}\n\n.card-title-section {\n flex: 1;\n min-width: 0;\n}\n\n.card-meta {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n flex-wrap: wrap;\n\n .badge {\n font-size: 12px !important;\n }\n\n .date {\n font-size: 14px;\n color: #6c757d;\n }\n}\n\n.card-actions {\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n}\n\n.card-action-btn {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n border-radius: 4px;\n text-decoration: none;\n font-weight: 500;\n font-size: 14px;\n transition: all 0.2s ease;\n border: 1px solid #0E47CB;\n text-align: center;\n justify-content: center;\n\n .btn-icon {\n flex-shrink: 0;\n color: #0E47CB;\n }\n\n &.access-btn {\n background-color: white;\n color: #0E47CB;\n\n &:hover {\n background-color: #0E47CB;\n color: white;\n text-decoration: none;\n\n .btn-icon {\n color: white;\n }\n }\n }\n}\n\n.card-expanded-content {\n padding: 1rem;\n background-color: #F3F6FC;\n border-top: 1px solid #dee2e6;\n\n .details-list {\n display: grid;\n grid-template-columns: auto 1fr;\n gap: 0.5rem 1rem;\n margin: 0;\n font-size: 14px;\n\n dt {\n font-weight: 600;\n color: #333;\n }\n\n dd {\n margin: 0;\n word-break: break-word;\n }\n }\n}\n\n.empty-state-card {\n background: white;\n border: 1px solid #dee2e6;\n border-radius: 8px;\n padding: 2rem;\n text-align: center;\n}\n\n/* Responsive adjustments */\n@media (max-width: 576px) {\n .page-title {\n font-size: 14px;\n line-height: 20px;\n }\n\n .card-header {\n padding: 0.75rem;\n }\n\n .card-actions {\n padding: 0.75rem;\n }\n\n .card-action-btn {\n padding: 0.625rem 0.875rem;\n font-size: 14px;\n }\n}\n</style>\n"],"names":["_sfc_main","AppLink","PvBadge","mapGetters","pages","a","b","titleA","titleB","_a","remaining","truncate","id","index","newExpandedItems","description","isNil","page","has","getTranslationFor","dateString","date","error","$","_hoisted_1","_hoisted_3","_hoisted_5","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_20","_hoisted_21","_hoisted_23","_hoisted_24","_hoisted_26","_hoisted_27","_hoisted_34","_hoisted_36","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_45","_hoisted_46","_hoisted_53","_openBlock","_createElementBlock","_createVNode","_component_dataset_details_feature_header","_ctx","$props","$options","_hoisted_2","_createElementVNode","args","_normalizeClass","$data","_hoisted_6","_createTextVNode","_toDisplayString","_Fragment","_renderList","$event","_withKeys","_withModifiers","_createBlock","_component_PvBadge","_hoisted_22","_component_app_link","_hoisted_29","_hoisted_31","_hoisted_33","_hoisted_35","_hoisted_44","_hoisted_48","_hoisted_50","_hoisted_52","_hoisted_54"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import L from "../../widgets/AppLink.vue.mjs";
2
2
  import { truncate as h, removeMailtoOrTel as b } from "../../utils/helpers.mjs";
3
3
  import _ from "../../filters/dateFilters.mjs";
4
- import { resolveComponent as C, openBlock as a, createElementBlock as n, Fragment as c, renderList as y, normalizeStyle as w, normalizeClass as m, createElementVNode as g, toDisplayString as o, createTextVNode as d, createBlock as x, withCtx as V } from "vue";
4
+ import { resolveComponent as C, openBlock as a, createElementBlock as n, Fragment as y, renderList as c, normalizeStyle as w, normalizeClass as m, createElementVNode as g, toDisplayString as o, createTextVNode as d, createBlock as x, withCtx as V } from "vue";
5
5
  import "./ValuesList.vue2.mjs";
6
6
  import E from "../../_virtual/_plugin-vue_export-helper.mjs";
7
7
  const F = {
@@ -62,7 +62,7 @@ const F = {
62
62
  function I(e, t, s, p, S, r) {
63
63
  const f = C("app-link");
64
64
  return a(), n("div", null, [
65
- (a(!0), n(c, null, y(s.values, (l, u) => (a(), n("div", {
65
+ (a(!0), n(y, null, c(s.values, (l, u) => (a(), n("div", {
66
66
  key: u,
67
67
  style: w(s.itemstyles)
68
68
  }, [
@@ -72,7 +72,7 @@ function I(e, t, s, p, S, r) {
72
72
  }, [
73
73
  g("span", N, o(r.getLabel(l)), 1),
74
74
  t[0] || (t[0] = d()),
75
- (a(!0), n(c, null, y(l.value, (i, k) => (a(), x(f, {
75
+ (a(!0), n(y, null, c(l.value, (i, k) => (a(), x(f, {
76
76
  key: k,
77
77
  to: `mailto:${r.removeMailtoOrTel(i)}`
78
78
  }, {
@@ -90,7 +90,7 @@ function I(e, t, s, p, S, r) {
90
90
  }, [
91
91
  g("span", T, o(r.getLabel(l)), 1),
92
92
  t[2] || (t[2] = d()),
93
- (a(!0), n(c, null, y(l.value, (i, k) => (a(), n("a", {
93
+ (a(!0), n(y, null, c(l.value, (i, k) => (a(), n("a", {
94
94
  key: k,
95
95
  href: i,
96
96
  target: r.isExternalUrl(i) ? "_blank" : null,
@@ -110,7 +110,7 @@ function I(e, t, s, p, S, r) {
110
110
  g("span", v, o(r.getLabel(l)), 1),
111
111
  t[4] || (t[4] = d()),
112
112
  ["name", "label"].includes(l.key.toLowerCase()) && r.hasLinkInValues() ? (a(), n("span", A, [
113
- (a(!0), n(c, null, y(l.value, (i, k) => (a(), n("a", {
113
+ (a(!0), n(y, null, c(l.value, (i, k) => (a(), n("a", {
114
114
  key: k,
115
115
  href: r.getLinkForName(),
116
116
  target: r.isExternalUrl(r.getLinkForName()) ? "_blank" : null,
@@ -119,12 +119,12 @@ function I(e, t, s, p, S, r) {
119
119
  d(o(r.displayValue(i, l.type)) + " ", 1),
120
120
  t[3] || (t[3] = g("span", { class: "external-link-icon" }, null, -1))
121
121
  ], 8, B))), 128))
122
- ])) : (a(!0), n(c, { key: 1 }, y(l.value, (i, k) => (a(), n("span", { key: k }, o(r.displayValue(i, l.type)), 1))), 128))
122
+ ])) : (a(!0), n(y, { key: 1 }, c(l.value, (i, k) => (a(), n("span", { key: k }, o(r.displayValue(i, l.type)), 1))), 128))
123
123
  ], 2))
124
124
  ], 4))), 128))
125
125
  ]);
126
126
  }
127
- const j = /* @__PURE__ */ E(F, [["render", I], ["__scopeId", "data-v-91a4c4ec"]]);
127
+ const j = /* @__PURE__ */ E(F, [["render", I], ["__scopeId", "data-v-c6494852"]]);
128
128
  export {
129
129
  j as default
130
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ValuesList.vue.mjs","sources":["../../../lib/datasetDetails/properties/ValuesList.vue"],"sourcesContent":["<template>\n <div>\n <div v-for=\"(v, i) of values\" :key=\"i\" :style=\"itemstyles\">\n <div v-if=\"v.key === 'email'\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <app-link v-for=\"(item, j) in v.value\" :key=\"j\" :to=\"`mailto:${removeMailtoOrTel(item)}`\">\n {{ displayValue(item, v.type) }}\n </app-link>\n </div>\n\n <div v-else-if=\"v.key === 'identifier'\" :class=\"{'mb-1':i<values.length}\">\n {{ getLabel(v) }} {{ v.value[i] }}\n </div>\n\n <div v-else-if=\"isLink(v) && !['resource', 'homepage'].includes(v.key.toLowerCase())\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"item\"\n :target=\"isExternalUrl(item) ? '_blank' : null\"\n :rel=\"isExternalUrl(item) ? 'noopener noreferrer' : null\"\n @click=\"handleClick(item, v)\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </div>\n\n <div v-else-if=\"shouldHideField(v)\" :class=\"{'mb-1':i<values.length}\">\n <!-- Hidden fields like resource/homepage that are used as links for name -->\n </div>\n\n <div v-else :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <span v-if=\"['name', 'label'].includes(v.key.toLowerCase()) && hasLinkInValues()\">\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"getLinkForName()\"\n :target=\"isExternalUrl(getLinkForName()) ? '_blank' : null\"\n :rel=\"isExternalUrl(getLinkForName()) ? 'noopener noreferrer' : null\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </span>\n <span v-else v-for=\"(item, j) in v.value\" :key=\"j\">{{ displayValue(item, v.type) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport {removeMailtoOrTel, truncate} from \"../../utils/helpers.ts\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\n\nexport default {\n name: \"ValuesList\",\n props: {\n values: Array,\n track: Array,\n itemstyles: String,\n interpretTranslateKey: Function\n },\n components: {\n AppLink\n },\n methods: {\n truncate,\n removeMailtoOrTel,\n isExternalUrl(url) {\n // Zeige Icon für alle URLs außer mailto: und tel:\n return typeof url === \"string\" && !url.startsWith('mailto:') && !url.startsWith('tel:');\n },\n getLabel(v) {\n const prefix = \"message.metadata\";\n // Don't show labels for name field\n if (v.key.toLowerCase() === 'name' || v.key.toLowerCase() === 'label') {\n return '';\n }\n if (typeof v.translation === 'string') {\n return this.interpretTranslateKey(v.translation, prefix);\n }\n return `${this.i18n.global.t(`${prefix}.${v.key}`)}:`;\n },\n isLink(v) {\n const key = v.key.toLowerCase();\n const type = v.type?.toLowerCase();\n return ['homepage', 'resource'].includes(key) || type === 'link' || type === 'link_blank';\n },\n shouldHideField(v) {\n return ['homepage','resource'].includes(v.key.toLowerCase());\n },\n hasLinkInValues() {\n return this.values.some(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n },\n getLinkForName() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.value?.[0] || '#';\n },\n getLinkType() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.type || '';\n },\n displayValue(item, type) {\n switch (type) {\n case 'date':\n return dateFilters.formatEU(item);\n default:\n return typeof item === 'string' ? truncate(item, 75) : item;\n }\n },\n handleClick(item, v) {\n const key = v.key.toLowerCase();\n if (this.track && this.track.includes(key)) {\n this.$emit('track-link', item, 'link');\n }\n }\n }\n}\n</script>\n\n<style scoped>\n.dsd-properties-inner-label {\n white-space: pre;\n}\n\n.external-link-icon svg {\n margin-bottom: 5px;\n margin-left: 10;\n}\n</style>"],"names":["_sfc_main","AppLink","truncate","removeMailtoOrTel","url","v","prefix","key","type","_a","linkField","item","dateFilters","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_openBlock","_Fragment","_renderList","$props","i","_normalizeClass","_createElementVNode","_toDisplayString","$options","j","_createBlock","_component_app_link","_createTextVNode","$event","_hoisted_5"],"mappings":"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"}
1
+ {"version":3,"file":"ValuesList.vue.mjs","sources":["../../../lib/datasetDetails/properties/ValuesList.vue"],"sourcesContent":["<template>\n <div>\n <div v-for=\"(v, i) of values\" :key=\"i\" :style=\"itemstyles\">\n <div v-if=\"v.key === 'email'\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <app-link v-for=\"(item, j) in v.value\" :key=\"j\" :to=\"`mailto:${removeMailtoOrTel(item)}`\">\n {{ displayValue(item, v.type) }}\n </app-link>\n </div>\n <div v-else-if=\"v.key === 'identifier'\" :class=\"{'mb-1':i<values.length}\">\n {{ getLabel(v) }} {{ v.value[i] }}\n </div>\n <div v-else-if=\"isLink(v) && !['resource', 'homepage'].includes(v.key.toLowerCase())\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"item\"\n :target=\"isExternalUrl(item) ? '_blank' : null\"\n :rel=\"isExternalUrl(item) ? 'noopener noreferrer' : null\"\n @click=\"handleClick(item, v)\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </div>\n\n <div v-else-if=\"shouldHideField(v)\" :class=\"{'mb-1':i<values.length}\">\n <!-- Hidden fields like resource/homepage that are used as links for name -->\n </div>\n\n <div v-else :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <span v-if=\"['name', 'label'].includes(v.key.toLowerCase()) && hasLinkInValues()\">\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"getLinkForName()\"\n :target=\"isExternalUrl(getLinkForName()) ? '_blank' : null\"\n :rel=\"isExternalUrl(getLinkForName()) ? 'noopener noreferrer' : null\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </span>\n <span v-else v-for=\"(item, j) in v.value\" :key=\"j\">{{ displayValue(item, v.type) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport {removeMailtoOrTel, truncate} from \"../../utils/helpers.ts\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\n\nexport default {\n name: \"ValuesList\",\n props: {\n values: Array,\n track: Array,\n itemstyles: String,\n interpretTranslateKey: Function\n },\n components: {\n AppLink\n },\n methods: {\n truncate,\n removeMailtoOrTel,\n isExternalUrl(url) {\n // Zeige Icon für alle URLs außer mailto: und tel:\n return typeof url === \"string\" && !url.startsWith('mailto:') && !url.startsWith('tel:');\n },\n getLabel(v) {\n const prefix = \"message.metadata\";\n // Don't show labels for name field\n if (v.key.toLowerCase() === 'name' || v.key.toLowerCase() === 'label') {\n return '';\n }\n if (typeof v.translation === 'string') {\n return this.interpretTranslateKey(v.translation, prefix);\n }\n return `${this.i18n.global.t(`${prefix}.${v.key}`)}:`;\n },\n isLink(v) {\n const key = v.key.toLowerCase();\n const type = v.type?.toLowerCase();\n return ['homepage', 'resource'].includes(key) || type === 'link' || type === 'link_blank';\n },\n shouldHideField(v) {\n return ['homepage','resource'].includes(v.key.toLowerCase());\n },\n hasLinkInValues() {\n return this.values.some(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n },\n getLinkForName() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.value?.[0] || '#';\n },\n getLinkType() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.type || '';\n },\n displayValue(item, type) {\n switch (type) {\n case 'date':\n return dateFilters.formatEU(item);\n default:\n return typeof item === 'string' ? truncate(item, 75) : item;\n }\n },\n handleClick(item, v) {\n const key = v.key.toLowerCase();\n if (this.track && this.track.includes(key)) {\n this.$emit('track-link', item, 'link');\n }\n }\n }\n}\n</script>\n\n<style scoped>\n.dsd-properties-inner-label {\n white-space: pre;\n}\n\n.external-link-icon svg {\n margin-bottom: 5px;\n margin-left: 10;\n}\n</style>"],"names":["_sfc_main","AppLink","truncate","removeMailtoOrTel","url","v","prefix","key","type","_a","linkField","item","dateFilters","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_openBlock","_Fragment","_renderList","$props","i","_normalizeClass","_createElementVNode","_toDisplayString","$options","j","_createBlock","_component_app_link","_createTextVNode","$event","_hoisted_5"],"mappings":"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"}