{"version":3,"file":"DatasetDetailsCategoriesKey.vue.mjs","sources":["../../../lib/datasetDetails/features/DatasetDetailsCategoriesKey.vue"],"sourcesContent":["<template>\n  <div class=\"mt-2 flex-column dsd-feature\">\n    <div>\n    <dataset-details-feature-header\n    :title=\"`${$t('message.datasetDetails.subnav.categories')} (${\n          getCategories ? getCategories.length.toLocaleString('fi') : 0\n        })`\"\n    :arrowDown=\"!isCategoriesAllDisplayed\"\n    tag=\"keywords-toggle\"\n    :onClick=\"toggleDisplayCount\"\n  />\n    </div> \n    <div v-if=\"isCategoriesAllDisplayed\"  class=\"keywords__item row mt-4\">\n        <span\n          v-for='(category, i) in getCategories'\n          :key=\"i\"\n          class=\"col-6 col-sm-3 col-md-2 mt-md-0 mt-3 mb-2 px-1\"\n        >\n        <app-link :to=\"getCategoryLink(category)\" :rel=\"followCategoryLinks\">\n            <small class=\"d-inline-block text-nowrap w-100 py-2 rounded-pill text-center text-white tag-color\"\n                   :data-toggle=\"categoryTruncated(category) ? 'tooltip' : false\"\n                   :data-placement=\"categoryTruncated(category) ? 'top' : false\"\n                   :aria-label=\"getTranslationFor(category.title, $route.query.locale)\"\n                   :title=\"categoryTruncated(category) ? getTranslationFor(category.title, $route.query.locale) : false\">\n              {{ truncate(getTranslationFor(category.title, $route.query.locale), maxCategoryLength, false) }}\n            </small>\n          </app-link>\n        </span>\n    </div>\n    <div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport DatasetDetailsFeatureHeader from \"../../datasetDetails/features/DatasetDetailsFeatureHeader\";\nimport {truncate} from \"../../utils/helpers\";\nimport {mapGetters} from \"vuex\";\nimport AppLink from \"../../widgets/AppLink\";\nimport { getTranslationFor } from \"../../utils/helpers\";\nimport {sortAlphabetically} from \"../../datasetDetails/features/utils/sortAlphabetically\";\nimport $ from \"jquery\";\n\n\nexport default {\nname: \"DatasetDetailsCategoriesKey\",\ncomponents: {\n  AppLink,\n  // DatasetDetailsFeatureHeader\n},\nprops: {\n  showCategory: Function\n},\ndata() {\n  return {\n    defaultLocale: this.$env.languages.locale,\n    defaultDisplayCount: 0,\n    categories: {\n      displayAll: this.$env.content.datasetDetails.categoriesKey.collapsed,\n      displayCount: 24, // Should never exceed number of keywords\n      incrementSteps: [12, 60],\n    },\n    maxCategoryLength: 15,\n    followCategoryLinks: this.$env.content.datasets.followCategoryLinks\n  }\n},\ncomputed: {\n  ...mapGetters('datasetDetails', [\n      \"getCategories\"\n  ]),\n  isCategoriesAllDisplayed() {\n    // return this.categories.displayCount >= this.getCategories.length;\n    return this.categories.displayAll;\n  }\n},\nmethods: {\n  truncate,\n  sortAlphabetically,\n  // Increases the current number of keywords displayed\n  // and clamps the result so that it never exceeds the number of all keywords.\n  increaseNumDisplayedKeywords(increment) {\n    const clampedSum = this.clamp(this.categories.displayCount + increment, 0, this.getCategories.length);\n    this.categories.displayCount = clampedSum;\n  },\n  getTranslationFor,\n  nonOverflowingIncrementsForKeywords(incrementStep) {\n    return this.categories.displayCount + incrementStep <= this.getCategories.length;\n  },\n  categoryTruncated(category) {\n\n    return getTranslationFor(category.title, this.defaultLocale).length > this.maxCategoryLength;\n\n  },\n  clamp(n, min, max) {\n    return Math.min(Math.max(n, min), max);\n  },\n  getCategoryLink(category) {\n      const categoryID = category.id.toUpperCase();\n      return {\n        path: `/datasets`,\n        query: Object.assign({}, { categories: categoryID, locale: this.$route.query.locale })\n      };\n    },\n  toggleDisplayCount() {\n    $('body').tooltip({selector: '[data-toggle=\"tooltip\"]'});\n    if (this.categories.displayCount < this.getCategories.length) {\n      this.categories.displayCount = this.getCategories.length;\n    } else {\n      this.categories.displayCount = this.defaultDisplayCount;\n    }\n    this.categories.displayAll = !this.categories.displayAll;\n  }\n}\n}\n</script>\n\n<style scoped lang=\"scss\">\n.tag-color {\n  background-color: var(--primary);\n}\n</style>\n"],"names":["_sfc_main","AppLink","mapGetters","truncate","sortAlphabetically","increment","clampedSum","getTranslationFor","incrementStep","category","n","min","max","categoryID","$","_hoisted_1","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_dataset_details_feature_header","_ctx","$options","_hoisted_2","_Fragment","_renderList","i","_component_app_link","$data","_toDisplayString","_hoisted_3"],"mappings":"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"}