@piveau/piveau-hub-ui-modules 4.5.6 → 4.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/composables/useDataInfoBox.mjs +21 -20
  2. package/dist/composables/useDataInfoBox.mjs.map +1 -1
  3. package/dist/configurations/configureModules.d.ts +4 -0
  4. package/dist/configurations/configureModules.mjs +6 -4
  5. package/dist/configurations/configureModules.mjs.map +1 -1
  6. package/dist/data-provider-interface/CatalogueMQA.vue.d.ts +2 -0
  7. package/dist/data-provider-interface/CatalogueMQA.vue.mjs +292 -0
  8. package/dist/data-provider-interface/CatalogueMQA.vue.mjs.map +1 -0
  9. package/dist/data-provider-interface/CatalogueMQA.vue2.mjs +5 -0
  10. package/dist/data-provider-interface/CatalogueMQA.vue2.mjs.map +1 -0
  11. package/dist/data-provider-interface/DPIMenu.vue.d.ts +2 -2
  12. package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs +116 -51
  13. package/dist/data-provider-interface/views/UserCataloguesPage.vue.mjs.map +1 -1
  14. package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs +1 -1
  15. package/dist/datasetDetails/DatasetDetailsDataset.vue.mjs.map +1 -1
  16. package/dist/datasetDetails/DatasetDetailsDataset.vue2.mjs.map +1 -1
  17. package/dist/datasetDetails/DatasetDetailsDescription.vue.d.ts +1 -1
  18. package/dist/datasetDetails/distributions/DistributionFormat.vue.d.ts +2 -2
  19. package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs +10 -7
  20. package/dist/datasetDetails/distributions/DistributionsHeader.vue.mjs.map +1 -1
  21. package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.d.ts +2 -2
  22. package/dist/datasetDetails/distributions/DownloadAllDistributions.vue.mjs.map +1 -1
  23. package/dist/datasetDetails/distributions/distributionActions/DistributionDownload.vue.d.ts +2 -2
  24. package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs +34 -31
  25. package/dist/datasetDetails/distributions/distributionDetails/DistributionContent.vue.mjs.map +1 -1
  26. package/dist/datasetDetails/header/DatasetDetailsHeaderTitle.vue.d.ts +1 -1
  27. package/dist/datasetDetails/navigation/DatasetDetailsNavigation.vue.d.ts +1 -1
  28. package/dist/datasetDetails/navigation/DatasetDetailsNavigationLinks.vue.d.ts +1 -1
  29. package/dist/datasets/Datasets.vue.mjs +80 -80
  30. package/dist/datasets/Datasets.vue.mjs.map +1 -1
  31. package/dist/facets_2.0/Facets.vue.d.ts +19 -0
  32. package/dist/facets_2.0/Facets.vue.mjs +31 -0
  33. package/dist/facets_2.0/Facets.vue.mjs.map +1 -0
  34. package/dist/facets_2.0/Facets.vue2.mjs +5 -0
  35. package/dist/facets_2.0/Facets.vue2.mjs.map +1 -0
  36. package/dist/facets_2.0/facets/DataServicesFacet.vue.d.ts +75 -0
  37. package/dist/facets_2.0/facets/DataServicesFacet.vue.mjs +49 -0
  38. package/dist/facets_2.0/facets/DataServicesFacet.vue.mjs.map +1 -0
  39. package/dist/facets_2.0/facets/ExpandableSelectFacet.vue.d.ts +93 -0
  40. package/dist/facets_2.0/facets/ExpandableSelectFacet.vue.mjs +143 -0
  41. package/dist/facets_2.0/facets/ExpandableSelectFacet.vue.mjs.map +1 -0
  42. package/dist/facets_2.0/facets/ExpandableSelectFacet.vue2.mjs +5 -0
  43. package/dist/facets_2.0/facets/ExpandableSelectFacet.vue2.mjs.map +1 -0
  44. package/dist/facets_2.0/facets/FacetTitle.vue.d.ts +18 -0
  45. package/dist/facets_2.0/facets/FacetTitle.vue.mjs +38 -0
  46. package/dist/facets_2.0/facets/FacetTitle.vue.mjs.map +1 -0
  47. package/dist/facets_2.0/facets/FacetTitle.vue2.mjs +5 -0
  48. package/dist/facets_2.0/facets/FacetTitle.vue2.mjs.map +1 -0
  49. package/dist/facets_2.0/facets/RadioFacet.vue.d.ts +58 -0
  50. package/dist/facets_2.0/facets/RadioFacet.vue.mjs +92 -0
  51. package/dist/facets_2.0/facets/RadioFacet.vue.mjs.map +1 -0
  52. package/dist/facets_2.0/facets/SelectFacetsItem.vue.d.ts +34 -0
  53. package/dist/facets_2.0/facets/SelectFacetsItem.vue.mjs +45 -0
  54. package/dist/facets_2.0/facets/SelectFacetsItem.vue.mjs.map +1 -0
  55. package/dist/facets_2.0/getFacet.d.ts +3 -0
  56. package/dist/facets_2.0/getFacet.mjs +20 -0
  57. package/dist/facets_2.0/getFacet.mjs.map +1 -0
  58. package/dist/facets_2.0/toggleQueryParam.d.ts +9 -0
  59. package/dist/facets_2.0/toggleQueryParam.mjs +11 -0
  60. package/dist/facets_2.0/toggleQueryParam.mjs.map +1 -0
  61. package/dist/facets_2.0/types.d.ts +9 -0
  62. package/dist/facets_2.0/useFacets.d.ts +5 -0
  63. package/dist/facets_2.0/useFacets.mjs +14 -0
  64. package/dist/facets_2.0/useFacets.mjs.map +1 -0
  65. package/dist/index.d.ts +4 -2
  66. package/dist/index.mjs +285 -280
  67. package/dist/index.mjs.map +1 -1
  68. package/dist/piveau-hub-ui-modules.css +1 -1
  69. package/dist/search/Search.vue.d.ts +2 -0
  70. package/dist/search/Search.vue.mjs +20 -0
  71. package/dist/search/Search.vue.mjs.map +1 -0
  72. package/dist/services/datasetService.d.ts +5 -0
  73. package/dist/services/datasetService.mjs +2 -1
  74. package/dist/services/datasetService.mjs.map +1 -1
  75. package/dist/store/modules/cataloguesStore.d.ts +6 -0
  76. package/dist/store/modules/cataloguesStore.mjs +10 -4
  77. package/dist/store/modules/cataloguesStore.mjs.map +1 -1
  78. package/dist/store/modules/datasetsStore.d.ts +12 -0
  79. package/dist/store/modules/datasetsStore.mjs +26 -14
  80. package/dist/store/modules/datasetsStore.mjs.map +1 -1
  81. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { mapGetters as d } from "vuex";
2
2
  import u from "./DownloadAllDistributions.vue.mjs";
3
- import { resolveComponent as b, openBlock as n, createElementBlock as D, createElementVNode as i, toDisplayString as r, createTextVNode as s, createBlock as c, createCommentVNode as m } from "vue";
3
+ import { resolveComponent as b, openBlock as n, createElementBlock as D, createElementVNode as i, toDisplayString as r, createTextVNode as s, createBlock as m, createCommentVNode as c } from "vue";
4
4
  import "./DistributionsHeader.vue2.mjs";
5
5
  import p from "../../_virtual/_plugin-vue_export-helper.mjs";
6
6
  const g = {
@@ -24,26 +24,29 @@ const g = {
24
24
  "getLanguages"
25
25
  ])
26
26
  }
