@piveau/piveau-hub-ui-modules 4.6.119 → 4.7.0
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.
- package/dist/facets/SelectedFacetsOverview.vue.d.ts +2 -0
- package/dist/facets/SelectedFacetsOverview.vue.mjs +77 -35
- package/dist/facets/SelectedFacetsOverview.vue.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/services/catalogService.mjs +4 -1
- package/dist/services/catalogService.mjs.map +1 -1
- package/dist/services/datasetService.d.ts +3 -1
- package/dist/services/datasetService.mjs +9 -6
- package/dist/services/datasetService.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -10,12 +10,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
10
10
|
};
|
|
11
11
|
}>, {}, {
|
|
12
12
|
facetOrder: unknown[];
|
|
13
|
+
langList: never[];
|
|
13
14
|
}, {
|
|
14
15
|
isErpdActive(): boolean;
|
|
15
16
|
getSelectedFacetsOrdered(): any[];
|
|
16
17
|
getSelectedFacets(): unknown;
|
|
17
18
|
showCatalogDetails(): boolean;
|
|
18
19
|
}, {
|
|
20
|
+
loadLangList(): Promise<void>;
|
|
19
21
|
routerPush(object: any): any;
|
|
20
22
|
showSelectedFacet(facet: any): boolean;
|
|
21
23
|
findFacetTitle(fieldId: any, facetId: any): any;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { mapActions as
|
|
2
|
-
import { getFacetTranslation as
|
|
1
|
+
import { mapActions as m } from "vuex";
|
|
2
|
+
import { getFacetTranslation as F } from "../utils/helpers.mjs";
|
|
3
3
|
import { isNil as n } from "lodash-es";
|
|
4
|
-
import
|
|
4
|
+
import $ from "axios";
|
|
5
|
+
import { openBlock as l, createElementBlock as u, Fragment as d, renderList as p, createElementVNode as g, toDisplayString as f, createTextVNode as y, renderSlot as S } from "vue";
|
|
5
6
|
import "./SelectedFacetsOverview.vue2.mjs";
|
|
6
|
-
import
|
|
7
|
-
const
|
|
7
|
+
import q from "../_virtual/_plugin-vue_export-helper.mjs";
|
|
8
|
+
const b = {
|
|
8
9
|
name: "SelectedFacetsOverview",
|
|
9
10
|
components: {},
|
|
10
11
|
props: {
|
|
@@ -20,7 +21,8 @@ const q = {
|
|
|
20
21
|
},
|
|
21
22
|
data() {
|
|
22
23
|
return {
|
|
23
|
-
facetOrder: this.defaultFacetOrder ?? this.$env.content.datasets.facets.defaultFacetOrder
|
|
24
|
+
facetOrder: this.defaultFacetOrder ?? this.$env.content.datasets.facets.defaultFacetOrder,
|
|
25
|
+
langList: []
|
|
24
26
|
};
|
|
25
27
|
},
|
|
26
28
|
computed: {
|
|
@@ -71,10 +73,17 @@ const q = {
|
|
|
71
73
|
},
|
|
72
74
|
methods: {
|
|
73
75
|
isNil: n,
|
|
74
|
-
...
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
...m("datasets", ["setMinScoring", "setMaxScoring"]),
|
|
77
|
+
async loadLangList() {
|
|
78
|
+
try {
|
|
79
|
+
const e = await $.get(
|
|
80
|
+
"https://ppe.data.europa.eu/api/hub/search/search?filter=vocabulary&vocabulary=country&limit=500"
|
|
81
|
+
);
|
|
82
|
+
this.langList = e.data.result.results;
|
|
83
|
+
} catch (e) {
|
|
84
|
+
console.error("Fehler beim Laden der Sprachliste:", e), this.langList = [];
|
|
85
|
+
}
|
|
86
|
+
},
|
|
78
87
|
routerPush(e) {
|
|
79
88
|
return this.$router.push(e).catch((t) => {
|
|
80
89
|
console.error(t);
|
|
@@ -89,8 +98,19 @@ const q = {
|
|
|
89
98
|
return this.$t("message.metadata.yes");
|
|
90
99
|
if (e === "is_hvd")
|
|
91
100
|
return this.$t("message.metadata.yes");
|
|
101
|
+
if (e === "country") {
|
|
102
|
+
const a = this.availableFacets.find((o) => o.id === e).items.find((o) => o.id === t).title, r = this.$route.query.locale === "no" ? "nb" : this.$route.query.locale, i = this.langList.find(
|
|
103
|
+
(o) => o.pref_label.en === a
|
|
104
|
+
);
|
|
105
|
+
return i && i.pref_label && i.pref_label[r];
|
|
106
|
+
}
|
|
92
107
|
const s = this.availableFacets.find((a) => a.id === e).items.find((a) => a.id === t).title;
|
|
93
|
-
return
|
|
108
|
+
return F(
|
|
109
|
+
e,
|
|
110
|
+
t,
|
|
111
|
+
this.$route.query.locale,
|
|
112
|
+
s
|
|
113
|
+
);
|
|
94
114
|
} catch {
|
|
95
115
|
return t;
|
|
96
116
|
}
|
|
@@ -99,7 +119,9 @@ const q = {
|
|
|
99
119
|
const t = e.field;
|
|
100
120
|
try {
|
|
101
121
|
let s = "";
|
|
102
|
-
return t === "scoring" ? s = this.$t("message.header.navigation.data.metadataquality") : t === "superCatalog" && e.facets.toString() === "erpd" ? s = this.$t("message.datasetFacets.facets.erpd") : this.$route.path === "/catalogues" && t === "country" ? s = this.$t("message.datasetFacets.facets.origin") : this.$route.path === "/editorial-content" && t === "content_type" ? s = this.$t(`message.facets.${t.toLowerCase()}`) : s = this.$t(
|
|
122
|
+
return t === "scoring" ? s = this.$t("message.header.navigation.data.metadataquality") : t === "superCatalog" && e.facets.toString() === "erpd" ? s = this.$t("message.datasetFacets.facets.erpd") : this.$route.path === "/catalogues" && t === "country" ? s = this.$t("message.datasetFacets.facets.origin") : this.$route.path === "/editorial-content" && t === "content_type" ? s = this.$t(`message.facets.${t.toLowerCase()}`) : s = this.$t(
|
|
123
|
+
`message.datasetFacets.facets.${t.toLowerCase()}`
|
|
124
|
+
), s.includes("@: message.metadata") ? this.availableFacets.find((a) => a.id === t).title : s;
|
|
103
125
|
} catch {
|
|
104
126
|
return t;
|
|
105
127
|
}
|
|
@@ -123,48 +145,68 @@ const q = {
|
|
|
123
145
|
*/
|
|
124
146
|
toggleFacet(e, t) {
|
|
125
147
|
let s = null;
|
|
126
|
-
if (Object.prototype.hasOwnProperty.call(this.$route.query, [e]) ? e === "scoring" ? (this.setMinScoring(0), this.setMaxScoring(void 0)) : e === "dataScope" ? s = {
|
|
148
|
+
if (Object.prototype.hasOwnProperty.call(this.$route.query, [e]) ? e === "scoring" ? (this.setMinScoring(0), this.setMaxScoring(void 0)) : e === "dataScope" ? s = {
|
|
149
|
+
query: Object.assign({}, this.$route.query, {
|
|
150
|
+
country: [],
|
|
151
|
+
dataScope: [],
|
|
152
|
+
page: 1
|
|
153
|
+
})
|
|
154
|
+
} : e === "country" && (s = {
|
|
155
|
+
query: Object.assign({}, this.$route.query, { country: [], page: 1 })
|
|
156
|
+
}) : s = {
|
|
157
|
+
query: Object.assign({}, this.$route.query, { [e]: [], page: 1 })
|
|
158
|
+
}, !s) {
|
|
127
159
|
let a = this.$route.query[e].slice();
|
|
128
|
-
Array.isArray(a) || (a = [a]), e === "categories" && (t.toUpperCase(), a = a.map((
|
|
160
|
+
Array.isArray(a) || (a = [a]), e === "categories" && (t.toUpperCase(), a = a.map((i) => i.toUpperCase()));
|
|
129
161
|
const r = a.indexOf(t);
|
|
130
|
-
r > -1 ? a.splice(r, 1) : a.push(t), s = {
|
|
162
|
+
r > -1 ? a.splice(r, 1) : a.push(t), s = {
|
|
163
|
+
query: Object.assign({}, this.$route.query, {
|
|
164
|
+
[e]: a,
|
|
165
|
+
page: 1
|
|
166
|
+
})
|
|
167
|
+
};
|
|
131
168
|
}
|
|
132
169
|
return this.routerPush(s);
|
|
133
170
|
}
|
|
134
171
|
},
|
|
172
|
+
mounted() {
|
|
173
|
+
this.loadLangList();
|
|
174
|
+
},
|
|
135
175
|
created() {
|
|
136
176
|
}
|
|
137
|
-
}, O = { class: "container sfo-container" },
|
|
138
|
-
function
|
|
139
|
-
return
|
|
140
|
-
(
|
|
141
|
-
|
|
177
|
+
}, O = { class: "container sfo-container" }, v = ["onClick"];
|
|
178
|
+
function C(e, t, s, a, r, i) {
|
|
179
|
+
return l(), u("div", O, [
|
|
180
|
+
(l(!0), u(d, null, p(i.getSelectedFacetsOrdered.filter(
|
|
181
|
+
(c) => i.showSelectedFacet(c)
|
|
182
|
+
), (c) => (l(), u("p", {
|
|
183
|
+
key: c.field
|
|
142
184
|
}, [
|
|
143
|
-
g("span", null,
|
|
144
|
-
t[0] || (t[0] =
|
|
145
|
-
(
|
|
146
|
-
index:
|
|
147
|
-
facet:
|
|
148
|
-
facetId:
|
|
149
|
-
findFacetTitle:
|
|
150
|
-
removeSelectedFacet:
|
|
185
|
+
g("span", null, f(`${i.findFacetFieldTitle(c)}:`), 1),
|
|
186
|
+
t[0] || (t[0] = y()),
|
|
187
|
+
(l(!0), u(d, null, p(c.facets, (o, h) => S(e.$slots, "default", {
|
|
188
|
+
index: h,
|
|
189
|
+
facet: c,
|
|
190
|
+
facetId: o,
|
|
191
|
+
findFacetTitle: i.findFacetTitle,
|
|
192
|
+
removeSelectedFacet: i.removeSelectedFacet
|
|
151
193
|
}, () => [
|
|
152
|
-
(
|
|
153
|
-
key:
|
|
194
|
+
(l(), u("span", {
|
|
195
|
+
key: h,
|
|
154
196
|
class: "badge badge-pill badge-highlight mr-1 ds-label"
|
|
155
197
|
}, [
|
|
156
|
-
f(
|
|
198
|
+
y(f(i.findFacetTitle(c.field, o)) + " ", 1),
|
|
157
199
|
g("span", {
|
|
158
|
-
onClick: (
|
|
200
|
+
onClick: (_) => i.removeSelectedFacet(c.field, o),
|
|
159
201
|
class: "close-facet ml-2"
|
|
160
|
-
}, "×", 8,
|
|
202
|
+
}, "×", 8, v)
|
|
161
203
|
]))
|
|
162
204
|
], !0)), 256))
|
|
163
205
|
]))), 128))
|
|
164
206
|
]);
|
|
165
207
|
}
|
|
166
|
-
const
|
|
208
|
+
const k = /* @__PURE__ */ q(b, [["render", C], ["__scopeId", "data-v-adaf7f1f"]]);
|
|
167
209
|
export {
|
|
168
|
-
|
|
210
|
+
k as default
|
|
169
211
|
};
|
|
170
212
|
//# sourceMappingURL=SelectedFacetsOverview.vue.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectedFacetsOverview.vue.mjs","sources":["../../lib/facets/SelectedFacetsOverview.vue"],"sourcesContent":["<template>\n <div class=\"container sfo-container\">\n <p v-for=\"facet in getSelectedFacetsOrdered.filter(facet => showSelectedFacet(facet))\" :key=\"facet.field\">\n <span>\n {{ `${findFacetFieldTitle(facet)}:` }}\n </span>\n <template v-for=\"(facetId, i) in facet.facets\"\n tabindex=\"0\" v-on:keyup.enter=\"removeSelectedFacet(facet.field, facetId)\">\n <slot\n :index=\"i\"\n :facet=\"facet\"\n :facetId=\"facetId\"\n :findFacetTitle=\"findFacetTitle\"\n :removeSelectedFacet=\"removeSelectedFacet\"\n >\n <span :key=\"i\" class=\"badge badge-pill badge-highlight mr-1 ds-label\">\n {{ findFacetTitle(facet.field, facetId) }}\n\n <span @click=\"removeSelectedFacet(facet.field, facetId)\" class=\"close-facet ml-2\">×</span>\n </span>\n </slot>\n </template>\n </p>\n </div>\n</template>\n\n<script>\n import { mapActions, mapGetters } from 'vuex';\n import { getFacetTranslation } from '../utils/helpers';\n import { isNil } from 'lodash-es';\n\n export default {\n name: 'SelectedFacetsOverview',\n components: {},\n props: {\n selectedFacets: {\n required: true,\n },\n availableFacets: {\n required: true,\n },\n defaultFacetOrder: {\n type: Array\n }\n },\n data() {\n return {\n facetOrder: this.defaultFacetOrder ?? this.$env.content.datasets.facets.defaultFacetOrder,\n };\n },\n computed: {\n isErpdActive() {\n const isDatasetsErpd = this.$route.path === '/datasets' && this.$route.query?.superCatalogue === 'erpd';\n let isCataloguesErpd = false;\n if (this.$route.path === '/catalogues') {\n const cat = 'erpd';\n const sc = this.$route.query.superCatalog;\n if (!sc) return false;\n if (sc === cat) isCataloguesErpd = true;\n if (sc?.constructor === Array && sc.length > 0 && sc[0] === cat) isCataloguesErpd = true;\n }\n return isDatasetsErpd || isCataloguesErpd;\n },\n getSelectedFacetsOrdered() {\n const orderedFacets = [];\n\n this.facetOrder.forEach((facet) => {\n if (this.showCatalogDetails && facet === 'catalog') return;\n if (this.showCatalogDetails && facet === 'superCatalog') return;\n Object.keys(this.getSelectedFacets).forEach((field) => {\n if (facet === field && this.getSelectedFacets[field].length > 0) orderedFacets.push({\n field,\n facets: this.getSelectedFacets[field],\n });\n });\n });\n return orderedFacets;\n },\n getSelectedFacets() {\n if (this.$route.query.dataScope && this.$route.query.country && this.$route.query.country.length > 0) {\n let newSelectedFacets = {};\n\n Object.keys(this.selectedFacets).map(key => {\n if (key === 'country') {\n newSelectedFacets['country'] = [];\n newSelectedFacets['dataScope'] = [];\n if (this.selectedFacets['country'].length === 0) {\n newSelectedFacets.dataScope.push(this.$route.query.country[0]);\n } else {\n this.selectedFacets['country'].forEach(country => {\n if (country !== 'countryData') newSelectedFacets.country.push(country);\n newSelectedFacets.dataScope.push(country);\n });\n }\n }\n else newSelectedFacets[key] = this.selectedFacets[key];\n });\n\n if (this.$route.query.dataScope === 'countryData') newSelectedFacets.dataScope = ['countryData'];\n\n this.routerPush({ query: Object.assign({}, this.$route.query) });\n\n return newSelectedFacets;\n\n } else if (this.$route.query.dataScope && this.$route.query.dataScope.length > 0) {\n let newSelectedFacets = {};\n\n Object.keys(this.selectedFacets).map(key => {\n if (key === 'country') {\n newSelectedFacets['country'] = [];\n newSelectedFacets['dataScope'] = [];\n if (this.selectedFacets['country'].length === 0) {\n newSelectedFacets.dataScope.push(this.$route.query.dataScope);\n } else {\n this.selectedFacets['country'].forEach(country => {\n newSelectedFacets.dataScope.push(country);\n });\n }\n }\n else newSelectedFacets[key] = this.selectedFacets[key];\n });\n\n return newSelectedFacets;\n\n } else return this.selectedFacets;\n },\n showCatalogDetails() {\n return !isNil(this.$route.params.ctlg_id) || !isNil(this.$route.query.showsubcatalogs);\n },\n },\n methods: {\n isNil,\n ...mapActions('datasets', [\n 'setMinScoring',\n 'setMaxScoring',\n ]),\n routerPush(object) {\n return this.$router.push(object).catch(error => { console.error(error) });\n },\n showSelectedFacet(facet) {\n return facet.facets.length > 0\n },\n findFacetTitle(fieldId, facetId) {\n try {\n if (fieldId === \"superCatalog\" && facetId === \"erpd\") return this.$t(\"message.metadata.yes\");\n if (fieldId === \"is_hvd\") return this.$t(\"message.metadata.yes\");\n const facetTitle = this.availableFacets.find(field => field.id === fieldId).items.find(facet => facet.id === facetId).title;\n return getFacetTranslation(fieldId, facetId, this.$route.query.locale, facetTitle);\n } catch {\n return facetId;\n }\n },\n findFacetFieldTitle(facet) {\n const fieldId = facet.field;\n try {\n let title = \"\";\n if(fieldId==='scoring'){\n title=this.$t('message.header.navigation.data.metadataquality');\n }else if(fieldId==='superCatalog' && facet.facets.toString() === 'erpd'){\n title = this.$t('message.datasetFacets.facets.erpd');\n }else if (this.$route.path === '/catalogues' && fieldId==='country') {\n title = this.$t(`message.datasetFacets.facets.origin`)\n } else if (this.$route.path === '/editorial-content' && fieldId === 'content_type') {\n title = this.$t(`message.facets.${fieldId.toLowerCase()}`);\n }else{\n title = this.$t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\n }\n // const title = fieldId === 'scoring' ?\n // this.$t('message.header.navigation.data.metadataquality')\n // : this.$t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\n\n return !title.includes(\"@: message.metadata\")? title : this.availableFacets.find(field => field.id === fieldId).title;\n\n } catch {\n return fieldId;\n }\n },\n removeSelectedFacet(field, facet) {\n if (field === 'superCatalog') {\n const query = Object.assign({}, this.$route.query)\n delete query.superCatalog;\n if (this.$route.path === '/catalogues') {\n delete query.showsubcatalogs;\n }\n this.$router.push({\n query\n });\n } else {\n this.toggleFacet(field, facet);\n }\n this.$nextTick(() => {\n this.$emit('update-data');\n });\n },\n /**\n * @description Add/Remove a facet from the routers query parameters.\n * @param field - The field of the facet\n * @param facet - The given facet\n */\n toggleFacet(field, facet) {\n let routerObject = null;\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, [field])) {\n routerObject = { query: Object.assign({}, this.$route.query, { [field]: [], page: 1 }) };\n } else if (field === 'scoring') {\n this.setMinScoring(0);\n this.setMaxScoring(undefined);\n } else if (field === 'dataScope') {\n routerObject = { query: Object.assign({}, this.$route.query, { country: [], dataScope: [], page: 1 }) };\n } else if (field === 'country') {\n routerObject = { query: Object.assign({}, this.$route.query, { country: [], page: 1 }) };\n }\n if (!routerObject) {\n let facets = this.$route.query[field].slice();\n if (!Array.isArray(facets)) facets = [facets];\n if (field === 'categories') {\n facet.toUpperCase();\n facets = facets.map(f => f.toUpperCase());\n }\n const index = facets.indexOf(facet);\n if (index > -1) {\n facets.splice(index, 1);\n } else {\n facets.push(facet);\n }\n routerObject = { query: Object.assign({}, this.$route.query, { [field]: facets, page: 1 }) };\n }\n\n return this.routerPush(routerObject);\n },\n },\n created() {},\n };\n</script>\n\n<style lang=\"scss\" scoped>\n\n .close-facet {\n cursor: pointer;\n }\n</style>\n"],"names":["_sfc_main","isDatasetsErpd","_a","isCataloguesErpd","cat","sc","orderedFacets","facet","field","newSelectedFacets","key","country","isNil","mapActions","object","error","fieldId","facetId","facetTitle","getFacetTranslation","title","query","routerObject","facets","f","index","_hoisted_1","_openBlock","_createElementBlock","_Fragment","_renderList","$options","_createElementVNode","_toDisplayString","i","_renderSlot","_ctx","_createTextVNode","_hoisted_2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SelectedFacetsOverview.vue.mjs","sources":["../../lib/facets/SelectedFacetsOverview.vue"],"sourcesContent":["<template>\n <div class=\"container sfo-container\">\n <p\n v-for=\"facet in getSelectedFacetsOrdered.filter((facet) =>\n showSelectedFacet(facet)\n )\"\n :key=\"facet.field\"\n >\n <span>\n {{ `${findFacetFieldTitle(facet)}:` }}\n </span>\n <template\n v-for=\"(facetId, i) in facet.facets\"\n tabindex=\"0\"\n v-on:keyup.enter=\"removeSelectedFacet(facet.field, facetId)\"\n >\n <slot\n :index=\"i\"\n :facet=\"facet\"\n :facetId=\"facetId\"\n :findFacetTitle=\"findFacetTitle\"\n :removeSelectedFacet=\"removeSelectedFacet\"\n >\n <span :key=\"i\" class=\"badge badge-pill badge-highlight mr-1 ds-label\">\n {{ findFacetTitle(facet.field, facetId) }}\n\n <span\n @click=\"removeSelectedFacet(facet.field, facetId)\"\n class=\"close-facet ml-2\"\n >×</span\n >\n </span>\n </slot>\n </template>\n </p>\n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from \"vuex\";\nimport { getFacetTranslation } from \"../utils/helpers\";\nimport { isNil } from \"lodash-es\";\nimport axios from \"axios\";\n\nexport default {\n name: \"SelectedFacetsOverview\",\n components: {},\n props: {\n selectedFacets: {\n required: true,\n },\n availableFacets: {\n required: true,\n },\n defaultFacetOrder: {\n type: Array,\n },\n },\n data() {\n return {\n facetOrder:\n this.defaultFacetOrder ??\n this.$env.content.datasets.facets.defaultFacetOrder,\n langList: [],\n };\n },\n computed: {\n isErpdActive() {\n const isDatasetsErpd =\n this.$route.path === \"/datasets\" &&\n this.$route.query?.superCatalogue === \"erpd\";\n let isCataloguesErpd = false;\n if (this.$route.path === \"/catalogues\") {\n const cat = \"erpd\";\n const sc = this.$route.query.superCatalog;\n if (!sc) return false;\n if (sc === cat) isCataloguesErpd = true;\n if (sc?.constructor === Array && sc.length > 0 && sc[0] === cat)\n isCataloguesErpd = true;\n }\n return isDatasetsErpd || isCataloguesErpd;\n },\n getSelectedFacetsOrdered() {\n const orderedFacets = [];\n\n this.facetOrder.forEach((facet) => {\n if (this.showCatalogDetails && facet === \"catalog\") return;\n if (this.showCatalogDetails && facet === \"superCatalog\") return;\n Object.keys(this.getSelectedFacets).forEach((field) => {\n if (facet === field && this.getSelectedFacets[field].length > 0)\n orderedFacets.push({\n field,\n facets: this.getSelectedFacets[field],\n });\n });\n });\n return orderedFacets;\n },\n getSelectedFacets() {\n if (\n this.$route.query.dataScope &&\n this.$route.query.country &&\n this.$route.query.country.length > 0\n ) {\n let newSelectedFacets = {};\n\n Object.keys(this.selectedFacets).map((key) => {\n if (key === \"country\") {\n newSelectedFacets[\"country\"] = [];\n newSelectedFacets[\"dataScope\"] = [];\n if (this.selectedFacets[\"country\"].length === 0) {\n newSelectedFacets.dataScope.push(this.$route.query.country[0]);\n } else {\n this.selectedFacets[\"country\"].forEach((country) => {\n if (country !== \"countryData\")\n newSelectedFacets.country.push(country);\n newSelectedFacets.dataScope.push(country);\n });\n }\n } else newSelectedFacets[key] = this.selectedFacets[key];\n });\n\n if (this.$route.query.dataScope === \"countryData\")\n newSelectedFacets.dataScope = [\"countryData\"];\n\n this.routerPush({ query: Object.assign({}, this.$route.query) });\n\n return newSelectedFacets;\n } else if (\n this.$route.query.dataScope &&\n this.$route.query.dataScope.length > 0\n ) {\n let newSelectedFacets = {};\n\n Object.keys(this.selectedFacets).map((key) => {\n if (key === \"country\") {\n newSelectedFacets[\"country\"] = [];\n newSelectedFacets[\"dataScope\"] = [];\n if (this.selectedFacets[\"country\"].length === 0) {\n newSelectedFacets.dataScope.push(this.$route.query.dataScope);\n } else {\n this.selectedFacets[\"country\"].forEach((country) => {\n newSelectedFacets.dataScope.push(country);\n });\n }\n } else newSelectedFacets[key] = this.selectedFacets[key];\n });\n\n return newSelectedFacets;\n } else return this.selectedFacets;\n },\n showCatalogDetails() {\n return (\n !isNil(this.$route.params.ctlg_id) ||\n !isNil(this.$route.query.showsubcatalogs)\n );\n },\n },\n methods: {\n isNil,\n ...mapActions(\"datasets\", [\"setMinScoring\", \"setMaxScoring\"]),\n async loadLangList() {\n try {\n const response = await axios.get(\n \"https://ppe.data.europa.eu/api/hub/search/search?filter=vocabulary&vocabulary=country&limit=500\"\n );\n // oder: const response = await axios.get(...), wenn du axios importierst\n this.langList = response.data.result.results;\n } catch (e) {\n console.error(\"Fehler beim Laden der Sprachliste:\", e);\n this.langList = [];\n }\n },\n routerPush(object) {\n return this.$router.push(object).catch((error) => {\n console.error(error);\n });\n },\n showSelectedFacet(facet) {\n return facet.facets.length > 0;\n },\n findFacetTitle(fieldId, facetId) {\n try {\n if (fieldId === \"superCatalog\" && facetId === \"erpd\")\n return this.$t(\"message.metadata.yes\");\n if (fieldId === \"is_hvd\") return this.$t(\"message.metadata.yes\");\n if (fieldId === \"country\") {\n const facetTitle = this.availableFacets\n .find((field) => field.id === fieldId)\n .items.find((facet) => facet.id === facetId).title;\n const locale =\n this.$route.query.locale === \"no\" ? \"nb\" : this.$route.query.locale;\n const item = this.langList.find(\n (obj) => obj.pref_label.en === facetTitle\n );\n const name = item && item.pref_label && item.pref_label[locale];\n return name;\n }\n const facetTitle = this.availableFacets\n .find((field) => field.id === fieldId)\n .items.find((facet) => facet.id === facetId).title;\n return getFacetTranslation(\n fieldId,\n facetId,\n this.$route.query.locale,\n facetTitle\n );\n } catch {\n return facetId;\n }\n },\n findFacetFieldTitle(facet) {\n const fieldId = facet.field;\n try {\n let title = \"\";\n if (fieldId === \"scoring\") {\n title = this.$t(\"message.header.navigation.data.metadataquality\");\n } else if (\n fieldId === \"superCatalog\" &&\n facet.facets.toString() === \"erpd\"\n ) {\n title = this.$t(\"message.datasetFacets.facets.erpd\");\n } else if (\n this.$route.path === \"/catalogues\" &&\n fieldId === \"country\"\n ) {\n title = this.$t(`message.datasetFacets.facets.origin`);\n } else if (\n this.$route.path === \"/editorial-content\" &&\n fieldId === \"content_type\"\n ) {\n title = this.$t(`message.facets.${fieldId.toLowerCase()}`);\n } else {\n title = this.$t(\n `message.datasetFacets.facets.${fieldId.toLowerCase()}`\n );\n }\n // const title = fieldId === 'scoring' ?\n // this.$t('message.header.navigation.data.metadataquality')\n // : this.$t(`message.datasetFacets.facets.${fieldId.toLowerCase()}`);\n\n return !title.includes(\"@: message.metadata\")\n ? title\n : this.availableFacets.find((field) => field.id === fieldId).title;\n } catch {\n return fieldId;\n }\n },\n removeSelectedFacet(field, facet) {\n if (field === \"superCatalog\") {\n const query = Object.assign({}, this.$route.query);\n delete query.superCatalog;\n if (this.$route.path === \"/catalogues\") {\n delete query.showsubcatalogs;\n }\n this.$router.push({\n query,\n });\n } else {\n this.toggleFacet(field, facet);\n }\n this.$nextTick(() => {\n this.$emit(\"update-data\");\n });\n },\n /**\n * @description Add/Remove a facet from the routers query parameters.\n * @param field - The field of the facet\n * @param facet - The given facet\n */\n toggleFacet(field, facet) {\n let routerObject = null;\n if (!Object.prototype.hasOwnProperty.call(this.$route.query, [field])) {\n routerObject = {\n query: Object.assign({}, this.$route.query, { [field]: [], page: 1 }),\n };\n } else if (field === \"scoring\") {\n this.setMinScoring(0);\n this.setMaxScoring(undefined);\n } else if (field === \"dataScope\") {\n routerObject = {\n query: Object.assign({}, this.$route.query, {\n country: [],\n dataScope: [],\n page: 1,\n }),\n };\n } else if (field === \"country\") {\n routerObject = {\n query: Object.assign({}, this.$route.query, { country: [], page: 1 }),\n };\n }\n if (!routerObject) {\n let facets = this.$route.query[field].slice();\n if (!Array.isArray(facets)) facets = [facets];\n if (field === \"categories\") {\n facet.toUpperCase();\n facets = facets.map((f) => f.toUpperCase());\n }\n const index = facets.indexOf(facet);\n if (index > -1) {\n facets.splice(index, 1);\n } else {\n facets.push(facet);\n }\n routerObject = {\n query: Object.assign({}, this.$route.query, {\n [field]: facets,\n page: 1,\n }),\n };\n }\n\n return this.routerPush(routerObject);\n },\n },\n mounted() {\n this.loadLangList();\n },\n created() {},\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.close-facet {\n cursor: pointer;\n}\n</style>\n"],"names":["_sfc_main","isDatasetsErpd","_a","isCataloguesErpd","cat","sc","orderedFacets","facet","field","newSelectedFacets","key","country","isNil","mapActions","response","axios","object","error","fieldId","facetId","facetTitle","locale","item","obj","getFacetTranslation","title","query","routerObject","facets","f","index","_hoisted_1","_openBlock","_createElementBlock","_Fragment","_renderList","$options","_createElementVNode","_toDisplayString","i","_renderSlot","_ctx","_createTextVNode","_hoisted_2"],"mappings":"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"}
|