{"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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"}