@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.
Files changed (37) hide show
  1. package/dist/configurations/configureServices.mjs +18 -15
  2. package/dist/configurations/configureServices.mjs.map +1 -1
  3. package/dist/data-provider-interface/composables/aucotomplete.mjs +36 -26
  4. package/dist/data-provider-interface/composables/aucotomplete.mjs.map +1 -1
  5. package/dist/data-provider-interface/config/dcatapde/input-definition.mjs +1 -1
  6. package/dist/data-provider-interface/config/dcatapde/input-definition.mjs.map +1 -1
  7. package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs +1 -0
  8. package/dist/data-provider-interface/config/dcatapde/vocab-prefixes.mjs.map +1 -1
  9. package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue.d.ts +43 -0
  10. package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue.mjs +118 -0
  11. package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue.mjs.map +1 -0
  12. package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue2.mjs +5 -0
  13. package/dist/datasetDetails/properties/DataserviceDetailsProperties.vue2.mjs.map +1 -0
  14. package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue.d.ts +52 -0
  15. package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue.mjs +170 -0
  16. package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue.mjs.map +1 -0
  17. package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue2.mjs +5 -0
  18. package/dist/datasetDetails/properties/DataserviceDetailsProperty.vue2.mjs.map +1 -0
  19. package/dist/datasetDetails/properties/ValuesList.vue.d.ts +1 -0
  20. package/dist/datasetDetails/properties/ValuesList.vue.mjs +47 -44
  21. package/dist/datasetDetails/properties/ValuesList.vue.mjs.map +1 -1
  22. package/dist/datasetDetails/properties/specification.d.ts +26 -0
  23. package/dist/datasetDetails/properties/specification.mjs +8 -0
  24. package/dist/datasetDetails/properties/specification.mjs.map +1 -1
  25. package/dist/index.d.ts +3 -1
  26. package/dist/index.mjs +113 -109
  27. package/dist/index.mjs.map +1 -1
  28. package/dist/piveau-hub-ui-modules.css +1 -1
  29. package/dist/services/dataserviceService.d.ts +9 -0
  30. package/dist/services/dataserviceService.mjs +30 -0
  31. package/dist/services/dataserviceService.mjs.map +1 -0
  32. package/dist/store/index.mjs +19 -17
  33. package/dist/store/index.mjs.map +1 -1
  34. package/dist/store/modules/dataserviceDetailsStore.d.ts +71 -0
  35. package/dist/store/modules/dataserviceDetailsStore.mjs +117 -0
  36. package/dist/store/modules/dataserviceDetailsStore.mjs.map +1 -0
  37. 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,5 @@
1
+ const e = "";
2
+ export {
3
+ e as default
4
+ };
5
+ //# sourceMappingURL=DataserviceDetailsProperties.vue2.mjs.map
@@ -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,5 @@
1
+ const e = "";
2
+ export {
3
+ e as default
4
+ };
5
+ //# sourceMappingURL=DataserviceDetailsProperty.vue2.mjs.map
@@ -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 L from "../../widgets/AppLink.vue.mjs";
2
- import { truncate as h, removeMailtoOrTel as b } from "../../utils/helpers.mjs";
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 g, toDisplayString as o, createTextVNode as d, createBlock as x, withCtx as V } from "vue";
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 F = {
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: L
16
+ AppLink: f
17
17
  },
18
18
  methods: {
19
- truncate: h,
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 p;
30
- const t = e.key.toLowerCase(), s = (p = e.type) == null ? void 0 : p.toLowerCase();
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" ? h(e, 75) : e;
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
- }, N = { class: "dsd-properties-inner-label" }, T = { class: "dsd-properties-inner-label" }, U = ["href", "target", "rel", "onClick"], v = { class: "dsd-properties-inner-label" }, A = { key: 0 }, B = ["href", "target", "rel"];
62
- function I(e, t, s, p, S, r) {
63
- const f = C("app-link");
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, u) => (a(), n("div", {
66
- key: u,
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": u < s.values.length })
74
+ class: m({ "mb-1": o < s.values.length })
72
75
  }, [
73
- g("span", N, o(r.getLabel(l)), 1),
74
- t[0] || (t[0] = d()),
75
- (a(!0), n(y, null, c(l.value, (i, k) => (a(), x(f, {
76
- key: k,
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
- d(o(r.displayValue(i, l.type)), 1)
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": u < s.values.length })
87
- }, o(r.getLabel(l)) + " " + o(l.value[u]), 3)) : r.isLink(l) && !["resource", "homepage"].includes(l.key.toLowerCase()) ? (a(), n("div", {
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": u < s.values.length })
92
+ class: m({ "mb-1": o < s.values.length })
90
93
  }, [
91
- g("span", T, o(r.getLabel(l)), 1),
92
- t[2] || (t[2] = d()),
93
- (a(!0), n(y, null, c(l.value, (i, k) => (a(), n("a", {
94
- key: k,
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: (z) => r.handleClick(i, l)
101
+ onClick: (S) => r.handleClick(i, l)
99
102
  }, [
100
- d(o(r.displayValue(i, l.type)) + " ", 1),
101
- t[1] || (t[1] = g("span", { class: "external-link-icon" }, null, -1))
102
- ], 8, U))), 128))
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": u < s.values.length })
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": u < s.values.length })
111
+ class: m({ "mb-1": o < s.values.length })
109
112
  }, [
110
- g("span", v, o(r.getLabel(l)), 1),
111
- t[4] || (t[4] = d()),
112
- ["name", "label"].includes(l.key.toLowerCase()) && r.hasLinkInValues() ? (a(), n("span", A, [
113
- (a(!0), n(y, null, c(l.value, (i, k) => (a(), n("a", {
114
- key: k,
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
- d(o(r.displayValue(i, l.type)) + " ", 1),
120
- t[3] || (t[3] = g("span", { class: "external-link-icon" }, null, -1))
121
- ], 8, B))), 128))
122
- ])) : (a(!0), n(y, { key: 1 }, c(l.value, (i, k) => (a(), n("span", { key: k }, o(r.displayValue(i, l.type)), 1))), 128))
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(F, [["render", I], ["__scopeId", "data-v-c6494852"]]);
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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"}