admins-components 9.0.83 → 9.0.84
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/admins-components170.js.map +1 -1
- package/dist/admins-components173.js +94 -130
- package/dist/admins-components173.js.map +1 -1
- package/dist/admins-components38.js +27 -24
- package/dist/admins-components38.js.map +1 -1
- package/dist/admins-components40.js.map +1 -1
- package/dist/admins-components51.js +78 -83
- package/dist/admins-components51.js.map +1 -1
- package/dist/admins-components52.js.map +1 -1
- package/dist/admins-components71.js +38 -53
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components73.js.map +1 -1
- package/dist/src/vueformelements/config/ArticlePickerElementConfig.d.ts +1 -0
- package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_56a4bfd6_lang.css +1 -0
- package/dist/widget/dist/hvg-search-image-style.css +1 -0
- package/dist/widget/dist/hvg-search-image.es.js +204437 -0
- package/dist/widget/dist/hvg-search-image.umd.js +506 -0
- package/dist/widget/dist/search-posts-widget.css +2 -1
- package/dist/widget/dist/search-posts-widget.es.js +9959 -11192
- package/dist/widget/dist/search-posts-widget.umd.js +5 -31
- package/dist/widget.css +1 -1
- package/package.json +1 -1
- package/dist/vueformelements/ArticlePickerElement.vue_vue_type_style_index_0_scoped_0afb93e7_lang.css +0 -1
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import e from "./admins-components6.js";
|
|
2
2
|
import t from "./admins-components28.js";
|
|
3
|
-
import n from "./admins-
|
|
4
|
-
import r from "
|
|
5
|
-
import { createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, onMounted as u, onUnmounted as d, openBlock as f, ref as p, watch as m, withCtx as h } from "vue";
|
|
3
|
+
import n from "./admins-components48.js";
|
|
4
|
+
import { createCommentVNode as r, createElementBlock as i, createElementVNode as a, createVNode as o, defineComponent as s, onMounted as c, onUnmounted as l, openBlock as u, ref as d, watch as f } from "vue";
|
|
6
5
|
//#region src/components/custom/InternalArticleOffer.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var
|
|
6
|
+
var p = { class: "ac-component" }, m = { class: "d-flex flex-column gap-2" }, h = {
|
|
8
7
|
key: 0,
|
|
9
8
|
class: "flex gap-2"
|
|
10
|
-
},
|
|
9
|
+
}, g = { class: "c-input-row" }, _ = ["value"], v = { class: "c-input-row" }, y = ["value"], b = { class: "c-input-row" }, x = ["value"], S = { class: "c-input-row" }, C = ["value"], w = [
|
|
11
10
|
"id",
|
|
12
11
|
"environment",
|
|
13
12
|
"apiurl"
|
|
14
|
-
],
|
|
13
|
+
], T = "00000000-0000-0000-0000-000000000000", E = /*@__PURE__*/ s({
|
|
15
14
|
__name: "InternalArticleOffer",
|
|
16
15
|
props: {
|
|
17
16
|
modelValue: {},
|
|
@@ -28,8 +27,8 @@ var g = { class: "ac-component" }, _ = { class: "d-flex flex-column gap-2" }, v
|
|
|
28
27
|
formats: {}
|
|
29
28
|
},
|
|
30
29
|
emits: ["update:modelValue"],
|
|
31
|
-
setup(
|
|
32
|
-
let
|
|
30
|
+
setup(s, { emit: E }) {
|
|
31
|
+
let D = {
|
|
33
32
|
article: {
|
|
34
33
|
siteId: "",
|
|
35
34
|
id: "",
|
|
@@ -38,118 +37,118 @@ var g = { class: "ac-component" }, _ = { class: "d-flex flex-column gap-2" }, v
|
|
|
38
37
|
lead: ""
|
|
39
38
|
},
|
|
40
39
|
format: ""
|
|
41
|
-
},
|
|
42
|
-
console.log("AAAAA", { props:
|
|
43
|
-
let
|
|
44
|
-
id:
|
|
40
|
+
}, O = E, k = s;
|
|
41
|
+
console.log("AAAAA", { props: k });
|
|
42
|
+
let A = d(D), j = d({
|
|
43
|
+
id: A.value.article.imageId || "",
|
|
45
44
|
url: "",
|
|
46
45
|
source: "",
|
|
47
46
|
title: "",
|
|
48
47
|
isAdult: !1
|
|
49
|
-
}),
|
|
50
|
-
|
|
51
|
-
e ?
|
|
48
|
+
}), M = d(!1);
|
|
49
|
+
f(() => k.modelValue, (e) => {
|
|
50
|
+
e ? A.value = e : A.value = D;
|
|
52
51
|
}, {
|
|
53
52
|
deep: !0,
|
|
54
53
|
immediate: !0
|
|
55
|
-
}),
|
|
56
|
-
|
|
54
|
+
}), f(() => A, (e) => {
|
|
55
|
+
O("update:modelValue", A.value), j.value.id = e.value.article.imageId;
|
|
57
56
|
}, {
|
|
58
57
|
deep: !0,
|
|
59
58
|
immediate: !0
|
|
60
|
-
}),
|
|
61
|
-
|
|
59
|
+
}), f(() => j.value.id, (e) => {
|
|
60
|
+
A.value.article.imageId = e;
|
|
62
61
|
}, {
|
|
63
62
|
deep: !0,
|
|
64
63
|
immediate: !0
|
|
65
64
|
});
|
|
66
|
-
let
|
|
67
|
-
|
|
68
|
-
window.removeEventListener("search_posts_selected",
|
|
69
|
-
}),
|
|
70
|
-
window.addEventListener("search_posts_selected",
|
|
65
|
+
let N = d((/* @__PURE__ */ new Date()).getTime().toString() + "article");
|
|
66
|
+
l(() => {
|
|
67
|
+
window.removeEventListener("search_posts_selected", P);
|
|
68
|
+
}), c(() => {
|
|
69
|
+
window.addEventListener("search_posts_selected", P);
|
|
71
70
|
});
|
|
72
|
-
let
|
|
73
|
-
if (e.detail.id ==
|
|
71
|
+
let P = (e) => {
|
|
72
|
+
if (e.detail.id == N.value) {
|
|
74
73
|
if (e.detail.result && e.detail.posts.length > 0) {
|
|
75
|
-
|
|
74
|
+
A.value.article.id = e.detail.posts[0].id, A.value.article.siteId = e.detail.posts[0].siteId, A.value.article.title = e.detail.posts[0].title, A.value.article.lead = e.detail.posts[0].lead;
|
|
76
75
|
let t = e.detail.posts[0].featuredImage;
|
|
77
|
-
|
|
76
|
+
A.value.article.imageId = t || T;
|
|
78
77
|
}
|
|
79
|
-
|
|
78
|
+
M.value = !1;
|
|
80
79
|
}
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
},
|
|
80
|
+
}, F = () => {
|
|
81
|
+
M.value = !0;
|
|
82
|
+
}, I = (e) => {
|
|
84
83
|
if (!customElements.get("search-posts-widget") && !document.querySelector(`script[src="${e}"]`)) {
|
|
85
84
|
let t = document.createElement("script");
|
|
86
85
|
t.type = "text/javascript", t.src = e, document.head.appendChild(t);
|
|
87
86
|
}
|
|
88
87
|
};
|
|
89
|
-
if (!customElements.get("hvg-search-image") && !document.querySelector(`script[src="${
|
|
88
|
+
if (!customElements.get("hvg-search-image") && !document.querySelector(`script[src="${k.searchImageWidgetUrl}"]`)) {
|
|
90
89
|
let e = document.createElement("script");
|
|
91
|
-
e.type = "text/javascript", e.src =
|
|
90
|
+
e.type = "text/javascript", e.src = k.searchImageWidgetUrl, e.async = !0, document.head.appendChild(e);
|
|
92
91
|
}
|
|
93
|
-
return
|
|
94
|
-
|
|
92
|
+
return I(k.searchArticleWidgetUrl), (c, l) => (u(), i("div", p, [a("div", m, [
|
|
93
|
+
a("div", null, [o(e, {
|
|
95
94
|
type: "success",
|
|
96
95
|
label: "Cikk kiválasztása",
|
|
97
96
|
class: "nowrap",
|
|
98
|
-
onClick:
|
|
97
|
+
onClick: F,
|
|
99
98
|
icon: "fa-solid fa-newspaper"
|
|
100
99
|
})]),
|
|
101
|
-
|
|
100
|
+
s.showIds ? (u(), i("div", h, [a("div", null, [l[5] ||= a("label", {
|
|
102
101
|
for: "articleId",
|
|
103
102
|
class: "c-label"
|
|
104
|
-
}, "Article ID", -1),
|
|
103
|
+
}, "Article ID", -1), a("div", g, [a("input", {
|
|
105
104
|
id: "articleId",
|
|
106
105
|
type: "text",
|
|
107
106
|
class: "c-input",
|
|
108
107
|
placeholder: "Article ID",
|
|
109
108
|
disabled: "",
|
|
110
|
-
value:
|
|
111
|
-
}, null, 8,
|
|
109
|
+
value: A.value.article.id
|
|
110
|
+
}, null, 8, _)])]), a("div", null, [l[6] ||= a("label", {
|
|
112
111
|
for: "articleSiteId",
|
|
113
112
|
class: "c-label"
|
|
114
|
-
}, "Site ID", -1),
|
|
113
|
+
}, "Site ID", -1), a("div", v, [a("input", {
|
|
115
114
|
id: "articleSiteId",
|
|
116
115
|
type: "text",
|
|
117
116
|
class: "c-input",
|
|
118
117
|
placeholder: "Site ID",
|
|
119
118
|
disabled: "",
|
|
120
|
-
value:
|
|
121
|
-
}, null, 8,
|
|
122
|
-
|
|
119
|
+
value: A.value.article.siteId
|
|
120
|
+
}, null, 8, y)])])])) : r("", !0),
|
|
121
|
+
a("div", null, [l[7] ||= a("label", {
|
|
123
122
|
for: "articleTitle",
|
|
124
123
|
class: "c-label"
|
|
125
|
-
}, "Title", -1),
|
|
124
|
+
}, "Title", -1), a("div", b, [a("textarea", {
|
|
126
125
|
id: "articleTitle",
|
|
127
126
|
class: "c-input",
|
|
128
127
|
placeholder: "Article title",
|
|
129
|
-
value:
|
|
130
|
-
onInput:
|
|
131
|
-
}, null, 40,
|
|
132
|
-
|
|
128
|
+
value: A.value.article.title,
|
|
129
|
+
onInput: l[0] ||= (e) => A.value.article.title = e.target?.value || ""
|
|
130
|
+
}, null, 40, x)])]),
|
|
131
|
+
a("div", null, [l[8] ||= a("label", {
|
|
133
132
|
for: "articleLead",
|
|
134
133
|
class: "c-label"
|
|
135
|
-
}, "Lead", -1),
|
|
134
|
+
}, "Lead", -1), a("div", S, [a("textarea", {
|
|
136
135
|
id: "articleLead",
|
|
137
136
|
class: "c-input",
|
|
138
137
|
placeholder: "Article lead / description",
|
|
139
|
-
value:
|
|
140
|
-
onInput:
|
|
141
|
-
}, null, 40,
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
modelValue:
|
|
145
|
-
"onUpdate:modelValue":
|
|
138
|
+
value: A.value.article.lead,
|
|
139
|
+
onInput: l[1] ||= (e) => A.value.article.lead = e.target?.value || ""
|
|
140
|
+
}, null, 40, C)])]),
|
|
141
|
+
l[10] ||= a("hr", { class: "separator" }, null, -1),
|
|
142
|
+
a("div", null, [o(n, {
|
|
143
|
+
modelValue: j.value,
|
|
144
|
+
"onUpdate:modelValue": l[2] ||= (e) => j.value = e,
|
|
146
145
|
details: !1,
|
|
147
146
|
editable: !1,
|
|
148
|
-
environment:
|
|
149
|
-
"article-editor-url":
|
|
150
|
-
"search-image-widget-url":
|
|
151
|
-
"image-base-url":
|
|
152
|
-
"image-view-id":
|
|
147
|
+
environment: k.environment,
|
|
148
|
+
"article-editor-url": k.searchArticleApiUrl,
|
|
149
|
+
"search-image-widget-url": k.searchImageWidgetUrl,
|
|
150
|
+
"image-base-url": k.imageBaseUrl,
|
|
151
|
+
"image-view-id": k.imageViewId
|
|
153
152
|
}, null, 8, [
|
|
154
153
|
"modelValue",
|
|
155
154
|
"environment",
|
|
@@ -158,30 +157,26 @@ var g = { class: "ac-component" }, _ = { class: "d-flex flex-column gap-2" }, v
|
|
|
158
157
|
"image-base-url",
|
|
159
158
|
"image-view-id"
|
|
160
159
|
])]),
|
|
161
|
-
|
|
162
|
-
modelValue:
|
|
163
|
-
"onUpdate:modelValue":
|
|
164
|
-
options:
|
|
160
|
+
a("div", null, [l[9] ||= a("label", { class: "c-label" }, "Format", -1), o(t, {
|
|
161
|
+
modelValue: A.value.format,
|
|
162
|
+
"onUpdate:modelValue": l[3] ||= (e) => A.value.format = e,
|
|
163
|
+
options: k.formats,
|
|
165
164
|
config: { placeholder: "Select format..." }
|
|
166
165
|
}, null, 8, ["modelValue", "options"])]),
|
|
167
|
-
|
|
166
|
+
M.value ? (u(), i("search-posts-widget", {
|
|
168
167
|
key: 1,
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
style: { height: "500px" }
|
|
180
|
-
}, null, 8, D)]),
|
|
181
|
-
_: 1
|
|
182
|
-
})) : a("", !0)
|
|
168
|
+
id: N.value,
|
|
169
|
+
environment: k.environment,
|
|
170
|
+
selector: "",
|
|
171
|
+
modal: "",
|
|
172
|
+
"modal-title": "Cikk kiválasztása",
|
|
173
|
+
apiurl: k.searchArticleApiUrl,
|
|
174
|
+
wpurl: "",
|
|
175
|
+
searchurl: "",
|
|
176
|
+
onClose: l[4] ||= (e) => M.value = !1
|
|
177
|
+
}, null, 40, w)) : r("", !0)
|
|
183
178
|
])]));
|
|
184
179
|
}
|
|
185
180
|
});
|
|
186
181
|
//#endregion
|
|
187
|
-
export {
|
|
182
|
+
export { E as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components51.js","names":[],"sources":["../src/components/custom/InternalArticleOffer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watch } from 'vue'\nimport ImagePicker from '@/components/custom/ImagePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport Modal from '@/components/Modal.vue'\nimport Button from '@/components/Button.vue'\n\nexport interface Article {\n siteId: string\n id: string\n imageId: string\n title: string\n lead: string\n}\n\nexport interface InternalArticleOfferModel {\n article: Article\n format: string\n}\n\nconst defaultValue: InternalArticleOfferModel = {\n article: {\n siteId: '',\n id: '',\n imageId: '',\n title: '',\n lead: '',\n },\n format: '',\n}\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: InternalArticleOfferModel): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: InternalArticleOfferModel\n searchArticleApiUrl: string\n searchArticleWidgetUrl: string\n environment: string\n searchImageWidgetUrl: string\n imageBaseUrl: string\n imageViewId: string\n showIds?: boolean\n formats: { label: string; value: string }[]\n }>(),\n {\n showIds: true,\n },\n)\n\nconsole.log('AAAAA', { props })\n\nconst localModel = ref<InternalArticleOfferModel>(defaultValue)\nconst imageModel = ref({\n id: localModel.value.article.imageId || '',\n url: '',\n source: '',\n title: '',\n isAdult: false,\n})\nconst showArticleModal = ref(false)\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n localModel.value = defaultValue\n } else {\n localModel.value = newVal\n }\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => localModel,\n (newVal) => {\n emit('update:modelValue', localModel.value)\n imageModel.value.id = newVal.value.article.imageId\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => imageModel.value.id,\n (id) => {\n localModel.value.article.imageId = id\n },\n { deep: true, immediate: true },\n)\n\nconst articleCausationId = ref(new Date().getTime().toString() + 'article')\nconst EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\nonUnmounted(() => {\n window.removeEventListener('search_posts_selected', onPostSelected)\n})\n\nonMounted(() => {\n window.addEventListener('search_posts_selected', onPostSelected)\n})\n\nconst onPostSelected = (e: any) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n localModel.value.article.id = e.detail.posts[0].id\n localModel.value.article.siteId = e.detail.posts[0].siteId\n localModel.value.article.title = e.detail.posts[0].title\n localModel.value.article.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n localModel.value.article.imageId = imageId || EMPTYGUID\n }\n\n showArticleModal.value = false\n }\n}\n\nconst selectArticle = () => {\n showArticleModal.value = true\n}\n\nconst addScript = (url: string) => {\n if (!customElements.get('search-posts-widget')) {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n}\n\nif (!customElements.get('hvg-search-image')) {\n if (!document.querySelector(`script[src=\"${props.searchImageWidgetUrl}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = props.searchImageWidgetUrl\n script.async = true\n document.head.appendChild(script)\n }\n}\n\naddScript(props.searchArticleWidgetUrl)\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"d-flex flex-column gap-2\">\n <div>\n <Button\n type=\"success\"\n label=\"Cikk kiválasztása\"\n class=\"nowrap\"\n @click=\"selectArticle\"\n icon=\"fa-solid fa-newspaper\"\n />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"flex gap-2\">\n <div>\n <label for=\"articleId\" class=\"c-label\">Article ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Article ID\"\n disabled\n :value=\"localModel.article.id\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleSiteId\" class=\"c-label\">Site ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleSiteId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Site ID\"\n disabled\n :value=\"localModel.article.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div>\n <label for=\"articleTitle\" class=\"c-label\">Title</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Article title\"\n :value=\"localModel.article.title\"\n @input=\"localModel.article.title = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Article lead / description\"\n :value=\"localModel.article.lead\"\n @input=\"localModel.article.lead = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <hr class=\"separator\" />\n\n <div>\n <ImagePicker\n v-model=\"imageModel\"\n :details=\"false\"\n :editable=\"false\"\n :environment=\"props.environment\"\n :article-editor-url=\"props.searchArticleApiUrl\"\n :search-image-widget-url=\"props.searchImageWidgetUrl\"\n :image-base-url=\"props.imageBaseUrl\"\n :image-view-id=\"props.imageViewId\"\n />\n </div>\n\n <div>\n <label class=\"c-label\">Format</label>\n <DropdownSelect\n v-model=\"localModel.format\"\n :options=\"props.formats\"\n :config=\"{ placeholder: 'Select format...' }\"\n />\n </div>\n\n <Modal v-if=\"showArticleModal\" title=\"Search Article\" @close=\"showArticleModal = false\">\n <search-posts-widget\n :id=\"articleCausationId\"\n :environment=\"props.environment\"\n selector=\"true\"\n :apiurl=\"props.searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n style=\"height: 500px\"\n />\n </Modal>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components51.js","names":[],"sources":["../src/components/custom/InternalArticleOffer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watch } from 'vue'\nimport ImagePicker from '@/components/custom/ImagePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport Button from '@/components/Button.vue'\n\nexport interface Article {\n siteId: string\n id: string\n imageId: string\n title: string\n lead: string\n}\n\nexport interface InternalArticleOfferModel {\n article: Article\n format: string\n}\n\nconst defaultValue: InternalArticleOfferModel = {\n article: {\n siteId: '',\n id: '',\n imageId: '',\n title: '',\n lead: '',\n },\n format: '',\n}\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: InternalArticleOfferModel): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: InternalArticleOfferModel\n searchArticleApiUrl: string\n searchArticleWidgetUrl: string\n environment: string\n searchImageWidgetUrl: string\n imageBaseUrl: string\n imageViewId: string\n showIds?: boolean\n formats: { label: string; value: string }[]\n }>(),\n {\n showIds: true,\n },\n)\n\nconsole.log('AAAAA', { props })\n\nconst localModel = ref<InternalArticleOfferModel>(defaultValue)\nconst imageModel = ref({\n id: localModel.value.article.imageId || '',\n url: '',\n source: '',\n title: '',\n isAdult: false,\n})\nconst showArticleModal = ref(false)\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n localModel.value = defaultValue\n } else {\n localModel.value = newVal\n }\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => localModel,\n (newVal) => {\n emit('update:modelValue', localModel.value)\n imageModel.value.id = newVal.value.article.imageId\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => imageModel.value.id,\n (id) => {\n localModel.value.article.imageId = id\n },\n { deep: true, immediate: true },\n)\n\nconst articleCausationId = ref(new Date().getTime().toString() + 'article')\nconst EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\nonUnmounted(() => {\n window.removeEventListener('search_posts_selected', onPostSelected)\n})\n\nonMounted(() => {\n window.addEventListener('search_posts_selected', onPostSelected)\n})\n\nconst onPostSelected = (e: any) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n localModel.value.article.id = e.detail.posts[0].id\n localModel.value.article.siteId = e.detail.posts[0].siteId\n localModel.value.article.title = e.detail.posts[0].title\n localModel.value.article.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n localModel.value.article.imageId = imageId || EMPTYGUID\n }\n\n showArticleModal.value = false\n }\n}\n\nconst selectArticle = () => {\n showArticleModal.value = true\n}\n\nconst addScript = (url: string) => {\n if (!customElements.get('search-posts-widget')) {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n}\n\nif (!customElements.get('hvg-search-image')) {\n if (!document.querySelector(`script[src=\"${props.searchImageWidgetUrl}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = props.searchImageWidgetUrl\n script.async = true\n document.head.appendChild(script)\n }\n}\n\naddScript(props.searchArticleWidgetUrl)\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"d-flex flex-column gap-2\">\n <div>\n <Button\n type=\"success\"\n label=\"Cikk kiválasztása\"\n class=\"nowrap\"\n @click=\"selectArticle\"\n icon=\"fa-solid fa-newspaper\"\n />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"flex gap-2\">\n <div>\n <label for=\"articleId\" class=\"c-label\">Article ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Article ID\"\n disabled\n :value=\"localModel.article.id\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleSiteId\" class=\"c-label\">Site ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleSiteId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Site ID\"\n disabled\n :value=\"localModel.article.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div>\n <label for=\"articleTitle\" class=\"c-label\">Title</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Article title\"\n :value=\"localModel.article.title\"\n @input=\"localModel.article.title = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Article lead / description\"\n :value=\"localModel.article.lead\"\n @input=\"localModel.article.lead = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <hr class=\"separator\" />\n\n <div>\n <ImagePicker\n v-model=\"imageModel\"\n :details=\"false\"\n :editable=\"false\"\n :environment=\"props.environment\"\n :article-editor-url=\"props.searchArticleApiUrl\"\n :search-image-widget-url=\"props.searchImageWidgetUrl\"\n :image-base-url=\"props.imageBaseUrl\"\n :image-view-id=\"props.imageViewId\"\n />\n </div>\n\n <div>\n <label class=\"c-label\">Format</label>\n <DropdownSelect\n v-model=\"localModel.format\"\n :options=\"props.formats\"\n :config=\"{ placeholder: 'Select format...' }\"\n />\n </div>\n\n <!--\n The widget owns its own modal (dialog + header/footer actions)\n when `modal` is set, so no outer Modal wrapper is needed here -\n the widget renders as an opaque custom element and can't expose\n internal refs/slots to an outer Modal component. Selecting \"Rendben\"\n fires the `search_posts_selected` window event consumed by\n `onPostSelected` above; `close` is emitted for both confirm and\n cancel/backdrop-dismiss.\n -->\n <search-posts-widget\n v-if=\"showArticleModal\"\n :id=\"articleCausationId\"\n :environment=\"props.environment\"\n selector\n modal\n modal-title=\"Cikk kiválasztása\"\n :apiurl=\"props.searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n @close=\"showArticleModal = false\"\n />\n </div>\n </div>\n</template>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components52.js","names":[],"sources":["../src/components/custom/InternalArticleOffer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watch } from 'vue'\nimport ImagePicker from '@/components/custom/ImagePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport
|
|
1
|
+
{"version":3,"file":"admins-components52.js","names":[],"sources":["../src/components/custom/InternalArticleOffer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, onUnmounted, ref, watch } from 'vue'\nimport ImagePicker from '@/components/custom/ImagePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport Button from '@/components/Button.vue'\n\nexport interface Article {\n siteId: string\n id: string\n imageId: string\n title: string\n lead: string\n}\n\nexport interface InternalArticleOfferModel {\n article: Article\n format: string\n}\n\nconst defaultValue: InternalArticleOfferModel = {\n article: {\n siteId: '',\n id: '',\n imageId: '',\n title: '',\n lead: '',\n },\n format: '',\n}\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: InternalArticleOfferModel): void\n}>()\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: InternalArticleOfferModel\n searchArticleApiUrl: string\n searchArticleWidgetUrl: string\n environment: string\n searchImageWidgetUrl: string\n imageBaseUrl: string\n imageViewId: string\n showIds?: boolean\n formats: { label: string; value: string }[]\n }>(),\n {\n showIds: true,\n },\n)\n\nconsole.log('AAAAA', { props })\n\nconst localModel = ref<InternalArticleOfferModel>(defaultValue)\nconst imageModel = ref({\n id: localModel.value.article.imageId || '',\n url: '',\n source: '',\n title: '',\n isAdult: false,\n})\nconst showArticleModal = ref(false)\n\nwatch(\n () => props.modelValue,\n (newVal) => {\n if (!newVal) {\n localModel.value = defaultValue\n } else {\n localModel.value = newVal\n }\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => localModel,\n (newVal) => {\n emit('update:modelValue', localModel.value)\n imageModel.value.id = newVal.value.article.imageId\n },\n { deep: true, immediate: true },\n)\n\nwatch(\n () => imageModel.value.id,\n (id) => {\n localModel.value.article.imageId = id\n },\n { deep: true, immediate: true },\n)\n\nconst articleCausationId = ref(new Date().getTime().toString() + 'article')\nconst EMPTYGUID = '00000000-0000-0000-0000-000000000000'\n\nonUnmounted(() => {\n window.removeEventListener('search_posts_selected', onPostSelected)\n})\n\nonMounted(() => {\n window.addEventListener('search_posts_selected', onPostSelected)\n})\n\nconst onPostSelected = (e: any) => {\n if (e.detail.id == articleCausationId.value) {\n if (e.detail.result && e.detail.posts.length > 0) {\n localModel.value.article.id = e.detail.posts[0].id\n localModel.value.article.siteId = e.detail.posts[0].siteId\n localModel.value.article.title = e.detail.posts[0].title\n localModel.value.article.lead = e.detail.posts[0].lead\n const imageId = e.detail.posts[0].featuredImage\n localModel.value.article.imageId = imageId || EMPTYGUID\n }\n\n showArticleModal.value = false\n }\n}\n\nconst selectArticle = () => {\n showArticleModal.value = true\n}\n\nconst addScript = (url: string) => {\n if (!customElements.get('search-posts-widget')) {\n if (!document.querySelector(`script[src=\"${url}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = url\n document.head.appendChild(script)\n }\n }\n}\n\nif (!customElements.get('hvg-search-image')) {\n if (!document.querySelector(`script[src=\"${props.searchImageWidgetUrl}\"]`)) {\n const script = document.createElement('script')\n script.type = 'text/javascript'\n script.src = props.searchImageWidgetUrl\n script.async = true\n document.head.appendChild(script)\n }\n}\n\naddScript(props.searchArticleWidgetUrl)\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"d-flex flex-column gap-2\">\n <div>\n <Button\n type=\"success\"\n label=\"Cikk kiválasztása\"\n class=\"nowrap\"\n @click=\"selectArticle\"\n icon=\"fa-solid fa-newspaper\"\n />\n </div>\n\n <template v-if=\"showIds\">\n <div class=\"flex gap-2\">\n <div>\n <label for=\"articleId\" class=\"c-label\">Article ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Article ID\"\n disabled\n :value=\"localModel.article.id\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleSiteId\" class=\"c-label\">Site ID</label>\n <div class=\"c-input-row\">\n <input\n id=\"articleSiteId\"\n type=\"text\"\n class=\"c-input\"\n placeholder=\"Site ID\"\n disabled\n :value=\"localModel.article.siteId\"\n />\n </div>\n </div>\n </div>\n </template>\n\n <div>\n <label for=\"articleTitle\" class=\"c-label\">Title</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleTitle\"\n class=\"c-input\"\n placeholder=\"Article title\"\n :value=\"localModel.article.title\"\n @input=\"localModel.article.title = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <div>\n <label for=\"articleLead\" class=\"c-label\">Lead</label>\n <div class=\"c-input-row\">\n <textarea\n id=\"articleLead\"\n class=\"c-input\"\n placeholder=\"Article lead / description\"\n :value=\"localModel.article.lead\"\n @input=\"localModel.article.lead = ($event.target as any)?.value || ''\"\n />\n </div>\n </div>\n\n <hr class=\"separator\" />\n\n <div>\n <ImagePicker\n v-model=\"imageModel\"\n :details=\"false\"\n :editable=\"false\"\n :environment=\"props.environment\"\n :article-editor-url=\"props.searchArticleApiUrl\"\n :search-image-widget-url=\"props.searchImageWidgetUrl\"\n :image-base-url=\"props.imageBaseUrl\"\n :image-view-id=\"props.imageViewId\"\n />\n </div>\n\n <div>\n <label class=\"c-label\">Format</label>\n <DropdownSelect\n v-model=\"localModel.format\"\n :options=\"props.formats\"\n :config=\"{ placeholder: 'Select format...' }\"\n />\n </div>\n\n <!--\n The widget owns its own modal (dialog + header/footer actions)\n when `modal` is set, so no outer Modal wrapper is needed here -\n the widget renders as an opaque custom element and can't expose\n internal refs/slots to an outer Modal component. Selecting \"Rendben\"\n fires the `search_posts_selected` window event consumed by\n `onPostSelected` above; `close` is emitted for both confirm and\n cancel/backdrop-dismiss.\n -->\n <search-posts-widget\n v-if=\"showArticleModal\"\n :id=\"articleCausationId\"\n :environment=\"props.environment\"\n selector\n modal\n modal-title=\"Cikk kiválasztása\"\n :apiurl=\"props.searchArticleApiUrl\"\n wpurl=\"\"\n searchurl=\"\"\n @close=\"showArticleModal = false\"\n />\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -9,14 +9,14 @@ import { shortUuid as s } from "./admins-components65.js";
|
|
|
9
9
|
import c from "./admins-components67.js";
|
|
10
10
|
import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, isVNode as _, nextTick as v, normalizeClass as y, openBlock as b, ref as x, renderList as S, renderSlot as C, resolveDirective as w, resolveDynamicComponent as T, toDisplayString as E, unref as D, vShow as O, watch as k, withDirectives as A, withModifiers as j } from "vue";
|
|
11
11
|
//#region src/components/data-table/DataCards.vue?vue&type=script&setup=true&lang.ts
|
|
12
|
-
var M = ["onClick"
|
|
12
|
+
var M = ["onClick"], N = ["onClick"], P = { class: "c-card__heading" }, F = { class: "c-card__label" }, I = ["innerHTML"], L = ["innerHTML"], R = ["onClick"], z = { class: "c-card__body" }, B = { class: "c-card__field-label" }, V = {
|
|
13
13
|
key: 1,
|
|
14
14
|
class: "c-cards__loading-wrap"
|
|
15
|
-
},
|
|
15
|
+
}, H = {
|
|
16
16
|
key: 2,
|
|
17
17
|
class: "c-cards__backdrop",
|
|
18
18
|
"aria-hidden": "true"
|
|
19
|
-
},
|
|
19
|
+
}, U = /*@__PURE__*/ g({
|
|
20
20
|
__name: "DataCards",
|
|
21
21
|
props: {
|
|
22
22
|
config: {},
|
|
@@ -29,19 +29,19 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
29
29
|
},
|
|
30
30
|
emits: ["selection-change"],
|
|
31
31
|
setup(a, { emit: g }) {
|
|
32
|
-
let
|
|
33
|
-
k(() =>
|
|
34
|
-
e && (await v(),
|
|
32
|
+
let U = a, W = g, { selectedKeys: G, toggle: K } = i(() => U.items, () => U.config.selectableAttr, (e) => W("selection-change", e)), q = x(/* @__PURE__ */ new Set()), J = x(null);
|
|
33
|
+
k(() => U.loading, async (e) => {
|
|
34
|
+
e && (await v(), J.value?.scrollTo({
|
|
35
35
|
top: 0,
|
|
36
36
|
behavior: "smooth"
|
|
37
37
|
}));
|
|
38
|
-
}), k(() =>
|
|
39
|
-
|
|
38
|
+
}), k(() => U.items, () => {
|
|
39
|
+
q.value = /* @__PURE__ */ new Set();
|
|
40
40
|
});
|
|
41
|
-
let
|
|
42
|
-
let e =
|
|
41
|
+
let Y = u(() => U.config.columns.filter((e) => e.visible !== !1)), X = u(() => {
|
|
42
|
+
let e = U.settings;
|
|
43
43
|
if (e?.cardHeaderColumns) {
|
|
44
|
-
let t =
|
|
44
|
+
let t = Y.value.filter((t) => e.cardHeaderColumns[t.property]);
|
|
45
45
|
if (t.length > 0) {
|
|
46
46
|
if (e.cardHeaderOrder) {
|
|
47
47
|
let n = e.cardHeaderOrder;
|
|
@@ -53,35 +53,23 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
53
53
|
return t;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
let t =
|
|
57
|
-
return t.length > 0 ? t :
|
|
58
|
-
})
|
|
59
|
-
function
|
|
60
|
-
|
|
61
|
-
Z = !0, G(t);
|
|
62
|
-
}, 500));
|
|
63
|
-
}
|
|
64
|
-
function $() {
|
|
65
|
-
X &&= (clearTimeout(X), null);
|
|
66
|
-
}
|
|
67
|
-
function ee(e) {
|
|
68
|
-
Z && e.preventDefault();
|
|
56
|
+
let t = Y.value.filter((e) => e.primary);
|
|
57
|
+
return t.length > 0 ? t : Y.value.slice(0, 1);
|
|
58
|
+
});
|
|
59
|
+
function Z(e, t) {
|
|
60
|
+
U.config.selectableAttr ? K(t) : $(e);
|
|
69
61
|
}
|
|
70
|
-
function
|
|
71
|
-
|
|
72
|
-
Z = !1;
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
ne(e);
|
|
62
|
+
function Q(e, t) {
|
|
63
|
+
t.stopPropagation(), $(e);
|
|
76
64
|
}
|
|
77
|
-
function
|
|
78
|
-
|
|
65
|
+
function $(e) {
|
|
66
|
+
q.value.has(e) ? q.value.delete(e) : q.value.add(e), q.value = new Set(q.value);
|
|
79
67
|
}
|
|
80
68
|
return (i, u) => {
|
|
81
69
|
let g = w("tooltip");
|
|
82
70
|
return b(), p("div", {
|
|
83
71
|
ref_key: "cardsWrapperRef",
|
|
84
|
-
ref:
|
|
72
|
+
ref: J,
|
|
85
73
|
class: y(["ac-component c-cards-wrapper list-card-view", { "is-loading": a.loading }])
|
|
86
74
|
}, [!a.loading || a.items.length > 0 ? (b(), p("div", {
|
|
87
75
|
key: 0,
|
|
@@ -89,28 +77,24 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
89
77
|
}, [(b(!0), p(l, null, S(a.items, (t, v) => (b(), p("div", {
|
|
90
78
|
key: v,
|
|
91
79
|
class: y(["c-card", {
|
|
92
|
-
"is-open":
|
|
93
|
-
"is-selected": a.config.selectableAttr && D(
|
|
80
|
+
"is-open": q.value.has(v),
|
|
81
|
+
"is-selected": a.config.selectableAttr && D(G).has(t[a.config.selectableAttr])
|
|
94
82
|
}])
|
|
95
83
|
}, [m("button", {
|
|
96
84
|
type: "button",
|
|
97
85
|
class: "c-card__header",
|
|
98
|
-
onClick: (e) =>
|
|
99
|
-
onPointerdown: (e) => Q(e, t),
|
|
100
|
-
onPointerup: u[1] ||= (e) => $(),
|
|
101
|
-
onPointerleave: u[2] ||= (e) => $(),
|
|
102
|
-
onContextmenu: ee
|
|
86
|
+
onClick: (e) => Z(v, t)
|
|
103
87
|
}, [
|
|
104
88
|
a.config.selectableAttr ? (b(), p("span", {
|
|
105
89
|
key: 0,
|
|
106
90
|
class: "c-card__check-zone",
|
|
107
|
-
onClick: j((e) => D(
|
|
91
|
+
onClick: j((e) => D(K)(t), ["stop"])
|
|
108
92
|
}, [h(e, {
|
|
109
|
-
"model-value": !!D(
|
|
110
|
-
"onUpdate:modelValue": (e) => D(
|
|
93
|
+
"model-value": !!D(G).has(t[a.config.selectableAttr]),
|
|
94
|
+
"onUpdate:modelValue": (e) => D(K)(t),
|
|
111
95
|
onClick: u[0] ||= j(() => {}, ["stop"])
|
|
112
96
|
}, null, 8, ["model-value", "onUpdate:modelValue"])], 8, N)) : f("", !0),
|
|
113
|
-
m("span", P, [(b(!0), p(l, null, S(
|
|
97
|
+
m("span", P, [(b(!0), p(l, null, S(X.value, (e, n) => (b(), p("span", {
|
|
114
98
|
key: e.property,
|
|
115
99
|
class: y(["c-card__heading-item", [{ primary: e.primary }, e.headerClass]])
|
|
116
100
|
}, [m("span", F, E(e.hideHeader ? "" : e.label), 1), m("span", { class: y(["c-card__title", { "c-truncate": a.settings.compact && n === 0 }]) }, [_(D(o)(t, e)) ? (b(), d(T(D(o)(t, e)), { key: 0 })) : e.type === "uuid" ? A((b(), p("span", {
|
|
@@ -120,15 +104,16 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
120
104
|
key: 2,
|
|
121
105
|
innerHTML: D(o)(t, e)
|
|
122
106
|
}, null, 8, L))], 2)], 2))), 128))]),
|
|
123
|
-
|
|
107
|
+
m("span", {
|
|
124
108
|
class: "c-card__icon",
|
|
125
|
-
"aria-hidden": "true"
|
|
126
|
-
|
|
127
|
-
|
|
109
|
+
"aria-hidden": "true",
|
|
110
|
+
onClick: (e) => Q(v, e)
|
|
111
|
+
}, [...u[2] ||= [m("i", { class: "fa-solid fa-chevron-down" }, null, -1)]], 8, R)
|
|
112
|
+
], 8, M), A(m("div", z, [(b(!0), p(l, null, S(Y.value, (e) => (b(), p("div", {
|
|
128
113
|
key: e.property,
|
|
129
114
|
class: "c-card__field"
|
|
130
115
|
}, [
|
|
131
|
-
m("span",
|
|
116
|
+
m("span", B, E(e.label), 1),
|
|
132
117
|
C(i.$slots, `cell:${e.property}`, {
|
|
133
118
|
item: t,
|
|
134
119
|
col: e
|
|
@@ -146,7 +131,7 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
146
131
|
]))), 128)), a.config.actions ? (b(), p("div", {
|
|
147
132
|
key: 0,
|
|
148
133
|
class: "c-card__actions",
|
|
149
|
-
onClick: u[
|
|
134
|
+
onClick: u[1] ||= j(() => {}, ["stop"])
|
|
150
135
|
}, [C(i.$slots, "actions", {
|
|
151
136
|
item: t,
|
|
152
137
|
index: v,
|
|
@@ -154,10 +139,10 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
154
139
|
}, () => [h(r, {
|
|
155
140
|
actions: a.config.actions,
|
|
156
141
|
item: t
|
|
157
|
-
}, null, 8, ["actions", "item"])])])) : f("", !0)], 512), [[O,
|
|
142
|
+
}, null, 8, ["actions", "item"])])])) : f("", !0)], 512), [[O, q.value.has(v)]])], 2))), 128))], 2)) : (b(), p("div", V, [h(t, {
|
|
158
143
|
loading: !0,
|
|
159
144
|
size: "2.5rem"
|
|
160
|
-
})])), a.loading && a.items.length > 0 ? (b(), p("div",
|
|
145
|
+
})])), a.loading && a.items.length > 0 ? (b(), p("div", H, [h(t, {
|
|
161
146
|
loading: !0,
|
|
162
147
|
size: "2.5rem"
|
|
163
148
|
})])) : f("", !0)], 2);
|
|
@@ -165,4 +150,4 @@ var M = ["onClick", "onPointerdown"], N = ["onClick"], P = { class: "c-card__hea
|
|
|
165
150
|
}
|
|
166
151
|
});
|
|
167
152
|
//#endregion
|
|
168
|
-
export {
|
|
153
|
+
export { U as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components71.js","names":[],"sources":["../src/components/data-table/DataCards.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DataListConfig, DataCardsSettings, DataListSettings } from '@/types/data-list'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, isVNode, nextTick } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataCardsSettingsDefaults } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataCardsSettings | DataListSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataCardsSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n}>()\n\nconst { selectedKeys, toggle: toggleRow } = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst openRowIndexes = ref<Set<number>>(new Set())\n\nconst cardsWrapperRef = ref<HTMLElement | null>(null)\n\nwatch(\n () => props.loading,\n async (isLoading) => {\n if (isLoading) {\n await nextTick()\n cardsWrapperRef.value?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n },\n)\n\nwatch(\n () => props.items,\n () => {\n openRowIndexes.value = new Set()\n },\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nconst cardHeaderColumns = computed(() => {\n const s = props.settings as any\n if (s?.cardHeaderColumns) {\n const cols = visibleColumns.value.filter((c) => s.cardHeaderColumns[c.property])\n if (cols.length > 0) {\n if (s.cardHeaderOrder) {\n const order = s.cardHeaderOrder as string[]\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return cols\n }\n }\n const primary = visibleColumns.value.filter((c) => c.primary)\n if (primary.length > 0) return primary\n\n return visibleColumns.value.slice(0, 1)\n})\n\nlet longPressTimer: ReturnType<typeof setTimeout> | null = null\nlet longPressTriggered = false\n\nfunction onPointerDown(e: PointerEvent, item: Record<string, unknown>) {\n if (!props.config.selectableAttr) return\n if (e.button !== 0) return\n longPressTriggered = false\n longPressTimer = setTimeout(() => {\n longPressTriggered = true\n toggleRow(item)\n }, 500)\n}\n\nfunction onPointerUp() {\n if (longPressTimer) {\n clearTimeout(longPressTimer)\n longPressTimer = null\n }\n}\n\nfunction onContextMenu(e: MouseEvent) {\n if (longPressTriggered) {\n e.preventDefault()\n }\n}\n\nfunction onHeaderClick(index: number) {\n if (longPressTriggered) {\n longPressTriggered = false\n return\n }\n toggleAccordion(index)\n}\n\nfunction toggleAccordion(index: number) {\n if (openRowIndexes.value.has(index)) {\n openRowIndexes.value.delete(index)\n } else {\n openRowIndexes.value.add(index)\n }\n openRowIndexes.value = new Set(openRowIndexes.value)\n}\n</script>\n\n<template>\n <div\n ref=\"cardsWrapperRef\"\n class=\"ac-component c-cards-wrapper list-card-view\"\n :class=\"{ 'is-loading': loading }\"\n >\n <div\n v-if=\"!loading || items.length > 0\"\n class=\"c-cards\"\n :class=\"{ 'is-compact': settings.compact }\"\n >\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n class=\"c-card\"\n :class=\"{\n 'is-open': openRowIndexes.has(index),\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n }\"\n >\n <button\n type=\"button\"\n class=\"c-card__header\"\n @click=\"onHeaderClick(index)\"\n @pointerdown=\"onPointerDown($event, item)\"\n @pointerup=\"onPointerUp()\"\n @pointerleave=\"onPointerUp()\"\n @contextmenu=\"onContextMenu\"\n >\n <span\n v-if=\"config.selectableAttr\"\n class=\"c-card__check-zone\"\n @click.stop=\"toggleRow(item)\"\n >\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </span>\n <span class=\"c-card__heading\">\n <span\n v-for=\"(col, i) in cardHeaderColumns\"\n :key=\"col.property\"\n class=\"c-card__heading-item\"\n :class=\"[{ primary: col.primary }, col.headerClass]\"\n >\n <span class=\"c-card__label\">{{ !col.hideHeader ? col.label : '' }}</span>\n <span class=\"c-card__title\" :class=\"{ 'c-truncate': settings.compact && i === 0 }\">\n <component\n v-if=\"isVNode(getColumnValue(item, col))\"\n :is=\"getColumnValue(item, col)\"\n />\n <span\n v-else-if=\"col.type === 'uuid'\"\n v-tooltip=\"getColumnValue(item, col)\"\n v-html=\"shortUuid()(getColumnValue(item, col) as string)\"\n ></span>\n <span v-else v-html=\"getColumnValue(item, col)\"></span>\n </span>\n </span>\n </span>\n <span class=\"c-card__icon\" aria-hidden=\"true\"\n ><i class=\"fa-solid fa-chevron-down\"></i\n ></span>\n </button>\n\n <div v-show=\"openRowIndexes.has(index)\" class=\"c-card__body\">\n <div v-for=\"col in visibleColumns\" :key=\"col.property\" class=\"c-card__field\">\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <slot :name=\"`cell:${col.property}`\" :item=\"item\" :col=\"col\">\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n </slot>\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col) && !col.hideCopyToClipboard\"\n class=\"c-card__field-copy click-expand\"\n :value=\"getColumnValue(item, col)\"\n />\n </div>\n\n <div v-if=\"config.actions\" class=\"c-card__actions\" @click.stop>\n <slot name=\"actions\" :item=\"item\" :index=\"index\" :actions=\"config.actions\">\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </slot>\n </div>\n </div>\n </div>\n </div>\n <div v-else class=\"c-cards__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n <div v-if=\"loading && items.length > 0\" class=\"c-cards__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components71.js","names":[],"sources":["../src/components/data-table/DataCards.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DataListConfig, DataCardsSettings, DataListSettings } from '@/types/data-list'\nimport DataCell from './DataCell.vue'\nimport DataListActions from './DataListActions.vue'\nexport { dataCardsSettingsDefaults } from '@/types/data-list'\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch, isVNode, nextTick } from 'vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { useSelection } from '@/composables/useSelection'\nimport { dataCardsSettingsDefaults } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: DataCardsSettings | DataListSettings\n loading?: boolean\n }>(),\n {\n settings: () => ({ ...dataCardsSettingsDefaults }),\n loading: false,\n },\n)\n\nconst emit = defineEmits<{\n 'selection-change': [selected: unknown[]]\n}>()\n\nconst { selectedKeys, toggle: toggleRow } = useSelection(\n () => props.items,\n () => props.config.selectableAttr,\n (s) => emit('selection-change', s),\n)\n\nconst openRowIndexes = ref<Set<number>>(new Set())\n\nconst cardsWrapperRef = ref<HTMLElement | null>(null)\n\nwatch(\n () => props.loading,\n async (isLoading) => {\n if (isLoading) {\n await nextTick()\n cardsWrapperRef.value?.scrollTo({ top: 0, behavior: 'smooth' })\n }\n },\n)\n\nwatch(\n () => props.items,\n () => {\n openRowIndexes.value = new Set()\n },\n)\n\nconst visibleColumns = computed(() => props.config.columns.filter((c) => c.visible !== false))\n\nconst cardHeaderColumns = computed(() => {\n const s = props.settings as any\n if (s?.cardHeaderColumns) {\n const cols = visibleColumns.value.filter((c) => s.cardHeaderColumns[c.property])\n if (cols.length > 0) {\n if (s.cardHeaderOrder) {\n const order = s.cardHeaderOrder as string[]\n return [...cols].sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return cols\n }\n }\n const primary = visibleColumns.value.filter((c) => c.primary)\n if (primary.length > 0) return primary\n\n return visibleColumns.value.slice(0, 1)\n})\n\nfunction onHeaderClick(index: number, item: Record<string, unknown>) {\n if (props.config.selectableAttr) {\n toggleRow(item)\n } else {\n toggleAccordion(index)\n }\n}\n\nfunction onChevronClick(index: number, e: MouseEvent) {\n e.stopPropagation()\n toggleAccordion(index)\n}\n\nfunction toggleAccordion(index: number) {\n if (openRowIndexes.value.has(index)) {\n openRowIndexes.value.delete(index)\n } else {\n openRowIndexes.value.add(index)\n }\n openRowIndexes.value = new Set(openRowIndexes.value)\n}\n</script>\n\n<template>\n <div\n ref=\"cardsWrapperRef\"\n class=\"ac-component c-cards-wrapper list-card-view\"\n :class=\"{ 'is-loading': loading }\"\n >\n <div\n v-if=\"!loading || items.length > 0\"\n class=\"c-cards\"\n :class=\"{ 'is-compact': settings.compact }\"\n >\n <div\n v-for=\"(item, index) in items\"\n :key=\"index\"\n class=\"c-card\"\n :class=\"{\n 'is-open': openRowIndexes.has(index),\n 'is-selected': config.selectableAttr && selectedKeys.has(item[config.selectableAttr]),\n }\"\n >\n <button type=\"button\" class=\"c-card__header\" @click=\"onHeaderClick(index, item)\">\n <span\n v-if=\"config.selectableAttr\"\n class=\"c-card__check-zone\"\n @click.stop=\"toggleRow(item)\"\n >\n <Checkbox\n :model-value=\"!!selectedKeys.has(item[config.selectableAttr])\"\n @update:model-value=\"toggleRow(item)\"\n @click.stop\n />\n </span>\n <span class=\"c-card__heading\">\n <span\n v-for=\"(col, i) in cardHeaderColumns\"\n :key=\"col.property\"\n class=\"c-card__heading-item\"\n :class=\"[{ primary: col.primary }, col.headerClass]\"\n >\n <span class=\"c-card__label\">{{ !col.hideHeader ? col.label : '' }}</span>\n <span class=\"c-card__title\" :class=\"{ 'c-truncate': settings.compact && i === 0 }\">\n <component\n v-if=\"isVNode(getColumnValue(item, col))\"\n :is=\"getColumnValue(item, col)\"\n />\n <span\n v-else-if=\"col.type === 'uuid'\"\n v-tooltip=\"getColumnValue(item, col)\"\n v-html=\"shortUuid()(getColumnValue(item, col) as string)\"\n ></span>\n <span v-else v-html=\"getColumnValue(item, col)\"></span>\n </span>\n </span>\n </span>\n <span class=\"c-card__icon\" aria-hidden=\"true\" @click=\"onChevronClick(index, $event)\"\n ><i class=\"fa-solid fa-chevron-down\"></i\n ></span>\n </button>\n\n <div v-show=\"openRowIndexes.has(index)\" class=\"c-card__body\">\n <div v-for=\"col in visibleColumns\" :key=\"col.property\" class=\"c-card__field\">\n <span class=\"c-card__field-label\">{{ col.label }}</span>\n <slot :name=\"`cell:${col.property}`\" :item=\"item\" :col=\"col\">\n <DataCell :item=\"item\" :col=\"col\" class=\"c-card__field-value\" :copy=\"false\" />\n </slot>\n\n <CopyToClipboard\n v-if=\"getColumnValue(item, col) && !col.hideCopyToClipboard\"\n class=\"c-card__field-copy click-expand\"\n :value=\"getColumnValue(item, col)\"\n />\n </div>\n\n <div v-if=\"config.actions\" class=\"c-card__actions\" @click.stop>\n <slot name=\"actions\" :item=\"item\" :index=\"index\" :actions=\"config.actions\">\n <DataListActions :actions=\"config.actions\" :item=\"item\" />\n </slot>\n </div>\n </div>\n </div>\n </div>\n <div v-else class=\"c-cards__loading-wrap\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n <div v-if=\"loading && items.length > 0\" class=\"c-cards__backdrop\" aria-hidden=\"true\">\n <Loader :loading=\"true\" size=\"2.5rem\" />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-cards.scss\"></style>\n"],"mappings":"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"}
|