{"version":3,"file":"useDatasetDetailsDatasetHead.mjs","sources":["../../../lib/composables/head/useDatasetDetailsDatasetHead.ts"],"sourcesContent":["import { useHead } from '@unhead/vue';\nimport { ComputedRef, computed } from 'vue';\nimport { RouteLocationNormalizedLoaded, useRoute } from 'vue-router';\nimport { getTranslationFor } from '../../utils/helpers';\nimport { Store, useStore } from 'vuex';\nimport {\n  has,\n  isNil,\n  isArray,\n} from 'lodash';\n\nfunction showArray(array: unknown) {\n  return !isNil(array) && isArray(array) && array.length > 0;\n}\nfunction showObjectArray(objectArray: Array<unknown>) {\n  return showArray(objectArray) && !objectArray.reduce((objectUndefined: any, currentObject: any) => objectUndefined && Object.values(currentObject).reduce((keyUndefined, currentValue) => keyUndefined && currentValue === undefined, true), true);\n}\nfunction showKeyword(keyword: any) {\n  return has(keyword, 'id')\n    && has(keyword, 'title')\n    && !isNil(keyword.id)\n    && !isNil(keyword.title);\n}\n\n/**\n * Returns a schema.org license object by providing dcat-ap license\n * See https://schema.org/license\n * See https://confluencesrv.fokus.fraunhofer.de/pages/viewpage.action?spaceKey=PIV&title=DCAT-AP+Guide\n */\nfunction getSchemaOfLicense(license: any) {\n  if (!license) return null;\n\n  const {\n    id, description, resource, la_url: laUrl,\n  } = license;\n\n  if (!id && !description && !resource && !laUrl) return null;\n\n  const licenseObject = {\n    '@type': 'CreativeWork',\n    ...id && { '@id': id },\n    ...description && { description },\n    ...(resource || laUrl) && { url: (resource || laUrl) },\n\n  };\n\n  return licenseObject;\n}\n\n/**\n * Returns a json-ld object of the license of the first distribution where a license exists in this dataset\n * or null, if first distribution or license does not exist\n */\nfunction getSchemaOfFirstAvailableLicense(store: Store<any>) {\n\n  const getLicences = computed(() => store.getters['datasetDetails/getLicences']);\n\n  return computed(() => {\n    const licenses = getLicences.value;\n    let license = null;\n\n    if (licenses && licenses.length > 0) {\n      const distributionLicense = licenses.find((l: any) => l && (l.title || l.description || l.id || l.resource));\n\n      if (distributionLicense) {\n        license = getSchemaOfLicense(distributionLicense);\n      }\n    }\n    return license;\n  })\n}\n\nfunction getSchemaOfSpatialCoverage(spatialObject: any) {\n  let spatialCoverage: any[] | any = [];\n  const spatial = spatialObject ? (spatialObject.length ? spatialObject[0] : spatialObject) : null;\n\n  if (!spatial) return [];\n\n  if (spatial.type === 'Polygon') {\n    const places: any[] = [];\n    const polygons: any[] = spatial.coordinates;\n    polygons.forEach((polygon: any[]) => {\n      let poly = '';\n      poly = polygon.map(coordinate => coordinate.join(',')).join(' ');\n      const geoShape = {\n        '@type': 'GeoShape',\n        polygon: poly,\n      };\n      places.push({\n        '@type': 'Place',\n        geo: geoShape,\n      });\n    });\n\n    spatialCoverage = places;\n  } else if (spatial.type === 'Point') {\n    spatialCoverage = {\n      '@type': 'Place',\n      geo: {\n        '@type': 'GeoCoordinates',\n        latitude: spatial.coordinates[0],\n        longitude: spatial.coordinates[1],\n      },\n    };\n  }\n\n  return spatialCoverage;\n}\n\nfunction getDistributionTitle(distribution: any, locale: any, languages: any) {\n  return distribution.title ? getTranslationFor(distribution.title, locale, languages) : '-';\n}\nfunction getDistributionFormat(distribution: any) {\n  return has(distribution, 'format.label') && !isNil(distribution.format.label) ? distribution.format.label : '';\n}\nfunction showAccessUrls(distribution: any) {\n  return has(distribution, 'accessUrl') && showArray(distribution.accessUrl);\n}\n\nfunction getSchemaOrg(store: Store<any>, route: RouteLocationNormalizedLoaded) {\n  const getTitle: ComputedRef<string> = computed(() => store.getters['datasetDetails/getTitle'] as string || '');\n  const getDescription: ComputedRef<string> = computed(() => store.getters['datasetDetails/getDescription'] as string || '');\n  const getLanguages = computed(() => store.getters['datasetDetails/getLanguages']);\n  const getSpatial = computed(() => store.getters['datasetDetails/getSpatial']);\n  const getOtherIdentifiers = computed(() => store.getters['datasetDetails/getOtherIdentifiers']);\n  const getKeywords = computed(() => store.getters['datasetDetails/getKeywords']);\n  const getCatalog = computed(() => store.getters['datasetDetails/getCatalog']);\n  const getDistributions = computed(() => store.getters['datasetDetails/getDistributions']);\n  const getPublisher = computed(() => store.getters['datasetDetails/getPublisher']);\n  const getContactPoints = computed(() => store.getters['datasetDetails/getContactPoints']);\n\n  const computedLocale = computed(() => {\n    return route.query?.locale;\n  });\n\n  return computed(() => {\n    // PAYLOAD\n    const payload = {\n      '@context': 'http://schema.org',\n      '@type': 'Dataset',\n      name: '', // https://schema.org/Dataset\n      description: '', // https://schema.org/Dataset\n      license: {}, // https://schema.org/Dataset\n      spatialCoverage: {}, // https://schema.org/Dataset\n      keywords: [] as any[], // https://schema.org/Dataset\n      catalog: {}, // https://schema.org/DataCatalog\n      identifier: [] as any[],\n      distribution: [] as any[], // https://schema.org/DataDownload\n      creator: [] as any[], // https://schema.org/Organization\n      contactPoint: [] as any[], // https://schema.org/ContactPoint\n    };\n\n    // https://schema.org/Dataset\n    payload.name = getTranslationFor(getTitle.value, computedLocale.value, getLanguages.value);\n    payload.name = payload.name ? payload.name.substring(0, 4999) : payload.name;\n    payload.description = getTranslationFor(getDescription.value, computedLocale.value, getLanguages.value);\n    payload.description = payload.description ? payload.description.substring(0, 4999) : payload.description;\n    payload.license = getSchemaOfFirstAvailableLicense(store).value;\n    payload.spatialCoverage = getSchemaOfSpatialCoverage(getSpatial.value);\n    payload.identifier = getOtherIdentifiers.value;\n    if (showObjectArray(getKeywords.value)) {\n      getKeywords.value.forEach((keyword: any) => {\n        if (showKeyword(keyword)) {\n          payload.keywords.push(keyword.title);\n        }\n      });\n    }\n\n    // https://schema.org/DataCatalog\n    payload.catalog = {\n      '@type': 'DataCatalog',\n      name: getTranslationFor(getCatalog.value.title, computedLocale.value, getLanguages)?.substring(0, 4999),\n      description: getTranslationFor(getCatalog.value.description, computedLocale.value, getLanguages)?.substring(0, 4999),\n      // publisher: getCatalog.value.publisher,\n      url: getCatalog.value.homepage,\n      // inLanguage: isArray(getCatalog.value.language) ? getCatalog.value.language[0] : getCatalog.value.language,\n      license: getSchemaOfLicense(getCatalog.value.license),\n      dateModified: getCatalog.value.modificationDate,\n      spatialCoverage: getSchemaOfSpatialCoverage(getCatalog.value.getSpatial),\n    };\n\n    // https://schema.org/DataDownload\n    getDistributions.value.forEach((distro: any) => {\n      const distroResult = {\n        '@type': 'DataDownload',\n        name: getDistributionTitle(distro, computedLocale.value, getLanguages.value),\n        encodingFormat: getDistributionFormat(distro),\n        license: getSchemaOfLicense(distro.licence),\n        contentSize: distro.byteSize,\n        datePublished: distro.releaseDate,\n        dateModified: distro.modificationDate,\n        contentUrl: undefined,\n      };\n      if (showAccessUrls(distro)) {\n        distroResult.contentUrl = distro.accessUrl[0];\n      }\n      payload.distribution.push(distroResult);\n    });\n\n    // https://schema.org/Organization\n    const publisher = getPublisher.value;\n    if (publisher.name && !isNil(publisher.name)) {\n      payload.creator.push({\n        '@type': 'Organization',\n        name: publisher.name,\n      });\n    }\n\n    // https://schema.org/ContactPoint\n    getContactPoints.value.forEach((contactPoint: any) => {\n      const hasName = has(contactPoint, 'name') && !isNil(contactPoint.name);\n      const hasEmail = has(contactPoint, 'email') && !isNil(contactPoint.email);\n      const hasAddress = has(contactPoint, 'address') && !isNil(contactPoint.address);\n      const hasTelephone = has(contactPoint, 'telephone') && !isNil(contactPoint.telephone);\n      if ((hasName || hasEmail || hasAddress || hasTelephone)) {\n        const c = {\n          '@type': 'ContactPoint',\n          name: undefined,\n          email: undefined,\n          address: undefined,\n          telephone: undefined,\n        };\n\n        if (hasName) c.name = contactPoint!.name;\n        if (hasEmail) c.email = contactPoint.email;\n        if (hasAddress) c.address = contactPoint.address;\n        if (hasTelephone) c.telephone = contactPoint.telephone;\n\n        payload.contactPoint.push(c);\n      }\n    });\n    return payload;\n  });\n}\n\nexport function useDatasetDetailsDatasetHead() {\n  const store = useStore();\n  const route = useRoute();\n\n  const datasetSchema = computed(() => {\n    return getSchemaOrg(store, route).value;\n  })\n\n const schemaOrg = computed(() => [{\n    type: 'application/ld+json',\n    textContent: JSON.stringify({ ...datasetSchema.value }, null, 2),\n  }])\n\n  const head = useHead({\n    meta: [\n      {\n        name: 'description',\n        vmid: 'description',\n        content: () => {\n          const getDescription: ComputedRef<string> = computed(() => store.getters['datasetDetails/getDescription'] as string || '');\n          const getTitle: ComputedRef<string> = computed(() => store.getters['datasetDetails/getTitle'] as string || '');\n          const getLanguages = computed(() => store.getters['datasetDetails/getLanguages']);\n          const computedLocale = computed(() => {\n            return route.query?.locale;\n          });\n          return getTranslationFor(getDescription.value, computedLocale.value, getLanguages.value) || getTranslationFor(getTitle.value, computedLocale.value, getLanguages.value);\n        },\n      },\n      {\n        name: 'keywords',\n        vmid: 'keywords',\n        content: () => {\n          const getKeywords = computed(() => store.getters['datasetDetails/getKeywords']);\n          return getKeywords.value.map((keyword: any) => keyword.title).join(' ');\n        },\n      },\n      {\n        name: 'subject',\n        vmid: 'subject',\n      },\n      {\n        name: 'robots',\n        content: 'index',\n      },\n      {\n        name: 'dataset_type',\n        content: () => {\n          // return store.getters['datasetDetails/getIsHvd'] ? 'High-Value Dataset' : 'Dataset';\n          return computed(() => (store.getters['datasetDetails/getIsHvd'] ? 'High-Value Dataset' : 'Dataset')).value;\n        }\n      }\n    ],\n    script: schemaOrg,\n    link: [\n      { rel: 'canonical', href: window.location.href },\n    ],\n  })\n\n  return {\n    head,\n    schemaOrg,\n  }\n}\n"],"names":["showArray","array","isNil","isArray","showObjectArray","objectArray","objectUndefined","currentObject","keyUndefined","currentValue","showKeyword","keyword","has","getSchemaOfLicense","license","id","description","resource","laUrl","getSchemaOfFirstAvailableLicense","store","getLicences","computed","licenses","distributionLicense","l","getSchemaOfSpatialCoverage","spatialObject","spatialCoverage","spatial","places","polygon","poly","coordinate","geoShape","getDistributionTitle","distribution","locale","languages","getTranslationFor","getDistributionFormat","showAccessUrls","getSchemaOrg","route","getTitle","getDescription","getLanguages","getSpatial","getOtherIdentifiers","getKeywords","getCatalog","getDistributions","getPublisher","getContactPoints","computedLocale","_a","payload","_b","distro","distroResult","publisher","contactPoint","hasName","hasEmail","hasAddress","hasTelephone","c","useDatasetDetailsDatasetHead","useStore","useRoute","datasetSchema","schemaOrg","useHead"],"mappings":"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"}