{"version":3,"file":"DistributionOptionsDropdown.vue.mjs","sources":["../../../../lib/datasetDetails/distributions/distributionActions/DistributionOptionsDropdown.vue"],"sourcesContent":["<template>\n  <dropdown\n             :title=\"$t('message.tooltip.datasetDetails.distributions.options')\"\n             :message=\"$t('message.datasetDetails.options')\"\n             bgLight=\"true\"\n             v-if=\"showOptionsDropdown(distribution)\"\n  >\n    <span data-toggle=\"tooltip\" data-placement=\"top\" :title=\"showTooltipVisualiseButton(isUrlInvalid(getVisualisationLink(distribution)))\">\n      <a @click.prevent=\"openIfValidUrl(!isUrlInvalid(getVisualisationLink(distribution)), previewLinkCallback, distribution, $event)\"  :class=\"{ disabled: isUrlInvalid(getVisualisationLink(distribution)) }\" ref=\"previewLink\" class=\"dropdown-item px-3 d-flex justify-content-end align-items-center\"\n         :href=\"getVisualisationLink(distribution)\"\n         target=\"_blank\"\n         v-if=\"showVisualisationLink(distribution)\">\n        <button role=\"button\" class=\"border-0 bg-transparent button\" :disabled=\"isUrlInvalid(getVisualisationLink(distribution))\" >\n          <small class=\"px-2\">{{ $t('message.datasetDetails.preview') }}</small>\n          <i class=\"material-icons align-bottom\">bar_chart</i>\n        </button>\n      </a>\n    </span>\n    <a class=\"dropdown-item px-3 d-flex justify-content-end align-items-center\"\n              :href=\"getGeoLink\"\n              target=\"_blank\"\n              @click=\"$emit('track-link', getGeoLink, 'link')\"\n              v-if=\"showGeoLink(distribution)\">\n      <small class=\"px-2\">{{ $t('message.datasetDetails.geoVisualisation') }}</small>\n      <i class=\"material-icons float-right align-bottom\">public</i>\n    </a>\n  </dropdown>\n</template>\n\n<script>\nimport Dropdown from \"../../../widgets/Dropdown\";\nimport AppLink from \"../../../widgets/AppLink\";\nimport {has, isNil} from \"lodash\";\nimport {mapGetters} from \"vuex\";\n\nexport default {\n  name: \"DistributionOptionsDropdown\",\n  components: {\n    Dropdown,\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        '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\n<style scoped lang=\"scss\">\n  .disabled {\n    cursor: not-allowed;\n  }\n</style>\n"],"names":["_sfc_main","Dropdown","AppLink","_c","_b","_a","mapGetters","f","geoLinkVariables","linkVariable","distribution","has","isNil","_hoisted_4","_hoisted_6","$options","$props","_createBlock","_component_dropdown","_ctx","_createElementVNode","_createElementBlock","_cache","_withModifiers","$event","_toDisplayString"],"mappings":"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"}