{"version":3,"file":"useDataInfoBox.mjs","sources":["../../lib/composables/useDataInfoBox.js"],"sourcesContent":["import {computed, unref} from \"vue\";\nimport {getImg, getTranslationFor, truncate} from \"../utils/helpers\";\nimport {groupBy, has, toPairs, uniqBy} from \"lodash-es\";\nimport {useRuntimeEnv} from \"./useRuntimeEnv.ts\";\n\nexport function useDataInfoBox({ datasets, locale }) {\n\n  // const vm = getCurrentInstance();\n  // const $env = vm.proxy.$env;\n  const $env = useRuntimeEnv();\n\n  function getCatalogImage(catalog) {\n    return $env.content.catalogs.useCatalogCountries\n      ? `${$env.content.catalogs.defaultCatalogImagePath}/${has(catalog, 'country.id') ? catalog.country.id : $env.content.catalogs.defaultCatalogCountryID}`\n      : `${$env.content.catalogs.defaultCatalogImagePath}/${has(catalog, 'id') ? catalog.id : $env.content.catalogs.defaultCatalogID}`;\n  }\n\n\n  /**\n * @description Cuts badge format string (max 8 chars)\n * @param label {String} - badge label or id (e.g. csv)\n */\n  function getBadgeFormat(label) {\n    return truncate(label, 8, true);\n  }\n\n  /**\n   * @description Removes the duplicates of the given array\n   * @param array {Array} - The array to remove duplicates from\n   * @returns {Array}\n   */\n  function removeDuplicatesOf(array) {\n    const correctedFormatArray = array.map(format => (\n      {\n        ...format,\n        id: getBadgeFormat(format.id),\n        label: getBadgeFormat(format.label),\n      }\n    ));\n    // sorts after # of occurences (highest occurence first)\n    // possibility #1\n    const sortedArray = toPairs(groupBy(correctedFormatArray, \"id\")).sort((a, b) => b[1].length - a[1].length);\n    const onlyFormatObjectsArray = sortedArray.map(arr => arr[1][0]);\n    // lodash uniqBy funtion removes duplicate id´s from array of objects\n    const uniqById = uniqBy(onlyFormatObjectsArray, \"id\");\n    return uniqBy(uniqById, \"label\");\n  }\n\n  return computed(() => {\n    const dsList = unref(datasets);\n    const l = unref(locale);\n\n    if (!datasets || !dsList) {\n      return null;\n    }\n\n    return dsList.map((ds) => {\n      return {\n        id: ds.id,\n        src: getImg(getCatalogImage(ds.catalog)),\n        dataset: {\n          title: getTranslationFor(ds.title, l, ds.languages) || ds.id,\n          description: getTranslationFor(ds.description, l, ds.languages),\n          catalog: getTranslationFor(ds.catalog.title, l, []),\n          createdDate: ds.releaseDate,\n          updatedDate: ds.modificationDate,\n          formats: removeDuplicatesOf(ds.distributionFormats).filter((format) => format.id || format.label),\n        }\n      }\n    })\n  })\n}\n"],"names":["useDataInfoBox","datasets","locale","$env","useRuntimeEnv","getCatalogImage","catalog","has","getBadgeFormat","label","truncate","removeDuplicatesOf","array","correctedFormatArray","format","onlyFormatObjectsArray","toPairs","groupBy","b","arr","uniqById","uniqBy","computed","dsList","unref","l","ds","getImg","getTranslationFor"],"mappings":";;;;AAKO,SAASA,EAAe,EAAE,UAAAC,GAAU,QAAAC,KAAU;AAInD,QAAMC,IAAOC;AAEb,WAASC,EAAgBC,GAAS;AAChC,WAAOH,EAAK,QAAQ,SAAS,sBACzB,GAAGA,EAAK,QAAQ,SAAS,uBAAuB,IAAII,EAAID,GAAS,YAAY,IAAIA,EAAQ,QAAQ,KAAKH,EAAK,QAAQ,SAAS,uBAAuB,KACnJ,GAAGA,EAAK,QAAQ,SAAS,uBAAuB,IAAII,EAAID,GAAS,IAAI,IAAIA,EAAQ,KAAKH,EAAK,QAAQ,SAAS,gBAAgB;AAAA,EACjI;AAOD,WAASK,EAAeC,GAAO;AAC7B,WAAOC,EAASD,GAAO,GAAG,EAAI;AAAA,EAC/B;AAOD,WAASE,EAAmBC,GAAO;AACjC,UAAMC,IAAuBD,EAAM,IAAI,CAAAE,OACrC;AAAA,MACE,GAAGA;AAAA,MACH,IAAIN,EAAeM,EAAO,EAAE;AAAA,MAC5B,OAAON,EAAeM,EAAO,KAAK;AAAA,IACnC,EACF,GAIKC,IADcC,EAAQC,EAAQJ,GAAsB,IAAI,CAAC,EAAE,KAAK,CAAC,GAAGK,MAAMA,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAC9D,IAAI,CAAAC,MAAOA,EAAI,CAAC,EAAE,CAAC,CAAC,GAEzDC,IAAWC,EAAON,GAAwB,IAAI;AACpD,WAAOM,EAAOD,GAAU,OAAO;AAAA,EAChC;AAED,SAAOE,EAAS,MAAM;AACpB,UAAMC,IAASC,EAAMvB,CAAQ,GACvBwB,IAAID,EAAMtB,CAAM;AAEtB,WAAI,CAACD,KAAY,CAACsB,IACT,OAGFA,EAAO,IAAI,CAACG,OACV;AAAA,MACL,IAAIA,EAAG;AAAA,MACP,KAAKC,EAAOtB,EAAgBqB,EAAG,OAAO,CAAC;AAAA,MACvC,SAAS;AAAA,QACP,OAAOE,EAAkBF,EAAG,OAAOD,GAAGC,EAAG,SAAS,KAAKA,EAAG;AAAA,QAC1D,aAAaE,EAAkBF,EAAG,aAAaD,GAAGC,EAAG,SAAS;AAAA,QAC9D,SAASE,EAAkBF,EAAG,QAAQ,OAAOD,GAAG,EAAE;AAAA,QAClD,aAAaC,EAAG;AAAA,QAChB,aAAaA,EAAG;AAAA,QAChB,SAASf,EAAmBe,EAAG,mBAAmB,EAAE,OAAO,CAACZ,MAAWA,EAAO,MAAMA,EAAO,KAAK;AAAA,MACjG;AAAA,IACF,EACF;AAAA,EACL,CAAG;AACH;"}