27
- }, h = { class: "distributions-header-container w-100" }, w = { class: "distributions-header-title-container dsd-item d-flex justify-content-between align-items-center" }, _ = { class: "distributions-header-title" }, f = ["title"], v = { class: "distributions-header-title-count-container" }, U = { class: "distributions-header-title-count" };
27
+ }, h = { class: "distributions-header-container w-100" }, w = {
28
+ class: "distributions-header-title-container dsd-item d-flex flex-column align-items-start",
29
+ style: { position: "relative", left: "-15px" }
30
+ }, f = { class: "distributions-header-title" }, _ = ["title"], v = { class: "distributions-header-title-count-container" }, U = { class: "distributions-header-title-count" };
28
31
  function T(o, t, e, k, l, y) {
29
32
  const a = b("download-all-distributions");
30
33
  return n(), D("div", h, [
31
34
  i("div", w, [
32
- i("div", _, [
35
+ i("div", f, [
33
36
  i("h2", {
34
37
  title: o.$t("message.tooltip.datasetDetails.distribution"),
35
38
  "data-toggle": "tooltip",
36
39
  "data-placement": "top",
37
40
  "data-cy": "dataset-distributions",
38
41
  class: "distributions-header-title-title"
39
- }, r(o.$t("message.metadata.distributions")), 9, f),
42
+ }, r(o.$t("message.metadata.distributions")), 9, _),
40
43
  t[0] || (t[0] = s()),
41
44
  i("div", v, [
42
45
  i("h3", U, r(o.getDistributions ? o.getDistributions.length.toLocaleString("fi") : 0), 1)
43
46
  ])
44
47
  ]),
45
48
  t[1] || (t[1] = s()),
46
- l.downloadAllTop ? (n(), c(a, {
49
+ l.downloadAllTop ? (n(), m(a, {
47
50
  key: 0,
48
51
  primary: !0,
49
52
  small: !0,
@@ -53,13 +56,13 @@ function T(o, t, e, k, l, y) {
53
56
  getDistributionTitle: e.getDistributionTitle,
54
57
  showDownloadUrls: e.showDownloadUrls,
55
58
  isUrlInvalid: e.isUrlInvalid
56
- }, null, 8, ["getDistributions", "getDistributionDescription", "openModal", "getDistributionTitle", "showDownloadUrls", "isUrlInvalid"])) : m("", !0)
59
+ }, null, 8, ["getDistributions", "getDistributionDescription", "openModal", "getDistributionTitle", "showDownloadUrls", "isUrlInvalid"])) : c("", !0)
57
60
  ]),
58
61
  t[2] || (t[2] = s()),
59
62
  t[3] || (t[3] = i("hr", { class: "distributions-header-bottom-hr" }, null, -1))
60
63
  ]);
61
64
  }
62
- const V = /* @__PURE__ */ p(g, [["render", T], ["__scopeId", "data-v-98e2c004"]]);
65
+ const V = /* @__PURE__ */ p(g, [["render", T], ["__scopeId", "data-v-990d4ce1"]]);
63
66
  export {
64
67
  V as default
65
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DistributionsHeader.vue.mjs","sources":["../../../lib/datasetDetails/distributions/DistributionsHeader.vue"],"sourcesContent":["<template>\n <div class=\"distributions-header-container w-100\">\n <div class=\"distributions-header-title-container dsd-item d-flex justify-content-between align-items-center\">\n <div class=\"distributions-header-title\">\n <h2 :title=\"$t('message.tooltip.datasetDetails.distribution')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n data-cy=\"dataset-distributions\"\n class=\"distributions-header-title-title\">\n {{ $t('message.metadata.distributions') }} \n </h2>\n \n <div class=\"distributions-header-title-count-container\">\n <h3 class=\"distributions-header-title-count\">{{ getDistributions ? getDistributions.length.toLocaleString('fi') : 0 }}</h3>\n </div>\n \n </div>\n <download-all-distributions\n v-if=\"downloadAllTop\"\n :primary=\"true\"\n :small=\"true\"\n :getDistributions=\"getDistributions\"\n :getDistributionDescription=\"getDistributionDescription\"\n :openModal=\"openModal\"\n :getDistributionTitle=\"getDistributionTitle\"\n :showDownloadUrls=\"showDownloadUrls\"\n :isUrlInvalid=\"isUrlInvalid\"\n />\n </div>\n <hr class=\"distributions-header-bottom-hr\">\n </div>\n</template>\n\n<script>\nimport {mapGetters} from \"vuex\";\nimport DownloadAllDistributions\n from \"../../datasetDetails/distributions/DownloadAllDistributions\";\n\nexport default {\n name: \"DistributionsHeader\",\n components: {DownloadAllDistributions},\n props: [\n 'getDistributionDescription',\n 'openModal',\n 'getDistributionTitle',\n 'showDownloadUrls',\n 'isUrlInvalid',\n ],\n data() {\n return {\n downloadAllTop: this.$env.content.datasetDetails.bulkDownload.buttonPosition === \"top\"\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDistributions',\n 'getLanguages'\n ])\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n .distributions-header-title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .distributions-header-title-title {\n margin-right: 8px;\n }\n\n .distributions-header-title-count {\n &::before {\n content: '('\n }\n &::after {\n content: ')'\n }\n }\n</style>\n"],"names":["_sfc_main","DownloadAllDistributions","mapGetters","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_openBlock","_createElementBlock","_createElementVNode","_ctx","_toDisplayString","_cache","_createTextVNode","$data","_createBlock","_component_download_all_distributions","$props","_createCommentVNode"],"mappings":";;;;;AAsCA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY,EAAC,0BAAAC,EAAwB;AAAA,EACrC,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,gBAAgB,KAAK,KAAK,QAAQ,eAAe,aAAa,mBAAmB;AAAA;EAEpF;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,KACD;AAAA,EACF;AACH,GA1DOC,IAAA,EAAA,OAAM,uCAAsC,GAC5CC,IAAA,EAAA,OAAM,kGAAiG,GACnGC,IAAA,EAAA,OAAM,6BAA4B,GAH7CC,IAAA,CAAA,OAAA,GAYaC,IAAA,EAAA,OAAM,6CAA4C,GACjDC,IAAA,EAAA,OAAM,mCAAkC;;;AAZpD,SAAAC,EAAA,GAAAC,EA6BM,OA7BNP,GA6BM;AAAA,IA5BNQ,EA0BQ,OA1BRP,GA0BQ;AAAA,MAzBJO,EAaM,OAbNN,GAaM;AAAA,QAZJM,EAMK,MAAA;AAAA,UANA,OAAOC,EAAE,GAAA,6CAAA;AAAA,UACV,eAAY;AAAA,UACZ,kBAAe;AAAA,UACf,WAAQ;AAAA,UACR,OAAM;AAAA,QACL,GAAAC,EAAAD,EAAA,GATb,gCAAA,CAAA,GAAA,GAAAN,CAAA;AAAA,QAAAQ,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,QAYQJ,EAEM,OAFNJ,GAEM;AAAA,UADJI,EAA2H,MAA3HH,GAAgDK,EAAAD,EAAA,mBAAmBA,EAAgB,iBAAC,OAAO,eAAc,IAAA,IAAA,CAAA,GAAA,CAAA;AAAA;;MAbnHE,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,MAkBcC,EAAc,uBADtBC,EAUEC,GAAA;AAAA,QA3BR,KAAA;AAAA,QAmBS,SAAS;AAAA,QACT,OAAO;AAAA,QACP,kBAAkBN,EAAgB;AAAA,QAClC,4BAA4BO,EAA0B;AAAA,QACtD,WAAWA,EAAS;AAAA,QACpB,sBAAsBA,EAAoB;AAAA,QAC1C,kBAAkBA,EAAgB;AAAA,QAClC,cAAcA,EAAY;AAAA,kJA1BnCC,EAAA,IAAA,EAAA;AAAA;IAAAN,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,oBA6BIJ,EAA2C,MAAA,EAAvC,OAAM,iCAAgC,GAAA,MAAA,EAAA;AAAA;;;"}
1
+ {"version":3,"file":"DistributionsHeader.vue.mjs","sources":["../../../lib/datasetDetails/distributions/DistributionsHeader.vue"],"sourcesContent":["<template>\n <div class=\"distributions-header-container w-100\">\n <!-- Adjusting the container for correct alignment -->\n <div class=\"distributions-header-title-container dsd-item d-flex flex-column align-items-start\" style=\"position: relative; left: -15px;\">\n <div class=\"distributions-header-title\">\n <h2 :title=\"$t('message.tooltip.datasetDetails.distribution')\"\n data-toggle=\"tooltip\"\n data-placement=\"top\"\n data-cy=\"dataset-distributions\"\n class=\"distributions-header-title-title\">\n {{ $t('message.metadata.distributions') }} \n </h2>\n \n <div class=\"distributions-header-title-count-container\">\n <h3 class=\"distributions-header-title-count\">{{ getDistributions ? getDistributions.length.toLocaleString('fi') : 0 }}</h3>\n </div>\n \n </div>\n <download-all-distributions\n v-if=\"downloadAllTop\"\n :primary=\"true\"\n :small=\"true\"\n :getDistributions=\"getDistributions\"\n :getDistributionDescription=\"getDistributionDescription\"\n :openModal=\"openModal\"\n :getDistributionTitle=\"getDistributionTitle\"\n :showDownloadUrls=\"showDownloadUrls\"\n :isUrlInvalid=\"isUrlInvalid\"\n />\n </div>\n <hr class=\"distributions-header-bottom-hr\">\n </div>\n</template>\n\n<script>\nimport {mapGetters} from \"vuex\";\nimport DownloadAllDistributions\n from \"../../datasetDetails/distributions/DownloadAllDistributions\";\n\nexport default {\n name: \"DistributionsHeader\",\n components: {DownloadAllDistributions},\n props: [\n 'getDistributionDescription',\n 'openModal',\n 'getDistributionTitle',\n 'showDownloadUrls',\n 'isUrlInvalid',\n ],\n data() {\n return {\n downloadAllTop: this.$env.content.datasetDetails.bulkDownload.buttonPosition === \"top\"\n };\n },\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDistributions',\n 'getLanguages'\n ])\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n .distributions-header-title {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n }\n\n .distributions-header-title-title {\n margin-right: 8px;\n }\n\n .distributions-header-title-count {\n &::before {\n content: '('\n }\n &::after {\n content: ')'\n }\n }\n</style>\n"],"names":["_sfc_main","DownloadAllDistributions","mapGetters","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_openBlock","_createElementBlock","_createElementVNode","_hoisted_2","_ctx","_toDisplayString","_cache","_createTextVNode","$data","_createBlock","_component_download_all_distributions","$props","_createCommentVNode"],"mappings":";;;;;AAuCA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,YAAY,EAAC,0BAAAC,EAAwB;AAAA,EACrC,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,gBAAgB,KAAK,KAAK,QAAQ,eAAe,aAAa,mBAAmB;AAAA;EAEpF;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,KACD;AAAA,EACF;AACH,GA3DOC,IAAA,EAAA,OAAM,uCAAsC;EAE1C,OAAM;AAAA,EAAqF,OAAA,EAAwC,UAAA,YAAA,MAAA,QAAA;GACjIC,IAAA,EAAA,OAAM,6BAA4B,GAJ7CC,IAAA,CAAA,OAAA,GAaaC,IAAA,EAAA,OAAM,6CAA4C,GACjDC,IAAA,EAAA,OAAM,mCAAkC;;;AAbpD,SAAAC,EAAA,GAAAC,EA8BM,OA9BNN,GA8BM;AAAA,IA5BJO,EA0BM,OA1BNC,GA0BM;AAAA,MAzBJD,EAaM,OAbNN,GAaM;AAAA,QAZJM,EAMK,MAAA;AAAA,UANA,OAAOE,EAAE,GAAA,6CAAA;AAAA,UACV,eAAY;AAAA,UACZ,kBAAe;AAAA,UACf,WAAQ;AAAA,UACR,OAAM;AAAA,QACL,GAAAC,EAAAD,EAAA,GAVb,gCAAA,CAAA,GAAA,GAAAP,CAAA;AAAA,QAAAS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,QAaQL,EAEM,OAFNJ,GAEM;AAAA,UADJI,EAA2H,MAA3HH,GAAgDM,EAAAD,EAAA,mBAAmBA,EAAgB,iBAAC,OAAO,eAAc,IAAA,IAAA,CAAA,GAAA,CAAA;AAAA;;MAdnHE,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,MAmBcC,EAAc,uBADtBC,EAUEC,GAAA;AAAA,QA5BR,KAAA;AAAA,QAoBS,SAAS;AAAA,QACT,OAAO;AAAA,QACP,kBAAkBN,EAAgB;AAAA,QAClC,4BAA4BO,EAA0B;AAAA,QACtD,WAAWA,EAAS;AAAA,QACpB,sBAAsBA,EAAoB;AAAA,QAC1C,kBAAkBA,EAAgB;AAAA,QAClC,cAAcA,EAAY;AAAA,kJA3BnCC,EAAA,IAAA,EAAA;AAAA;IAAAN,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAC,EAAA;AAAA,oBA8BIL,EAA2C,MAAA,EAAvC,OAAM,iCAAgC,GAAA,MAAA,EAAA;AAAA;;;"}
@@ -25,10 +25,10 @@ declare const _default: import('vue').DefineComponent<{
25
25
  };
