{"version":3,"file":"PvDataInfoBox.vue.mjs","sources":["../../lib/PvDataInfoBox/PvDataInfoBox.vue"],"sourcesContent":["<template>\n  <router-link\n    :to=\"to\"\n    class=\"dataset-info-box text-dark text-decoration-none\"\n    :class=\"{'dataset-info-box--catalog': catalogMode}\"\n  >\n    <slot name=\"header\" v-if=\"!compact\">\n      <div class=\"dataset-info-box-header\" data-cy=\"dataset-title\">\n        <h2 class=\"card-title m0\">{{ datasetOrCatalogTitle }}</h2>\n      </div>\n    </slot>\n\n    <!-- Body slot -->\n    <slot name=\"body\" :dataset=\"dataset\">\n      <div class=\"dataset-info-box-body\">\n        <div class=\"row\">\n          <div v-if=\"catalogMode && !compact\" class=\"col-12 col-md-2\">\n            <img\n              :src=\"src\"\n              alt=\"img\"\n              class=\"catalog-img border border-dark\"\n              :class=\"{'catalog-img--big': !compact}\"\n            />\n          </div>\n          \n          <div\n            class=\"dataset-info-box-description-container col-12 col-md\"\n            data-cy=\"dataset-description\"\n          >\n            <slot name=\"header\" v-if=\"compact\">\n              <div data-cy=\"dataset-title\">\n                <h2 class=\"card-title\">{{ datasetOrCatalogTitle }}</h2>\n              </div>\n            </slot>\n\n            <slot name=\"description\">\n              <pv-data-info-box-description\n                v-if=\"!catalogMode || !compact\"\n                :class=\"'mb-3'\"\n                :description=\"dataset.description\"\n                :description-max-length=\"descriptionMaxLength\"\n                :truncate=\"descriptionMaxLength\"\n              />\n            </slot>\n            \n            <slot name=\"after-description\" />\n          </div>\n          <div\n            v-if=\"dataset.formats && dataset.formats.length > 0\"\n            class=\"dataset-info-box-badge-container col-12 mb-3\"\n            :class=\"{ 'col-md-3': !compact }\"\n          >\n            <slot name=\"right\" :formats=\"dataset.formats\">\n              <PvDataInfoBoxFormats :formats=\"dataset.formats\"></PvDataInfoBoxFormats>\n            </slot>\n          </div>\n          <slot name=\"footer\" :dataset=\"dataset\" v-if=\"compact\">\n            <PvDataInfoBoxFooter\n              class=\"col-12\"\n              :src=\"src\"\n              :createdDate=\"null\"\n              :updatedDate=\"null\"\n              :catalog=\"catalogMode ? dataset.description : dataset.catalog\"\n            />\n            <!-- <div v-else class=\"dataset-info-box-footer\" /> -->\n          </slot>\n        </div>\n      </div>\n    </slot>\n\n    <!-- Footer slot -->\n    <slot name=\"footer\" :dataset=\"dataset\" v-if=\"!compact\">\n      <PvDataInfoBoxFooter\n        class=\"dataset-info-box-footer\"\n        v-if=\"!catalogMode\"\n        :src=\"src\"\n        :createdDate=\"dataset.createdDate\"\n        :updatedDate=\"dataset.updatedDate\"\n        :catalog=\"dataset.catalog\"\n      />\n      <div v-else class=\"dataset-info-box-footer\" />\n    </slot>\n  </router-link>\n</template>\n\n<script lang=\"ts\">\nimport { Dataset } from \"../types/global\";\nimport {defineComponent, PropType} from \"vue\";\nimport type RouteLocationRaw from \"vue-router\";\n\nimport PvBadge from \"../PvBadge/PvBadge.vue\";\nimport PvDataInfoBoxFooter from \"./PvDataInfoBoxFooter.vue\";\nimport PvDataInfoBoxDescription from \"./PvDataInfoBoxDescription.vue\";\nimport PvDataInfoBoxFormats from \"./PvDataInfoBoxFormats.vue\"\n\nexport default defineComponent({\n  name: \"PvDataInfoBox\",\n  components: {\n    PvBadge,\n    PvDataInfoBoxFooter,\n    PvDataInfoBoxDescription,\n    PvDataInfoBoxFormats,\n  },\n  props: {\n    /**\n     * The dataset to display.\n     */\n    dataset: {\n      type: Object as PropType<Dataset>,\n      default: () =>\n        ({\n          title: \"\",\n          description: \"\",\n          catalog: \"\",\n          createdDate: \"12.12.2023\",\n          updatedDate: \"13.12.2023\",\n          formats: [],\n        } as Dataset),\n    },\n\n    /**\n     * The route to navigate to when clicking on the dataset.\n     */\n    to: {\n      type: [Object, String] as PropType<RouteLocationRaw | string>,\n      required: true,\n    },\n\n    /**\n     * Specified the maximum length of the description before it is cut off.\n     */\n    descriptionMaxLength: {\n      type: Number,\n      default: 200,\n    },\n\n    /**\n     * Image source for the catalog logo/flag.\n     */\n    src: {\n      type: String,\n      default: \"\",\n    },\n\n    /**\n     * If true, swaps to catalog display mode\n     */\n    catalogMode: {\n      type: Boolean,\n      default: false,\n    },\n\n    /**\n     * If true switches from two column to one column layout\n     * and decreases vertical distancing between elements.\n     */\n    compact: {\n      type: Boolean,\n      default: false,\n    },\n  },\n\n  computed: {\n    datasetOrCatalogTitle(): string {\n      const { dataset, catalogMode } = this;\n      return catalogMode\n        ? dataset.title || dataset.catalog || \"\"\n        : dataset.title || \"\";\n    },\n  },\n});\n</script>\n"],"names":["_hoisted_1","_hoisted_2","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_10","_resolveComponent","_openBlock","_createBlock","_component_router_link","_ctx","_normalizeClass","_withCtx","_createCommentVNode","_renderSlot","_createElementVNode","_cache","_createTextVNode","catalogMode","compact","_hoisted_4","_createElementBlock","_hoisted_8","_component_pv_data_info_box_description","descriptionMaxLength","dataset","_createVNode","_component_PvDataInfoBoxFormats","src","_component_PvDataInfoBoxFooter"],"mappings":"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"}