@piveau/piveau-hub-ui-modules 4.7.12 → 4.8.0-beta.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/configurations/configureServices.mjs +18 -15
- package/dist/configurations/configureServices.mjs.map +1 -1
- package/dist/data-provider-interface/composables/aucotomplete.mjs +36 -26
- package/dist/data-provider-interface/composables/aucotomplete.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapde/input-definition.mjs +1 -1
- package/dist/data-provider-interface/config/dcatapde/input-definition.mjs.map +1 -1
- package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs +1 -0
- package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs.map +1 -1
- package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue.d.ts +43 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue.mjs +118 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue.mjs.map +1 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue2.mjs +5 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue2.mjs.map +1 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue.d.ts +52 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue.mjs +170 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue.mjs.map +1 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue2.mjs +5 -0
- package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue2.mjs.map +1 -0
- package/dist/datasetDetails/properties/ValuesList.vue.d.ts +1 -0
- package/dist/datasetDetails/properties/ValuesList.vue.mjs +47 -44
- package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
- package/dist/datasetDetails/properties/specification.d.ts +26 -0
- package/dist/datasetDetails/properties/specification.mjs +8 -0
- package/dist/datasetDetails/properties/specification.mjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +113 -109
- package/dist/index.mjs.map +1 -1
- package/dist/piveau-hub-ui-modules.css +1 -1
- package/dist/services/dataserviceService.d.ts +9 -0
- package/dist/services/dataserviceService.mjs +30 -0
- package/dist/services/dataserviceService.mjs.map +1 -0
- package/dist/store/index.mjs +19 -17
- package/dist/store/index.mjs.map +1 -1
- package/dist/store/modules/dataserviceDetailsStore.d.ts +71 -0
- package/dist/store/modules/dataserviceDetailsStore.mjs +117 -0
- package/dist/store/modules/dataserviceDetailsStore.mjs.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { mapGetters as V } from "vuex";
|
|
2
|
+
import S from "./DataserviceDetailsProperty.vue.mjs";
|
|
3
|
+
import { dcatDataserviceSchema as k } from "./specification.mjs";
|
|
4
|
+
import { resolveComponent as n, openBlock as o, createElementBlock as y, createElementVNode as d, renderSlot as l, createVNode as P, createTextVNode as a, withDirectives as b, Fragment as E, renderList as T, createBlock as D, vShow as H, createCommentVNode as A } from "vue";
|
|
5
|
+
import "./DataserviceDetailsProperties.vue2.mjs";
|
|
6
|
+
import C from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
7
|
+
const I = {
|
|
8
|
+
name: "DataserviceDetailsProperties",
|
|
9
|
+
components: {
|
|
10
|
+
DataserviceDetailsProperty: S
|
|
11
|
+
},
|
|
12
|
+
data() {
|
|
13
|
+
return {
|
|
14
|
+
infoVisible: !0,
|
|
15
|
+
initialHeight: 0,
|
|
16
|
+
restrictedHeight: 100,
|
|
17
|
+
expanded: !1
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
computed: {
|
|
21
|
+
...V("dataserviceDetails", [
|
|
22
|
+
"getDatasetDescriptionHeight"
|
|
23
|
+
]),
|
|
24
|
+
fieldSchema() {
|
|
25
|
+
return k();
|
|
26
|
+
},
|
|
27
|
+
fieldsArray() {
|
|
28
|
+
return ["catalog", "publisher", "contact_point", "endpoint_url", "access_right", "format"];
|
|
29
|
+
},
|
|
30
|
+
showMoreVisible() {
|
|
31
|
+
return this.initialHeight > this.restrictedHeight;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
methods: {
|
|
35
|
+
toggleInfo() {
|
|
36
|
+
this.infoVisible = !this.infoVisible;
|
|
37
|
+
},
|
|
38
|
+
toggleExpanded() {
|
|
39
|
+
this.expanded = !this.expanded, this.adaptHeight();
|
|
40
|
+
},
|
|
41
|
+
adaptHeight() {
|
|
42
|
+
this.$refs.dsdProperties.style.flex = this.expanded ? "0 0 100%" : `0 0 ${this.restrictedHeight}px`, this.$refs.dsdProperties.style["max-height"] = this.expanded ? "100%" : `${this.restrictedHeight}px`;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
mounted() {
|
|
46
|
+
this.initialHeight = this.$refs.dsdProperties.clientHeight, this.$refs.overlay.style.bottom = this.$refs.dsdProperties.offsetHeight - this.$refs.dsdProperties.clientHeight + "px", this.getDatasetDescriptionHeight >= this.initialHeight ? (this.restrictedHeight = this.getDatasetDescriptionHeight, this.toggleExpanded()) : this.getDatasetDescriptionHeight >= this.restrictedHeight && this.getDatasetDescriptionHeight <= this.initialHeight && (this.restrictedHeight = this.getDatasetDescriptionHeight), this.adaptHeight();
|
|
47
|
+
}
|
|
48
|
+
}, M = { class: "mt-5 dsd-properties" }, N = { class: "col-12 mb-2 p-0 dsd-properties-list" }, B = {
|
|
49
|
+
class: "position-relative dsd-item additional-information",
|
|
50
|
+
"data-cy": "additional-information"
|
|
51
|
+
}, F = {
|
|
52
|
+
class: "table table-borderless table-responsive",
|
|
53
|
+
ref: "dsdProperties",
|
|
54
|
+
role: "tablist",
|
|
55
|
+
id: "myTab"
|
|
56
|
+
}, L = {
|
|
57
|
+
class: "additional-information-overlay",
|
|
58
|
+
ref: "overlay"
|
|
59
|
+
};
|
|
60
|
+
function $(r, t, G, j, s, e) {
|
|
61
|
+
const v = n("dataset-details-feature-header"), _ = n("dataservice-details-property"), w = n("pv-show-more");
|
|
62
|
+
return o(), y("div", M, [
|
|
63
|
+
d("div", N, [
|
|
64
|
+
l(r.$slots, "property-header", {}, () => [
|
|
65
|
+
P(v, {
|
|
66
|
+
title: r.$t("message.datasetDetails.additionalInfo"),
|
|
67
|
+
arrowDown: !s.infoVisible,
|
|
68
|
+
tag: "additional-information-toggle",
|
|
69
|
+
onClick: e.toggleInfo
|
|
70
|
+
}, null, 8, ["title", "arrowDown", "onClick"])
|
|
71
|
+
], !0),
|
|
72
|
+
t[3] || (t[3] = a()),
|
|
73
|
+
b(d("div", B, [
|
|
74
|
+
l(r.$slots, "property-table-before", {}, void 0, !0),
|
|
75
|
+
t[0] || (t[0] = a()),
|
|
76
|
+
l(r.$slots, "property-table", {}, () => [
|
|
77
|
+
d("table", F, [
|
|
78
|
+
(o(!0), y(E, null, T(e.fieldsArray, (i, x) => {
|
|
79
|
+
var p, h, f, c, m, g, u;
|
|
80
|
+
return o(), D(_, {
|
|
81
|
+
name: i,
|
|
82
|
+
translate: (p = e.fieldSchema[i]) == null ? void 0 : p.translate,
|
|
83
|
+
type: (h = e.fieldSchema[i]) == null ? void 0 : h.type,
|
|
84
|
+
propertyFields: (f = e.fieldSchema[i]) == null ? void 0 : f.fields,
|
|
85
|
+
track: (c = e.fieldSchema[i]) == null ? void 0 : c.track,
|
|
86
|
+
itemstyles: (m = e.fieldSchema[i]) == null ? void 0 : m.itemstyles,
|
|
87
|
+
preTransform: (g = e.fieldSchema[i]) == null ? void 0 : g.preTransform,
|
|
88
|
+
transform: (u = e.fieldSchema[i]) == null ? void 0 : u.transform,
|
|
89
|
+
key: x
|
|
90
|
+
}, null, 8, ["name", "translate", "type", "propertyFields", "track", "itemstyles", "preTransform", "transform"]);
|
|
91
|
+
}), 128))
|
|
92
|
+
], 512)
|
|
93
|
+
], !0),
|
|
94
|
+
t[1] || (t[1] = a()),
|
|
95
|
+
b(d("div", L, null, 512), [
|
|
96
|
+
[H, e.showMoreVisible && !s.expanded]
|
|
97
|
+
]),
|
|
98
|
+
t[2] || (t[2] = a()),
|
|
99
|
+
l(r.$slots, "property-table-after", {}, void 0, !0)
|
|
100
|
+
], 512), [
|
|
101
|
+
[H, s.infoVisible]
|
|
102
|
+
])
|
|
103
|
+
]),
|
|
104
|
+
t[4] || (t[4] = a()),
|
|
105
|
+
e.showMoreVisible ? (o(), D(w, {
|
|
106
|
+
key: 0,
|
|
107
|
+
label: s.expanded ? r.$t("message.metadata.showLess") : r.$t("message.metadata.showMore"),
|
|
108
|
+
upArrow: s.expanded,
|
|
109
|
+
action: e.toggleExpanded,
|
|
110
|
+
class: "row text-primary"
|
|
111
|
+
}, null, 8, ["label", "upArrow", "action"])) : A("", !0)
|
|
112
|
+
]);
|
|
113
|
+
}
|
|
114
|
+
const R = /* @__PURE__ */ C(I, [["render", $], ["__scopeId", "data-v-3c5930df"]]);
|
|
115
|
+
export {
|
|
116
|
+
R as default
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=DataserviceDetailsProperties.vue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataserviceDetailsProperties.vue.mjs","sources":["../../../lib/datasetDetails/properties/DataserviceDetailsProperties.vue"],"sourcesContent":["<template>\n <div class=\"mt-5 dsd-properties\">\n <div class=\"col-12 mb-2 p-0 dsd-properties-list\">\n <slot name=\"property-header\">\n <dataset-details-feature-header\n :title=\"$t('message.datasetDetails.additionalInfo')\"\n :arrowDown=\"!infoVisible\"\n tag=\"additional-information-toggle\"\n :onClick=\"toggleInfo\"\n />\n </slot>\n <div class=\"position-relative dsd-item additional-information\"\n data-cy=\"additional-information\"\n v-show=\"infoVisible\">\n <slot name=\"property-table-before\"></slot>\n <slot name=\"property-table\">\n <table class=\"table table-borderless table-responsive\" ref=\"dsdProperties\" role=\"tablist\" id=\"myTab\">\n <dataservice-details-property v-for='(name, index) in fieldsArray'\n :name=\"name\"\n :translate=\"fieldSchema[name]?.translate\"\n :type=\"fieldSchema[name]?.type\"\n :propertyFields=\"fieldSchema[name]?.fields\"\n :track=\"fieldSchema[name]?.track\"\n :itemstyles=\"fieldSchema[name]?.itemstyles\"\n :preTransform=\"fieldSchema[name]?.preTransform\"\n :transform=\"fieldSchema[name]?.transform\"\n :key=\"index\"/>\n </table>\n </slot>\n <div class=\"additional-information-overlay\" ref=\"overlay\" v-show=\"showMoreVisible && !expanded\"></div>\n <slot name=\"property-table-after\"></slot>\n </div>\n </div>\n <pv-show-more\n v-if=\"showMoreVisible\"\n :label=\"expanded? $t('message.metadata.showLess') : $t('message.metadata.showMore')\"\n :upArrow=\"expanded\"\n :action=\"toggleExpanded\"\n class=\"row text-primary\"\n />\n </div>\n</template>\n\n<script>\nimport { mapGetters } from \"vuex\";\nimport DataserviceDetailsProperty from \"./DataserviceDetailsProperty\";\nimport { dcatDataserviceSchema } from \"./specification.ts\";\n\nexport default {\n name: \"DataserviceDetailsProperties\",\n components: {\n DataserviceDetailsProperty,\n },\n data() {\n return {\n infoVisible: true,\n initialHeight: 0,\n restrictedHeight: 100,\n expanded: false,\n };\n },\n computed: {\n ...mapGetters('dataserviceDetails', [\n 'getDatasetDescriptionHeight'\n ]),\n fieldSchema() {\n return dcatDataserviceSchema()\n },\n fieldsArray() {\n return ['catalog', 'publisher', 'contact_point', 'endpoint_url', 'access_right', 'format'];\n },\n showMoreVisible() {\n return this.initialHeight > this.restrictedHeight;\n }\n },\n methods: {\n toggleInfo() {\n this.infoVisible = !this.infoVisible;\n },\n toggleExpanded() {\n this.expanded = ! this.expanded;\n this.adaptHeight();\n },\n adaptHeight() {\n this.$refs.dsdProperties.style['flex'] = this.expanded ? \"0 0 100%\": `0 0 ${this.restrictedHeight}px`;\n this.$refs.dsdProperties.style['max-height'] = this.expanded ? \"100%\": `${this.restrictedHeight}px`;\n }\n },\n mounted() {\n this.initialHeight = this.$refs.dsdProperties.clientHeight;\n this.$refs.overlay.style.bottom = (this.$refs.dsdProperties.offsetHeight - this.$refs.dsdProperties.clientHeight) + \"px\";\n if (this.getDatasetDescriptionHeight >= this.initialHeight) {\n this.restrictedHeight = this.getDatasetDescriptionHeight;\n this.toggleExpanded()\n } else if ((this.getDatasetDescriptionHeight >= this.restrictedHeight) && (this.getDatasetDescriptionHeight <= this.initialHeight)) {\n this.restrictedHeight = this.getDatasetDescriptionHeight\n }\n this.adaptHeight();\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.arrow {\n cursor: pointer;\n}\n\n.additional-information-overlay {\n width: 100%;\n height: 100px;\n position: absolute;\n left: 0;\n background: linear-gradient(to bottom, rgba(0,0,0,0) 0, white 100%);\n pointer-events: none;\n}\ntable {\n background: #F5F5F5;\n}\n\n</style>\n"],"names":["_sfc_main","DataserviceDetailsProperty","mapGetters","dcatDataserviceSchema","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_renderSlot","_ctx","_createVNode","_component_dataset_details_feature_header","$data","$options","_withDirectives","_hoisted_3","_hoisted_4","_Fragment","_renderList","name","index","_createBlock","_component_dataservice_details_property","_a","_b","_c","_d","_e","_f","_g","_hoisted_5","_vShow","_component_pv_show_more"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataserviceDetailsProperties.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { truncate, getTranslationFor } from '../../utils/helpers';
|
|
2
|
+
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
translate: {
|
|
5
|
+
type: (ArrayConstructor | StringConstructor)[];
|
|
6
|
+
default: undefined;
|
|
7
|
+
};
|
|
8
|
+
name: StringConstructor;
|
|
9
|
+
propertyFields: StringConstructor;
|
|
10
|
+
itemstyles: StringConstructor;
|
|
11
|
+
track: StringConstructor;
|
|
12
|
+
preTransform: FunctionConstructor;
|
|
13
|
+
transform: FunctionConstructor;
|
|
14
|
+
}>, {}, {}, {
|
|
15
|
+
labelDisplay(): any;
|
|
16
|
+
data(): any;
|
|
17
|
+
preparedFields(): string[][] | undefined;
|
|
18
|
+
preparedTrack(): string[] | undefined;
|
|
19
|
+
value(): any;
|
|
20
|
+
show(): boolean;
|
|
21
|
+
getProperty: import('vuex').Computed;
|
|
22
|
+
}, {
|
|
23
|
+
isNil: (value: any) => value is null | undefined;
|
|
24
|
+
isArray: (value?: any) => value is any[];
|
|
25
|
+
truncate: typeof truncate;
|
|
26
|
+
getTranslationFor: typeof getTranslationFor;
|
|
27
|
+
dateValue(): any;
|
|
28
|
+
prepareObject(object: any): {
|
|
29
|
+
key: string;
|
|
30
|
+
value: any;
|
|
31
|
+
}[];
|
|
32
|
+
interpretTranslateKey(key: any, prefix: any): any;
|
|
33
|
+
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
34
|
+
type: StringConstructor;
|
|
35
|
+
translate: {
|
|
36
|
+
type: (ArrayConstructor | StringConstructor)[];
|
|
37
|
+
default: undefined;
|
|
38
|
+
};
|
|
39
|
+
name: StringConstructor;
|
|
40
|
+
propertyFields: StringConstructor;
|
|
41
|
+
itemstyles: StringConstructor;
|
|
42
|
+
track: StringConstructor;
|
|
43
|
+
preTransform: FunctionConstructor;
|
|
44
|
+
transform: FunctionConstructor;
|
|
45
|
+
}>> & Readonly<{}>, {
|
|
46
|
+
translate: string | unknown[];
|
|
47
|
+
}, {}, {
|
|
48
|
+
Tooltip: any;
|
|
49
|
+
AppLink: any;
|
|
50
|
+
ValuesList: any;
|
|
51
|
+
}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
52
|
+
export default _default;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import w from "../../widgets/AppLink.vue.mjs";
|
|
2
|
+
import x from "../../widgets/Tooltip.vue.mjs";
|
|
3
|
+
import { isNil as h, isArray as g } from "lodash-es";
|
|
4
|
+
import { showByType as N } from "./typeCheckers.mjs";
|
|
5
|
+
import S from "./ValuesList.vue.mjs";
|
|
6
|
+
import { mapGetters as j } from "vuex";
|
|
7
|
+
import b from "../../filters/dateFilters.mjs";
|
|
8
|
+
import { getTranslationFor as _, truncate as V } from "../../utils/helpers.mjs";
|
|
9
|
+
import { resolveComponent as f, openBlock as s, createElementBlock as i, createElementVNode as k, createVNode as y, withCtx as v, createTextVNode as o, toDisplayString as d, createCommentVNode as u, Fragment as T, renderList as D, createBlock as A } from "vue";
|
|
10
|
+
import "./DataserviceDetailsProperty.vue2.mjs";
|
|
11
|
+
import B from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
12
|
+
const E = {
|
|
13
|
+
name: "DataserviceDetailsProperty",
|
|
14
|
+
props: {
|
|
15
|
+
type: String,
|
|
16
|
+
translate: {
|
|
17
|
+
type: [String, Array],
|
|
18
|
+
default: void 0
|
|
19
|
+
},
|
|
20
|
+
name: String,
|
|
21
|
+
propertyFields: String,
|
|
22
|
+
itemstyles: String,
|
|
23
|
+
track: String,
|
|
24
|
+
preTransform: Function,
|
|
25
|
+
transform: Function
|
|
26
|
+
},
|
|
27
|
+
components: {
|
|
28
|
+
Tooltip: x,
|
|
29
|
+
AppLink: w,
|
|
30
|
+
ValuesList: S
|
|
31
|
+
},
|
|
32
|
+
computed: {
|
|
33
|
+
...j("dataserviceDetails", ["getProperty"]),
|
|
34
|
+
labelDisplay() {
|
|
35
|
+
const e = ["message.tooltip.datasetDetails", "message.metadata"];
|
|
36
|
+
let t;
|
|
37
|
+
return this.translate ? (t = this.translate.split(","), t.length === 1 && t.push(t[0])) : t = [this.name, this.name], t.map(
|
|
38
|
+
(r, l) => this.interpretTranslateKey(r, e[l])
|
|
39
|
+
);
|
|
40
|
+
},
|
|
41
|
+
data() {
|
|
42
|
+
let e = this.getProperty(this.name) || [];
|
|
43
|
+
return this.name === "languages" && Array.isArray(e) && (e = [...e].sort((t, r) => t.id < r.id ? -1 : t.id > r.id ? 1 : 0)), e;
|
|
44
|
+
},
|
|
45
|
+
preparedFields() {
|
|
46
|
+
var e;
|
|
47
|
+
return (e = this.propertyFields) == null ? void 0 : e.split(",").map((t) => t.split(":"));
|
|
48
|
+
},
|
|
49
|
+
preparedTrack() {
|
|
50
|
+
var e;
|
|
51
|
+
return (e = this.track) == null ? void 0 : e.split(",");
|
|
52
|
+
},
|
|
53
|
+
value() {
|
|
54
|
+
let e = this.data;
|
|
55
|
+
switch (this.preTransform && (e = this.preTransform(e)), this.type) {
|
|
56
|
+
case "date":
|
|
57
|
+
e = b.formatEU(e);
|
|
58
|
+
break;
|
|
59
|
+
case "links":
|
|
60
|
+
e = this.data.map((t) => {
|
|
61
|
+
if (t) {
|
|
62
|
+
const r = typeof t == "string" ? t : t.resource, l = typeof t == "string" ? t : t.label || t.id || t.resource;
|
|
63
|
+
return { link: r, label: l };
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
break;
|
|
67
|
+
case "object":
|
|
68
|
+
e = this.prepareObject(this.data);
|
|
69
|
+
break;
|
|
70
|
+
case "objects":
|
|
71
|
+
e = this.data.map((t) => this.prepareObject(t));
|
|
72
|
+
break;
|
|
73
|
+
case "translation":
|
|
74
|
+
e = _(e, this.$route.query.locale, ["en"]);
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
this.type.startsWith("first") && (e = this.data[0]);
|
|
78
|
+
}
|
|
79
|
+
return this.transform && (e = this.transform(e)), e;
|
|
80
|
+
},
|
|
81
|
+
show() {
|
|
82
|
+
return N(this.type, this.data);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
methods: {
|
|
86
|
+
isNil: h,
|
|
87
|
+
isArray: g,
|
|
88
|
+
truncate: V,
|
|
89
|
+
getTranslationFor: _,
|
|
90
|
+
dateValue() {
|
|
91
|
+
return b.formatEU(this.value);
|
|
92
|
+
},
|
|
93
|
+
prepareObject(e) {
|
|
94
|
+
let t = this.preparedFields ?? Object.keys(e).map((r) => [r]);
|
|
95
|
+
return t = t.filter((r) => !h(e[r[0]])), t.map((r) => {
|
|
96
|
+
let l = e[r[0]];
|
|
97
|
+
g(l) || (l = [l]);
|
|
98
|
+
const m = { key: r[0], value: l };
|
|
99
|
+
return r[1] !== void 0 && (m.type = r[1]), r[2] !== void 0 && (m.translation = r[2]), m;
|
|
100
|
+
});
|
|
101
|
+
},
|
|
102
|
+
interpretTranslateKey(e, t) {
|
|
103
|
+
return e === "" ? "" : e.startsWith("/") ? `${this.i18n.global.t(e.substring(1))}:` : e.startsWith("'") ? e.substring(1, e.length - 1) : `${this.i18n.global.t(`${t}.${e}`)}:`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}, O = { key: 0 }, P = { class: "w-25 text-break font-weight-bold" }, C = { key: 0 }, L = { key: 1 }, W = ["href"], I = { key: 2 }, U = { key: 0 }, q = { key: 2 }, G = { key: 3 }, z = { key: 4 };
|
|
107
|
+
function H(e, t, r, l, m, a) {
|
|
108
|
+
const F = f("tooltip"), K = f("app-link"), c = f("values-list");
|
|
109
|
+
return a.show ? (s(), i("tr", O, [
|
|
110
|
+
k("td", P, [
|
|
111
|
+
y(F, {
|
|
112
|
+
title: a.labelDisplay[0]
|
|
113
|
+
}, {
|
|
114
|
+
default: v(() => [
|
|
115
|
+
o(d(a.labelDisplay[1]), 1)
|
|
116
|
+
]),
|
|
117
|
+
_: 1
|
|
118
|
+
}, 8, ["title"])
|
|
119
|
+
]),
|
|
120
|
+
t[2] || (t[2] = o()),
|
|
121
|
+
["string", "date", "number", "first:number", "translation"].includes(
|
|
122
|
+
r.type
|
|
123
|
+
) ? (s(), i("td", C, d(a.value), 1)) : u("", !0),
|
|
124
|
+
t[3] || (t[3] = o()),
|
|
125
|
+
r.type === "uri" ? (s(), i("td", L, [
|
|
126
|
+
k("a", { href: a.value }, d(a.value), 9, W)
|
|
127
|
+
])) : u("", !0),
|
|
128
|
+
t[4] || (t[4] = o()),
|
|
129
|
+
r.type === "links" ? (s(), i("td", I, [
|
|
130
|
+
(s(!0), i(T, null, D(a.value, (n, p) => (s(), i("div", { key: p }, [
|
|
131
|
+
r.name === "identifiers" ? (s(), i("div", U, d(n.label), 1)) : u("", !0),
|
|
132
|
+
t[0] || (t[0] = o()),
|
|
133
|
+
!a.isNil(n) && n.link && r.name !== "languages" && r.name != "identifiers" ? (s(), A(K, {
|
|
134
|
+
key: 1,
|
|
135
|
+
to: n.link
|
|
136
|
+
}, {
|
|
137
|
+
default: v(() => [
|
|
138
|
+
o(d(a.truncate(n.label, 75)), 1)
|
|
139
|
+
]),
|
|
140
|
+
_: 2
|
|
141
|
+
}, 1032, ["to"])) : u("", !0),
|
|
142
|
+
t[1] || (t[1] = o()),
|
|
143
|
+
!a.isNil(n) && !n.link || r.name === "languages" && r.name != "identifiers" ? (s(), i("div", q, d(a.truncate(n.label, 75)), 1)) : u("", !0)
|
|
144
|
+
]))), 128))
|
|
145
|
+
])) : u("", !0),
|
|
146
|
+
t[5] || (t[5] = o()),
|
|
147
|
+
r.type === "object" ? (s(), i("td", G, [
|
|
148
|
+
y(c, {
|
|
149
|
+
values: a.value,
|
|
150
|
+
interpretTranslateKey: a.interpretTranslateKey,
|
|
151
|
+
itemstyles: r.itemstyles
|
|
152
|
+
}, null, 8, ["values", "interpretTranslateKey", "itemstyles"])
|
|
153
|
+
])) : u("", !0),
|
|
154
|
+
t[6] || (t[6] = o()),
|
|
155
|
+
r.type === "objects" ? (s(), i("td", z, [
|
|
156
|
+
(s(!0), i(T, null, D(a.value, (n, p) => (s(), i("div", { key: p }, [
|
|
157
|
+
y(c, {
|
|
158
|
+
values: n,
|
|
159
|
+
interpretTranslateKey: a.interpretTranslateKey,
|
|
160
|
+
itemstyles: r.itemstyles
|
|
161
|
+
}, null, 8, ["values", "interpretTranslateKey", "itemstyles"])
|
|
162
|
+
]))), 128))
|
|
163
|
+
])) : u("", !0)
|
|
164
|
+
])) : u("", !0);
|
|
165
|
+
}
|
|
166
|
+
const at = /* @__PURE__ */ B(E, [["render", H], ["__scopeId", "data-v-2cfcc72a"]]);
|
|
167
|
+
export {
|
|
168
|
+
at as default
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=DataserviceDetailsProperty.vue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataserviceDetailsProperty.vue.mjs","sources":["../../../lib/datasetDetails/properties/DataserviceDetailsProperty.vue"],"sourcesContent":["<template>\n <tr v-if=\"show\">\n <td class=\"w-25 text-break font-weight-bold\">\n <tooltip :title=\"labelDisplay[0]\">\n {{ labelDisplay[1] }}\n </tooltip>\n </td>\n <td\n v-if=\"\n ['string', 'date', 'number', 'first:number', 'translation'].includes(\n type\n )\n \"\n >\n {{ value }}\n </td>\n <td v-if=\"type === 'uri'\">\n <a :href=\"value\">{{ value }}</a>\n </td>\n <td v-if=\"type === 'links'\">\n <div v-for=\"(v, i) of value\" :key=\"i\">\n <div v-if=\"name === 'identifiers'\">{{ v.label }}</div>\n <app-link\n v-if=\"!isNil(v) && v.link && name !== 'languages' && name != 'identifiers'\"\n :to=\"v.link\"\n >{{ truncate(v.label, 75) }}</app-link\n >\n <div v-if=\"(!isNil(v) && !v.link) || name === 'languages' && name != 'identifiers'\">\n {{ truncate(v.label, 75) }}\n </div>\n </div>\n </td>\n <td v-if=\"type === 'object'\">\n <values-list\n :values=\"value\"\n :interpretTranslateKey=\"interpretTranslateKey\"\n :itemstyles=\"itemstyles\"\n />\n </td>\n <td v-if=\"type === 'objects'\">\n <div v-for=\"(item, i) of value\" :key=\"i\">\n <values-list\n :values=\"item\"\n :interpretTranslateKey=\"interpretTranslateKey\"\n :itemstyles=\"itemstyles\"\n />\n </div>\n </td>\n </tr>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport Tooltip from \"../../widgets/Tooltip\";\nimport { isNil, isArray } from \"lodash\";\nimport { showByType } from \"./typeCheckers.ts\";\nimport ValuesList from \"./ValuesList\";\nimport { mapGetters } from \"vuex\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\nimport { truncate, getTranslationFor } from \"../../utils/helpers\";\n\nexport default {\n name: \"DataserviceDetailsProperty\",\n props: {\n type: String,\n translate: {\n type: [String, Array],\n default: undefined,\n },\n name: String,\n propertyFields: String,\n itemstyles: String,\n track: String,\n preTransform: Function,\n transform: Function,\n },\n components: {\n Tooltip,\n AppLink,\n ValuesList,\n },\n computed: {\n ...mapGetters(\"dataserviceDetails\", [\"getProperty\"]),\n labelDisplay() {\n const prefix = [\"message.tooltip.datasetDetails\", \"message.metadata\"];\n let translateItems;\n if (this.translate) {\n translateItems = this.translate.split(\",\");\n if (translateItems.length === 1) {\n translateItems.push(translateItems[0]);\n }\n } else {\n translateItems = [this.name, this.name];\n }\n return translateItems.map((item, i) =>\n this.interpretTranslateKey(item, prefix[i])\n );\n },\n data() {\n let d = this.getProperty(this.name) || [];\n if (this.name === \"languages\" && Array.isArray(d)) {\n d = [...d].sort((a, b) => {\n if (a.id < b.id) return -1;\n if (a.id > b.id) return 1;\n return 0;\n });\n }\n return d;\n },\n preparedFields() {\n return this.propertyFields?.split(\",\").map((field) => field.split(\":\"));\n },\n preparedTrack() {\n return this.track?.split(\",\");\n },\n value() {\n let v = this.data;\n if (this.preTransform) v = this.preTransform(v);\n switch (this.type) {\n case \"date\":\n v = dateFilters.formatEU(v);\n break;\n case \"links\":\n v = this.data.map((item) => {\n if (item) {\n const link = typeof item === \"string\" ? item : item.resource;\n const label =\n typeof item === \"string\"\n ? item\n : item.label || item.id || item.resource;\n return { link, label };\n }\n });\n break;\n case \"object\":\n v = this.prepareObject(this.data);\n break;\n case \"objects\":\n v = this.data.map((item) => {\n return this.prepareObject(item);\n });\n break;\n case \"translation\":\n v = getTranslationFor(v, this.$route.query.locale, [\"en\"]);\n break;\n default:\n if (this.type.startsWith(\"first\")) {\n v = this.data[0];\n }\n }\n if (this.transform) v = this.transform(v);\n return v;\n },\n show() {\n return showByType(this.type, this.data);\n },\n },\n methods: {\n isNil,\n isArray,\n truncate,\n getTranslationFor,\n dateValue() {\n return dateFilters.formatEU(this.value);\n },\n prepareObject(object) {\n let keys = this.preparedFields ?? Object.keys(object).map((key) => [key]);\n keys = keys.filter((key) => !isNil(object[key[0]]));\n return keys.map((key) => {\n let value = object[key[0]];\n if (!isArray(value)) value = [value];\n const result = { key: key[0], value };\n if (key[1] !== undefined) result.type = key[1];\n if (key[2] !== undefined) result.translation = key[2];\n return result;\n });\n },\n interpretTranslateKey(key, prefix) {\n if (key === \"\") return \"\";\n if (key.startsWith(\"/\"))\n return `${this.i18n.global.t(key.substring(1))}:`;\n if (key.startsWith(\"'\")) return key.substring(1, key.length - 1);\n return `${this.i18n.global.t(`${prefix}.${key}`)}:`;\n },\n },\n};\n</script>\n\n<style scoped>\ntr {\n width: 100%;\n}\n.w-25 {\n min-width: 160px;\n}\n</style>\n"],"names":["_sfc_main","Tooltip","AppLink","ValuesList","mapGetters","prefix","translateItems","item","i","d","a","b","_a","field","v","dateFilters","link","label","getTranslationFor","showByType","isNil","isArray","truncate","object","keys","key","value","result","_hoisted_2","$options","_createElementBlock","_hoisted_1","_createElementVNode","_createVNode","_component_tooltip","$props","_openBlock","_hoisted_4","_hoisted_5","_hoisted_6","_Fragment","_renderList","_hoisted_7","_toDisplayString","_createBlock","_component_app_link","_hoisted_8","_hoisted_9","_component_values_list","_hoisted_10"],"mappings":";;;;;;;;;;;AA6DA,MAAKA,IAAU;AAAA,EACb,MAAM;AAAA,EACN,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ,KAAK;AAAA,MACpB,SAAS;AAAA,IACV;AAAA,IACD,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,cAAc;AAAA,IACd,WAAW;AAAA,EACZ;AAAA,EACD,YAAY;AAAA,IACV,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,EACD;AAAA,EACD,UAAU;AAAA,IACR,GAAGC,EAAW,sBAAsB,CAAC,aAAa,CAAC;AAAA,IACnD,eAAe;AACb,YAAMC,IAAS,CAAC,kCAAkC,kBAAkB;AACpE,UAAIC;AACJ,aAAI,KAAK,aACPA,IAAiB,KAAK,UAAU,MAAM,GAAG,GACrCA,EAAe,WAAW,KAC5BA,EAAe,KAAKA,EAAe,CAAC,CAAC,KAGvCA,IAAiB,CAAC,KAAK,MAAM,KAAK,IAAI,GAEjCA,EAAe;AAAA,QAAI,CAACC,GAAMC,MAC/B,KAAK,sBAAsBD,GAAMF,EAAOG,CAAC,CAAC;AAAA;IAE7C;AAAA,IACD,OAAO;AACL,UAAIC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK;AACvC,aAAI,KAAK,SAAS,eAAe,MAAM,QAAQA,CAAC,MAC9CA,IAAI,CAAC,GAAGA,CAAC,EAAE,KAAK,CAACC,GAAGC,MACdD,EAAE,KAAKC,EAAE,KAAW,KACpBD,EAAE,KAAKC,EAAE,KAAW,IACjB,CACR,IAEIF;AAAA,IACR;AAAA,IACD,iBAAiB;;AACf,cAAOG,IAAA,KAAK,mBAAL,gBAAAA,EAAqB,MAAM,KAAK,IAAI,CAACC,MAAUA,EAAM,MAAM,GAAG;AAAA,IACtE;AAAA,IACD,gBAAgB;;AACd,cAAOD,IAAA,KAAK,UAAL,gBAAAA,EAAY,MAAM;AAAA,IAC1B;AAAA,IACD,QAAQ;AACN,UAAIE,IAAI,KAAK;AAEb,cADI,KAAK,iBAAcA,IAAI,KAAK,aAAaA,CAAC,IACtC,KAAK,MAAI;AAAA,QACf,KAAK;AACH,UAAAA,IAAIC,EAAY,SAASD,CAAC;AAC1B;AAAA,QACF,KAAK;AACH,UAAAA,IAAI,KAAK,KAAK,IAAI,CAACP,MAAS;AAC1B,gBAAIA,GAAM;AACR,oBAAMS,IAAO,OAAOT,KAAS,WAAWA,IAAOA,EAAK,UAC9CU,IACJ,OAAOV,KAAS,WACZA,IACAA,EAAK,SAASA,EAAK,MAAMA,EAAK;AACpC,qBAAO,EAAE,MAAAS,GAAM,OAAAC;YACjB;AAAA,UACF,CAAC;AACD;AAAA,QACF,KAAK;AACH,UAAAH,IAAI,KAAK,cAAc,KAAK,IAAI;AAChC;AAAA,QACF,KAAK;AACH,UAAAA,IAAI,KAAK,KAAK,IAAI,CAACP,MACV,KAAK,cAAcA,CAAI,CAC/B;AACD;AAAA,QACF,KAAK;AACH,UAAAO,IAAII,EAAkBJ,GAAG,KAAK,OAAO,MAAM,QAAQ,CAAC,IAAI,CAAC;AACzD;AAAA,QACF;AACE,UAAI,KAAK,KAAK,WAAW,OAAO,MAC9BA,IAAI,KAAK,KAAK,CAAC;AAAA,MAErB;AACA,aAAI,KAAK,cAAWA,IAAI,KAAK,UAAUA,CAAC,IACjCA;AAAA,IACR;AAAA,IACD,OAAO;AACL,aAAOK,EAAW,KAAK,MAAM,KAAK,IAAI;AAAA,IACvC;AAAA,EACF;AAAA,EACD,SAAS;AAAA,IACP,OAAAC;AAAA,IACA,SAAAC;AAAA,IACA,UAAAC;AAAA,IACA,mBAAAJ;AAAA,IACA,YAAY;AACV,aAAOH,EAAY,SAAS,KAAK,KAAK;AAAA,IACvC;AAAA,IACD,cAAcQ,GAAQ;AACpB,UAAIC,IAAO,KAAK,kBAAkB,OAAO,KAAKD,CAAM,EAAE,IAAI,CAACE,MAAQ,CAACA,CAAG,CAAC;AACxE,aAAAD,IAAOA,EAAK,OAAO,CAACC,MAAQ,CAACL,EAAMG,EAAOE,EAAI,CAAC,CAAC,CAAC,CAAC,GAC3CD,EAAK,IAAI,CAACC,MAAQ;AACvB,YAAIC,IAAQH,EAAOE,EAAI,CAAC,CAAC;AACzB,QAAKJ,EAAQK,CAAK,MAAGA,IAAQ,CAACA,CAAK;AACnC,cAAMC,IAAS,EAAE,KAAKF,EAAI,CAAC,GAAG,OAAAC;AAC9B,eAAID,EAAI,CAAC,MAAM,WAAWE,EAAO,OAAOF,EAAI,CAAC,IACzCA,EAAI,CAAC,MAAM,WAAWE,EAAO,cAAcF,EAAI,CAAC,IAC7CE;AAAA,MACT,CAAC;AAAA,IACF;AAAA,IACD,sBAAsBF,GAAKpB,GAAQ;AACjC,aAAIoB,MAAQ,KAAW,KACnBA,EAAI,WAAW,GAAG,IACb,GAAG,KAAK,KAAK,OAAO,EAAEA,EAAI,UAAU,CAAC,CAAC,CAAC,MAC5CA,EAAI,WAAW,GAAG,IAAUA,EAAI,UAAU,GAAGA,EAAI,SAAS,CAAC,IACxD,GAAG,KAAK,KAAK,OAAO,EAAE,GAAGpB,CAAM,IAAIoB,CAAG,EAAE,CAAC;AAAA,IACjD;AAAA,EACF;AACH,mBAvLQG,IAAA,EAAA,OAAM,mCAAkC;;;SADpCC,EAAI,aAAdC,EA+CK,MAAAC,GAAA;AAAA,IA9CHC,EAIK,MAJLJ,GAIK;AAAA,MAHHK,EAEUC,GAAA;AAAA,QAFA,OAAOL,EAAY,aAAA,CAAA;AAAA;mBAC3B,MAAqB;AAAA,cAAlBA,EAAY,aAAA,CAAA,CAAA,GAAA,CAAA;AAAA;;;;;gEAI0D;AAAA,MAAoBM,EAAI;AAAA,SADrGC,EAAA,GAAAN,EAQK,WADAD,EAAK,KAAA,GAAA,CAAA;;IAEAM,EAAI,SAAA,cAAdL,EAEK,MAAAO,GAAA;AAAA,MADHL,EAAgC,KAA5B,EAAA,MAAMH,EAAA,MAAK,KAAKA,EAAK,KAAA,GAAA,GAAAS,CAAA;AAAA;;IAEjBH,EAAI,SAAA,gBAAdL,EAYK,MAAAS,GAAA;AAAA,OAXHH,EAAA,EAAA,GAAAN,EAUMU,GAVgB,MAAAC,EAAAZ,EAAA,OAAT,CAAAf,GAAGN,YAAhBsB,EAUM,OAAA,EAVwB,KAAKtB,KAAC;AAAA,QACvB2B,EAAI,SAAA,sBAAfL,EAAsD,OAAAY,GAAAC,EAAhB7B,EAAE,KAAK,GAAA,CAAA;;SAEpCe,EAAK,MAACf,CAAC,KAAKA,EAAE,QAAQqB,EAAI,SAAA,eAAoBA,EAAI,QAAA,sBAD3DS,EAICC,GAAA;AAAA;UAFE,IAAI/B,EAAE;AAAA;qBACN,MAA2B;AAAA,gBAAxBe,EAAQ,SAACf,EAAE,OAAK,EAAA,CAAA,GAAA,CAAA;AAAA;;;;SAETe,EAAK,MAACf,CAAC,KAAM,CAAAA,EAAE,QAASqB,EAAI,SAAA,eAAoBA,EAAI,QAAA,iBAAjEC,EAAA,GAAAN,EAEM,OADDgB,GAAAH,EAAAd,EAAA,SAASf,EAAE,OAAK,EAAA,CAAA,GAAA,CAAA;;;;IAIfqB,EAAI,SAAA,iBAAdL,EAMK,MAAAiB,GAAA;AAAA,MALHd,EAIEe,GAAA;AAAA,QAHC,QAAQnB,EAAK;AAAA,QACb,uBAAuBA,EAAqB;AAAA,QAC5C,YAAYM,EAAU;AAAA;;;IAGjBA,EAAI,SAAA,kBAAdL,EAQK,MAAAmB,GAAA;AAAA,OAPHb,EAAA,EAAA,GAAAN,EAMMU,GANmB,MAAAC,EAAAZ,EAAA,OAAZ,CAAAtB,GAAMC,YAAnBsB,EAMM,OAAA,EAN2B,KAAKtB,KAAC;AAAA,QACrCyB,EAIEe,GAAA;AAAA,UAHC,QAAQzC;AAAA,UACR,uBAAuBsB,EAAqB;AAAA,UAC5C,YAAYM,EAAU;AAAA;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataserviceDetailsProperty.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -11,6 +11,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
11
11
|
getLabel(v: any): any;
|
|
12
12
|
isLink(v: any): boolean;
|
|
13
13
|
shouldHideField(v: any): boolean;
|
|
14
|
+
hasNameOrLabel(): boolean;
|
|
14
15
|
hasLinkInValues(): boolean;
|
|
15
16
|
getLinkForName(): any;
|
|
16
17
|
getLinkType(): any;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { truncate as
|
|
1
|
+
import f from "../../widgets/AppLink.vue.mjs";
|
|
2
|
+
import { truncate as p, removeMailtoOrTel as b } from "../../utils/helpers.mjs";
|
|
3
3
|
import _ from "../../filters/dateFilters.mjs";
|
|
4
|
-
import { resolveComponent as C, openBlock as a, createElementBlock as n, Fragment as y, renderList as c, normalizeStyle as w, normalizeClass as m, createElementVNode as
|
|
4
|
+
import { resolveComponent as C, openBlock as a, createElementBlock as n, Fragment as y, renderList as c, normalizeStyle as w, normalizeClass as m, createElementVNode as h, toDisplayString as u, createTextVNode as k, createBlock as x, withCtx as V } from "vue";
|
|
5
5
|
import "./ValuesList.vue2.mjs";
|
|
6
6
|
import E from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
7
|
-
const
|
|
7
|
+
const N = {
|
|
8
8
|
name: "ValuesList",
|
|
9
9
|
props: {
|
|
10
10
|
values: Array,
|
|
@@ -13,10 +13,10 @@ const F = {
|
|
|
13
13
|
interpretTranslateKey: Function
|
|
14
14
|
},
|
|
15
15
|
components: {
|
|
16
|
-
AppLink:
|
|
16
|
+
AppLink: f
|
|
17
17
|
},
|
|
18
18
|
methods: {
|
|
19
|
-
truncate:
|
|
19
|
+
truncate: p,
|
|
20
20
|
removeMailtoOrTel: b,
|
|
21
21
|
isExternalUrl(e) {
|
|
22
22
|
return typeof e == "string" && !e.startsWith("mailto:") && !e.startsWith("tel:");
|
|
@@ -26,12 +26,15 @@ const F = {
|
|
|
26
26
|
return e.key.toLowerCase() === "name" || e.key.toLowerCase() === "label" ? "" : typeof e.translation == "string" ? this.interpretTranslateKey(e.translation, t) : `${this.i18n.global.t(`${t}.${e.key}`)}:`;
|
|
27
27
|
},
|
|
28
28
|
isLink(e) {
|
|
29
|
-
var
|
|
30
|
-
const t = e.key.toLowerCase(), s = (
|
|
29
|
+
var g;
|
|
30
|
+
const t = e.key.toLowerCase(), s = (g = e.type) == null ? void 0 : g.toLowerCase();
|
|
31
31
|
return ["homepage", "resource"].includes(t) || s === "link" || s === "link_blank";
|
|
32
32
|
},
|
|
33
33
|
shouldHideField(e) {
|
|
34
|
-
return ["homepage", "resource"].includes(e.key.toLowerCase());
|
|
34
|
+
return ["homepage", "resource"].includes(e.key.toLowerCase()) && this.hasNameOrLabel();
|
|
35
|
+
},
|
|
36
|
+
hasNameOrLabel() {
|
|
37
|
+
return this.values.some((e) => ["name", "label"].includes(e.key.toLowerCase()));
|
|
35
38
|
},
|
|
36
39
|
hasLinkInValues() {
|
|
37
40
|
return this.values.some((e) => ["resource", "homepage"].includes(e.key.toLowerCase()));
|
|
@@ -50,7 +53,7 @@ const F = {
|
|
|
50
53
|
case "date":
|
|
51
54
|
return _.formatEU(e);
|
|
52
55
|
default:
|
|
53
|
-
return typeof e == "string" ?
|
|
56
|
+
return typeof e == "string" ? p(e, 75) : e;
|
|
54
57
|
}
|
|
55
58
|
},
|
|
56
59
|
handleClick(e, t) {
|
|
@@ -58,73 +61,73 @@ const F = {
|
|
|
58
61
|
this.track && this.track.includes(s) && this.$emit("track-link", e, "link");
|
|
59
62
|
}
|
|
60
63
|
}
|
|
61
|
-
},
|
|
62
|
-
function
|
|
63
|
-
const
|
|
64
|
+
}, F = { class: "dsd-properties-inner-label" }, v = { class: "dsd-properties-inner-label" }, T = ["href", "target", "rel", "onClick"], U = { class: "dsd-properties-inner-label" }, O = { key: 0 }, A = ["href", "target", "rel"];
|
|
65
|
+
function B(e, t, s, g, I, r) {
|
|
66
|
+
const L = C("app-link");
|
|
64
67
|
return a(), n("div", null, [
|
|
65
|
-
(a(!0), n(y, null, c(s.values, (l,
|
|
66
|
-
key:
|
|
68
|
+
(a(!0), n(y, null, c(s.values, (l, o) => (a(), n("div", {
|
|
69
|
+
key: o,
|
|
67
70
|
style: w(s.itemstyles)
|
|
68
71
|
}, [
|
|
69
72
|
l.key === "email" ? (a(), n("div", {
|
|
70
73
|
key: 0,
|
|
71
|
-
class: m({ "mb-1":
|
|
74
|
+
class: m({ "mb-1": o < s.values.length })
|
|
72
75
|
}, [
|
|
73
|
-
|
|
74
|
-
t[0] || (t[0] =
|
|
75
|
-
(a(!0), n(y, null, c(l.value, (i,
|
|
76
|
-
key:
|
|
76
|
+
h("span", F, u(r.getLabel(l)), 1),
|
|
77
|
+
t[0] || (t[0] = k()),
|
|
78
|
+
(a(!0), n(y, null, c(l.value, (i, d) => (a(), x(L, {
|
|
79
|
+
key: d,
|
|
77
80
|
to: `mailto:${r.removeMailtoOrTel(i)}`
|
|
78
81
|
}, {
|
|
79
82
|
default: V(() => [
|
|
80
|
-
|
|
83
|
+
k(u(r.displayValue(i, l.type)), 1)
|
|
81
84
|
]),
|
|
82
85
|
_: 2
|
|
83
86
|
}, 1032, ["to"]))), 128))
|
|
84
87
|
], 2)) : l.key === "identifier" ? (a(), n("div", {
|
|
85
88
|
key: 1,
|
|
86
|
-
class: m({ "mb-1":
|
|
87
|
-
},
|
|
89
|
+
class: m({ "mb-1": o < s.values.length })
|
|
90
|
+
}, u(r.getLabel(l)) + " " + u(l.value[o]), 3)) : r.isLink(l) ? (a(), n("div", {
|
|
88
91
|
key: 2,
|
|
89
|
-
class: m({ "mb-1":
|
|
92
|
+
class: m({ "mb-1": o < s.values.length })
|
|
90
93
|
}, [
|
|
91
|
-
|
|
92
|
-
t[2] || (t[2] =
|
|
93
|
-
(a(!0), n(y, null, c(l.value, (i,
|
|
94
|
-
key:
|
|
94
|
+
h("span", v, u(r.getLabel(l)), 1),
|
|
95
|
+
t[2] || (t[2] = k()),
|
|
96
|
+
(a(!0), n(y, null, c(l.value, (i, d) => (a(), n("a", {
|
|
97
|
+
key: d,
|
|
95
98
|
href: i,
|
|
96
99
|
target: r.isExternalUrl(i) ? "_blank" : null,
|
|
97
100
|
rel: r.isExternalUrl(i) ? "noopener noreferrer" : null,
|
|
98
|
-
onClick: (
|
|
101
|
+
onClick: (S) => r.handleClick(i, l)
|
|
99
102
|
}, [
|
|
100
|
-
|
|
101
|
-
t[1] || (t[1] =
|
|
102
|
-
], 8,
|
|
103
|
+
k(u(r.displayValue(i, l.type)) + " ", 1),
|
|
104
|
+
t[1] || (t[1] = h("span", { class: "external-link-icon" }, null, -1))
|
|
105
|
+
], 8, T))), 128))
|
|
103
106
|
], 2)) : r.shouldHideField(l) ? (a(), n("div", {
|
|
104
107
|
key: 3,
|
|
105
|
-
class: m({ "mb-1":
|
|
108
|
+
class: m({ "mb-1": o < s.values.length })
|
|
106
109
|
}, null, 2)) : (a(), n("div", {
|
|
107
110
|
key: 4,
|
|
108
|
-
class: m({ "mb-1":
|
|
111
|
+
class: m({ "mb-1": o < s.values.length })
|
|
109
112
|
}, [
|
|
110
|
-
|
|
111
|
-
t[4] || (t[4] =
|
|
112
|
-
["name", "label"].includes(l.key.toLowerCase()) && r.hasLinkInValues() ? (a(), n("span",
|
|
113
|
-
(a(!0), n(y, null, c(l.value, (i,
|
|
114
|
-
key:
|
|
113
|
+
h("span", U, u(r.getLabel(l)), 1),
|
|
114
|
+
t[4] || (t[4] = k()),
|
|
115
|
+
["name", "label"].includes(l.key.toLowerCase()) && r.hasLinkInValues() ? (a(), n("span", O, [
|
|
116
|
+
(a(!0), n(y, null, c(l.value, (i, d) => (a(), n("a", {
|
|
117
|
+
key: d,
|
|
115
118
|
href: r.getLinkForName(),
|
|
116
119
|
target: r.isExternalUrl(r.getLinkForName()) ? "_blank" : null,
|
|
117
120
|
rel: r.isExternalUrl(r.getLinkForName()) ? "noopener noreferrer" : null
|
|
118
121
|
}, [
|
|
119
|
-
|
|
120
|
-
t[3] || (t[3] =
|
|
121
|
-
], 8,
|
|
122
|
-
])) : (a(!0), n(y, { key: 1 }, c(l.value, (i,
|
|
122
|
+
k(u(r.displayValue(i, l.type)) + " ", 1),
|
|
123
|
+
t[3] || (t[3] = h("span", { class: "external-link-icon" }, null, -1))
|
|
124
|
+
], 8, A))), 128))
|
|
125
|
+
])) : (a(!0), n(y, { key: 1 }, c(l.value, (i, d) => (a(), n("span", { key: d }, u(r.displayValue(i, l.type)), 1))), 128))
|
|
123
126
|
], 2))
|
|
124
127
|
], 4))), 128))
|
|
125
128
|
]);
|
|
126
129
|
}
|
|
127
|
-
const j = /* @__PURE__ */ E(
|
|
130
|
+
const j = /* @__PURE__ */ E(N, [["render", B], ["__scopeId", "data-v-724d8b63"]]);
|
|
128
131
|
export {
|
|
129
132
|
j as default
|
|
130
133
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValuesList.vue.mjs","sources":["../../../lib/datasetDetails/properties/ValuesList.vue"],"sourcesContent":["<template>\n <div>\n <div v-for=\"(v, i) of values\" :key=\"i\" :style=\"itemstyles\">\n <div v-if=\"v.key === 'email'\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <app-link v-for=\"(item, j) in v.value\" :key=\"j\" :to=\"`mailto:${removeMailtoOrTel(item)}`\">\n {{ displayValue(item, v.type) }}\n </app-link>\n </div>\n <div v-else-if=\"v.key === 'identifier'\" :class=\"{'mb-1':i<values.length}\">\n {{ getLabel(v) }} {{ v.value[i] }}\n </div>\n <div v-else-if=\"isLink(v) && !['resource', 'homepage'].includes(v.key.toLowerCase())\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"item\"\n :target=\"isExternalUrl(item) ? '_blank' : null\"\n :rel=\"isExternalUrl(item) ? 'noopener noreferrer' : null\"\n @click=\"handleClick(item, v)\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </div>\n\n <div v-else-if=\"shouldHideField(v)\" :class=\"{'mb-1':i<values.length}\">\n <!-- Hidden fields like resource/homepage that are used as links for name -->\n </div>\n\n <div v-else :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <span v-if=\"['name', 'label'].includes(v.key.toLowerCase()) && hasLinkInValues()\">\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"getLinkForName()\"\n :target=\"isExternalUrl(getLinkForName()) ? '_blank' : null\"\n :rel=\"isExternalUrl(getLinkForName()) ? 'noopener noreferrer' : null\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </span>\n <span v-else v-for=\"(item, j) in v.value\" :key=\"j\">{{ displayValue(item, v.type) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport {removeMailtoOrTel, truncate} from \"../../utils/helpers.ts\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\n\nexport default {\n name: \"ValuesList\",\n props: {\n values: Array,\n track: Array,\n itemstyles: String,\n interpretTranslateKey: Function\n },\n components: {\n AppLink\n },\n methods: {\n truncate,\n removeMailtoOrTel,\n isExternalUrl(url) {\n // Zeige Icon für alle URLs außer mailto: und tel:\n return typeof url === \"string\" && !url.startsWith('mailto:') && !url.startsWith('tel:');\n },\n getLabel(v) {\n const prefix = \"message.metadata\";\n // Don't show labels for name field\n if (v.key.toLowerCase() === 'name' || v.key.toLowerCase() === 'label') {\n return '';\n }\n if (typeof v.translation === 'string') {\n return this.interpretTranslateKey(v.translation, prefix);\n }\n return `${this.i18n.global.t(`${prefix}.${v.key}`)}:`;\n },\n isLink(v) {\n const key = v.key.toLowerCase();\n const type = v.type?.toLowerCase();\n return ['homepage', 'resource'].includes(key) || type === 'link' || type === 'link_blank';\n },\n shouldHideField(v) {\n return ['homepage','resource'].includes(v.key.toLowerCase());\n },\n hasLinkInValues() {\n return this.values.some(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n },\n getLinkForName() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.value?.[0] || '#';\n },\n getLinkType() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.type || '';\n },\n displayValue(item, type) {\n switch (type) {\n case 'date':\n return dateFilters.formatEU(item);\n default:\n return typeof item === 'string' ? truncate(item, 75) : item;\n }\n },\n handleClick(item, v) {\n const key = v.key.toLowerCase();\n if (this.track && this.track.includes(key)) {\n this.$emit('track-link', item, 'link');\n }\n }\n }\n}\n</script>\n\n<style scoped>\n.dsd-properties-inner-label {\n white-space: pre;\n}\n\n.external-link-icon svg {\n margin-bottom: 5px;\n margin-left: 10;\n}\n</style>"],"names":["_sfc_main","AppLink","truncate","removeMailtoOrTel","url","v","prefix","key","type","_a","linkField","item","dateFilters","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_openBlock","_Fragment","_renderList","$props","i","_normalizeClass","_createElementVNode","_toDisplayString","$options","j","_createBlock","_component_app_link","_createTextVNode","$event","_hoisted_5"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ValuesList.vue.mjs","sources":["../../../lib/datasetDetails/properties/ValuesList.vue"],"sourcesContent":["<template>\n <div>\n <div v-for=\"(v, i) of values\" :key=\"i\" :style=\"itemstyles\">\n <div v-if=\"v.key === 'email'\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <app-link v-for=\"(item, j) in v.value\" :key=\"j\" :to=\"`mailto:${removeMailtoOrTel(item)}`\">\n {{ displayValue(item, v.type) }}\n </app-link>\n </div>\n <div v-else-if=\"v.key === 'identifier'\" :class=\"{'mb-1':i<values.length}\">\n {{ getLabel(v) }} {{ v.value[i] }}\n </div>\n <div v-else-if=\"isLink(v)\" :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"item\"\n :target=\"isExternalUrl(item) ? '_blank' : null\"\n :rel=\"isExternalUrl(item) ? 'noopener noreferrer' : null\"\n @click=\"handleClick(item, v)\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a.5.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </div>\n\n <div v-else-if=\"shouldHideField(v)\" :class=\"{'mb-1':i<values.length}\">\n <!-- Hidden fields like resource/homepage that are used as links for name -->\n </div>\n\n <div v-else :class=\"{'mb-1':i<values.length}\">\n <span class=\"dsd-properties-inner-label\">{{ getLabel(v) }}</span>\n <span v-if=\"['name', 'label'].includes(v.key.toLowerCase()) && hasLinkInValues()\">\n <a\n v-for=\"(item, j) in v.value\"\n :key=\"j\"\n :href=\"getLinkForName()\"\n :target=\"isExternalUrl(getLinkForName()) ? '_blank' : null\"\n :rel=\"isExternalUrl(getLinkForName()) ? 'noopener noreferrer' : null\"\n >\n {{ displayValue(item, v.type) }}\n <span class=\"external-link-icon\">\n <!-- <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-box-arrow-up-right\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" d=\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5\"/>\n <path fill-rule=\"evenodd\" d=\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0z\"/>\n </svg> -->\n </span>\n </a>\n </span>\n <span v-else v-for=\"(item, j) in v.value\" :key=\"j\">{{ displayValue(item, v.type) }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport AppLink from \"../../widgets/AppLink\";\nimport {removeMailtoOrTel, truncate} from \"../../utils/helpers.ts\";\nimport dateFilters from \"../../filters/dateFilters.ts\";\n\nexport default {\n name: \"ValuesList\",\n props: {\n values: Array,\n track: Array,\n itemstyles: String,\n interpretTranslateKey: Function\n },\n components: {\n AppLink\n },\n methods: {\n truncate,\n removeMailtoOrTel,\n isExternalUrl(url) {\n // Zeige Icon für alle URLs außer mailto: und tel:\n return typeof url === \"string\" && !url.startsWith('mailto:') && !url.startsWith('tel:');\n },\n getLabel(v) {\n const prefix = \"message.metadata\";\n // Don't show labels for name field\n if (v.key.toLowerCase() === 'name' || v.key.toLowerCase() === 'label') {\n return '';\n }\n if (typeof v.translation === 'string') {\n return this.interpretTranslateKey(v.translation, prefix);\n }\n return `${this.i18n.global.t(`${prefix}.${v.key}`)}:`;\n },\n isLink(v) {\n const key = v.key.toLowerCase();\n const type = v.type?.toLowerCase();\n return ['homepage', 'resource'].includes(key) || type === 'link' || type === 'link_blank';\n },\n shouldHideField(v) {\n return ['homepage','resource'].includes(v.key.toLowerCase()) && this.hasNameOrLabel();\n },\n hasNameOrLabel() {\n return this.values.some(item => ['name', 'label'].includes(item.key.toLowerCase()));\n },\n hasLinkInValues() {\n return this.values.some(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n },\n getLinkForName() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.value?.[0] || '#';\n },\n getLinkType() {\n const linkField = this.values.find(v => ['resource', 'homepage'].includes(v.key.toLowerCase()));\n return linkField?.type || '';\n },\n displayValue(item, type) {\n switch (type) {\n case 'date':\n return dateFilters.formatEU(item);\n default:\n return typeof item === 'string' ? truncate(item, 75) : item;\n }\n },\n handleClick(item, v) {\n const key = v.key.toLowerCase();\n if (this.track && this.track.includes(key)) {\n this.$emit('track-link', item, 'link');\n }\n }\n }\n}\n</script>\n\n<style scoped>\n.dsd-properties-inner-label {\n white-space: pre;\n}\n\n.external-link-icon svg {\n margin-bottom: 5px;\n margin-left: 10;\n}\n</style>"],"names":["_sfc_main","AppLink","truncate","removeMailtoOrTel","url","v","prefix","key","type","_a","item","linkField","dateFilters","_hoisted_1","_hoisted_2","_hoisted_4","_createElementBlock","_openBlock","_Fragment","_renderList","$props","i","_normalizeClass","_createElementVNode","_toDisplayString","$options","j","_createBlock","_component_app_link","_createTextVNode","$event","_hoisted_5"],"mappings":"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"}
|