{"version":3,"file":"DatasetsFilters.vue.mjs","sources":["../../lib/datasets/DatasetsFilters.vue"],"sourcesContent":["<template>\n  <div class=\"filters-group ds\">\n    <slot name=\"search-bar\" :query=\"query\" :bind=\"{ value: query}\" :on=\"{ input: setSearchQuery }\" :search-fn=\"changeQuery\">\n      <div class=\"input-group\">\n        <input type=\"text\" class=\"form-control rounded-lg ds-input\"\n              :aria-label=\"$t('message.datasets.searchBar.placeholder')\"\n              :placeholder=\"$t('message.datasets.searchBar.placeholder')\"\n              v-model=\"query\"\n              @keyup.enter=\"changeQuery(query)\"\n              @click=\"autocompleteData.show = autocompleteData.suggestions.length > 0 && query.length > 0 ? !autocompleteData.show : false\">\n        <slot name=\"update-filter\" :query=\"query\" :search-fn=\"changeQuery\">\n          <div class=\"input-group-append ml-2\">\n            <button class=\"btn btn-sm btn-primary d-flex align-items-center search-button ds-input\" type=\"button\" @click=\"changeQuery(query)\">\n              <i class=\"material-icons align-bottom\">search</i>\n            </button>\n          </div>\n        </slot>\n        <div class=\"suggestion-list-group\" v-if=\"autocompleteData.show\">\n          <ul class=\"list-group suggestion-list\">\n            <button class=\"list-group-item list-group-item-action\"\n                    v-for=\"suggestion in autocompleteData.suggestions\"\n                    :key=\"suggestion.id\"\n                    @click=\"handleSuggestionSelection(suggestion)\">\n              {{ getTranslationFor(suggestion.title, $route.query.locale, suggestion.languages) }}\n            </button>\n          </ul>\n        </div>\n      </div>\n    </slot>\n    <slot name=\"filters-tabs\">\n      <DatasetsFiltersTabs :use-sort=\"useSort\" :use-catalogs=\"useCatalogs\" :query=\"query\" :sort-selected-label=\"sortSelectedLabel\" :locale=\"$route.query.locale\" />\n    </slot>\n  </div>\n</template>\n\n<script>\nimport {mapActions} from \"vuex\";\nimport { getTranslationFor } from \"../utils/helpers\";\n\nimport DatasetsFiltersTabs from \"./DatasetsFiltersTabs\";\n\nexport default {\n  name: \"DatasetsFilters\",\n  components: {\n    DatasetsFiltersTabs,\n  },\n  data() {\n    return {\n      query: '',\n      autocompleteData: {\n        suggestions: {},\n        show: true,\n      },\n      useCatalogs: this.$env.content.datasets.useCatalogs,\n      useSort: this.$env.content.datasets.useSort,\n      sortSelected: '',\n      sortSelectedLabel: this.$t('message.sort.relevance')\n    }\n  },\n  created() {\n    this.query = this.$route.query.query || '';\n  },\n  methods: {\n    getTranslationFor,\n    ...mapActions('datasets', [\n      'setQuery',\n      'autocompleteQuery',\n      'setSort'\n    ]),\n    changeQuery(query) {\n      this.$router.replace(\n        { query: Object.assign({}, this.$route.query, { query }, { page: 1 }) }\n      ).catch(\n        error => { console.error(error); }\n      );\n      this.setQuery(query);\n    },\n    handleSuggestionSelection(suggestion) {\n      /* eslint-disable no-underscore-dangle */\n      this.$router.push(\n        { path: this.$route.path.slice(-1) === '/' ? `${this.$route.path}${suggestion.idName}` : `${this.$route.path}/${suggestion.idName}` }\n      ).catch(\n        error => { console.error(error); }\n      );\n    },\n    setSearchQuery(query) {\n      this.query = query;\n    },\n  },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.suggestion-list-group {\n  position: relative;\n  width: 100%;\n}\n.suggestion-list {\n  width: 100%;\n  position: absolute;\n  top: 0;\n  z-index: 100;\n}\n\n.material-icons.small-icon {\n  font-size: 20px;\n}\n.search-button {\n  border-radius: 100% !important;\n\n  &:hover {\n    background-color: #196fd2;\n    border-color: #196fd2\n  }\n}\n\n</style>\n"],"names":["_sfc_main","DatasetsFiltersTabs","getTranslationFor","mapActions","query","error","suggestion","_hoisted_1","_hoisted_2","_hoisted_4","_hoisted_6","_openBlock","_createElementBlock","_renderSlot","_ctx","$data","$options","_createElementVNode","$event","_cache","_withKeys","_hoisted_5","_Fragment","_renderList","_toDisplayString","_hoisted_7","_createVNode","_component_DatasetsFiltersTabs"],"mappings":"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"}