{"version":3,"file":"DatasetsFiltersTabs.vue.mjs","sources":["../../lib/datasets/DatasetsFiltersTabs.vue"],"sourcesContent":["<template>\n  <ul class=\"mt-3 d-flex justify-content-between flex-wrap-reverse nav nav-tabs\" id=\"datasets-filters-tab\" role=\"tablist\">\n    <div class=\"datasets-filters-navigation d-flex cursor-pointer\">\n      <li class=\"nav-item mb-0\" role=\"tab\"\n            :title=\"$t('message.tooltip.datasets')\"\n            data-toggle=\"tooltip\"\n            data-placement=\"top\">\n          <router-link\n            :to=\"{name: 'Datasets', query: { locale: $route.query.locale }}\"\n            class=\"nav-link router-link-active\"\n            role=\"presentation\">\n                {{ $t('message.header.navigation.data.datasets') }}\n          </router-link>\n\n      </li>\n      <li class=\"nav-item mb-0\" role=\"tab\"\n          :title=\"$t('message.tooltip.catalogues')\"\n          data-toggle=\"tooltip\"\n          data-placement=\"top\">\n        <router-link\n          :to=\"{name: 'Catalogues', query: { locale: $route.query.locale }}\"\n          v-if=\"useCatalogs\"\n          class=\"nav-link router-link-inactive\"\n          role=\"presentation\">\n          {{ $t('message.header.navigation.data.catalogs') }}\n        </router-link>\n      </li>\n      <li class=\"nav-item mb-0\" role=\"tab\">\n        <a\n          :href=\"`/${this.$route.query.locale}/search?term=${query}&searchdomain=site`\"\n          class=\"nav-link router-link-inactive\"\n          role=\"presentation\"\n          :title=\"$t('message.tooltip.editorialContent')\"\n          data-toggle=\"tooltip\"\n          data-placement=\"top\">\n          {{ $t('message.searchTabs.editorialContent') }}\n        </a>\n      </li>\n    </div>\n    <div v-if=\"useSort\" class=\"datasets-filters-filters btn-group border-1 mb-1 double-button\" role=\"group\" aria-label=\"Button group with nested dropdown\">\n      <button\n        type=\"button\"\n        class=\"custom-button pl-2 pr-2 border-radius-start d-flex align-items-center inactive-styles\"\n        :class=\"{'active-styles': isSortSelectedLabelActive($t('message.sort.lastUpdated'))}\"\n        :title=\"$t('message.tooltip.lastModified')\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        @click=\"setSortMethod('modified', 'desc', $t('message.sort.lastModified'))\"\n      >\n        {{ $t('message.sort.lastUpdated') }}\n      </button>\n      <button\n        type=\"button\"\n        class=\"custom-middle-button pl-2 pr-2 d-flex align-items-center inactive-styles\"\n        :class=\"{'active-styles': isSortSelectedLabelActive($t('message.sort.relevance'))}\"\n        :title=\"$t('message.tooltip.relevance')\"\n        data-toggle=\"tooltip\"\n        data-placement=\"top\"\n        @click=\"setSortMethod('relevance', 'desc', $t('message.sort.relevance'))\"\n      >\n        {{ $t('message.sort.relevance') }}\n      </button>\n      <div class=\"btn-group\" role=\"group\">\n        <button v-if=\"isSortSelectedLabelInDropdown()\" class=\"active-styles d-flex align-items-center custom-dropdown-button border-radius-end\" id=\"btnGroupDrop1\" type=\"button\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n          <div class=\"pl-2 h-100 d-flex align-items-center\">\n            {{ sortSelectedLabel }}\n          </div>\n          <i class=\"pr-2 material-icons small-icon dropdown-icon\">arrow_drop_down</i>\n        </button>\n        <button v-else class=\"d-flex align-items-center custom-dropdown-button border-radius-end inactive-styles\" id=\"btnGroupDrop1\" type=\"button\" data-toggle=\"dropdown\" aria-expanded=\"false\">\n          <div class=\"pl-2\">\n            {{ $t('message.catalogsAndDatasets.more') }}\n          </div>\n          <i class=\"pr-2 material-icons small-icon dropdown-icon\">arrow_drop_down</i>\n        </button>\n        <ul class=\"dropdown-menu dropdown-menu-right\" aria-labelledby=\"btnGroupDrop1\">\n        <button class=\"dropdown-item\" @click=\"setSortMethod(`title.${$route.query.locale}`, 'asc', $t('message.sort.nameAZ'))\">\n          {{ $t('message.sort.nameAZ') }}</button>\n        <button class=\"dropdown-item\" @click=\"setSortMethod(`title.${$route.query.locale}`, 'desc', $t('message.sort.nameZA'))\">\n          {{ $t('message.sort.nameZA') }}</button>\n        <button class=\"dropdown-item\" @click=\"setSortMethod('issued', 'desc', $t('message.sort.lastCreated'))\">\n          {{ $t('message.sort.lastCreated') }}</button>\n        </ul>\n      </div>\n    </div>\n  </ul>\n</template>\n\n<script>\nimport { defineComponent } from 'vue'\nimport { mapActions } from 'vuex';\n\nexport default defineComponent({\n  name: 'DatasetsFiltersTabs',\n  props: {\n    useSort: {\n      type: Boolean,\n      default: true\n    },\n    useCatalogs: {\n      type: Boolean,\n      default: true\n    },\n    locale: {\n      type: String,\n      default: ''\n    }\n  },\n  data() {\n    return {\n      query: '',\n      autocompleteData: {\n        suggestions: {},\n        show: true,\n      },\n      sortSelected: '',\n      sortSelectedLabel: this.$t('message.sort.relevance'),\n    }\n  },\n  watch: {\n    sortSelected: {\n      handler(sort) {\n        this.$router.replace({ query: Object.assign({}, this.$route.query, { sort }) })\n          .catch(error => { console.error(error); });\n        this.setSort(sort);\n      },\n      deep: true,\n    }\n  },\n  created() {\n    this.initQuery();\n    this.$nextTick(() => {\n      this.initSort();\n    });\n  },\n  methods: {\n    ...mapActions('datasets', [\n      'setQuery',\n      'setSort'\n    ]),\n    /**\n     * @description Initialize the query String by checking the route parameters\n     */\n    initQuery() {\n      let query = this.$route.query.query;\n      if (!query) {\n        query = '';\n        this.setQuery('');\n      } else {\n        this.query = query;\n        this.setQuery(query);\n      }\n    },\n    initSort() {\n      let sort = this.$route.query.sort;\n      if (sort) {\n        sort = sort.split(',')[0].toLowerCase();\n        if (sort.includes('title')) {\n          if (sort.includes('desc')) {\n            this.sortSelectedLabel = this.$t('message.sort.nameZA');\n            this.setSortMethod(`title.${this.$route.query.locale}`, 'desc', this.$t('message.sort.nameZA'));\n          } else {\n            this.sortSelectedLabel = this.$t('message.sort.nameAZ');\n            this.setSortMethod(`title.${this.$route.query.locale}`, 'asc', this.$t('message.sort.nameAZ'));\n          }\n        } else {\n          if (sort === 'relevance+desc') {\n            this.sortSelectedLabel = this.$t('message.sort.relevance');\n            this.setSortMethod('relevance', 'desc', this.$t('message.sort.relevance'));\n          }\n          if (sort === 'modified+desc') {\n            this.sortSelectedLabel = this.$t('message.sort.lastUpdated');\n            this.setSortMethod('modified', 'desc', this.$t('message.sort.lastUpdated'));\n          }\n          if (sort === 'issued+desc') {\n            this.sortSelectedLabel = this.$t('message.sort.lastCreated');\n            this.setSortMethod('issued', 'desc', this.$t('message.sort.lastCreated'));\n          }\n        }\n      } else this.setSort(`relevance+desc, modified+desc, title.${this.$route.query.locale}+asc`);\n    },\n    setSortMethod(method, order, label) {\n      this.sortSelectedLabel = label;\n      if (method === 'relevance') this.sortSelected = `${method}+${order}, modified+desc, title.${this.$route.query.locale}+asc`;\n      if (method === 'modified') this.sortSelected = `${method}+${order}, relevance+desc, title.${this.$route.query.locale}+asc`;\n      if (method === `title.${this.$route.query.locale}`) this.sortSelected = `${method}+${order}, relevance+desc, modified+desc`;\n      if (method === 'issued') this.sortSelected = `${method}+${order}, relevance+desc, title.${this.$route.query.locale}+asc`;\n      return this.sortSelected;\n    },\n    isSortSelectedLabelActive(label) {\n      if (label === this.sortSelectedLabel) return true;\n      return false;\n    },\n    isSortSelectedLabelInDropdown() {\n      if (this.sortSelectedLabel === this.$t('message.sort.nameAZ')\n        || this.sortSelectedLabel === this.$t('message.sort.nameZA')\n        || this.sortSelectedLabel === this.$t('message.sort.lastCreated')) {\n        return true;\n      }\n      return false;\n    }\n  }\n});\n</script>\n\n<style scoped lang=\"scss\">\n.custom-button {\n  border: 1px solid black;\n  background-color: white;\n  outline: none;\n}\n.custom-middle-button {\n  border: 1px solid black;\n  border-left: none;\n  background-color: white;\n  outline: none;\n}\n\n.custom-dropdown-button {\n  border: 1px solid black;\n  padding: 0;\n  background-color: white;\n  outline: none;\n}\n\n.inactive-styles {\n  color: rgba(0, 0, 0, 0.7);\n\n  &:hover {\n    background-color: rgb(247, 247, 247);\n    color: black;\n  }\n  &:focus {\n    background-color: rgb(247, 247, 247);\n    color: black;\n  }\n}\n\n.active-styles {\n  background-color: rgba(0, 29, 133,0.1);\n  color: black;\n}\n\n.border-radius-start {\n  border-top-left-radius: 1.875rem;\n  border-bottom-left-radius: 1.875rem;\n}\n.border-radius-end {\n  border-top-right-radius: 1.875rem;\n  border-bottom-right-radius: 1.875rem;\n}\n\n.router-link-active {\n  color: #175baf !important;\n  border: none !important;\n  border-bottom: 2px solid #175baf !important;\n}\n.router-link-inactive {\n  color: rgba(0, 0, 0, 0.7);\n  border: none !important;\n  &:hover {\n    color: #175baf;\n  }\n}\n\n.dropdown-item {\n&:active {\n   background-color: var(--dropdown-item-active-bg);\n }\n}\n\n\n.cursor-pointer {\n  cursor: pointer;\n}\n\n</style>"],"names":["_sfc_main","defineComponent","sort","error","mapActions","query","method","order","label","_hoisted_2","_hoisted_12","_hoisted_14","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_ctx","_createVNode","_component_router_link","_createBlock","_hoisted_5","_hoisted_6","_hoisted_7","_normalizeClass","_cache","$event","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_toDisplayString","_hoisted_13","_hoisted_15"],"mappings":"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"}