{"version":3,"file":"DistributionVisualizeButton.vue.mjs","sources":["../../../../lib/datasetDetails/distributions/distributionActions/DistributionVisualizeButton.vue"],"sourcesContent":["<template>\n    <div class=\"position-relative d-inline-block ml-1 mb-1\">\n      <div v-if=\"showVisualisationButton && showVisualisationLink(distribution)\" class=\"distribution-action btn btn-sm visualise-btn pt-0\" @click=\"$emit('displayVisualisation', getDownloadUrl)\">{{ $t('message.datasetDetails.preview') }}</div>\n      <a @click=\"$emit('track-link', getGeoLink, 'link')\"\n          v-else-if=\"showGeoLink(distribution)\"\n          :href=\"getGeoLink\"\n          target=\"_blank\"\n          class=\"d-flex justify-content-between btn btn-sm btn-primary p-0 pl-2 pr-2 w-100 rounded-lg btn-color dropdown-button\">\n            {{ $t('message.datasetDetails.preview') }}\n      </a>\n      <span v-else class=\"d-flex justify-content-between p-0 pl-2 pr-2 w-100 rounded-lg btn-color dropdown-button text-opacity-0\">{{ $t('message.datasetDetails.preview') }}</span>\n    </div>\n  </template>\n  <script>\n  import AppLink from \"../../../widgets/AppLink\";\n  import {has, isNil} from \"lodash\";\n  import {mapGetters} from \"vuex\";\n  \n  export default {\n    name: \"DistributionVisualizeButton\",\n    components: {\n      AppLink,\n    },\n    props: [\n      'showTooltipVisualiseButton',\n      'isUrlInvalid',\n      'getVisualisationLink',\n      'distribution',\n      'openIfValidUrl',\n      'previewLinkCallback'\n    ],\n    data() {\n      return {\n        showVisualisationButton: this.$env.content.datasetDetails.distributions?.showVisualisation,\n        visualisationLinkFormats: [\n          'csv',\n          'tsv',\n          'ods',\n          'xlsx',\n          'xls',\n        ],\n        geoLinkFormats: {\n          wms: 'WMS',\n          geojson: 'GeoJSON',\n          fiware_cb: 'fiware_cb',\n          'fiware-cb': 'fiware_cb',\n        },\n        geoLink: this.$env?.datasetDetails?.distributions?.geoLink,\n      };\n    },\n    computed: {\n      ...mapGetters('datasetDetails', [\n        'getCatalog',\n        'getID'\n      ]),\n      getGeoLink() {\n        const format = this.distribution.format.label;\n        let f = format.toLowerCase();\n        // Use correct Case Sensitive strings\n        f = this.geoLinkFormats[f];\n        if (this.geoLink) {\n          const geoLinkVariables = {\n            catalog: this.getCatalog.id,\n            dataset: this.getID,\n            distribution: this.distribution.id,\n            type: f,\n            lang: this.$route.query.locale,\n            accessUrl: this.distribution?.accessUrl[0],\n          }\n          // Inject variables into geo link\n          for (let linkVariable in geoLinkVariables) {\n            this.geoLink = this.geoLink.replace(`{${linkVariable}}`, geoLinkVariables[linkVariable]);\n          }\n          // Return Geo Visualisation Link\n          return this.geoLink;\n          // return `/geo-viewer/?dataset=${distributionID}&type=${f}&lang=${this.$route.query.locale}`;\n        }\n        // Return default Geo Visualisation Link if no link in user-config provided\n        return `/geo-viewer/?catalog=${this.getCatalog.id}&dataset=${this.getID}&distribution=${this.distribution.id}&type=${f}&lang=${this.$route.query.locale}`;\n      }\n    },\n    methods: {\n      showGeoLink(distribution) {\n        if (!has(distribution, 'format.label') || isNil(distribution.format.label) || !has(distribution, 'id') || isNil(distribution.id) || !has(distribution, 'accessUrl[0]')) return false;\n        const f = distribution.format.label.toLowerCase();\n        return Object.keys(this.geoLinkFormats).includes(f);\n      },\n      showVisualisationLink(distribution) {\n        if (!has(distribution, 'format.label') || isNil(distribution?.format?.label)\n          || (isNil(distribution?.downloadUrls[0]) && isNil(distribution?.accessUrl[0]))) return false;\n        const f = distribution?.format?.id?.toLowerCase();\n        return f && this.visualisationLinkFormats.includes(f);\n      }\n    }\n  }\n  </script>\n  <style scoped lang=\"scss\">\n    .disabled {\n      cursor: not-allowed;\n      pointer-events: none;\n      text-decoration: none;\n      color: gray;\n    }\n    .text-opacity-0 {\n      opacity: 0;\n      cursor: default!important;\n    }\n\n    .visualise-btn {\n      color: #0e47cb;\n      vertical-align: text-bottom;\n      text-decoration: none;\n      border: none;\n      padding: 0 0 0 8px;\n    }\n  </style>\n  "],"names":["_sfc_main","AppLink","_a","_d","_c","_b","mapGetters","f","geoLinkVariables","linkVariable","distribution","has","isNil","_hoisted_1","_openBlock","_createElementBlock","$data","$options","$props","_cache","$event","_ctx","_hoisted_2","_hoisted_3","_toDisplayString"],"mappings":"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"}