{"version":3,"file":"PvDataInfoBox.vue2.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":["_sfc_main","defineComponent","PvBadge","PvDataInfoBoxFooter","PvDataInfoBoxDescription","PvDataInfoBoxFormats","dataset","catalogMode"],"mappings":";;;;;AA+FA,MAAAA,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,SAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,0BAAAC;AAAA,IACA,sBAAAC;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS,OACN;AAAA,QACC,OAAO;AAAA,QACP,aAAa;AAAA,QACb,SAAS;AAAA,QACT,aAAa;AAAA,QACb,aAAa;AAAA,QACb,SAAS,CAAC;AAAA,MAAA;AAAA,IAEhB;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI;AAAA,MACF,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,UAAU;AAAA,IACZ;AAAA;AAAA;AAAA;AAAA,IAKA,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKA,KAAK;AAAA,MACH,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKA,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,SAAS;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EAEA,UAAU;AAAA,IACR,wBAAgC;AACxB,YAAA,EAAE,SAAAC,GAAS,aAAAC,EAAgB,IAAA;AACjC,aAAOA,IACHD,EAAQ,SAASA,EAAQ,WAAW,KACpCA,EAAQ,SAAS;AAAA,IACvB;AAAA,EACF;AACF,CAAC;"}