26
26
  }, {
27
27
  files(): any;
28
- getDistributions: import('vuex').Computed;
29
- getTitle: import('vuex').Computed;
30
28
  getCatalog: import('vuex').Computed;
29
+ getDistributions: import('vuex').Computed;
31
30
  getLanguages: import('vuex').Computed;
31
+ getTitle: import('vuex').Computed;
32
32
  }, {
33
33
  getTranslationFor: typeof getTranslationFor;
34
34
  fetchDistributionFiles(zip: any, files: any, folder: any, getContentTypeFormat: any): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"DownloadAllDistributions.vue.mjs","sources":["../../../lib/datasetDetails/distributions/DownloadAllDistributions.vue"],"sourcesContent":["<template>\n <div v-if=\"getDistributions.length > 1 && getCatalog.is_part_of !== 'erpd'\" class=\"dsd-download-all-distributions-button\">\n <pv-button v-if=\"isLoadingAllDistributionFiles\" :small=\"small\" :rounded=\"true\" :primary=\"primary\" :download=\"true\"\n class=\"download-all-btn\"\n data-toggle=\"modal\" data-target=\"#downloadAllModal\"\n >\n <div class=\"loading-spinner\"></div>\n </pv-button>\n <pv-button v-else class=\"download-all-btn\" :small=\"small\" :rounded=\"true\" :primary=\"primary\" :download=\"true\" :action=\"() => openModal(trackAndDownloadAllDistributions, true)\">\n {{ $t('message.datasetDetails.datasets.downloadAll') }}\n </pv-button>\n <div class=\"modal fade\" id=\"downloadAllModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"download progress\" aria-hidden=\"true\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\">{{ $t('message.datasetDetails.datasets.modal.downloadProgress') }}</h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"progress\">\n <div class=\"progress-bar\" role=\"progressbar\" :style=\"{width: `${downloadProgress}%`}\" :aria-valuenow=\"downloadProgress\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n </div>\n <div>\n {{ $t('message.datasetDetails.datasets.modal.downloadingFiles') }} {{ downloadedFilesCounter.toLocaleString('fi') }}/{{getDistributions.length.toLocaleString('fi')}}\n </div>\n <div class=\"d-flex justify-content-between align-items-center\">\n <div>{{ $t('message.datasetDetails.datasets.modal.notDownloaded') }} {{ failedDownloads.toLocaleString('fi') }}</div>\n <i class=\"material-icons help-icon\" data-toggle=\"tooltip\" data-placement=\"bottom\" :title=\"$t('message.datasetDetails.datasets.modal.notDownloadedTooltip')\">help</i>\n </div>\n <div class=\"d-flex justify-content-between align-items-center\">\n <div>{{ $t('message.datasetDetails.datasets.modal.zipNumberOfFiles', { number: numberOfFilesToZip.toLocaleString('fi') }) }}\n <span v-if=\"isLoadingAllDistributionFiles && numberOfFilesToZip > 0\">\n {{ $t('message.datasetDetails.datasets.modal.coupleOfMinutes') }}\n </span> <span v-else-if=\"isLoadingAllDistributionFiles\">\n {{ $t('message.datasetDetails.datasets.modal.waitingForDownload')}}\n </span>\n </div>\n <div v-if=\"isGeneratingZip\" class=\"spinner-grow text-primary\" role=\"status\">\n <span class=\"sr-only\">Loading...</span>\n </div>\n <i v-else-if=\"isGeneratingZipDone\" class=\"material-icons check-icon\">check_circle</i>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">{{ $t('message.datasetDetails.datasets.modal.close') }}</button>\n <button v-if=\"!downloadAllSuccess && !downloadAllError\" type=\"button\" class=\"btn btn-danger\" data-dismiss=\"modal\" @click=\"cancelDownloadAll(cancelDownloadAllAxiosRequestSource)\">\n {{ $t('message.datasetDetails.datasets.modal.cancel') }}\n </button>\n <button v-else-if=\"downloadAllError\" type=\"button\" class=\"btn btn-danger\" @click=\"trackAndDownloadAllDistributions()\">{{ $t('message.datasetDetails.datasets.modal.error') }}</button>\n <button v-else-if=\"downloadAllSuccess\" type=\"button\" class=\"btn btn-success\" data-dismiss=\"modal\">{{ $t('message.datasetDetails.datasets.modal.okay') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport { onUnmounted } from 'vue';\nimport { useRouter } from 'vue-router';\n\nimport {has, isNil} from \"lodash\";\nimport axios from \"axios\";\nimport { saveAs } from 'file-saver';\nimport $ from \"jquery\";\nimport { getTranslationFor } from \"../../utils/helpers\";\n\n\nexport default {\n name: \"DownloadAllDistributions\",\n props: [\n 'getDistributionDescription',\n 'getDistributionTitle',\n 'openModal',\n 'isUrlInvalid',\n 'showDownloadUrls',\n 'primary',\n 'small'\n ],\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDistributions',\n 'getTitle',\n 'getCatalog',\n 'getLanguages'\n ]),\n files() {\n const cutFormatEnding = string => (string.lastIndexOf('.') !== -1 ? string.substring(0, string.lastIndexOf('.')) : string);\n const getFormat = (distribution) => {\n if (has(distribution, 'format.id') && !isNil(distribution.format.id)) {\n const type = distribution.format.id;\n return type.lastIndexOf('.') === -1 ? type.toLowerCase() : type.substring(type.lastIndexOf('.') + 1, type.length).toLowerCase();\n }\n return '';\n };\n const getFileName = (distribution, i) =>\n `${cutFormatEnding(this.getDistributionTitle(distribution)).substring(0, this.bulkDownload.MAX_FILE_TITLE_LENGTH)\n .replace(/\\//g, ' ').trim()}-${i}`\n || `${cutFormatEnding(this.getDistributionDescription(distribution)).substring(0, this.bulkDownload.MAX_FILE_TITLE_LENGTH)\n .replace(/\\//g, ' ').trim()}-${i}`;\n const getUrls = distribution => (this.showDownloadUrls(distribution) ?\n { accessUrl: `${distribution.accessUrl[0]}`, downloadUrl: `${distribution.downloadUrls[0]}` }\n : { accessUrl: `${distribution.accessUrl[0]}` });\n const getFileNameForCSV = distribution => this.getDistributionTitle(distribution).replace(/,/g, '')\n || this.getDistributionDescription(distribution).replace(/,/g, '');\n const files = this.getDistributions\n .map((distribution, i) => ({\n title: getFileName(distribution, i + 1), ...getUrls(distribution), format: getFormat(distribution), csvReportTitle: getFileNameForCSV(distribution),\n }));\n return files\n }\n },\n data() {\n return {\n downloadedFilesCounter: 0,\n numberOfFilesToZip: 0,\n downloadProgress: 0,\n failedDownloads: 0,\n isGeneratingZip: false,\n isGeneratingZipDone: false,\n isLoadingAllDistributionFiles: false,\n cancelDownloadAllAxiosRequestSource: null,\n isDownloadAllDistributionsCanceled: false,\n downloadAllSuccess: false,\n downloadAllError: false,\n bulkDownload: {\n MAX_FILE_TITLE_LENGTH: this.$env.content.datasetDetails.bulkDownload.MAX_FILE_TITLE_LENGTH,\n TIMEOUT_MS: this.$env.content.datasetDetails.bulkDownload.TIMEOUT_MS,\n }\n }\n },\n methods: {\n getTranslationFor,\n async fetchDistributionFiles(zip, files, folder, getContentTypeFormat) {\n const csvReportArray = [];\n let csvReport = 'filename,status, issue_cause downloadURL, issue_cause accessURL\\n';\n let csvDownloadURLIssue;\n const problematicFormats = ['wms', 'wfs'];\n\n const CancelToken = axios.CancelToken;\n this.cancelDownloadAllAxiosRequestSource = CancelToken.source();\n const axiosInstance = this.$bulkDownloadAxiosInstance;\n const requestSettings = { responseType: 'blob', cancelToken: this.cancelDownloadAllAxiosRequestSource.token, timeout: this.bulkDownload.TIMEOUT_MS };\n\n const promises = files.map(async (file) => {\n const problematicFormat = problematicFormats.find(format => format === file.format);\n if (!problematicFormat) {\n let isRejected = true;\n let responseData;\n let fileFormat = file.format;\n\n // try to download from download url\n if (has(file, 'downloadUrl')) {\n responseData = await axiosInstance.get(file.downloadUrl, requestSettings).then((responseDownloadUrl) => {\n if (responseDownloadUrl.status === 200) {\n isRejected = false;\n if (!file.format.length > 0) fileFormat = getContentTypeFormat(responseDownloadUrl.headers['content-type']);\n csvReportArray.push([file.csvReportTitle, 'delivered']);\n return responseDownloadUrl.data;\n }\n return Promise.reject(new Error(responseDownloadUrl.statusText));\n }).catch((error) => {\n isRejected = true;\n csvDownloadURLIssue = error;\n });\n } else csvDownloadURLIssue = 'no download url available';\n if (this.isUrlInvalid(file.downloadUrl)) {\n csvReportArray.push([file.csvReportTitle, 'issue', 'url is invalid']);\n }\n // try to download from access url\n if (isRejected) {\n responseData = await axiosInstance.get(file.accessUrl, requestSettings).then((responseAccessUrl) => {\n if (responseAccessUrl.status === 200) {\n isRejected = false;\n if (file.format.length > 0) fileFormat = getContentTypeFormat(responseAccessUrl.headers['content-type']);\n csvReportArray.push([file.csvReportTitle, 'delivered', csvDownloadURLIssue]);\n return responseAccessUrl.data;\n }\n return Promise.reject(new Error(responseAccessUrl.statusText));\n }).catch((error) => {\n isRejected = true;\n csvReportArray.push([file.csvReportTitle, 'issue', csvDownloadURLIssue, error]);\n });\n }\n if (!isRejected) folder.file(`${file.title}.${fileFormat}`, responseData, { binary: true });\n if (!this.isDownloadAllDistributionsCanceled) {\n this.downloadedFilesCounter += 1;\n this.downloadProgress = Math.floor(100 * this.downloadedFilesCounter / this.getDistributions.length);\n if (isRejected) this.failedDownloads += 1;\n } else {\n this.downloadedFilesCounter = 0;\n this.downloadProgress = 0;\n this.failedDownloads = 0;\n }\n } else csvReportArray.push([file.csvReportTitle, 'issue', `We can't download ${problematicFormat} files using the download all button. Please try to download this file using the download button next to the file name.`]);\n });\n\n await Promise.all(promises);\n csvReportArray.forEach((row) => {\n csvReport += row.join(',');\n csvReport += '\\n';\n });\n zip.file('file_report.csv', csvReport, { binary: true });\n },\n hideDownloadAllModal() {\n $('#downloadAllModal').modal('hide');\n },\n generateAndSaveZip(zip, zipName) {\n if (!this.isDownloadAllDistributionsCanceled) {\n this.numberOfFilesToZip = Object.keys(zip.files).length;\n this.isGeneratingZip = true;\n }\n\n class UserInterruptException {\n constructor(message) {\n this.message = message;\n this.name = 'UserInterruptException';\n }\n }\n\n zip.generateAsync({ type: 'blob', compression: 'DEFLATE' }, () => {\n if (this.isDownloadAllDistributionsCanceled) throw new UserInterruptException('user canceled generate zip operation');\n })\n .then((blob) => {\n this.isGeneratingZip = false;\n this.isGeneratingZipDone = true;\n this.isLoadingAllDistributionFiles = false;\n this.downloadAllSuccess = true;\n saveAs(blob, zipName);\n })\n .catch((e) => {\n this.isGeneratingZip = false;\n this.isDownloadAllDistributionsCanceled = false;\n this.isLoadingAllDistributionFiles = false;\n this.downloadAllError = true;\n this.downloadedFilesCounter = 0;\n this.downloadProgress = 0;\n this.numberOfFilesToZip = 0;\n console.warn(e); // eslint-disable-line\n });\n\n // works with chrome => to make it compatible to more browsers look here https://jimmywarting.github.io/StreamSaver.js/examples/saving-multiple-files.html open developer tools and find saving-multiple-files.html\n // install stream saver and import it + script src=\"https://cdn.jsdelivr.net/npm/web-streams-polyfill@2.0.2/dist/ponyfill.min.js\"\n // if we don't want to use his service worker we can configure something (I think we have to change the mitm url) => read the api https://jimmywarting.github.io/StreamSaver.js\n // I think IE will never work with this solution\n /* const writeStream = streamSaver.createWriteStream(zipName).getWriter();\n zip.generateInternalStream({ type: 'uint8array', streamFiles: true })\n .on('data', data => writeStream.write(data))\n .on('error', err => console.error(err))\n .on('end', () => writeStream.close())\n .resume(); */\n },\n cancelDownloadAll(source) {\n // stops axios operations\n source.cancel('user canceled axios operation');\n // stops zip operation\n this.isDownloadAllDistributionsCanceled = true;\n },\n async trackAndDownloadAllDistributions() {\n if (this.$piwik && this.$piwik.trackDownload) {\n this.$piwik.trackDownload(\n window.location.href,\n {\n files: JSON.stringify(this.files),\n downloadAll: 'true',\n format: 'all',\n }\n );\n }\n return await this.downloadAllDistributions();\n },\n async downloadAllDistributions() {\n this.downloadedFilesCounter = 0;\n this.downloadProgress = 0;\n this.failedDownloads = 0;\n this.numberOfFilesToZip = 0;\n this.isGeneratingZip = false;\n this.isGeneratingZipDone = false;\n this.isLoadingAllDistributionFiles = true;\n this.isDownloadAllDistributionsCanceled = false;\n this.downloadAllSuccess = false;\n this.downloadAllError = false;\n const getContentTypeFormat = (contentType) => {\n const startIndex = contentType.lastIndexOf('/') + 1;\n const endIndex = contentType.indexOf(';') !== -1 ? contentType.indexOf(';') : contentType.length;\n return contentType.substring(startIndex, endIndex);\n };\n\n const {default: JSZip} = await import('jszip');\n const zip = new JSZip();\n const zipName = `${this.getTranslationFor(this.getTitle, this.$route.query.locale, this.getLanguages)}.zip`;\n const folder = zip.folder(this.getTranslationFor(this.getCatalog.title, this.$route.query.locale, this.getLanguages));\n await this.fetchDistributionFiles(zip, this.files, folder, getContentTypeFormat);\n await this.generateAndSaveZip(zip, zipName);\n },\n // handle navigation to extern website (cancel bulk download and hide modal)\n beforeWindowUnload(e) {\n if (this.isLoadingAllDistributionFiles && !this.isDownloadAllDistributionsCanceled) {\n e.preventDefault();\n // Chrome requires returnValue to be set\n e.returnValue = ''; // eslint-disable-line\n }\n }\n },\n created() {\n window.addEventListener('beforeunload', this.beforeWindowUnload);\n },\n beforeUnmount() {\n window.removeEventListener('beforeunload', this.beforeWindowUnload);\n },\n setup() {\n const router = useRouter();\n \n onUnmounted(() => {\n router.beforeEach((to, from, next) => {\n if (this.isLoadingAllDistributionFiles && !this.isDownloadAllDistributionsCanceled) {\n const answer = window.confirm(this.$t('message.datasetDetails.datasets.leavePageWindow.text')); // eslint-disable-line\n if (answer) {\n // if modal is open we have to hide it when user tries to navigate back\n this.hideDownloadAllModal();\n this.cancelDownloadAll(this.cancelDownloadAllAxiosRequestSource);\n next();\n } else {\n next(false);\n }\n } else {\n this.hideDownloadAllModal();\n next();\n }\n })();\n })\n },\n}\n</script>\n\n<style scoped>\n\n</style>\n"],"names":["_sfc_main","mapGetters","cutFormatEnding","string","getFormat","distribution","has","isNil","type","getFileName","i","getUrls","getFileNameForCSV","getTranslationFor","zip","files","folder","getContentTypeFormat","csvReportArray","csvReport","csvDownloadURLIssue","problematicFormats","CancelToken","axios","axiosInstance","requestSettings","promises","file","problematicFormat","format","isRejected","responseData","fileFormat","responseDownloadUrl","error","responseAccessUrl","row","$","zipName","UserInterruptException","message","blob","saveAs","e","source","contentType","startIndex","endIndex","JSZip","router","useRouter","onUnmounted","to","from","next","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_17","_ctx","_openBlock","_createElementBlock","_hoisted_1","$data","_createBlock","_component_pv_button","$props","_withCtx","_cache","_createElementVNode","$options","_createTextVNode","_toDisplayString","_hoisted_2","_hoisted_3","_normalizeStyle","_hoisted_13","_hoisted_14","_createCommentVNode","_hoisted_15","_hoisted_16","_hoisted_18","$event","_hoisted_19"],"mappings":";;;;;;;;;AAuEA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,kBAAkB;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,IACD,QAAQ;AACN,YAAMC,IAAkB,CAAAC,MAAWA,EAAO,YAAY,GAAG,MAAM,KAAKA,EAAO,UAAU,GAAGA,EAAO,YAAY,GAAG,CAAC,IAAIA,GAC7GC,IAAY,CAACC,MAAiB;AAClC,YAAIC,EAAID,GAAc,WAAW,KAAK,CAACE,EAAMF,EAAa,OAAO,EAAE,GAAG;AACpE,gBAAMG,IAAOH,EAAa,OAAO;AACjC,iBAAOG,EAAK,YAAY,GAAG,MAAM,KAAKA,EAAK,YAAW,IAAKA,EAAK,UAAUA,EAAK,YAAY,GAAG,IAAI,GAAGA,EAAK,MAAM,EAAE;QACpH;AACA,eAAO;AAAA,SAEHC,IAAc,CAACJ,GAAcK,MACjC,GAAGR,EAAgB,KAAK,qBAAqBG,CAAY,CAAC,EAAE,UAAU,GAAG,KAAK,aAAa,qBAAqB,EAC7G,QAAQ,OAAO,GAAG,EAAE,KAAI,CAAE,IAAIK,CAAC,MAC/B,GAAGR,EAAgB,KAAK,2BAA2BG,CAAY,CAAC,EAAE,UAAU,GAAG,KAAK,aAAa,qBAAqB,EACtH,QAAQ,OAAO,GAAG,EAAE,KAAI,CAAE,IAAIK,CAAC,IAC9BC,IAAU,CAAAN,MAAiB,KAAK,iBAAiBA,CAAY,IACjE,EAAE,WAAW,GAAGA,EAAa,UAAU,CAAC,CAAC,IAAI,aAAa,GAAGA,EAAa,aAAa,CAAC,CAAC,GAAG,IAC1F,EAAE,WAAW,GAAGA,EAAa,UAAU,CAAC,CAAC,GAAC,GACxCO,IAAoB,CAAAP,MAAgB,KAAK,qBAAqBA,CAAY,EAAE,QAAQ,MAAM,EAAE,KAC7F,KAAK,2BAA2BA,CAAY,EAAE,QAAQ,MAAM,EAAE;AAKjE,aAJY,KAAK,iBAChB,IAAI,CAACA,GAAcK,OAAO;AAAA,QACzB,OAAOD,EAAYJ,GAAcK,IAAI,CAAC;AAAA,QAAG,GAAGC,EAAQN,CAAY;AAAA,QAAG,QAAQD,EAAUC,CAAY;AAAA,QAAG,gBAAgBO,EAAkBP,CAAY;AAAA,MACnJ,EAAC;AAAA,IAEN;AAAA,EACD;AAAA,EACD,OAAO;AACL,WAAO;AAAA,MACL,wBAAwB;AAAA,MACxB,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,qBAAqB;AAAA,MACrB,+BAA+B;AAAA,MAC/B,qCAAqC;AAAA,MACrC,oCAAoC;AAAA,MACpC,oBAAoB;AAAA,MACpB,kBAAkB;AAAA,MAClB,cAAc;AAAA,QACZ,uBAAuB,KAAK,KAAK,QAAQ,eAAe,aAAa;AAAA,QACrE,YAAY,KAAK,KAAK,QAAQ,eAAe,aAAa;AAAA,MAC5D;AAAA,IACF;AAAA,EACD;AAAA,EACD,SAAS;AAAA,IACP,mBAAAQ;AAAA,IACA,MAAM,uBAAuBC,GAAKC,GAAOC,GAAQC,GAAsB;AACrE,YAAMC,IAAiB,CAAA;AACvB,UAAIC,IAAY;AAAA,GACZC;AACJ,YAAMC,IAAqB,CAAC,OAAO,KAAK,GAElCC,IAAcC,EAAM;AAC1B,WAAK,sCAAsCD,EAAY;AACvD,YAAME,IAAgB,KAAK,4BACrBC,IAAkB,EAAE,cAAc,QAAQ,aAAa,KAAK,oCAAoC,OAAO,SAAS,KAAK,aAAa,cAElIC,IAAWX,EAAM,IAAI,OAAOY,MAAS;AACzC,cAAMC,IAAoBP,EAAmB,KAAK,CAAAQ,MAAUA,MAAWF,EAAK,MAAM;AAClF,YAAKC;AAgDE,UAAAV,EAAe,KAAK,CAACS,EAAK,gBAAgB,SAAS,qBAAqBC,CAAiB,yHAAyH,CAAC;AAAA,aAhDlM;AACtB,cAAIE,IAAa,IACbC,GACAC,IAAaL,EAAK;AAGtB,UAAIrB,EAAIqB,GAAM,aAAa,IACzBI,IAAe,MAAMP,EAAc,IAAIG,EAAK,aAAaF,CAAe,EAAE,KAAK,CAACQ,MAC1EA,EAAoB,WAAW,OACjCH,IAAa,IACT,CAACH,EAAK,OAAO,SAAS,MAAGK,IAAaf,EAAqBgB,EAAoB,QAAQ,cAAc,CAAC,IAC1Gf,EAAe,KAAK,CAACS,EAAK,gBAAgB,WAAW,CAAC,GAC/CM,EAAoB,QAEtB,QAAQ,OAAO,IAAI,MAAMA,EAAoB,UAAU,CAAC,CAChE,EAAE,MAAM,CAACC,MAAU;AAClB,YAAAJ,IAAa,IACbV,IAAsBc;AAAA,UACxB,CAAC,IACId,IAAsB,6BACzB,KAAK,aAAaO,EAAK,WAAW,KACpCT,EAAe,KAAK,CAACS,EAAK,gBAAgB,SAAS,gBAAgB,CAAC,GAGlEG,MACFC,IAAe,MAAMP,EAAc,IAAIG,EAAK,WAAWF,CAAe,EAAE,KAAK,CAACU,MACxEA,EAAkB,WAAW,OAC/BL,IAAa,IACTH,EAAK,OAAO,SAAS,MAAGK,IAAaf,EAAqBkB,EAAkB,QAAQ,cAAc,CAAC,IACvGjB,EAAe,KAAK,CAACS,EAAK,gBAAgB,aAAaP,CAAmB,CAAC,GACpEe,EAAkB,QAEpB,QAAQ,OAAO,IAAI,MAAMA,EAAkB,UAAU,CAAC,CAC9D,EAAE,MAAM,CAACD,MAAU;AAClB,YAAAJ,IAAa,IACbZ,EAAe,KAAK,CAACS,EAAK,gBAAgB,SAASP,GAAqBc,CAAK,CAAC;AAAA,UAChF,CAAC,IAEEJ,KAAYd,EAAO,KAAK,GAAGW,EAAK,KAAK,IAAIK,CAAU,IAAID,GAAc,EAAE,QAAQ,GAAM,CAAA,GACrF,KAAK,sCAKR,KAAK,yBAAyB,GAC9B,KAAK,mBAAmB,GACxB,KAAK,kBAAkB,MANvB,KAAK,0BAA0B,GAC/B,KAAK,mBAAmB,KAAK,MAAM,MAAM,KAAK,yBAAyB,KAAK,iBAAiB,MAAM,GAC/FD,MAAY,KAAK,mBAAmB;AAAA,QAM1C;AAAA,MACJ,CAAC;AAED,YAAM,QAAQ,IAAIJ,CAAQ,GAC1BR,EAAe,QAAQ,CAACkB,MAAQ;AAC9B,QAAAjB,KAAaiB,EAAI,KAAK,GAAG,GACzBjB,KAAa;AAAA;AAAA,MACf,CAAC,GACDL,EAAI,KAAK,mBAAmBK,GAAW,EAAE,QAAQ,GAAK,CAAC;AAAA,IACxD;AAAA,IACD,uBAAuB;AACrB,MAAAkB,EAAE,mBAAmB,EAAE,MAAM,MAAM;AAAA,IACpC;AAAA,IACD,mBAAmBvB,GAAKwB,GAAS;AAC/B,MAAK,KAAK,uCACR,KAAK,qBAAqB,OAAO,KAAKxB,EAAI,KAAK,EAAE,QACjD,KAAK,kBAAkB;AAAA,MAGzB,MAAMyB,EAAuB;AAAA,QAC3B,YAAYC,GAAS;AACnB,eAAK,UAAUA,GACf,KAAK,OAAO;AAAA,QACd;AAAA,MACF;AAEA,MAAA1B,EAAI,cAAc,EAAE,MAAM,QAAQ,aAAa,UAAU,GAAG,MAAM;AAChE,YAAI,KAAK;AAAoC,gBAAM,IAAIyB,EAAuB,sCAAsC;AAAA,OACrH,EACE,KAAK,CAACE,MAAS;AACd,aAAK,kBAAkB,IACvB,KAAK,sBAAsB,IAC3B,KAAK,gCAAgC,IACrC,KAAK,qBAAqB,IAC1BC,EAAOD,GAAMH,CAAO;AAAA,OACrB,EACA,MAAM,CAACK,MAAM;AACZ,aAAK,kBAAkB,IACvB,KAAK,qCAAqC,IAC1C,KAAK,gCAAgC,IACrC,KAAK,mBAAmB,IACxB,KAAK,yBAAyB,GAC9B,KAAK,mBAAmB,GACxB,KAAK,qBAAqB,GAC1B,QAAQ,KAAKA,CAAC;AAAA,MAChB,CAAC;AAAA,IAYJ;AAAA,IACD,kBAAkBC,GAAQ;AAExB,MAAAA,EAAO,OAAO,+BAA+B,GAE7C,KAAK,qCAAqC;AAAA,IAC3C;AAAA,IACD,MAAM,mCAAmC;AACvC,aAAI,KAAK,UAAU,KAAK,OAAO,iBAC7B,KAAK,OAAO;AAAA,QACV,OAAO,SAAS;AAAA,QAChB;AAAA,UACE,OAAO,KAAK,UAAU,KAAK,KAAK;AAAA,UAChC,aAAa;AAAA,UACb,QAAQ;AAAA,QACV;AAAA,SAGG,MAAM,KAAK;IACnB;AAAA,IACD,MAAM,2BAA2B;AAC/B,WAAK,yBAAyB,GAC9B,KAAK,mBAAmB,GACxB,KAAK,kBAAkB,GACvB,KAAK,qBAAqB,GAC1B,KAAK,kBAAkB,IACvB,KAAK,sBAAsB,IAC3B,KAAK,gCAAgC,IACrC,KAAK,qCAAqC,IAC1C,KAAK,qBAAqB,IAC1B,KAAK,mBAAmB;AACxB,YAAM3B,IAAuB,CAAC4B,MAAgB;AAC5C,cAAMC,IAAaD,EAAY,YAAY,GAAG,IAAI,GAC5CE,IAAWF,EAAY,QAAQ,GAAG,MAAM,KAAKA,EAAY,QAAQ,GAAG,IAAIA,EAAY;AAC1F,eAAOA,EAAY,UAAUC,GAAYC,CAAQ;AAAA,SAG7C,EAAC,SAASC,EAAK,IAAI,MAAM,OAAO,OAAO,GACvClC,IAAM,IAAIkC,KACVV,IAAU,GAAG,KAAK,kBAAkB,KAAK,UAAU,KAAK,OAAO,MAAM,QAAQ,KAAK,YAAY,CAAC,QAC/FtB,IAASF,EAAI,OAAO,KAAK,kBAAkB,KAAK,WAAW,OAAO,KAAK,OAAO,MAAM,QAAQ,KAAK,YAAY,CAAC;AACpH,YAAM,KAAK,uBAAuBA,GAAK,KAAK,OAAOE,GAAQC,CAAoB,GAC/E,MAAM,KAAK,mBAAmBH,GAAKwB,CAAO;AAAA,IAC3C;AAAA;AAAA,IAED,mBAAmBK,GAAG;AACpB,MAAI,KAAK,iCAAiC,CAAC,KAAK,uCAC9CA,EAAE,eAAc,GAEhBA,EAAE,cAAc;AAAA,IAEpB;AAAA,EACD;AAAA,EACD,UAAU;AACR,WAAO,iBAAiB,gBAAgB,KAAK,kBAAkB;AAAA,EAChE;AAAA,EACD,gBAAgB;AACd,WAAO,oBAAoB,gBAAgB,KAAK,kBAAkB;AAAA,EACnE;AAAA,EACD,QAAQ;AACN,UAAMM,IAASC;AAEf,IAAAC,EAAY,MAAM;AAChB,MAAAF,EAAO,WAAW,CAACG,GAAIC,GAAMC,MAAS;AACpC,QAAI,KAAK,iCAAiC,CAAC,KAAK,qCAC/B,OAAO,QAAQ,KAAK,GAAG,sDAAsD,CAAC,KAG3F,KAAK,qBAAoB,GACzB,KAAK,kBAAkB,KAAK,mCAAmC,GAC/DA,OAEAA,EAAK,EAAK,KAGZ,KAAK,qBAAoB,GACzBA;MAEH,CAAA;KACF;AAAA,EACF;AACH;EA/UA,KAAA;AAAA,EAC+E,OAAM;;EAU5E,OAAM;AAAA,EAAa,IAAG;AAAA,EAAmB,UAAS;AAAA,EAAK,MAAK;AAAA,EAAS,mBAAgB;AAAA,EAAoB,eAAY;;EACnH,OAAM;AAAA,EAAe,MAAK;GACxBC,IAAA,EAAA,OAAM,gBAAe,GACnBC,IAAA,EAAA,OAAM,eAAc,GACnBC,IAAA,EAAA,OAAM,cAAa,GAKpBC,IAAA,EAAA,OAAM,aAAY,GAChBC,IAAA,EAAA,OAAM,WAAU,GArBjCC,IAAA,CAAA,eAAA,GA2BiBC,IAAA,EAAA,OAAM,oDAAmD,GA3B1EC,IAAA,CAAA,OAAA,GA+BiBC,IAAA,EAAA,OAAM,oDAAmD,SA/B1E,KAAA,EAAA,SAAA,KAAA,EAAA;EAAA,KAAA;AAAA,EAuC0C,OAAM;AAAA,EAA4B,MAAK;;EAvCjF,KAAA;AAAA,EA0CiD,OAAM;GAGxCC,KAAA,EAAA,OAAM,eAAc;EACf,MAAK;AAAA,EAAS,OAAM;AAAA,EAAoB,gBAAa;;EA9CzE,KAAA;AAAA,EAmDmD,MAAK;AAAA,EAAS,OAAM;AAAA,EAAkB,gBAAa;;;;AAlDzF,SAAAC,EAAA,iBAAiB,SAAc,KAAAA,EAAA,WAAW,eAAU,UAA/DC,KAAAC,EAuDM,OAvDNC,GAuDM;AAAA,IAtDaC,EAA6B,sCAA9CC,EAKYC,GAAA;AAAA,MAPhB,KAAA;AAAA,MAEqD,OAAOC,EAAK;AAAA,MAAG,SAAS;AAAA,MAAO,SAASA,EAAO;AAAA,MAAG,UAAU;AAAA,MACrG,OAAM;AAAA,MACN,eAAY;AAAA,MAAQ,eAAY;AAAA;MAJ5C,SAAAC,EAMM,MAAmCC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,QAAnCC,EAAmC,OAAA,EAA9B,OAAM,kBAAiB,GAAA,MAAA,EAAA;AAAA;MANlC,GAAA;AAAA,yCAQIL,EAEYC,GAAA;AAAA,MAVhB,KAAA;AAAA,MAQsB,OAAM;AAAA,MAAoB,OAAOC,EAAK;AAAA,MAAG,SAAS;AAAA,MAAO,SAASA,EAAO;AAAA,MAAG,UAAU;AAAA,MAAO,QAAM,MAAQA,EAAS,UAACI,EAAgC,kCAAA,EAAA;AAAA;MAR3K,SAAAH,EASM,MAAuD;AAAA,QAT7DI,EAAAC,EASSb,EAAE,GAAA,6CAAA,CAAA,GAAA,CAAA;AAAA;MATX,GAAA;AAAA;IAAAS,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAA;AAAA,IAWIF,EA4CM,OA5CNI,GA4CM;AAAA,MA3CJJ,EA0CM,OA1CNK,GA0CM;AAAA,QAzCJL,EAwCM,OAxCNpB,GAwCM;AAAA,UAvCJoB,EAKM,OALNnB,GAKM;AAAA,YAJJmB,EAA+F,MAA/FlB,GAA+FqB,EAApEb,EAAE,GAAA,wDAAA,CAAA,GAAA,CAAA;AAAA,YAfzCS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAA;AAAA,4BAgBYF,EAES,UAAA;AAAA,cAFD,MAAK;AAAA,cAAS,OAAM;AAAA,cAAQ,gBAAa;AAAA,cAAQ,cAAW;AAAA;cAClEA,EAAuC,QAAjC,EAAA,eAAY,OAAM,GAAC,GAAO;AAAA;;UAjB9CD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAA;AAAA,UAoBUF,EAwBM,OAxBNjB,GAwBM;AAAA,YAvBJiB,EAEM,OAFNhB,GAEM;AAAA,cADJgB,EAAoK,OAAA;AAAA,gBAA/J,OAAM;AAAA,gBAAe,MAAK;AAAA,gBAAe,OAtB5DM,cAsB8EZ,EAAgB,gBAAA,IAAA,CAAA;AAAA,gBAAO,iBAAeA,EAAgB;AAAA,gBAAE,iBAAc;AAAA,gBAAI,iBAAc;AAAA,cAtBtK,GAAA,MAAA,IAAAT,CAAA;AAAA;YAAAc,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAA;AAAA,YAwBYF,EAEM,OADD,MAAAG,EAAAb,EAAA,GAA+D,wDAAA,CAAA,IAAA,QAAII,EAAsB,uBAAC,eAAc,IAAA,CAAA,IAAS,MAAGS,EAAAb,EAAA,iBAAiB,OAAO,eAAc,IAAA,CAAA,GAAA,CAAA;AAAA,YAzB3KS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAA;AAAA,YA2BYF,EAGM,OAHNd,GAGM;AAAA,cAFJc,EAAqH,eAA7GV,EAAE,GAAA,qDAAA,CAAA,IAA0D,MAAIa,EAAAT,EAAA,gBAAgB,eAAc,IAAA,CAAA,GAAA,CAAA;AAAA,cA5BpHK,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAA;AAAA,cA6BcF,EAAoK,KAAA;AAAA,gBAAjK,OAAM;AAAA,gBAA2B,eAAY;AAAA,gBAAU,kBAAe;AAAA,gBAAU,OAAOV,EAAE,GAAA,4DAAA;AAAA,cAAgE,GAAA,QA7B1K,GAAAH,CAAA;AAAA;YAAAY,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAA;AAAA,YA+BYF,EAYM,OAZNZ,GAYM;AAAA,cAXJY,EAMM,OAAA,MAAA;AAAA,gBAtCpBE,EAAAC,EAgCsBb,KAAuE,0DAAA,EAAA,QAAAI,EAAA,mBAAmB,2BAA0B,KAC1H,CAAA;AAAA,gBAAYA,EAAA,iCAAiCA,EAAkB,qBAAA,UAA/DF,EAEO,QAnCvBe,KAkCqBjB,EAAE,GAAA,uDAAA,CAAA,GAAA,CAAA,KACkBI,EAA6B,sCAA9CF,EAED,QArCvBgB,KAoCqBlB,EAAE,GAAA,0DAAA,CAAA,GAAA,CAAA,KApCvBmB,EAAA,IAAA,EAAA;AAAA;cAAAV,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAG,EAAA;AAAA,cAuCyBR,EAAe,mBAA1BH,EAAA,GAAAC,EAEM,OAFNkB,GAEMX,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBADJC,EAAuC,QAAjC,EAAA,OAAM,UAAS,GAAC,cAAU,EAAA;AAAA,qBAEpBN,EAAmB,4BAAjCF,EAAqF,KAArFmB,IAAqE,cAAY,KA1C/FF,EAAA,IAAA,EAAA;AAAA;;UAAAV,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAA;AAAA,UA6CUF,EAOM,OAPNX,IAOM;AAAA,YANJW,EAAqI,UAArIY,IAAqIT,EAA7Db,EAAE,GAAA,6CAAA,CAAA,GAAA,CAAA;AAAA,YA9CtFS,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAG,EAAA;AAAA,YA+C2B,CAAAR,EAAA,uBAAuBA,EAAgB,yBAAtDF,EAES,UAAA;AAAA,cAjDrB,KAAA;AAAA,cA+CoE,MAAK;AAAA,cAAS,OAAM;AAAA,cAAiB,gBAAa;AAAA,cAAS,SAAKO,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAc,MAAEZ,EAAiB,kBAACP,EAAmC,mCAAA;AAAA,iBAC1KJ,EAAE,GAAA,8CAAA,CAAA,GAAA,CAAA,KAEYI,EAAgB,yBAAnCF,EAAsL,UAAA;AAAA,cAlDlM,KAAA;AAAA,cAkDiD,MAAK;AAAA,cAAS,OAAM;AAAA,cAAkB,gCAAOS,EAAgC,iCAAA;AAAA,iBAAOX,EAAE,GAAA,6CAAA,CAAA,GAAA,CAAA,KACxGI,EAAkB,2BAArCF,EAAiK,UAAjKsB,IAAiKX,EAA5Db,EAAE,GAAA,4CAAA,CAAA,GAAA,CAAA,KAnDnHmB,EAAA,IAAA,EAAA;AAAA;;;;QAAAA,EAAA,IAAA,EAAA;;;"}
