{"version":3,"file":"DistributionPreview.vue.mjs","sources":["../../../../lib/datasetDetails/distributions/distributionActions/DistributionPreview.vue"],"sourcesContent":["<template>\n  <div class=\"position-relative d-inline-block ml-1 mb-1\">\n    <a @click.prevent=\"openIfValidUrl(!isUrlInvalid(getVisualisationLink(distribution)), previewLinkCallback, distribution, $event)\"  :class=\"{ disabled: isUrlInvalid(getVisualisationLink(distribution)) }\" ref=\"previewLink\" 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        :href=\"getVisualisationLink(distribution)\"\n        target=\"_blank\"\n        v-if=\"showVisualisationLink(distribution)\">\n          {{ $t('message.datasetDetails.preview') }}\n    </a>\n    <a @click=\"$emit('track-link', getGeoLink, 'link')\"\n        :href=\"getGeoLink\"\n        target=\"_blank\"\n        v-else-if=\"showGeoLink(distribution)\"\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 btn btn-sm 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>\nimport AppLink from \"../../../widgets/AppLink\";\nimport {has, isNil} from \"lodash\";\nimport {mapGetters} from \"vuex\";\n\nexport default {\n  name: \"DistributionPreview\",\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      visualisationLinkFormats: [\n        'pdf',\n        'csv',\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    showOptionsDropdown(distribution) {\n      return this.showVisualisationLink(distribution) || this.showGeoLink(distribution);\n    },\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</style>\n"],"names":["_sfc_main","AppLink","_c","_b","_a","mapGetters","f","geoLinkVariables","linkVariable","distribution","has","isNil","_hoisted_1","_openBlock","_createElementBlock","$options","$props","_cache","_withModifiers","$event","_ctx","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString"],"mappings":";;;;;;AAuBA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY;AAAA,IACV,SAAAC;AAAA,EACD;AAAA,EACD,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACD,OAAO;;AACL,WAAO;AAAA,MACL,0BAA0B;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MACD,gBAAgB;AAAA,QACd,KAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAW;AAAA,QACX,aAAa;AAAA,MACd;AAAA,MACD,UAASC,KAAAC,KAAAC,IAAA,KAAK,SAAL,gBAAAA,EAAW,mBAAX,gBAAAD,EAA2B,kBAA3B,gBAAAD,EAA0C;AAAA;EAEtD;AAAA,EACD,UAAU;AAAA,IACR,GAAGG,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,aAAa;;AAEX,UAAIC,IADW,KAAK,aAAa,OAAO,MACzB;AAGf,UADAA,IAAI,KAAK,eAAeA,CAAC,GACrB,KAAK,SAAS;AAChB,cAAMC,IAAmB;AAAA,UACvB,SAAS,KAAK,WAAW;AAAA,UACzB,SAAS,KAAK;AAAA,UACd,cAAc,KAAK,aAAa;AAAA,UAChC,MAAMD;AAAA,UACN,MAAM,KAAK,OAAO,MAAM;AAAA,UACxB,YAAWF,IAAA,KAAK,iBAAL,gBAAAA,EAAmB,UAAU;AAAA,QAC1C;AAEA,iBAASI,KAAgBD;AACvB,eAAK,UAAU,KAAK,QAAQ,QAAQ,IAAIC,CAAY,KAAKD,EAAiBC,CAAY,CAAC;AAGzF,eAAO,KAAK;AAAA,MAEd;AAEA,aAAO,wBAAwB,KAAK,WAAW,EAAE,YAAY,KAAK,KAAK,iBAAiB,KAAK,aAAa,EAAE,SAASF,CAAC,SAAS,KAAK,OAAO,MAAM,MAAM;AAAA,IACzJ;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,oBAAoBG,GAAc;AAChC,aAAO,KAAK,sBAAsBA,CAAY,KAAK,KAAK,YAAYA,CAAY;AAAA,IACjF;AAAA,IACD,YAAYA,GAAc;AACxB,UAAI,CAACC,EAAID,GAAc,cAAc,KAAKE,EAAMF,EAAa,OAAO,KAAK,KAAK,CAACC,EAAID,GAAc,IAAI,KAAKE,EAAMF,EAAa,EAAE,KAAK,CAACC,EAAID,GAAc,cAAc;AAAG,eAAO;AAC/K,YAAMH,IAAIG,EAAa,OAAO,MAAM,YAAW;AAC/C,aAAO,OAAO,KAAK,KAAK,cAAc,EAAE,SAASH,CAAC;AAAA,IACnD;AAAA,IACD,sBAAsBG,GAAc;;AAClC,UAAI,CAACC,EAAID,GAAc,cAAc,KAAKE,GAAMP,IAAAK,KAAA,gBAAAA,EAAc,WAAd,gBAAAL,EAAsB,KAAK,KACrEO,EAAMF,KAAA,gBAAAA,EAAc,aAAa,EAAE,KAAKE,EAAMF,KAAA,gBAAAA,EAAc,UAAU,EAAE;AAAI,eAAO;AACzF,YAAMH,KAAIJ,KAAAC,IAAAM,KAAA,gBAAAA,EAAc,WAAd,gBAAAN,EAAsB,OAAtB,gBAAAD,EAA0B;AACpC,aAAOI,KAAK,KAAK,yBAAyB,SAASA,CAAC;AAAA,IACtD;AAAA,EACF;AACF,GAnGOM,IAAA,EAAA,OAAM,6CAA4C;;EAcxC,OAAM;;;AAdrB,SAAAC,EAAA,GAAAC,EAeM,OAfNF,GAeM;AAAA,IAXMG,EAAA,sBAAsBC,EAAY,YAAA,UAH5CF,EAKI,KAAA;AAAA;MALA,SAAeG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA,CAAAC,MAAAH,EAAA,eAAgB,CAAAA,EAAA,aAAaA,EAAA,qBAAqBA,EAAA,YAAY,CAAI,GAAAA,EAAA,qBAAqBA,EAAA,cAAcG,CAAM,GAAA,CAAA,SAAA,CAAA;AAAA,MAAK,sBAAmBH,EAAY,aAACA,uBAAqBA,EAAA,YAAY,MAA8B,gHAAgH,CAAA;AAAA,MAAxI,KAAI;AAAA,MACzM,MAAMA,EAAoB,qBAACA,EAAY,YAAA;AAAA,MACxC,QAAO;AAAA,SAEFI,EAAE,GAAA,gCAAA,CAAA,GAAA,IAAAC,CAAA,KAKIN,EAAA,YAAYC,EAAY,YAAA,UAHvCF,EAMI,KAAA;AAAA;MANA,SAAKG,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAE,MAAEC,EAAK,MAAA,cAAeL,EAAU,YAAA,MAAA;AAAA,MACpC,MAAMA,EAAU;AAAA,MACjB,QAAO;AAAA,MAEP,OAAM;AAAA,SACDK,EAAE,GAAA,gCAAA,CAAA,GAAA,GAAAE,CAAA,WAEXR,EAAwL,QAAxLS,GAAwLC,EAA9CJ,EAAE,GAAA,gCAAA,CAAA,GAAA,CAAA;AAAA;;;"}