{"version":3,"file":"ExpandableSelectFacet.vue.mjs","sources":["../../lib/facets/ExpandableSelectFacet.vue"],"sourcesContent":["<template>\n  <!-- Component for a collapsible facet -->\n  <div class=\"list-group col pr-0\" role=\"group\" :aria-labelledby=\"myTitleId\" >\n    <template v-if=\"header\">\n      <facet-title\n        :title=\"header\"\n        :tooltip=\"toolTipTitle\"\n        :title-id=\"myTitleId\"\n      />\n      <a\n        class=\"facet-title-mobile d-flex d-md-none list-group-item justify-content-between align-items-baseline\"\n        data-toggle=\"collapse\"\n        :data-target=\"`#${myListId}`\"\n        @click=\"isExpanded = !isExpanded\"\n      >\n        <h2 class=\"h5 mb-0\">{{ header }}</h2>\n        <button class=\"btn\">\n          <i class=\"material-icons small-icon expand-more animated\" v-if=\"!isExpanded\">expand_more</i>\n          <i class=\"material-icons small-icon expand-less animated\" v-else>expand_less</i>\n        </button>\n      </a>\n    </template>\n\n    <div\n      :id=\"myListId\"\n      class=\"collapse dont-collapse-sm\">\n      <template v-if=\"items && items.length > 0\">\n        <div\n          class=\"list-item-container\"\n          v-for=\"(item, index) in items.slice(0, numItemsAllowed)\"\n          :key=\"`field@${item.id}@${index}`\"\n        >\n          <datasets-facets-item\n            class=\"d-flex facet list-group-item list-group-item-action justify-content-between align-items-center\"\n            :title=\"getFacetTranslationWrapper(fieldId, item.id, $route.query.locale, item.title)\"\n            :count=\"getFacetCount(item)\"\n            :hide-count=\"fieldId === 'dataScope'\"\n            :class=\"{active: facetIsSelected(fieldId, item)}\"\n            @click.native=\"facetClicked(fieldId, item)\"\n          />\n        </div>\n        <button\n          v-if=\"items.length > minItems\"\n          class=\"d-block btn btn-primary btn-color w-100 facet-expand-button\"\n          @click=\"handleGrowToggle\"\n        >\n          <i class=\"material-icons align-bottom expand-more animated\">{{ isGrown ? 'expand_less' : 'expand_more' }}</i>\n        </button>\n      </template>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { defineComponent } from 'vue';\nimport DatasetsFacetsItem from \"../datasets/datasetsFacets/DatasetsFacetsItem.vue\";\nimport FacetTitle from \"../facets/FacetTitle.vue\";\n\nexport default defineComponent({\n  name: 'ExpandableSelectFacet',\n  inheritAttrs: false,\n  components: {FacetTitle, DatasetsFacetsItem},\n  props: {\n    header: {\n      type: String,\n      default: '',\n    },\n    items: {\n      type: Array,\n      required: true,\n    },\n    toolTipTitle: {\n      type: String,\n      default: '',\n    },\n    fieldId: {\n      type: String,\n      default: '',\n    },\n    getFacetTranslationWrapper: Function,\n    facetIsSelected: Function,\n    facetClicked: Function\n  },\n  data() {\n    return {\n      isExpanded: false,\n      isGrown: false,\n      numItemsAllowed: this.$env.content.datasets.facets.MIN_FACET_LIMIT || 5,\n      minItems: this.$env.content.datasets.facets.MIN_FACET_LIMIT || 5,\n      maxItems: this.$env.content.datasets.facets.MAX_FACET_LIMIT || 50\n    };\n  },\n  computed: {\n    myId() {\n      // Use Vue generated uid to set give each facet a unique id\n      return `facet-${this.fieldId}`;\n    },\n    myListId() {\n      // Use Vue generated uid to set give each facet a unique id\n      return `facet-list-${this.fieldId}`;\n    },\n    myTitleId() {\n      // Use Vue generated uid to set give each facet a unique id\n      return `facet-title-${this.fieldId}`;\n    },\n  },\n  methods: {\n    handleGrowToggle() {\n      this.isGrown = !this.isGrown;\n      this.numItemsAllowed = this.isGrown\n        ? this.maxItems\n        : this.minItems;\n    },\n    getFacetCount(facet) {\n      if (this.fieldId === 'scoring') return '';\n      return facet.count;\n    }\n  }\n});\n\n</script>\n\n<style lang=\"scss\" scoped>\n.facet-header {\n  // background-color: #fffade;\n  // background-color: rgba(255, 204, 0, 0.1);\n  background-color: rgba(0, 29, 133,0.05);\n  // background-color: #cddbe8;\n\n  // background-color: #001d85;\n  // color: white !important;\n}\n.tooltip-icon {\n  font-size: 15px;\n}\n\n@media (min-width: 768px) {\n  .collapse.dont-collapse-sm {\n    display: block;\n    height: auto !important;\n    visibility: visible;\n  }\n}\n\n.list-item-container {\n  margin-bottom: -1px;\n}\n\n.btn-color {\n  background-color: var(--primary);\n  border-color: var(--primary);\n\n  &:hover {\n    background-color: #196fd2;\n    border-color: #196fd2;\n  }\n}\n</style>\n"],"names":["_sfc_main","defineComponent","FacetTitle","DatasetsFacetsItem","facet","_hoisted_3","_hoisted_4","_hoisted_8","_createElementBlock","_ctx","_Fragment","_createVNode","_component_facet_title","_createElementVNode","_cache","$event","_toDisplayString","_hoisted_6","_hoisted_5","_renderList","item","index","_component_datasets_facets_item","args"],"mappings":"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"}