1
+ {"version":3,"file":"DownloadAllDistributions.vue.mjs","sources":["../../../lib/datasetDetails/distributions/DownloadAllDistributions.vue"],"sourcesContent":["<template>\n <div v-if=\"getDistributions.length > 1 && getCatalog.is_part_of !== 'erpd'\" class=\"dsd-download-all-distributions-button\">\n <pv-button v-if=\"isLoadingAllDistributionFiles\" :small=\"small\" :rounded=\"true\" :primary=\"primary\" :download=\"true\"\n class=\"download-all-btn\"\n data-toggle=\"modal\" data-target=\"#downloadAllModal\"\n > \n <div class=\"loading-spinner\"></div>\n </pv-button>\n <pv-button v-else class=\"download-all-btn\" :small=\"small\" :rounded=\"true\" :primary=\"primary\" :download=\"true\" :action=\"() => openModal(trackAndDownloadAllDistributions, true)\">\n {{ $t('message.datasetDetails.datasets.downloadAll') }}\n </pv-button>\n <div class=\"modal fade\" id=\"downloadAllModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"download progress\" aria-hidden=\"true\">\n <div class=\"modal-dialog\" role=\"document\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h3 class=\"modal-title\">{{ $t('message.datasetDetails.datasets.modal.downloadProgress') }}</h3>\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div class=\"progress\">\n <div class=\"progress-bar\" role=\"progressbar\" :style=\"{width: `${downloadProgress}%`}\" :aria-valuenow=\"downloadProgress\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\n </div>\n <div>\n {{ $t('message.datasetDetails.datasets.modal.downloadingFiles') }} {{ downloadedFilesCounter.toLocaleString('fi') }}/{{getDistributions.length.toLocaleString('fi')}}\n </div>\n <div class=\"d-flex justify-content-between align-items-center\">\n <div>{{ $t('message.datasetDetails.datasets.modal.notDownloaded') }} {{ failedDownloads.toLocaleString('fi') }}</div>\n <i class=\"material-icons help-icon\" data-toggle=\"tooltip\" data-placement=\"bottom\" :title=\"$t('message.datasetDetails.datasets.modal.notDownloadedTooltip')\">help</i>\n </div>\n <div class=\"d-flex justify-content-between align-items-center\">\n <div>{{ $t('message.datasetDetails.datasets.modal.zipNumberOfFiles', { number: numberOfFilesToZip.toLocaleString('fi') }) }}\n <span v-if=\"isLoadingAllDistributionFiles && numberOfFilesToZip > 0\">\n {{ $t('message.datasetDetails.datasets.modal.coupleOfMinutes') }}\n </span> <span v-else-if=\"isLoadingAllDistributionFiles\">\n {{ $t('message.datasetDetails.datasets.modal.waitingForDownload')}}\n </span>\n </div>\n <div v-if=\"isGeneratingZip\" class=\"spinner-grow text-primary\" role=\"status\">\n <span class=\"sr-only\">Loading...</span>\n </div>\n <i v-else-if=\"isGeneratingZipDone\" class=\"material-icons check-icon\">check_circle</i>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-secondary\" data-dismiss=\"modal\">{{ $t('message.datasetDetails.datasets.modal.close') }}</button>\n <button v-if=\"!downloadAllSuccess && !downloadAllError\" type=\"button\" class=\"btn btn-danger\" data-dismiss=\"modal\" @click=\"cancelDownloadAll(cancelDownloadAllAxiosRequestSource)\">\n {{ $t('message.datasetDetails.datasets.modal.cancel') }}\n </button>\n <button v-else-if=\"downloadAllError\" type=\"button\" class=\"btn btn-danger\" @click=\"trackAndDownloadAllDistributions()\">{{ $t('message.datasetDetails.datasets.modal.error') }}</button>\n <button v-else-if=\"downloadAllSuccess\" type=\"button\" class=\"btn btn-success\" data-dismiss=\"modal\">{{ $t('message.datasetDetails.datasets.modal.okay') }}</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport { onUnmounted } from 'vue';\nimport { useRouter } from 'vue-router';\n\nimport {has, isNil} from \"lodash\";\nimport axios from \"axios\";\nimport { saveAs } from 'file-saver';\nimport $ from \"jquery\";\nimport { getTranslationFor } from \"../../utils/helpers\";\n\n\nexport default {\n name: \"DownloadAllDistributions\",\n props: [\n 'getDistributionDescription',\n 'getDistributionTitle',\n 'openModal',\n 'isUrlInvalid',\n 'showDownloadUrls',\n 'primary',\n 'small'\n ],\n computed: {\n ...mapGetters('datasetDetails', [\n 'getDistributions',\n 'getTitle',\n 'getCatalog',\n 'getLanguages'\n ]),\n files() {\n const cutFormatEnding = string => (string.lastIndexOf('.') !== -1 ? string.substring(0, string.lastIndexOf('.')) : string);\n const getFormat = (distribution) => {\n if (has(distribution, 'format.id') && !isNil(distribution.format.id)) {\n const type = distribution.format.id;\n return type.lastIndexOf('.') === -1 ? type.toLowerCase() : type.substring(type.lastIndexOf('.') + 1, type.length).toLowerCase();\n }\n return '';\n };\n const getFileName = (distribution, i) =>\n `${cutFormatEnding(this.getDistributionTitle(distribution)).substring(0, this.bulkDownload.MAX_FILE_TITLE_LENGTH)\n .replace(/\\//g, ' ').trim()}-${i}`\n || `${cutFormatEnding(this.getDistributionDescription(distribution)).substring(0, this.bulkDownload.MAX_FILE_TITLE_LENGTH)\n .replace(/\\//g, ' ').trim()}-${i}`;\n const getUrls = distribution => (this.showDownloadUrls(distribution) ?\n { accessUrl: `${distribution.accessUrl[0]}`, downloadUrl: `${distribution.downloadUrls[0]}` }\n : { accessUrl: `${distribution.accessUrl[0]}` });\n const getFileNameForCSV = distribution => this.getDistributionTitle(distribution).replace(/,/g, '')\n || this.getDistributionDescription(distribution).replace(/,/g, '');\n const files = this.getDistributions\n .map((distribution, i) => ({\n title: getFileName(distribution, i + 1), ...getUrls(distribution), format: getFormat(distribution), csvReportTitle: getFileNameForCSV(distribution),\n }));\n return files\n }\n },\n data() {\n return {\n downloadedFilesCounter: 0,\n numberOfFilesToZip: 0,\n downloadProgress: 0,\n failedDownloads: 0,\n isGeneratingZip: false,\n isGeneratingZipDone: false,\n isLoadingAllDistributionFiles: false,\n cancelDownloadAllAxiosRequestSource: null,\n isDownloadAllDistributionsCanceled: false,\n downloadAllSuccess: false,\n downloadAllError: false,\n bulkDownload: {\n MAX_FILE_TITLE_LENGTH: this.$env.content.datasetDetails.bulkDownload.MAX_FILE_TITLE_LENGTH,\n TIMEOUT_MS: this.$env.content.datasetDetails.bulkDownload.TIMEOUT_MS,\n }\n }\n },\n methods: {\n getTranslationFor,\n async fetchDistributionFiles(zip, files, folder, getContentTypeFormat) {\n const csvReportArray = [];\n let csvReport = 'filename,status, issue_cause downloadURL, issue_cause accessURL\\n';\n let csvDownloadURLIssue;\n const problematicFormats = ['wms', 'wfs'];\n\n const CancelToken = axios.CancelToken;\n this.cancelDownloadAllAxiosRequestSource = CancelToken.source();\n const axiosInstance = this.$bulkDownloadAxiosInstance;\n const requestSettings = { responseType: 'blob', cancelToken: this.cancelDownloadAllAxiosRequestSource.token, timeout: this.bulkDownload.TIMEOUT_MS };\n\n const promises = files.map(async (file) => {\n const problematicFormat = problematicFormats.find(format => format === file.format);\n if (!problematicFormat) {\n let isRejected = true;\n let responseData;\n let fileFormat = file.format;\n\n // try to download from download url\n if (has(file, 'downloadUrl')) {\n responseData = await axiosInstance.get(file.downloadUrl, requestSettings).then((responseDownloadUrl) => {\n if (responseDownloadUrl.status === 200) {\n isRejected = false;\n if (!file.format.length > 0) fileFormat = getContentTypeFormat(responseDownloadUrl.headers['content-type']);\n csvReportArray.push([file.csvReportTitle, 'delivered']);\n return responseDownloadUrl.data;\n }\n return Promise.reject(new Error(responseDownloadUrl.statusText));\n }).catch((error) => {\n isRejected = true;\n csvDownloadURLIssue = error;\n });\n } else csvDownloadURLIssue = 'no download url available';\n if (this.isUrlInvalid(file.downloadUrl)) {\n csvReportArray.push([file.csvReportTitle, 'issue', 'url is invalid']);\n }\n // try to download from access url\n if (isRejected) {\n responseData = await axiosInstance.get(file.accessUrl, requestSettings).then((responseAccessUrl) => {\n if (responseAccessUrl.status === 200) {\n isRejected = false;\n if (file.format.length > 0) fileFormat = getContentTypeFormat(responseAccessUrl.headers['content-type']);\n csvReportArray.push([file.csvReportTitle, 'delivered', csvDownloadURLIssue]);\n return responseAccessUrl.data;\n }\n return Promise.reject(new Error(responseAccessUrl.statusText));\n }).catch((error) => {\n isRejected = true;\n csvReportArray.push([file.csvReportTitle, 'issue', csvDownloadURLIssue, error]);\n });\n }\n if (!isRejected) folder.file(`${file.title}.${fileFormat}`, responseData, { binary: true });\n if (!this.isDownloadAllDistributionsCanceled) {\n this.downloadedFilesCounter += 1;\n this.downloadProgress = Math.floor(100 * this.downloadedFilesCounter / this.getDistributions.length);\n if (isRejected) this.failedDownloads += 1;\n } else {\n this.downloadedFilesCounter = 0;\n this.downloadProgress = 0;\n this.failedDownloads = 0;\n }\n } else csvReportArray.push([file.csvReportTitle, 'issue', `We can't download ${problematicFormat} files using the download all button. Please try to download this file using the download button next to the file name.`]);\n });\n\n await Promise.all(promises);\n csvReportArray.forEach((row) => {\n csvReport += row.join(',');\n csvReport += '\\n';\n });\n zip.file('file_report.csv', csvReport, { binary: true });\n },\n hideDownloadAllModal() {\n $('#downloadAllModal').modal('hide');\n },\n generateAndSaveZip(zip, zipName) {\n if (!this.isDownloadAllDistributionsCanceled) {\n this.numberOfFilesToZip = Object.keys(zip.files).length;\n this.isGeneratingZip = true;\n }\n\n class UserInterruptException {\n constructor(message) {\n this.message = message;\n this.name = 'UserInterruptException';\n }\n }\n\n zip.generateAsync({ type: 'blob', compression: 'DEFLATE' }, () => {\n if (this.isDownloadAllDistributionsCanceled) throw new UserInterruptException('user canceled generate zip operation');\n })\n .then((blob) => {\n this.isGeneratingZip = false;\n this.isGeneratingZipDone = true;\n this.isLoadingAllDistributionFiles = false;\n this.downloadAllSuccess = true;\n saveAs(blob, zipName);\n })\n .catch((e) => {\n this.isGeneratingZip = false;\n this.isDownloadAllDistributionsCanceled = false;\n this.isLoadingAllDistributionFiles = false;\n this.downloadAllError = true;\n this.downloadedFilesCounter = 0;\n this.downloadProgress = 0;\n this.numberOfFilesToZip = 0;\n console.warn(e); // eslint-disable-line\n });\n\n // works with chrome => to make it compatible to more browsers look here https://jimmywarting.github.io/StreamSaver.js/examples/saving-multiple-files.html open developer tools and find saving-multiple-files.html\n // install stream saver and import it + script src=\"https://cdn.jsdelivr.net/npm/web-streams-polyfill@2.0.2/dist/ponyfill.min.js\"\n // if we don't want to use his service worker we can configure something (I think we have to change the mitm url) => read the api https://jimmywarting.github.io/StreamSaver.js\n // I think IE will never work with this solution\n /* const writeStream = streamSaver.createWriteStream(zipName).getWriter();\n zip.generateInternalStream({ type: 'uint8array', streamFiles: true })\n .on('data', data => writeStream.write(data))\n .on('error', err => console.error(err))\n .on('end', () => writeStream.close())\n .resume(); */\n },\n cancelDownloadAll(source) {\n // stops axios operations\n source.cancel('user canceled axios operation');\n // stops zip operation\n this.isDownloadAllDistributionsCanceled = true;\n },\n async trackAndDownloadAllDistributions() {\n if (this.$piwik && this.$piwik.trackDownload) {\n this.$piwik.trackDownload(\n window.location.href,\n {\n files: JSON.stringify(this.files),\n downloadAll: 'true',\n format: 'all',\n }\n );\n }\n return await this.downloadAllDistributions();\n },\n async downloadAllDistributions() {\n this.downloadedFilesCounter = 0;\n this.downloadProgress = 0;\n this.failedDownloads = 0;\n this.numberOfFilesToZip = 0;\n this.isGeneratingZip = false;\n this.isGeneratingZipDone = false;\n this.isLoadingAllDistributionFiles = true;\n this.isDownloadAllDistributionsCanceled = false;\n this.downloadAllSuccess = false;\n this.downloadAllError = false;\n const getContentTypeFormat = (contentType) => {\n const startIndex = contentType.lastIndexOf('/') + 1;\n const endIndex = contentType.indexOf(';') !== -1 ? contentType.indexOf(';') : contentType.length;\n return contentType.substring(startIndex, endIndex);\n };\n\n const {default: JSZip} = await import('jszip');\n const zip = new JSZip();\n const zipName = `${this.getTranslationFor(this.getTitle, this.$route.query.locale, this.getLanguages)}.zip`;\n const folder = zip.folder(this.getTranslationFor(this.getCatalog.title, this.$route.query.locale, this.getLanguages));\n await this.fetchDistributionFiles(zip, this.files, folder, getContentTypeFormat);\n await this.generateAndSaveZip(zip, zipName);\n },\n // handle navigation to extern website (cancel bulk download and hide modal)\n beforeWindowUnload(e) {\n if (this.isLoadingAllDistributionFiles && !this.isDownloadAllDistributionsCanceled) {\n e.preventDefault();\n // Chrome requires returnValue to be set\n e.returnValue = ''; // eslint-disable-line\n }\n }\n },\n created() {\n window.addEventListener('beforeunload', this.beforeWindowUnload);\n },\n beforeUnmount() {\n window.removeEventListener('beforeunload', this.beforeWindowUnload);\n },\n setup() {\n const router = useRouter();\n \n onUnmounted(() => {\n router.beforeEach((to, from, next) => {\n if (this.isLoadingAllDistributionFiles && !this.isDownloadAllDistributionsCanceled) {\n const answer = window.confirm(this.$t('message.datasetDetails.datasets.leavePageWindow.text')); // eslint-disable-line\n if (answer) {\n // if modal is open we have to hide it when user tries to navigate back\n this.hideDownloadAllModal();\n this.cancelDownloadAll(this.cancelDownloadAllAxiosRequestSource);\n next();\n } else {\n next(false);\n }\n } else {\n this.hideDownloadAllModal();\n next();\n }\n })();\n })\n },\n}\n</script>\n\n<style scoped>\n\n</style>\n"],"names":["_sfc_main","mapGetters","cutFormatEnding","string","getFormat","distribution","has","isNil","type","getFileName","i","getUrls","getFileNameForCSV","getTranslationFor","zip","files","folder","getContentTypeFormat","csvReportArray","csvReport","csvDownloadURLIssue","problematicFormats","CancelToken","axios","axiosInstance","requestSettings","promises","file","problematicFormat","format","isRejected","responseData","fileFormat","responseDownloadUrl","error","responseAccessUrl","row","$","zipName","UserInterruptException","message","blob","saveAs","e","source","contentType","startIndex","endIndex","JSZip","router","useRouter","onUnmounted","to","from","next","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_17","_ctx","_openBlock","_createElementBlock","_hoisted_1","$data","_createBlock","_component_pv_button","$props","_withCtx","_cache","_createElementVNode","$options","_createTextVNode","_toDisplayString","_hoisted_2","_hoisted_3","_normalizeStyle","_hoisted_13","_hoisted_14","_createCommentVNode","_hoisted_15","_hoisted_16","_hoisted_18","$event","_hoisted_19"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  declare const _default: import('vue').DefineComponent<{
2
- getDistributionFormat?: any;
3
2
  distribution?: any;
3
+ getDistributionFormat?: any;
4
4
  isOnlyOneUrl?: any;
5
5
  getDownloadUrl?: any;
6
6
  trackGoto?: any;
@@ -12,8 +12,8 @@ declare const _default: import('vue').DefineComponent<{
12
12
  setClipboard(value: any): void;
13
13
  popupCopyUrlAlert(): void;
14
14
  }, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
15
- getDistributionFormat?: any;
16
15
  distribution?: any;
16
+ getDistributionFormat?: any;
17
17
  isOnlyOneUrl?: any;
18
18
  getDownloadUrl?: any;
19
19
  trackGoto?: any;
@@ -40,7 +40,10 @@ const B = {
40
40
  return i.label ? i.label : i.resource;
41
41
  }
42
42
  }
43
- }, I = { class: "col-12 table table-borderless table-responsive small pl-0 mt-2 mb-1 distribution-details-table" }, O = {
43
+ }, I = {
44
+ class: "col-12 table table-borderless table-responsive small pl-0 mt-2 mb-1 distribution-details-table",
45
+ style: { "margin-left": "-10px" }
46
+ }, O = {
44
47
  key: 0,
45
48
  class: "distribution-license-tr distribution-content-tr"
46
49
  }, _ = { class: "w-25 font-weight-bold" }, M = { key: 0 }, P = { key: 1 }, E = {
@@ -85,7 +88,7 @@ const B = {
85
88
  }, bt = { class: "w-25 font-weight-bold" }, mt = { key: 0 }, gt = {
86
89
  key: 14,
87
90
  class: "distribution-compressFormat-tr distribution-content-tr"
88
- }, kt = { class: "w-25 font-weight-bold" }, yt = { key: 0 }, ft = { key: 1 }, ct = {
91
+ }, yt = { class: "w-25 font-weight-bold" }, kt = { key: 0 }, ft = { key: 1 }, ct = {
89
92
  key: 15,
90
93
  class: "distribution-packageFormat-tr distribution-content-tr"
91
94
  }, wt = { class: "w-25 font-weight-bold" }, ht = { key: 0 }, Dt = { key: 1 }, vt = {
@@ -105,12 +108,12 @@ const B = {
105
108
  class: "distribution-validate-tr distribution-content-tr"
106
109
  }, Mt = { key: 0 };
107
110
  function Pt(s, i, t, Et, St, a) {
108
- const k = h("tooltip"), y = h("app-link");
111
+ const y = h("tooltip"), k = h("app-link");
109
112
  return n(), o("table", I, [
110
113
  (n(!0), o(c, null, w(t.contentList, (m) => (n(), o(c, null, [
111
114
  m === "license" ? (n(), o("tr", O, [
112
115
  d("td", _, [
113
- b(k, {
116
+ b(y, {
114
117
  title: s.$t("message.tooltip.datasetDetails.distributions.licence")
115
118
  }, {
116
119
  default: u(() => [
@@ -121,7 +124,7 @@ function Pt(s, i, t, Et, St, a) {
121
124
  ]),
122
125
  i[9] || (i[9] = e()),
123
126
  t.showObject(t.distribution.licence) && t.showLicence(t.distribution.licence) ? (n(), o("td", M, [
124
- b(y, {
127
+ b(k, {
125
128
  to: t.distribution.licence.resource,
126
129
  target: "_blank",
127
130
  onClick: i[0] || (i[0] = (g) => s.$emit("track-link", t.distribution.licence.resource, "link"))
@@ -132,7 +135,7 @@ function Pt(s, i, t, Et, St, a) {
132
135
  _: 1
133
136
  }, 8, ["to"]),
134
137
  i[6] || (i[6] = e()),
135
- b(y, {
138
+ b(k, {
136
139
  to: t.distribution.licence.resource,
137
140
  target: "_blank",
138
141
  "data-toggle": "tooltip",
@@ -146,7 +149,7 @@ function Pt(s, i, t, Et, St, a) {
146
149
  _: 1
147
150
  }, 8, ["to", "title"]),
148
151
  i[7] || (i[7] = e()),
149
- t.showLicensingAssistant(t.distribution) ? (n(), D(y, {
152
+ t.showLicensingAssistant(t.distribution) ? (n(), D(k, {
150
153
  key: 0,
151
154
  to: t.distribution.licence.la_url,
152
155
  target: "_blank",
@@ -158,7 +161,7 @@ function Pt(s, i, t, Et, St, a) {
158
161
  _: 1
159
162
  }, 8, ["to"])) : r("", !0),
160
163
  i[8] || (i[8] = e()),
161
- t.showLicensingAssistant(t.distribution) ? (n(), D(y, {
164
+ t.showLicensingAssistant(t.distribution) ? (n(), D(k, {
162
165
  key: 1,
163
166
  to: t.distribution.licence.la_url,
164
167
  target: "_blank",
@@ -174,7 +177,7 @@ function Pt(s, i, t, Et, St, a) {
174
177
  i[33] || (i[33] = e()),
175
178
  m === "licenseAttributionByText" && a.has(t.distribution, "licenseAttributionByText") && !a.isNil(t.distribution.licenseAttributionByText) && !a.isNil(a.getTranslationFor(t.distribution.licenseAttributionByText)) ? (n(), o("tr", E, [
176
179
  d("td", S, [
177
- b(k, {
180
+ b(y, {
178
181
  title: s.$t("message.tooltip.datasetDetails.distributions.licenseAttributionByText")
179
182
  }, {
180
183
  default: u(() => [
@@ -189,7 +192,7 @@ function Pt(s, i, t, Et, St, a) {
189
192
  i[34] || (i[34] = e()),
190
193
  m === "updateDate" ? (n(), o("tr", U, [
191
194
  d("td", z, [
192
- b(k, {
195
+ b(y, {
193
196
  title: s.$t("message.tooltip.datasetDetails.distributions.updated")
194
197
  }, {
195
198
  default: u(() => [
@@ -206,7 +209,7 @@ function Pt(s, i, t, Et, St, a) {
206
209
  i[35] || (i[35] = e()),
207
210
  m === "modificationDate" && a.has(t.distribution, "modificationDate") && !a.isNil(t.distribution.modificationDate) ? (n(), o("tr", H, [
208
211
  d("td", J, [
209
- b(k, {
212
+ b(y, {
210
213
  title: s.$t("message.tooltip.datasetDetails.distributions.updated")
211
214
  }, {
212
215
  default: u(() => [
@@ -221,7 +224,7 @@ function Pt(s, i, t, Et, St, a) {
221
224
  i[36] || (i[36] = e()),
222
225
  m === "releaseDate" && a.has(t.distribution, "releaseDate") && !a.isNil(t.distribution.releaseDate) ? (n(), o("tr", K, [
223
226
  d("td", Q, [
224
- b(k, {
227
+ b(y, {
225
228
  title: s.$t("message.tooltip.datasetDetails.distributions.created")
226
229
  }, {
227
230
  default: u(() => [
@@ -236,7 +239,7 @@ function Pt(s, i, t, Et, St, a) {
236
239
  i[37] || (i[37] = e()),
237
240
  m === "language" && a.has(t.distribution, "languages") && t.showArray(t.distribution.languages) ? (n(), o("tr", W, [
238
241
  d("td", X, [
239
- b(k, {
242
+ b(y, {
240
243
  title: s.$t("message.tooltip.datasetDetails.distributions.language")
241
244
  }, {
242
245
  default: u(() => [
@@ -255,7 +258,7 @@ function Pt(s, i, t, Et, St, a) {
255
258
  i[38] || (i[38] = e()),
256
259
  m === "availability" && a.has(t.distribution, "availability") && t.showObject(t.distribution.availability) && !a.isNil(t.distribution.availability.label) ? (n(), o("tr", Y, [
257
260
  d("td", Z, [
258
- b(k, {
261
+ b(y, {
259
262
  title: s.$t("message.tooltip.datasetDetails.distributions.availability")
260
263
  }, {
261
264
  default: u(() => [
@@ -270,7 +273,7 @@ function Pt(s, i, t, Et, St, a) {
270
273
  i[39] || (i[39] = e()),
271
274
  m === "status" && a.has(t.distribution, "status") && t.showObject(t.distribution.status) ? (n(), o("tr", x, [
272
275
  d("td", $, [
273
- b(k, {
276
+ b(y, {
274
277
  title: s.$t("message.tooltip.datasetDetails.distributions.status")
275
278
  }, {
276
279
  default: u(() => [
@@ -287,7 +290,7 @@ function Pt(s, i, t, Et, St, a) {
287
290
  i[40] || (i[40] = e()),
288
291
  m === "rights" && a.has(t.distribution, "rights") && t.showObject(t.distribution.rights) ? (n(), o("tr", tt, [
289
292
  d("td", it, [
290
- b(k, {
293
+ b(y, {
291
294
  title: s.$t("message.tooltip.datasetDetails.distributions.rights")
292
295
  }, {
293
296
  default: u(() => [
@@ -304,7 +307,7 @@ function Pt(s, i, t, Et, St, a) {
304
307
  i[41] || (i[41] = e()),
305
308
  m === "mediaType" && a.has(t.distribution, "mediaType") && !a.isNil(t.distribution.mediaType) ? (n(), o("tr", et, [
306
309
  d("td", st, [
307
- b(k, {
310
+ b(y, {
308
311
  title: s.$t("message.tooltip.datasetDetails.distributions.mediaType")
309
312
  }, {
310
313
  default: u(() => [
@@ -319,7 +322,7 @@ function Pt(s, i, t, Et, St, a) {
319
322
  i[42] || (i[42] = e()),
320
323
  m === "byteSize" && a.has(t.distribution, "byteSize") && !a.isNil(t.distribution.byteSize) ? (n(), o("tr", at, [
321
324
  d("td", lt, [
322
- b(k, {
325
+ b(y, {
323
326
  title: s.$t("message.tooltip.datasetDetails.distributions.byteSize")
324
327
  }, {
325
328
  default: u(() => [
@@ -334,7 +337,7 @@ function Pt(s, i, t, Et, St, a) {
334
337
  i[43] || (i[43] = e()),
335
338
  m === "checksum" && a.has(t.distribution, "checksum") && !a.isNil(t.distribution.checksum) && a.has(t.distribution.checksum, "algorithm") && !a.isNil(t.distribution.checksum.algorithm) && a.has(t.distribution.checksum, "checksum_value") && !a.isNil(t.distribution.checksum.checksum_value) ? (n(), o("tr", nt, [
336
339
  d("td", ot, [
337
- b(k, {
340
+ b(y, {
338
341
  title: s.$t("message.tooltip.datasetDetails.distributions.checksum")
339
342
  }, {
340
343
  default: u(() => [
@@ -356,7 +359,7 @@ function Pt(s, i, t, Et, St, a) {
356
359
  i[22] || (i[22] = e()),
357
360
  d("td", null, [
358
361
  (n(!0), o(c, null, w(t.distribution.pages, (g, f) => (n(), o("div", { key: f }, [
359
- b(y, {
362
+ b(k, {
360
363
  to: g.resource
361
364
  }, {
362
365
  default: u(() => [
@@ -370,7 +373,7 @@ function Pt(s, i, t, Et, St, a) {
370
373
  i[45] || (i[45] = e()),
371
374
  m === "type" && a.has(t.distribution, "type") && t.showObject(t.distribution.type) ? (n(), o("tr", ut, [
372
375
  d("td", bt, [
373
- b(k, {
376
+ b(y, {
374
377
  title: s.$t("message.tooltip.datasetDetails.distributions.type")
375
378
  }, {
376
379
  default: u(() => [
@@ -386,8 +389,8 @@ function Pt(s, i, t, Et, St, a) {
386
389
  ])) : r("", !0),
387
390
  i[46] || (i[46] = e()),
388
391
  m === "compressFormat" && a.has(t.distribution, "compressFormat") && t.showObject(t.distribution.compressFormat) ? (n(), o("tr", gt, [
389
- d("td", kt, [
390
- b(k, {
392
+ d("td", yt, [
393
+ b(y, {
391
394
  title: s.$t("message.tooltip.datasetDetails.distributions.compressFormat")
392
395
  }, {
393
396
  default: u(() => [
@@ -398,7 +401,7 @@ function Pt(s, i, t, Et, St, a) {
398
401
  ]),
399
402
  i[25] || (i[25] = e()),
400
403
  d("td", null, [
401
- a.isNil(t.distribution.compressFormat.label) ? r("", !0) : (n(), o("div", yt, l(t.distribution.compressFormat.label), 1)),
404
+ a.isNil(t.distribution.compressFormat.label) ? r("", !0) : (n(), o("div", kt, l(t.distribution.compressFormat.label), 1)),
402
405
  i[24] || (i[24] = e()),
403
406
  a.isNil(t.distribution.compressFormat.resource) ? r("", !0) : (n(), o("div", ft, l(t.distribution.compressFormat.resource), 1))
404
407
  ])
@@ -406,7 +409,7 @@ function Pt(s, i, t, Et, St, a) {
406
409
  i[47] || (i[47] = e()),
407
410
  m === "packageFormat" && a.has(t.distribution, "packageFormat") && t.showObject(t.distribution.packageFormat) ? (n(), o("tr", ct, [
408
411
  d("td", wt, [
409
- b(k, {
412
+ b(y, {
410
413
  title: s.$t("message.tooltip.datasetDetails.distributions.packageFormat")
411
414
  }, {
412
415
  default: u(() => [
@@ -425,7 +428,7 @@ function Pt(s, i, t, Et, St, a) {
425
428
  i[48] || (i[48] = e()),
426
429
  m === "hasPolicy" && a.has(t.distribution, "hasPolicy") && !a.isNil(t.distribution.hasPolicy) ? (n(), o("tr", vt, [
427
430
  d("td", Ft, [
428
- b(k, {
431
+ b(y, {
429
432
  title: s.$t("message.tooltip.datasetDetails.distributions.hasPolicy")
430
433
  }, {
431
434
  default: u(() => [
@@ -446,7 +449,7 @@ function Pt(s, i, t, Et, St, a) {
446
449
  i[49] || (i[49] = e()),
447
450
  m === "conformsTo" && a.has(t.distribution, "conformsTo") && t.showObjectArray(t.distribution.conformsTo) ? (n(), o("tr", Tt, [
448
451
  d("td", At, [
449
- b(k, {
452
+ b(y, {
450
453
  title: s.$t("message.tooltip.datasetDetails.conformsTo")
451
454
  }, {
452
455
  default: u(() => [
@@ -464,7 +467,7 @@ function Pt(s, i, t, Et, St, a) {
464
467
  a.has(g, "resource") && !a.isNil(g.resource) ? (n(), o("div", Lt, [
465
468
  e(l(s.$t("message.metadata.resource")) + `:
466
469
  `, 1),
467
- b(y, {
470
+ b(k, {
468
471
  to: g.resource,
469
472
  target: "_blank",
470
473
  onClick: (Ut) => s.$emit("track-link", g.resource, "link")
@@ -481,7 +484,7 @@ function Pt(s, i, t, Et, St, a) {
481
484
  i[50] || (i[50] = e()),
482
485
  m === "spatialResolutionInMeters" && a.has(t.distribution, "spatialResolutionInMeters") && t.showArray(t.distribution.spatialResolutionInMeters) ? (n(), o("tr", Ct, [
483
486
  d("td", jt, [
484
- b(k, {
487
+ b(y, {
485
488
  title: s.$t("message.tooltip.datasetDetails.spatialResolutionInMeters")
486
489
  }, {
487
490
  default: u(() => [
@@ -498,7 +501,7 @@ function Pt(s, i, t, Et, St, a) {
498
501
  i[51] || (i[51] = e()),
499
502
  m === "temporalResolution" && a.has(t.distribution, "temporalResolution") && t.showArray(t.distribution.temporalResolution) ? (n(), o("tr", It, [
500
503
  d("td", Ot, [
501
- b(k, {
504
+ b(y, {
502
505
  title: s.$t("message.tooltip.datasetDetails.temporalResolution")
503
506
  }, {
504
507
  default: u(() => [
@@ -515,7 +518,7 @@ function Pt(s, i, t, Et, St, a) {
515
518
  i[52] || (i[52] = e()),
516
519
  m === "validate" ? (n(), o("tr", _t, [
517
520
  this.$env.content.datasetDetails.distributions.showValidationButton ? (n(), o("td", Mt, [
518
- b(y, {
521
+ b(k, {
519
522
  class: "ecl-button--secondary row pt-0 pb-0 pl-4 pr-4 mt-2 text-decoration-none",
520
523
  to: { path: `${s.getID}/quality/`, query: Object.assign({}, { locale: s.$route.query.locale }) }
521
524
  }, {