{"version":3,"file":"DistributionOverview.vue.mjs","sources":["../../../lib/data-provider-interface/views/DistributionOverview.vue"],"sourcesContent":["<template>\n  <div>\n    <div class=\"dist-list\">\n      <h3>{{ $t('message.metadata.distributions') }}</h3>\n      <hr>\n      <ul class=\"list-unstyled\" v-if=\"getData('distributions').length > 0\">\n        <li v-for=\"(dist, i) in getData('distributions')\" :key=\"i\" class=\"dist-item\">\n          \n          <div class=\"dist-details\">\n            <div class=\"dist-info\">\n              <!-- accessURL is always an array of URIs, first one might be enough for displaying -->\n              <span v-if=\"accessExists(dist)\" style=\"font-weight: bold\">{{ dist['dcat:accessURL'][0]['@id']\n              }}</span><br />\n\n              <!-- title and description always an array, first valu emights be enough for displaying-->\n              <span v-if=\"titleExists(dist)\" style=\"color: #868e96\">{{ dist['dct:title'][0]['@value'] }}<br /></span>\n              <span v-if=\"descriptionExists(dist)\" style=\"color: #868e96\">{{ dist['dct:description'][0]['@value']\n              }}</span>\n            </div>\n            <div class=\"dist-edit justify-content-end\">\n              <span @click=\"redirectToDistributionForm(i)\" class=\"dist-edit-button p-2\"><svg\n                  xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" fill=\"currentColor\"\n                  class=\"bi bi-pencil-square\" viewBox=\"0 0 16 16\">\n                  <path\n                    d=\"M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z\" />\n                  <path fill-rule=\"evenodd\"\n                    d=\"M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z\" />\n                </svg></span>\n              <span @click=\"triggerDeleteModal(i)\" class=\"dist-delete-button p-2\"><svg xmlns=\"http://www.w3.org/2000/svg\"\n                  width=\"25\" height=\"25\" fill=\"currentColor\" class=\"bi bi-x-circle\" viewBox=\"0 0 16 16\">\n                  <path d=\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z\" />\n                  <path\n                    d=\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\" />\n                </svg></span>\n            </div>\n          </div>\n        </li>\n      </ul>\n      <ul v-else class=\"list-unstyled\">\n        <li>{{ $t('message.dataupload.noDistributions') }}</li>\n      </ul>\n      <button class=\"default\" v-if=\"distributionOverviewPage\" @click=\"createDistribution\">{{\n        $t('message.dataupload.newDistribution') }}</button>\n    </div>\n    <div class=\"modal fade\" id=\"deleteDistributionModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"deleteModalLabel\"\n      aria-hidden=\"true\" data-cy=\"citation-modal\">\n      <div class=\"modal-dialog modal-lg\" role=\"document\">\n        <div class=\"modal-content\">\n          <div class=\"modal-header\">\n            <h2 class=\"modal-title\" id=\"deleteModalLabel\">\n              {{ $t('message.dataupload.deletemodal.deleteDistribution') }}\n            </h2>\n            <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n              <span aria-hidden=\"true\">&times;</span>\n            </button>\n          </div>\n          <div class=\"modal-body\">\n            <h3>{{ $t('message.dataupload.deletemodal.areyousure') }}</h3>\n            <div class=\"mt-3 d-flex justify-content-start align-items-center\">\n            </div>\n          </div>\n          <div class=\"modal-footer\">\n            <button data-dismiss=\"modal\" id=\"cancel\">{{ $t('message.datasetDetails.datasets.modal.cancel') }}</button>\n            <button @click=\"deleteDist()\" id=\"delete\">{{ $t('message.datasetDetails.delete') }}</button>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport $ from 'jquery';\nimport { isEmpty, has } from 'lodash-es';\nimport { mapActions, mapGetters } from 'vuex';\nimport { truncate } from '../../utils/helpers';\n\nexport default {\n  props: ['distributionOverviewPage'],\n  data() {\n    return {\n      distributionToDelete: 0,\n      distributionData: [],\n    };\n  },\n  computed: {\n    ...mapGetters('dpiStore', [\n      'getNumberOfDistributions',\n      'getNavSteps',\n      'getData',\n    ]),\n  },\n  methods: {\n    ...mapActions('dpiStore', [\n      'addDistribution',\n      'saveLocalstorageValues',\n      'deleteDistribution',\n      'setDeleteDistributionInline',\n    ]),\n    truncate,\n    deleteDist() {\n      this.deleteDistribution(this.distributionToDelete);\n      this.setDeleteDistributionInline(true);\n      $('#deleteDistributionModal').modal('hide');\n      this.$router.push({ path: `${this.$env.content.dataProviderInterface.basePath}/datasets/distoverview`, query: { locale: this.$route.query.locale } }).catch(() => { });\n    },\n    triggerDeleteModal(index) {\n      this.distributionToDelete = index;\n      $('#deleteDistributionModal').modal({ show: true });\n    },\n    getDistributionFormat(dist) {\n      if (!isEmpty(dist['dct:format'])) {\n        return dist['dct:format'].substring(dist['dct:format'].lastIndexOf('/') + 1);\n      } else {\n        return 'UNKNOWN';\n      }\n    },\n    redirectToDistributionForm(distributionIndex) {\n      const firstDistPage = this.getNavSteps(this.$env.content.dataProviderInterface.specification).distributions[0];\n      this.$router.push({\n        path: `${this.$env.content.dataProviderInterface.basePath}/distributions/${firstDistPage}/${distributionIndex}`,\n        query: {\n          locale: this.$route.query.locale,\n          edit: distributionIndex\n         }\n      }).catch(() => { });\n    },\n    createDistribution() {\n      // create an new distribution within store\n      this.addDistribution();\n      const distNumber = this.getNumberOfDistributions;\n      const distIndex = distNumber - 1; // distributions are stored within an array and indexed by their position in array\n      const firstDistPage = this.getNavSteps(this.$env.content.dataProviderInterface.specification).distributions[0];\n\n      // direct to distribution input form\n      this.$router.push(`${this.$env.content.dataProviderInterface.basePath}/distributions/${firstDistPage}/${distIndex}?locale=${this.$i18n.locale}`);\n    },\n    titleExists(data) {\n      return !isEmpty(data['dct:title']) && !isEmpty(data['dct:title'][0]) && has(data['dct:title'][0], '@value') && !isEmpty(data['dct:title'][0]['@value']);\n    },\n    descriptionExists(data) {\n      return !isEmpty(data['dct:description']) && !isEmpty(data['dct:description'][0]) && has(data['dct:description'][0], '@value') && !isEmpty(data['dct:description'][0]['@value']);\n    },\n    accessExists(data) {\n      return !isEmpty(data['dcat:accessURL']) && !isEmpty(data['dcat:accessURL'][0]) && has(data['dcat:accessURL'][0], '@id') && !isEmpty(data['dcat:accessURL'][0]['@id']);\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.dist {\n  &-list {\n    margin: 50px;\n  }\n\n  &-details {\n    display: flex;\n    flex: 1;\n  }\n\n  &-edit {\n    width: 25%;\n    display: flex;\n    align-items: center;\n    justify-content: space-evenly;\n    margin-left: 5px;\n\n    &-button {\n      cursor: pointer;\n      transition: all 0.2s ease;\n    }\n    &-button:hover {\n      opacity: 0.5;\n      transform: scale(1.1);\n      color: green;\n      transition: all 0.2s ease;\n    }\n  }\n\n  &-info {\n    width: 75%;\n  }\n\n  &-item {\n    margin: 5px;\n    display: flex;\n    padding: 20px;\n    align-items: center;\n    border-bottom: .1em solid #e5e5e5;\n  }\n\n  &-delete {\n    &-button {\n      cursor: pointer;\n      transition: all 0.2s ease;\n\n    }\n    &-button:hover {\n      transform: scale(1.1);\n      opacity: 0.5;\n      color: red;\n      transition: all 0.2s ease;\n    }\n  }\n}\n\nbutton {\n  &#delete {\n    background-color: #B30519;\n    color: #fff;\n    border-color: #B30519;\n  }\n\n  &#cancel {\n    background-color: #767676;\n    border-color: #767676;\n    color: #fff;\n  }\n\n  &.default {\n    background-color: #001d85;\n    border-color: #001d85;\n    color: #fff;\n  }\n\n  border-radius: 0.3em;\n  font-size: 16px;\n  font-family: \"Ubuntu\";\n  padding: 0.75em;\n  font-weight: 100;\n}\n</style>\n"],"names":["_sfc_main","mapGetters","mapActions","truncate","$","index","dist","isEmpty","distributionIndex","firstDistPage","distIndex","data","has","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_8","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","_createElementBlock","_createElementVNode","_ctx","_openBlock","_hoisted_2","_Fragment","_renderList","i","$options","_hoisted_5","_toDisplayString","_hoisted_6","_hoisted_7","$event","_hoisted_11","$props","args","_hoisted_12","_hoisted_13","_hoisted_16","_hoisted_19"],"mappings":"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"}