admins-components 9.0.12 → 9.0.14
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-components100.js.map +1 -0
- package/dist/admins-components101.js.map +1 -0
- package/dist/admins-components102.js.map +1 -0
- package/dist/admins-components103.js.map +1 -0
- package/dist/admins-components104.js.map +1 -0
- package/dist/admins-components105.js.map +1 -0
- package/dist/admins-components106.js.map +1 -0
- package/dist/admins-components107.js.map +1 -0
- package/dist/admins-components108.js.map +1 -0
- package/dist/admins-components109.js.map +1 -0
- package/dist/admins-components11.js.map +1 -0
- package/dist/admins-components110.js.map +1 -0
- package/dist/admins-components111.js.map +1 -0
- package/dist/admins-components112.js.map +1 -0
- package/dist/admins-components113.js.map +1 -0
- package/dist/admins-components114.js.map +1 -0
- package/dist/admins-components115.js.map +1 -0
- package/dist/admins-components116.js.map +1 -0
- package/dist/admins-components117.js.map +1 -0
- package/dist/admins-components118.js.map +1 -0
- package/dist/admins-components119.js.map +1 -0
- package/dist/admins-components12.js.map +1 -0
- package/dist/admins-components120.js.map +1 -0
- package/dist/admins-components121.js.map +1 -0
- package/dist/admins-components122.js.map +1 -0
- package/dist/admins-components123.js.map +1 -0
- package/dist/admins-components124.js.map +1 -0
- package/dist/admins-components125.js.map +1 -0
- package/dist/admins-components126.js.map +1 -0
- package/dist/admins-components127.js.map +1 -0
- package/dist/admins-components128.js.map +1 -0
- package/dist/admins-components129.js.map +1 -0
- package/dist/admins-components13.js +65 -65
- package/dist/admins-components13.js.map +1 -0
- package/dist/admins-components130.js.map +1 -0
- package/dist/admins-components131.js.map +1 -0
- package/dist/admins-components132.js.map +1 -0
- package/dist/admins-components133.js.map +1 -0
- package/dist/admins-components134.js.map +1 -0
- package/dist/admins-components135.js.map +1 -0
- package/dist/admins-components136.js.map +1 -0
- package/dist/admins-components137.js.map +1 -0
- package/dist/admins-components138.js.map +1 -0
- package/dist/admins-components139.js.map +1 -0
- package/dist/admins-components14.js.map +1 -0
- package/dist/admins-components140.js.map +1 -0
- package/dist/admins-components141.js.map +1 -0
- package/dist/admins-components142.js.map +1 -0
- package/dist/admins-components143.js.map +1 -0
- package/dist/admins-components144.js.map +1 -0
- package/dist/admins-components145.js.map +1 -0
- package/dist/admins-components146.js.map +1 -0
- package/dist/admins-components147.js.map +1 -0
- package/dist/admins-components148.js.map +1 -0
- package/dist/admins-components149.js.map +1 -0
- package/dist/admins-components15.js +1 -1
- package/dist/admins-components15.js.map +1 -0
- package/dist/admins-components150.js.map +1 -0
- package/dist/admins-components151.js.map +1 -0
- package/dist/admins-components153.js.map +1 -0
- package/dist/admins-components154.js.map +1 -0
- package/dist/admins-components155.js.map +1 -0
- package/dist/admins-components157.js.map +1 -0
- package/dist/admins-components158.js.map +1 -0
- package/dist/admins-components159.js.map +1 -0
- package/dist/admins-components16.js.map +1 -0
- package/dist/admins-components160.js.map +1 -0
- package/dist/admins-components161.js.map +1 -0
- package/dist/admins-components162.js.map +1 -0
- package/dist/admins-components163.js.map +1 -0
- package/dist/admins-components164.js.map +1 -0
- package/dist/admins-components165.js.map +1 -0
- package/dist/admins-components166.js.map +1 -0
- package/dist/admins-components167.js.map +1 -0
- package/dist/admins-components169.js.map +1 -0
- package/dist/admins-components17.js.map +1 -0
- package/dist/admins-components18.js +57 -57
- package/dist/admins-components18.js.map +1 -0
- package/dist/admins-components19.js.map +1 -0
- package/dist/admins-components20.js +52 -52
- package/dist/admins-components20.js.map +1 -0
- package/dist/admins-components22.js.map +1 -0
- package/dist/admins-components23.js +19 -19
- package/dist/admins-components23.js.map +1 -0
- package/dist/admins-components24.js.map +1 -0
- package/dist/admins-components25.js.map +1 -0
- package/dist/admins-components27.js.map +1 -0
- package/dist/admins-components28.js +39 -22
- package/dist/admins-components28.js.map +1 -0
- package/dist/admins-components3.js.map +1 -0
- package/dist/admins-components30.js.map +1 -0
- package/dist/admins-components31.js +20 -20
- package/dist/admins-components31.js.map +1 -0
- package/dist/admins-components33.js.map +1 -0
- package/dist/admins-components34.js.map +1 -0
- package/dist/admins-components35.js.map +1 -0
- package/dist/admins-components36.js.map +1 -0
- package/dist/admins-components38.js.map +1 -0
- package/dist/admins-components39.js +48 -48
- package/dist/admins-components39.js.map +1 -0
- package/dist/admins-components4.js.map +1 -0
- package/dist/admins-components41.js.map +1 -0
- package/dist/admins-components42.js +41 -41
- package/dist/admins-components42.js.map +1 -0
- package/dist/admins-components43.js.map +1 -0
- package/dist/admins-components44.js +60 -60
- package/dist/admins-components44.js.map +1 -0
- package/dist/admins-components45.js.map +1 -0
- package/dist/admins-components46.js.map +1 -0
- package/dist/admins-components48.js.map +1 -0
- package/dist/admins-components49.js.map +1 -0
- package/dist/admins-components5.js +1 -1
- package/dist/admins-components5.js.map +1 -0
- package/dist/admins-components50.js.map +1 -0
- package/dist/admins-components52.js.map +1 -0
- package/dist/admins-components53.js.map +1 -0
- package/dist/admins-components54.js.map +1 -0
- package/dist/admins-components55.js.map +1 -0
- package/dist/admins-components56.js.map +1 -0
- package/dist/admins-components57.js.map +1 -0
- package/dist/admins-components58.js.map +1 -0
- package/dist/admins-components59.js +80 -75
- package/dist/admins-components59.js.map +1 -0
- package/dist/admins-components6.js.map +1 -0
- package/dist/admins-components61.js.map +1 -0
- package/dist/admins-components62.js +90 -85
- package/dist/admins-components62.js.map +1 -0
- package/dist/admins-components64.js.map +1 -0
- package/dist/admins-components65.js.map +1 -0
- package/dist/admins-components66.js.map +1 -0
- package/dist/admins-components68.js.map +1 -0
- package/dist/admins-components69.js +41 -41
- package/dist/admins-components69.js.map +1 -0
- package/dist/admins-components7.js.map +1 -0
- package/dist/admins-components71.js.map +1 -0
- package/dist/admins-components72.js.map +1 -0
- package/dist/admins-components73.js.map +1 -0
- package/dist/admins-components75.js.map +1 -0
- package/dist/admins-components76.js.map +1 -0
- package/dist/admins-components77.js.map +1 -0
- package/dist/admins-components78.js.map +1 -0
- package/dist/admins-components8.js +93 -93
- package/dist/admins-components8.js.map +1 -0
- package/dist/admins-components80.js.map +1 -0
- package/dist/admins-components81.js +1 -1
- package/dist/admins-components81.js.map +1 -0
- package/dist/admins-components83.js.map +1 -0
- package/dist/admins-components84.js.map +1 -0
- package/dist/admins-components86.js.map +1 -0
- package/dist/admins-components87.js +70 -70
- package/dist/admins-components87.js.map +1 -0
- package/dist/admins-components89.js.map +1 -0
- package/dist/admins-components90.js.map +1 -0
- package/dist/admins-components91.js.map +1 -0
- package/dist/admins-components92.js.map +1 -0
- package/dist/admins-components93.js +1 -1
- package/dist/admins-components93.js.map +1 -0
- package/dist/admins-components94.js.map +1 -0
- package/dist/admins-components95.js.map +1 -0
- package/dist/admins-components96.js.map +1 -0
- package/dist/admins-components97.js.map +1 -0
- package/dist/admins-components98.js.map +1 -0
- package/dist/admins-components99.js.map +1 -0
- package/dist/base.css +1 -1
- package/dist/base.css.map +1 -1
- package/dist/src/components/HeaderComponent.vue.d.ts +13 -2
- package/dist/src/styles/components/calendar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/copy-to-clipboard.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-filters.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list-guide.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list-options.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/filters-history.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/datepickers.scss_vue_type_style_index_1_src_true_lang.css +1 -1
- package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/header.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/package.json +2 -2
|
@@ -4,10 +4,10 @@ import n from "./admins-components33.js";
|
|
|
4
4
|
import r from "./admins-components41.js";
|
|
5
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";
|
|
6
6
|
//#region src/components/custom/InternalArticleOffer.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var g = { class: "flex-column gap-2
|
|
7
|
+
var g = { class: "ac-component" }, _ = { class: "d-flex flex-column gap-2" }, v = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "flex gap-2"
|
|
10
|
-
},
|
|
10
|
+
}, y = { class: "c-input-row" }, b = ["value"], x = { class: "c-input-row" }, S = ["value"], C = { class: "c-input-row" }, w = ["value"], T = { class: "c-input-row" }, E = ["value"], D = ["id", "apiurl"], O = "00000000-0000-0000-0000-000000000000", k = /* @__PURE__ */ l({
|
|
11
11
|
__name: "InternalArticleOffer",
|
|
12
12
|
props: {
|
|
13
13
|
modelValue: {},
|
|
@@ -24,8 +24,8 @@ var g = { class: "flex-column gap-2 ac-component" }, _ = {
|
|
|
24
24
|
formats: {}
|
|
25
25
|
},
|
|
26
26
|
emits: ["update:modelValue"],
|
|
27
|
-
setup(l, { emit:
|
|
28
|
-
let
|
|
27
|
+
setup(l, { emit: k }) {
|
|
28
|
+
let A = {
|
|
29
29
|
article: {
|
|
30
30
|
siteId: "",
|
|
31
31
|
id: "",
|
|
@@ -34,116 +34,116 @@ var g = { class: "flex-column gap-2 ac-component" }, _ = {
|
|
|
34
34
|
lead: ""
|
|
35
35
|
},
|
|
36
36
|
format: ""
|
|
37
|
-
},
|
|
38
|
-
id:
|
|
37
|
+
}, j = k, M = l, N = p(A), P = p({
|
|
38
|
+
id: N.value.article.imageId || "",
|
|
39
39
|
url: "",
|
|
40
40
|
source: "",
|
|
41
41
|
title: "",
|
|
42
42
|
isAdult: !1
|
|
43
|
-
}),
|
|
44
|
-
m(() =>
|
|
45
|
-
e ?
|
|
43
|
+
}), F = p(!1);
|
|
44
|
+
m(() => M.modelValue, (e) => {
|
|
45
|
+
e ? N.value = e : N.value = A;
|
|
46
46
|
}, {
|
|
47
47
|
deep: !0,
|
|
48
48
|
immediate: !0
|
|
49
|
-
}), m(() =>
|
|
50
|
-
|
|
49
|
+
}), m(() => N, (e) => {
|
|
50
|
+
j("update:modelValue", N.value), P.value.id = e.value.article.imageId;
|
|
51
51
|
}, {
|
|
52
52
|
deep: !0,
|
|
53
53
|
immediate: !0
|
|
54
|
-
}), m(() =>
|
|
55
|
-
|
|
54
|
+
}), m(() => P.value.id, (e) => {
|
|
55
|
+
N.value.article.imageId = e;
|
|
56
56
|
}, {
|
|
57
57
|
deep: !0,
|
|
58
58
|
immediate: !0
|
|
59
59
|
});
|
|
60
|
-
let
|
|
60
|
+
let I = p((/* @__PURE__ */ new Date()).getTime().toString() + "article");
|
|
61
61
|
d(() => {
|
|
62
|
-
window.removeEventListener("search_posts_selected",
|
|
62
|
+
window.removeEventListener("search_posts_selected", L);
|
|
63
63
|
}), u(() => {
|
|
64
|
-
window.addEventListener("search_posts_selected",
|
|
64
|
+
window.addEventListener("search_posts_selected", L);
|
|
65
65
|
});
|
|
66
|
-
let
|
|
67
|
-
if (e.detail.id ==
|
|
66
|
+
let L = (e) => {
|
|
67
|
+
if (e.detail.id == I.value) {
|
|
68
68
|
if (e.detail.result && e.detail.posts.length > 0) {
|
|
69
|
-
|
|
69
|
+
N.value.article.id = e.detail.posts[0].id, N.value.article.siteId = e.detail.posts[0].siteId, N.value.article.title = e.detail.posts[0].title, N.value.article.lead = e.detail.posts[0].lead;
|
|
70
70
|
let t = e.detail.posts[0].featuredImage;
|
|
71
|
-
|
|
71
|
+
N.value.article.imageId = t || O;
|
|
72
72
|
}
|
|
73
|
-
|
|
73
|
+
F.value = !1;
|
|
74
74
|
}
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
},
|
|
75
|
+
}, R = () => {
|
|
76
|
+
F.value = !0;
|
|
77
|
+
}, z = (e) => {
|
|
78
78
|
if (!customElements.get("search-posts-widget") && !document.querySelector(`script[src="${e}"]`)) {
|
|
79
79
|
let t = document.createElement("script");
|
|
80
80
|
t.type = "text/javascript", t.src = e, document.head.appendChild(t);
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
|
-
if (!customElements.get("hvg-search-image") && !document.querySelector(`script[src="${
|
|
83
|
+
if (!customElements.get("hvg-search-image") && !document.querySelector(`script[src="${M.searchImageWidgetUrl}"]`)) {
|
|
84
84
|
let e = document.createElement("script");
|
|
85
|
-
e.type = "text/javascript", e.src =
|
|
85
|
+
e.type = "text/javascript", e.src = M.searchImageWidgetUrl, e.async = !0, document.head.appendChild(e);
|
|
86
86
|
}
|
|
87
|
-
return
|
|
87
|
+
return z(M.searchArticleWidgetUrl), (u, d) => (f(), o("div", g, [s("div", _, [
|
|
88
88
|
s("div", null, [c(e, {
|
|
89
89
|
type: "success",
|
|
90
90
|
label: "Cikk kiválasztása",
|
|
91
91
|
class: "nowrap",
|
|
92
|
-
onClick:
|
|
92
|
+
onClick: R,
|
|
93
93
|
icon: "fa-solid fa-newspaper"
|
|
94
94
|
})]),
|
|
95
|
-
l.showIds ? (f(), o("div",
|
|
95
|
+
l.showIds ? (f(), o("div", v, [s("div", null, [d[5] ||= s("label", {
|
|
96
96
|
for: "articleId",
|
|
97
97
|
class: "c-label"
|
|
98
|
-
}, "Article ID", -1), s("div",
|
|
98
|
+
}, "Article ID", -1), s("div", y, [s("input", {
|
|
99
99
|
id: "articleId",
|
|
100
100
|
type: "text",
|
|
101
101
|
class: "c-input",
|
|
102
102
|
placeholder: "Article ID",
|
|
103
103
|
disabled: "",
|
|
104
|
-
value:
|
|
105
|
-
}, null, 8,
|
|
104
|
+
value: N.value.article.id
|
|
105
|
+
}, null, 8, b)])]), s("div", null, [d[6] ||= s("label", {
|
|
106
106
|
for: "articleSiteId",
|
|
107
107
|
class: "c-label"
|
|
108
|
-
}, "Site ID", -1), s("div",
|
|
108
|
+
}, "Site ID", -1), s("div", x, [s("input", {
|
|
109
109
|
id: "articleSiteId",
|
|
110
110
|
type: "text",
|
|
111
111
|
class: "c-input",
|
|
112
112
|
placeholder: "Site ID",
|
|
113
113
|
disabled: "",
|
|
114
|
-
value:
|
|
115
|
-
}, null, 8,
|
|
114
|
+
value: N.value.article.siteId
|
|
115
|
+
}, null, 8, S)])])])) : a("", !0),
|
|
116
116
|
s("div", null, [d[7] ||= s("label", {
|
|
117
117
|
for: "articleTitle",
|
|
118
118
|
class: "c-label"
|
|
119
|
-
}, "Title", -1), s("div",
|
|
119
|
+
}, "Title", -1), s("div", C, [s("textarea", {
|
|
120
120
|
id: "articleTitle",
|
|
121
121
|
class: "c-input",
|
|
122
122
|
placeholder: "Article title",
|
|
123
|
-
value:
|
|
124
|
-
onInput: d[0] ||= (e) =>
|
|
125
|
-
}, null, 40,
|
|
123
|
+
value: N.value.article.title,
|
|
124
|
+
onInput: d[0] ||= (e) => N.value.article.title = e.target?.value || ""
|
|
125
|
+
}, null, 40, w)])]),
|
|
126
126
|
s("div", null, [d[8] ||= s("label", {
|
|
127
127
|
for: "articleLead",
|
|
128
128
|
class: "c-label"
|
|
129
|
-
}, "Lead", -1), s("div",
|
|
129
|
+
}, "Lead", -1), s("div", T, [s("textarea", {
|
|
130
130
|
id: "articleLead",
|
|
131
131
|
class: "c-input",
|
|
132
132
|
placeholder: "Article lead / description",
|
|
133
|
-
value:
|
|
134
|
-
onInput: d[1] ||= (e) =>
|
|
135
|
-
}, null, 40,
|
|
133
|
+
value: N.value.article.lead,
|
|
134
|
+
onInput: d[1] ||= (e) => N.value.article.lead = e.target?.value || ""
|
|
135
|
+
}, null, 40, E)])]),
|
|
136
136
|
d[10] ||= s("hr", { class: "separator" }, null, -1),
|
|
137
137
|
s("div", null, [c(r, {
|
|
138
|
-
modelValue:
|
|
139
|
-
"onUpdate:modelValue": d[2] ||= (e) =>
|
|
138
|
+
modelValue: P.value,
|
|
139
|
+
"onUpdate:modelValue": d[2] ||= (e) => P.value = e,
|
|
140
140
|
details: !1,
|
|
141
141
|
editable: !1,
|
|
142
|
-
environment:
|
|
143
|
-
"article-editor-url":
|
|
144
|
-
"search-image-widget-url":
|
|
145
|
-
"image-base-url":
|
|
146
|
-
"image-view-id":
|
|
142
|
+
environment: M.environment,
|
|
143
|
+
"article-editor-url": M.searchArticleApiUrl,
|
|
144
|
+
"search-image-widget-url": M.searchImageWidgetUrl,
|
|
145
|
+
"image-base-url": M.imageBaseUrl,
|
|
146
|
+
"image-view-id": M.imageViewId
|
|
147
147
|
}, null, 8, [
|
|
148
148
|
"modelValue",
|
|
149
149
|
"environment",
|
|
@@ -153,28 +153,28 @@ var g = { class: "flex-column gap-2 ac-component" }, _ = {
|
|
|
153
153
|
"image-view-id"
|
|
154
154
|
])]),
|
|
155
155
|
s("div", null, [d[9] ||= s("label", { class: "c-label" }, "Format", -1), c(t, {
|
|
156
|
-
modelValue:
|
|
157
|
-
"onUpdate:modelValue": d[3] ||= (e) =>
|
|
158
|
-
options:
|
|
156
|
+
modelValue: N.value.format,
|
|
157
|
+
"onUpdate:modelValue": d[3] ||= (e) => N.value.format = e,
|
|
158
|
+
options: M.formats,
|
|
159
159
|
config: { placeholder: "Select format..." }
|
|
160
160
|
}, null, 8, ["modelValue", "options"])]),
|
|
161
|
-
|
|
161
|
+
F.value ? (f(), i(n, {
|
|
162
162
|
key: 1,
|
|
163
163
|
title: "Search Article",
|
|
164
|
-
onClose: d[4] ||= (e) =>
|
|
164
|
+
onClose: d[4] ||= (e) => F.value = !1
|
|
165
165
|
}, {
|
|
166
166
|
default: h(() => [s("search-posts-widget", {
|
|
167
|
-
id:
|
|
167
|
+
id: I.value,
|
|
168
168
|
selector: "true",
|
|
169
|
-
apiurl:
|
|
169
|
+
apiurl: M.searchArticleApiUrl,
|
|
170
170
|
wpurl: "",
|
|
171
171
|
searchurl: "",
|
|
172
172
|
style: { height: "500px" }
|
|
173
|
-
}, null, 8,
|
|
173
|
+
}, null, 8, D)]),
|
|
174
174
|
_: 1
|
|
175
175
|
})) : a("", !0)
|
|
176
|
-
]));
|
|
176
|
+
])]));
|
|
177
177
|
}
|
|
178
178
|
});
|
|
179
179
|
//#endregion
|
|
180
|
-
export {
|
|
180
|
+
export { k as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components44.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\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 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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components45.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\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 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":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components46.js","names":[],"sources":["../src/components/Loader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n loading: boolean\n size?: string\n }>(),\n {\n size: '2rem',\n },\n)\n</script>\n<template>\n <div class=\"loader\" :style=\"{ width: size, '--loader-thickness': `calc(${size} / 6)` }\"></div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/loader.scss\"></style>\n"],"mappings":";;;;;;;;;yBAYE,EAA8F,OAAA;GAAzF,OAAM;GAAU,OAAK,EAAA;IAAA,OAAW,EAAA;IAAI,sBAAA,QAAgC,EAAA,KAAI;GAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components48.js","names":[],"sources":["../src/components/Loader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nwithDefaults(\n defineProps<{\n loading: boolean\n size?: string\n }>(),\n {\n size: '2rem',\n },\n)\n</script>\n<template>\n <div class=\"loader\" :style=\"{ width: size, '--loader-thickness': `calc(${size} / 6)` }\"></div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/loader.scss\"></style>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components49.js","names":[],"sources":["../src/services/toast.ts"],"sourcesContent":["import { ref } from 'vue'\nimport type { ToastInput, ToastPosition, ToastType } from '@/components/ToastNotification.vue'\n\n// Singleton instance management\nexport interface ToastExposed {\n addToast: (input: ToastInput) => number\n dismiss: (id: number) => void\n}\nconst instance = ref<ToastExposed | null>(null)\n\nexport function __setToastInstance(value: ToastExposed | null): void {\n instance.value = value\n}\n\nexport interface ToastShortcutOptions {\n displayDuration?: number\n position?: ToastPosition\n title?: string\n id?: number\n}\n\ninterface ToastApi {\n show: (input: ToastInput) => number | null\n success: (title: string, message: string, options?: ToastShortcutOptions) => number | null\n error: (title: string, message: string, options?: ToastShortcutOptions) => number | null\n warning: (title: string, message: string, options?: ToastShortcutOptions) => number | null\n info: (title: string, message: string, options?: ToastShortcutOptions) => number | null\n dismiss: (id: number) => void\n}\n\nfunction show(input: ToastInput): number | null {\n if (!instance.value) {\n console.warn(\n '[useToast] No <ToastNotification /> instance is mounted. ' +\n 'Mount it once in your app root (e.g. App.vue) before calling toast.*',\n )\n return null\n }\n return instance.value.addToast(input)\n}\n\nfunction success(\n title: string,\n message: string,\n options: ToastShortcutOptions = {},\n): number | null {\n return show({\n title,\n message,\n type: 'success',\n ...options,\n })\n}\n\nfunction error(title: string, message: string, options: ToastShortcutOptions = {}): number | null {\n return show({\n title,\n message,\n type: 'error',\n displayDuration: options.displayDuration ?? 10000,\n ...options,\n })\n}\n\nfunction warning(\n title: string,\n message: string,\n options: ToastShortcutOptions = {},\n): number | null {\n return show({\n title,\n message,\n type: 'warning',\n ...options,\n })\n}\n\nfunction info(title: string, message: string, options: ToastShortcutOptions = {}): number | null {\n return show({\n title,\n message,\n type: 'info',\n ...options,\n })\n}\n\nfunction dismiss(id: number): void {\n instance.value?.dismiss(id)\n}\n\nexport const toast: ToastApi = {\n show,\n success,\n error,\n warning,\n info,\n dismiss,\n}\n\nexport type { ToastInput, ToastPosition, ToastType }\n"],"mappings":";;AAQA,IAAM,IAAW,EAAyB,IAAI;AAE9C,SAAgB,EAAmB,GAAkC;CACnE,EAAS,QAAQ;AACnB;AAkBA,SAAS,EAAK,GAAkC;CAQ9C,OAPK,EAAS,QAOP,EAAS,MAAM,SAAS,CAAK,KANlC,QAAQ,KACN,+HAEF,GACO;AAGX;AAEA,SAAS,EACP,GACA,GACA,IAAgC,CAAC,GAClB;CACf,OAAO,EAAK;EACV;EACA;EACA,MAAM;EACN,GAAG;CACL,CAAC;AACH;AAEA,SAAS,EAAM,GAAe,GAAiB,IAAgC,CAAC,GAAkB;CAChG,OAAO,EAAK;EACV;EACA;EACA,MAAM;EACN,iBAAiB,EAAQ,mBAAmB;EAC5C,GAAG;CACL,CAAC;AACH;AAEA,SAAS,EACP,GACA,GACA,IAAgC,CAAC,GAClB;CACf,OAAO,EAAK;EACV;EACA;EACA,MAAM;EACN,GAAG;CACL,CAAC;AACH;AAEA,SAAS,EAAK,GAAe,GAAiB,IAAgC,CAAC,GAAkB;CAC/F,OAAO,EAAK;EACV;EACA;EACA,MAAM;EACN,GAAG;CACL,CAAC;AACH;AAEA,SAAS,EAAQ,GAAkB;CACjC,EAAS,OAAO,QAAQ,CAAE;AAC5B;AAEA,IAAa,IAAkB;CAC7B;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -45,7 +45,7 @@ var d = ["aria-label", "title"], f = {
|
|
|
45
45
|
}, null, 2)) : r("", !0),
|
|
46
46
|
o.label ? (l(), i("span", {
|
|
47
47
|
key: 1,
|
|
48
|
-
class: c({ "align-center-
|
|
48
|
+
class: c({ "align-center-fix": o.labelAlignmentFix })
|
|
49
49
|
}, [a(u(o.label) + " ", 1), o.indicator !== void 0 && o.indicator !== null ? (l(), i("span", f, u(o.indicator), 1)) : r("", !0)], 2)) : r("", !0),
|
|
50
50
|
o.icon && o.iconPosition === "right" ? (l(), i("i", {
|
|
51
51
|
key: 2,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components5.js","names":[],"sources":["../src/components/Button.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ButtonType = 'normal' | 'dark' | 'success' | 'error' | 'warning' | 'info'\n\nexport type IconPosition = 'left' | 'right'\n\nexport interface ButtonProps {\n size?: ControlSize\n type?: ButtonType\n outline?: boolean\n icon?: string\n iconPosition?: IconPosition\n label?: string\n ariaLabel?: string\n callback?: () => void\n indicator?: string | number\n labelAlignmentFix?: boolean\n}\n\nexport const buttonDefaults = {\n size: 'normal' as ControlSize,\n type: 'normal' as ButtonType,\n outline: false,\n icon: undefined,\n iconPosition: 'left' as IconPosition,\n labelAlignmentFix: false,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport type { ControlSize } from '@/types/types'\nimport { sizeToClass, typeToClass } from '@/utils/dom'\nimport { computed } from 'vue'\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n ...buttonDefaults,\n})\n\nconst classes = computed(() => [\n 'c-btn',\n sizeToClass(props.size, 'c-btn'),\n props.outline && 'c-btn-outline',\n typeToClass(props.type, 'c-btn'),\n])\n</script>\n\n<template>\n <button\n type=\"button\"\n :class=\"classes\"\n :aria-label=\"ariaLabel ?? label\"\n :title=\"ariaLabel ?? label\"\n @click=\"callback?.()\"\n >\n <i v-if=\"icon && iconPosition === 'left'\" :class=\"icon\"></i>\n\n <span v-if=\"label\" :class=\"{ 'align-center-fix': labelAlignmentFix }\">\n {{ label }}\n\n <span v-if=\"indicator !== undefined && indicator !== null\" class=\"c-btn-indicator\">\n {{ indicator }}\n </span>\n </span>\n\n <i v-if=\"icon && iconPosition === 'right'\" :class=\"icon\"></i>\n </button>\n</template>\n"],"mappings":";;;;;;GAkBa,IAAiB;CAC5B,MAAM;CACN,MAAM;CACN,SAAS;CACT,MAAM,KAAA;CACN,cAAc;CACd,mBAAmB;AACrB;;;;;;;;;;;;;;;EAQA,IAAM,IAAQ,GAIR,IAAU,QAAe;GAC7B;GACA,EAAY,EAAM,MAAM,OAAO;GAC/B,EAAM,WAAW;GACjB,EAAY,EAAM,MAAM,OAAO;EACjC,CAAC;yBAIC,EAkBS,UAAA;GAjBP,MAAK;GACJ,OAAK,EAAE,EAAA,KAAO;GACd,cAAY,EAAA,aAAa,EAAA;GACzB,OAAO,EAAA,aAAa,EAAA;GACpB,SAAK,AAAA,EAAA,QAAA,MAAE,EAAA,WAAQ;;GAEP,EAAA,QAAQ,EAAA,iBAAY,UAAA,EAAA,GAA7B,EAA4D,KAAA;;IAAjB,OAAK,EAAE,EAAA,IAAI;;GAE1C,EAAA,SAAA,EAAA,GAAZ,EAMO,QAAA;;IANa,OAAK,EAAA,EAAA,oBAAwB,EAAA,kBAAiB,CAAA;WAC7D,EAAA,KAAK,IAAG,KAEX,CAAA,GAAY,EAAA,cAAc,KAAA,KAAa,EAAA,cAAS,QAAA,EAAA,GAAhD,EAEO,QAFP,GAEO,EADF,EAAA,SAAS,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA;GAIP,EAAA,QAAQ,EAAA,iBAAY,WAAA,EAAA,GAA7B,EAA6D,KAAA;;IAAjB,OAAK,EAAE,EAAA,IAAI"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components50.js","names":[],"sources":["../src/components/ToastNotification.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ToastType = 'info' | 'success' | 'warning' | 'error'\n\nexport type ToastPosition =\n | 'top-right'\n | 'top-center'\n | 'top-left'\n | 'middle-right'\n | 'middle-center'\n | 'middle-left'\n | 'bottom-right'\n | 'bottom-center'\n | 'bottom-left'\n\nexport interface ToastInput {\n title: string\n message: string\n type?: ToastType\n displayDuration?: number\n position?: ToastPosition\n id?: number\n}\n\nexport interface Toast extends Required<ToastInput> {\n id: number\n addedAt: number\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { getCurrentInstance, onBeforeUnmount, onMounted, ref } from 'vue'\nimport { __setToastInstance, type ToastExposed } from '@/services/toast'\n\nexport interface ToastNotificationProps {\n defaultPosition?: ToastPosition\n defaultDisplayDuration?: number\n}\n\nconst props = withDefaults(defineProps<ToastNotificationProps>(), {\n defaultPosition: 'bottom-right',\n defaultDisplayDuration: 5000,\n})\n\nconst TICK_MS = 500\nlet timer: ReturnType<typeof setInterval> | null = null\nlet nextId = 0\n\nconst toasts = ref<Toast[]>([])\n\nfunction addToast(input: ToastInput): number {\n const id = input.id ?? ++nextId\n const toast: Toast = {\n id,\n title: input.title,\n message: input.message,\n type: input.type ?? 'info',\n displayDuration: input.displayDuration ?? props.defaultDisplayDuration,\n position: input.position ?? props.defaultPosition,\n addedAt: Date.now(),\n }\n toasts.value.push(toast)\n return id\n}\n\nfunction dismiss(id: number): void {\n toasts.value = toasts.value.filter((t) => t.id !== id)\n}\n\n//This way toasts doesnt expire while browser tab is inactive.\nfunction tick(): void {\n const now = Date.now()\n toasts.value = toasts.value.filter((t) => now - t.addedAt < t.displayDuration)\n}\n\nif (!timer) {\n timer = setInterval(tick, TICK_MS)\n}\n\nonBeforeUnmount(() => {\n if (timer) {\n clearInterval(timer)\n timer = null\n }\n})\n\ndefineExpose({ addToast, dismiss })\n\n//Singleton\nconst ownInstance = getCurrentInstance()\nonMounted(() => {\n __setToastInstance((ownInstance?.exposed as ToastExposed | null) ?? null)\n})\nonBeforeUnmount(() => {\n __setToastInstance(null)\n})\n\nfunction iconFor(type: ToastType): string {\n switch (type) {\n case 'success':\n return 'fa-solid fa-circle-check'\n case 'warning':\n return 'fa-solid fa-triangle-exclamation'\n case 'error':\n return 'fa-solid fa-circle-xmark'\n case 'info':\n default:\n return 'fa-solid fa-circle-info'\n }\n}\n\nfunction getStackIndex(toast: Toast): number {\n let index = 0\n for (const t of toasts.value) {\n if (t.id === toast.id) break\n if (t.position === toast.position) index++\n }\n return index\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <TransitionGroup tag=\"div\" class=\"c-toast-container\" name=\"c-toast\">\n <div\n v-for=\"toast in toasts\"\n :key=\"toast.id\"\n class=\"c-toast\"\n :class=\"[`c-toast--${toast.type}`, `c-toast--pos-${toast.position}`]\"\n :style=\"{ '--stack-index': getStackIndex(toast) }\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <i class=\"c-toast__icon\" :class=\"iconFor(toast.type)\" aria-hidden=\"true\"></i>\n <div class=\"c-toast__body\">\n <div v-if=\"toast.title\" class=\"c-toast__title\">{{ toast.title }}</div>\n <div class=\"c-toast__message\">{{ toast.message }}</div>\n </div>\n <button\n type=\"button\"\n class=\"c-toast__close\"\n aria-label=\"Bezárás\"\n @click=\"dismiss(toast.id)\"\n >\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </TransitionGroup>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/toast-notification.scss\"></style>\n"],"mappings":";;;;;;;;;;;;;EAsCA,IAAM,IAAQ,GAMV,IAA+C,MAC/C,IAAS,GAEP,IAAS,EAAa,CAAC,CAAC;EAE9B,SAAS,EAAS,GAA2B;GAC3C,IAAM,IAAK,EAAM,MAAM,EAAE,GACnB,IAAe;IACnB;IACA,OAAO,EAAM;IACb,SAAS,EAAM;IACf,MAAM,EAAM,QAAQ;IACpB,iBAAiB,EAAM,mBAAmB,EAAM;IAChD,UAAU,EAAM,YAAY,EAAM;IAClC,SAAS,KAAK,IAAI;GACpB;GAEA,OADA,EAAO,MAAM,KAAK,CAAK,GAChB;EACT;EAEA,SAAS,EAAQ,GAAkB;GACjC,EAAO,QAAQ,EAAO,MAAM,QAAQ,MAAM,EAAE,OAAO,CAAE;EACvD;EAGA,SAAS,IAAa;GACpB,IAAM,IAAM,KAAK,IAAI;GACrB,EAAO,QAAQ,EAAO,MAAM,QAAQ,MAAM,IAAM,EAAE,UAAU,EAAE,eAAe;EAC/E;EAaA,AAXA,AACE,MAAQ,YAAY,GAAM,GAAO,GAGnC,QAAsB;GACpB,AAEE,OADA,cAAc,CAAK,GACX;EAEZ,CAAC,GAED,EAAa;GAAE;GAAU;EAAQ,CAAC;EAGlC,IAAM,IAAc,EAAmB;EAIvC,AAHA,QAAgB;GACd,EAAoB,GAAa,WAAmC,IAAI;EAC1E,CAAC,GACD,QAAsB;GACpB,EAAmB,IAAI;EACzB,CAAC;EAED,SAAS,EAAQ,GAAyB;GACxC,QAAQ,GAAR;IACE,KAAK,WACH,OAAO;IACT,KAAK,WACH,OAAO;IACT,KAAK,SACH,OAAO;IAET,SACE,OAAO;GACX;EACF;EAEA,SAAS,EAAc,GAAsB;GAC3C,IAAI,IAAQ;GACZ,KAAK,IAAM,KAAK,EAAO,OAAO;IAC5B,IAAI,EAAE,OAAO,EAAM,IAAI;IACvB,AAAI,EAAE,aAAa,EAAM,YAAU;GACrC;GACA,OAAO;EACT;yBAIE,EA0BM,OA1BN,GA0BM,CAzBJ,EAwBkB,GAAA;GAxBD,KAAI;GAAM,OAAM;GAAoB,MAAK;;oBAE/B,EAAA,EAAA,EAAA,GADzB,EAsBM,GAAA,MAAA,EArBY,EAAA,QAAT,YADT,EAsBM,OAAA;IApBH,KAAK,EAAM;IACZ,OAAK,EAAA,CAAC,WAAS,CAAA,YACM,EAAM,QAAI,gBAAoB,EAAM,UAAQ,CAAA,CAAA;IAChE,OAAK,EAAA,EAAA,iBAAqB,EAAc,CAAK,EAAA,CAAA;IAC9C,MAAK;IACL,aAAU;;IAEV,EAA6E,KAAA;KAA1E,OAAK,EAAA,CAAC,iBAAwB,EAAQ,EAAM,IAAI,CAAA,CAAA;KAAG,eAAY;;IAClE,EAGM,OAHN,GAGM,CAFO,EAAM,SAAA,EAAA,GAAjB,EAAsE,OAAtE,GAAsE,EAApB,EAAM,KAAK,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAC7D,EAAuD,OAAvD,GAAuD,EAAtB,EAAM,OAAO,GAAA,CAAA,CAAA,CAAA;IAEhD,EAOS,UAAA;KANP,MAAK;KACL,OAAM;KACN,cAAW;KACV,UAAK,MAAE,EAAQ,EAAM,EAAE;qBAExB,EAAoD,KAAA;KAAjD,OAAM;KAAoB,eAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components52.js","names":[],"sources":["../src/components/ToastNotification.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type ToastType = 'info' | 'success' | 'warning' | 'error'\n\nexport type ToastPosition =\n | 'top-right'\n | 'top-center'\n | 'top-left'\n | 'middle-right'\n | 'middle-center'\n | 'middle-left'\n | 'bottom-right'\n | 'bottom-center'\n | 'bottom-left'\n\nexport interface ToastInput {\n title: string\n message: string\n type?: ToastType\n displayDuration?: number\n position?: ToastPosition\n id?: number\n}\n\nexport interface Toast extends Required<ToastInput> {\n id: number\n addedAt: number\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { getCurrentInstance, onBeforeUnmount, onMounted, ref } from 'vue'\nimport { __setToastInstance, type ToastExposed } from '@/services/toast'\n\nexport interface ToastNotificationProps {\n defaultPosition?: ToastPosition\n defaultDisplayDuration?: number\n}\n\nconst props = withDefaults(defineProps<ToastNotificationProps>(), {\n defaultPosition: 'bottom-right',\n defaultDisplayDuration: 5000,\n})\n\nconst TICK_MS = 500\nlet timer: ReturnType<typeof setInterval> | null = null\nlet nextId = 0\n\nconst toasts = ref<Toast[]>([])\n\nfunction addToast(input: ToastInput): number {\n const id = input.id ?? ++nextId\n const toast: Toast = {\n id,\n title: input.title,\n message: input.message,\n type: input.type ?? 'info',\n displayDuration: input.displayDuration ?? props.defaultDisplayDuration,\n position: input.position ?? props.defaultPosition,\n addedAt: Date.now(),\n }\n toasts.value.push(toast)\n return id\n}\n\nfunction dismiss(id: number): void {\n toasts.value = toasts.value.filter((t) => t.id !== id)\n}\n\n//This way toasts doesnt expire while browser tab is inactive.\nfunction tick(): void {\n const now = Date.now()\n toasts.value = toasts.value.filter((t) => now - t.addedAt < t.displayDuration)\n}\n\nif (!timer) {\n timer = setInterval(tick, TICK_MS)\n}\n\nonBeforeUnmount(() => {\n if (timer) {\n clearInterval(timer)\n timer = null\n }\n})\n\ndefineExpose({ addToast, dismiss })\n\n//Singleton\nconst ownInstance = getCurrentInstance()\nonMounted(() => {\n __setToastInstance((ownInstance?.exposed as ToastExposed | null) ?? null)\n})\nonBeforeUnmount(() => {\n __setToastInstance(null)\n})\n\nfunction iconFor(type: ToastType): string {\n switch (type) {\n case 'success':\n return 'fa-solid fa-circle-check'\n case 'warning':\n return 'fa-solid fa-triangle-exclamation'\n case 'error':\n return 'fa-solid fa-circle-xmark'\n case 'info':\n default:\n return 'fa-solid fa-circle-info'\n }\n}\n\nfunction getStackIndex(toast: Toast): number {\n let index = 0\n for (const t of toasts.value) {\n if (t.id === toast.id) break\n if (t.position === toast.position) index++\n }\n return index\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <TransitionGroup tag=\"div\" class=\"c-toast-container\" name=\"c-toast\">\n <div\n v-for=\"toast in toasts\"\n :key=\"toast.id\"\n class=\"c-toast\"\n :class=\"[`c-toast--${toast.type}`, `c-toast--pos-${toast.position}`]\"\n :style=\"{ '--stack-index': getStackIndex(toast) }\"\n role=\"status\"\n aria-live=\"polite\"\n >\n <i class=\"c-toast__icon\" :class=\"iconFor(toast.type)\" aria-hidden=\"true\"></i>\n <div class=\"c-toast__body\">\n <div v-if=\"toast.title\" class=\"c-toast__title\">{{ toast.title }}</div>\n <div class=\"c-toast__message\">{{ toast.message }}</div>\n </div>\n <button\n type=\"button\"\n class=\"c-toast__close\"\n aria-label=\"Bezárás\"\n @click=\"dismiss(toast.id)\"\n >\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </TransitionGroup>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/toast-notification.scss\"></style>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components53.js","names":[],"sources":["../src/composables/useSelection.ts"],"sourcesContent":["import { ref, computed } from 'vue'\n\nexport function useSelection(\n getItems: () => Record<string, unknown>[],\n getAttr: () => string | undefined,\n emit: (selected: unknown[]) => void,\n) {\n const selectedKeys = ref<Set<unknown>>(new Set())\n\n const allSelected = computed(() => {\n const attr = getAttr()\n const items = getItems()\n return items.length > 0 && attr != null && items.every((i) => selectedKeys.value.has(i[attr]))\n })\n\n function toggle(item: Record<string, unknown>) {\n const key = item[getAttr()!]\n if (selectedKeys.value.has(key)) {\n selectedKeys.value.delete(key)\n } else {\n selectedKeys.value.add(key)\n }\n emit([...selectedKeys.value])\n }\n\n function toggleAll() {\n const attr = getAttr()!\n if (allSelected.value) {\n selectedKeys.value.clear()\n } else {\n for (const item of getItems()) {\n selectedKeys.value.add(item[attr])\n }\n }\n emit([...selectedKeys.value])\n }\n\n return { selectedKeys, allSelected, toggle, toggleAll }\n}\n"],"mappings":";;AAEA,SAAgB,EACd,GACA,GACA,GACA;CACA,IAAM,IAAe,kBAAkB,IAAI,IAAI,CAAC,GAE1C,IAAc,QAAe;EACjC,IAAM,IAAO,EAAQ,GACf,IAAQ,EAAS;EACvB,OAAO,EAAM,SAAS,KAAK,KAAQ,QAAQ,EAAM,OAAO,MAAM,EAAa,MAAM,IAAI,EAAE,EAAK,CAAC;CAC/F,CAAC;CAED,SAAS,EAAO,GAA+B;EAC7C,IAAM,IAAM,EAAK,EAAQ;EAMzB,AALI,EAAa,MAAM,IAAI,CAAG,IAC5B,EAAa,MAAM,OAAO,CAAG,IAE7B,EAAa,MAAM,IAAI,CAAG,GAE5B,EAAK,CAAC,GAAG,EAAa,KAAK,CAAC;CAC9B;CAEA,SAAS,IAAY;EACnB,IAAM,IAAO,EAAQ;EACrB,IAAI,EAAY,OACd,EAAa,MAAM,MAAM;OAEzB,KAAK,IAAM,KAAQ,EAAS,GAC1B,EAAa,MAAM,IAAI,EAAK,EAAK;EAGrC,EAAK,CAAC,GAAG,EAAa,KAAK,CAAC;CAC9B;CAEA,OAAO;EAAE;EAAc;EAAa;EAAQ;CAAU;AACxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components54.js","names":[],"sources":["../src/types/data-list.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\nimport type { PickedDate, PickedUtcRange } from '@/types/types'\nimport type { ButtonType } from '@/components/Button.vue'\n\nexport type FilterValue = string | PickedDate | PickedUtcRange | string[] | null | undefined\n\nexport interface FilterConfig {\n type: 'text' | 'date' | 'date-range' | 'select' | 'multi-select'\n key: string\n placeholder?: string\n options?: DropdownOption[]\n}\n\nexport type LayoutMode = 'table' | 'cards' | 'screen'\n\nexport interface DataTableSettings {\n striped: boolean\n compact: boolean\n}\n\nexport interface DataCardsSettings {\n compact: boolean\n}\n\nexport interface DataListSettings extends DataTableSettings, DataCardsSettings {\n layout: LayoutMode\n columns: Record<string, boolean>\n cardHeaderColumns: Record<string, boolean>\n columnOrder: string[]\n cardHeaderOrder: string[]\n}\n\nexport interface PageSettings {\n page: number\n pageSize: number\n}\n\nexport interface PaginatorSettings extends PageSettings {\n total: number\n}\n\nexport interface DataListConfig {\n selectableAttr?: string | undefined\n columns: Column[]\n sortEnabled: boolean\n\n actions?: Array<Action | ActionGroup> | undefined\n actionHeader?: string | undefined\n}\n\nexport type ColumnType = 'normal' | 'uuid' | 'date' | 'datetime'\n\nexport interface Column {\n visible?: boolean | undefined\n primary?: boolean | undefined\n label: string\n property: string\n sort?: undefined | Sort\n converter?: undefined | ((v: any, item: any) => any)\n type?: ColumnType\n class?: string | undefined\n headerClass?: string | undefined\n loading?: (() => boolean) | undefined\n}\n\nexport type SortDirection = 'asc' | 'desc' | null\n\nexport interface Sort {\n label: string\n active: Ref<boolean> | undefined\n direction?: Ref<SortDirection> | undefined\n callback: (property: string, direction: SortDirection) => any\n}\n\nexport interface Action {\n icon: string\n label?: string\n ariaLabel?: string\n cardLabel?: string\n type?: ButtonType\n config?: Record<string, any> | undefined\n disabled?: (item: any) => boolean\n callback: (item: any) => any\n}\n\nexport interface ActionGroup {\n isGroup: true\n icon?: string\n label?: string\n ariaLabel?: string\n cardLabel?: string\n config?: Record<string, any> | undefined\n items: Action[]\n disabled?: (item: any) => boolean\n}\n\nexport const dataTableSettingsDefaults: DataTableSettings = {\n striped: true,\n compact: false,\n}\n\nexport const dataCardsSettingsDefaults: DataCardsSettings = {\n compact: false,\n}\n\nexport const dataListSettingsDefaults: Partial<DataListSettings> = {\n layout: 'screen',\n compact: false,\n}\n"],"mappings":";AAiGA,IAAa,IAA+C;CAC1D,SAAS;CACT,SAAS;AACX,GAEa,IAA+C,EAC1D,SAAS,GACX,GAEa,IAAsD;CACjE,QAAQ;CACR,SAAS;AACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components55.js","names":[],"sources":["../src/utils/dataList.ts"],"sourcesContent":["import type { Column } from '@/types/data-list'\nimport type { Action, ActionGroup } from '@/types/data-list'\nimport type { DropdownMenuItem } from '@/components/DropdownMenu.vue'\n\nexport function getColumnValue(item: Record<string, unknown>, col: Column | undefined) {\n if (!col) return ''\n const value = (item as any)[col.property]\n return col.converter ? col.converter(value, item) : value\n}\n\nexport function isUuid(str: string): boolean {\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(str)\n}\n\nexport function isActionGroup(entry: Action | ActionGroup): entry is ActionGroup {\n return (entry as ActionGroup).isGroup === true && Array.isArray((entry as ActionGroup).items)\n}\n\nexport function buildActionGroupMenuItems(\n group: ActionGroup,\n item: Record<string, unknown>,\n): DropdownMenuItem[] {\n return group.items.map((action: Action) => ({\n icon: action.icon,\n label: action.label ?? '',\n type: action.type,\n size: action.label ? 'small' : 'normal',\n callback: () => action.callback(item),\n }))\n}\n"],"mappings":";AAIA,SAAgB,EAAe,GAA+B,GAAyB;CACrF,IAAI,CAAC,GAAK,OAAO;CACjB,IAAM,IAAS,EAAa,EAAI;CAChC,OAAO,EAAI,YAAY,EAAI,UAAU,GAAO,CAAI,IAAI;AACtD;AAMA,SAAgB,EAAc,GAAmD;CAC/E,OAAQ,EAAsB,YAAY,MAAQ,MAAM,QAAS,EAAsB,KAAK;AAC9F;AAEA,SAAgB,EACd,GACA,GACoB;CACpB,OAAO,EAAM,MAAM,KAAK,OAAoB;EAC1C,MAAM,EAAO;EACb,OAAO,EAAO,SAAS;EACvB,MAAM,EAAO;EACb,MAAM,EAAO,QAAQ,UAAU;EAC/B,gBAAgB,EAAO,SAAS,CAAI;CACtC,EAAE;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components56.js","names":[],"sources":["../src/utils/dataListConverters.ts"],"sourcesContent":["import { castToDate, formatDate } from '@/utils/date'\n\ntype Converter = (value: unknown, item?: unknown) => unknown\n/*\nexport function utcToLocalString(format = 'YYYY-MM-DD'): Converter {\n return (value) => {\n const d = castToDate(value)\n return d ? formatDate(d, format) : ''\n }\n} */\n\nexport function utcToLocalString(time = false, format?: string): Converter {\n return (value) => {\n const d = castToDate(value)\n if (!d) return ''\n if (format) return formatDate(d, format)\n //if (time) return `${formatDate(d, 'YYYY-MM-DD')}\\n${formatDate(d, 'HH:mm')}`\n if (time) return formatDate(d, 'YYYY-MM-DD HH:mm')\n return formatDate(d, 'YYYY-MM-DD');\n }\n}\nexport function shortUuid(length = 4): Converter {\n return (value) => {\n if (!value) return ''\n const s = typeof value === 'string' ? value : String(value)\n return `${s.slice(0, length)}...${s.slice(-length)}`\n }\n}\n\nexport function localToLocalString(format = 'YYYY-MM-DD'): Converter {\n return (value) => {\n const d = castToDate(value)\n return d ? formatDate(d, format) : ''\n }\n}\n\nexport function textEllipse(max = 60, suffix = '…'): Converter {\n return (value) => {\n const s = typeof value === 'string' ? value : value == null ? '' : String(value)\n if (s.length <= max) return s\n return s.slice(0, max).trimEnd() + suffix\n }\n}\n\nexport function booleanToString(trueLabel = 'Igen', falseLabel = 'Nem', fallback = ''): Converter {\n return (value) => {\n if (value === true) return trueLabel\n if (value === false) return falseLabel\n return fallback\n }\n}\n\nexport function enumMap<T = unknown>(map: Record<string, T>, fallback?: T): Converter {\n return (value) => {\n if (value == null) return fallback ?? ''\n const key = String(value)\n return key in map ? map[key] : (fallback ?? value)\n }\n}\n\nexport function formatNumber(decimals = 0, locale = 'hu-HU'): Converter {\n return (value) => {\n const n = typeof value === 'number' ? value : Number(value)\n if (!Number.isFinite(n)) return value\n return n.toLocaleString(locale, {\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n }\n}\n\nexport function formatCurrency(currencyCode = 'HUF', locale = 'hu-HU', decimals = 0): Converter {\n return (value) => {\n const n = typeof value === 'number' ? value : Number(value)\n if (!Number.isFinite(n)) return value\n return n.toLocaleString(locale, {\n style: 'currency',\n currency: currencyCode,\n minimumFractionDigits: decimals,\n maximumFractionDigits: decimals,\n })\n }\n}\n\nexport function listToString(separator = ', '): Converter {\n return (value) => {\n if (Array.isArray(value)) return value.map(String).join(separator)\n if (value == null) return ''\n return String(value)\n }\n}\n\nexport const identity: Converter = (value) => value\n\nexport const dataListConverters = {\n utcToLocalString,\n localToLocalString,\n shortUuid,\n textEllipse,\n booleanToString,\n enumMap,\n formatNumber,\n formatCurrency,\n listToString,\n identity,\n} as const\n"],"mappings":";;AAWA,SAAgB,EAAiB,IAAO,IAAO,GAA4B;CACzE,QAAQ,MAAU;EAChB,IAAM,IAAI,EAAW,CAAK;EAK1B,OAJK,IACD,IAAe,EAAW,GAAG,CAAM,IAEnC,IAAa,EAAW,GAAG,kBAAkB,IAC1C,EAAW,GAAG,YAAY,IAJlB;CAKjB;AACF;AACA,SAAgB,EAAU,IAAS,GAAc;CAC/C,QAAQ,MAAU;EAChB,IAAI,CAAC,GAAO,OAAO;EACnB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,OAAO,CAAK;EAC1D,OAAO,GAAG,EAAE,MAAM,GAAG,CAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAM;CACnD;AACF;AAEA,SAAgB,EAAmB,IAAS,cAAyB;CACnE,QAAQ,MAAU;EAChB,IAAM,IAAI,EAAW,CAAK;EAC1B,OAAO,IAAI,EAAW,GAAG,CAAM,IAAI;CACrC;AACF;AAEA,SAAgB,EAAY,IAAM,IAAI,IAAS,KAAgB;CAC7D,QAAQ,MAAU;EAChB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,KAAS,OAAO,KAAK,OAAO,CAAK;EAE/E,OADI,EAAE,UAAU,IAAY,IACrB,EAAE,MAAM,GAAG,CAAG,EAAE,QAAQ,IAAI;CACrC;AACF;AAEA,SAAgB,EAAgB,IAAY,QAAQ,IAAa,OAAO,IAAW,IAAe;CAChG,QAAQ,MACF,MAAU,KAAa,IACvB,MAAU,KAAc,IACrB;AAEX;AAEA,SAAgB,EAAqB,GAAwB,GAAyB;CACpF,QAAQ,MAAU;EAChB,IAAI,KAAS,MAAM,OAAO,KAAY;EACtC,IAAM,IAAM,OAAO,CAAK;EACxB,OAAO,KAAO,IAAM,EAAI,KAAQ,KAAY;CAC9C;AACF;AAEA,SAAgB,EAAa,IAAW,GAAG,IAAS,SAAoB;CACtE,QAAQ,MAAU;EAChB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,OAAO,CAAK;EAE1D,OADK,OAAO,SAAS,CAAC,IACf,EAAE,eAAe,GAAQ;GAC9B,uBAAuB;GACvB,uBAAuB;EACzB,CAAC,IAJ+B;CAKlC;AACF;AAEA,SAAgB,EAAe,IAAe,OAAO,IAAS,SAAS,IAAW,GAAc;CAC9F,QAAQ,MAAU;EAChB,IAAM,IAAI,OAAO,KAAU,WAAW,IAAQ,OAAO,CAAK;EAE1D,OADK,OAAO,SAAS,CAAC,IACf,EAAE,eAAe,GAAQ;GAC9B,OAAO;GACP,UAAU;GACV,uBAAuB;GACvB,uBAAuB;EACzB,CAAC,IAN+B;CAOlC;AACF;AAEA,SAAgB,EAAa,IAAY,MAAiB;CACxD,QAAQ,MACF,MAAM,QAAQ,CAAK,IAAU,EAAM,IAAI,MAAM,EAAE,KAAK,CAAS,IAC7D,KAAS,OAAa,KACnB,OAAO,CAAK;AAEvB;AAEA,IAAa,KAAuB,MAAU,GAEjC,IAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components57.js","names":[],"sources":["../src/components/data-table/DataCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Column } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { computed } from 'vue'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n item: Record<string, unknown>\n col: Column\n copy?: boolean\n }>(),\n {\n copy: true,\n },\n)\n\nconst columnValue = computed<string>(() => getColumnValue(props.item, props.col))\n\nconst uuIdValue = computed(() => {\n return shortUuid()(columnValue.value)\n})\n\nconst datetimeParts = computed<{ date: string; time: string } | null>(() => {\n if (props.col.type !== 'datetime') return null\n const value = columnValue.value\n if (!value) return { date: '', time: '' }\n const spaceIdx = value.indexOf(' ')\n if (spaceIdx === -1) return { date: value, time: '' }\n return {\n date: value.slice(0, spaceIdx),\n time: value.slice(spaceIdx + 1),\n }\n})\n</script>\n<template>\n <span v-if=\"col.loading?.()\" class=\"dc-loading\">\n <Loader :loading=\"true\" size=\"1rem\" />\n </span>\n <span v-else-if=\"col.type === 'uuid'\" v-tooltip=\"columnValue\">\n <span v-html=\"uuIdValue\"></span>\n <CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n <span v-else-if=\"col.type === 'datetime'\" class=\"dc-datetime\">\n <span class=\"dc-datetime__part\">{{ datetimeParts?.date }}</span\n ><span v-if=\"datetimeParts?.time\" class=\"dc-datetime__sep\"> </span\n ><span class=\"dc-datetime__part\">{{ datetimeParts?.time }}</span>\n <CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n <span v-else\n ><span v-html=\"columnValue\"></span\n ><CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,IAAM,IAAQ,GAWR,IAAc,QAAuB,EAAe,EAAM,MAAM,EAAM,GAAG,CAAC,GAE1E,IAAY,QACT,EAAU,EAAE,EAAY,KAAK,CACrC,GAEK,IAAgB,QAAsD;GAC1E,IAAI,EAAM,IAAI,SAAS,YAAY,OAAO;GAC1C,IAAM,IAAQ,EAAY;GAC1B,IAAI,CAAC,GAAO,OAAO;IAAE,MAAM;IAAI,MAAM;GAAG;GACxC,IAAM,IAAW,EAAM,QAAQ,GAAG;GAElC,OADI,MAAa,KAAW;IAAE,MAAM;IAAO,MAAM;GAAG,IAC7C;IACL,MAAM,EAAM,MAAM,GAAG,CAAQ;IAC7B,MAAM,EAAM,MAAM,IAAW,CAAC;GAChC;EACF,CAAC;;;UAGa,EAAA,IAAI,UAAO,KAAA,EAAA,GAAvB,EAEO,QAFP,GAEO,CADL,EAAsC,GAAA;IAA7B,SAAS;IAAM,MAAK;WAEd,EAAA,IAAI,SAAI,SAAA,GAAA,EAAA,GAAzB,EAGO,QAAA,GAAA,CAFL,EAAgC,QAAA,EAA1B,WAAQ,EAAA,MAAS,GAAA,MAAA,GAAA,CAAA,GACA,EAAA,QAAQ,EAAA,SAAA,EAAA,GAA/B,EAAmE,GAAA;;IAAtB,OAAO,EAAA;gDAFL,EAAA,KAAW,CAAA,CAAA,IAI3C,EAAA,IAAI,SAAI,cAAA,EAAA,GAAzB,EAKO,QALP,GAKO;IAJL,EACC,QADD,GACC,EADkC,EAAA,OAAe,IAAI,GAAA,CAAA;IACzC,EAAA,OAAe,QAAA,EAAA,GAA3B,EACA,QADA,CACA,KAAA,EAAA,IAAA,EAAA;IAAA,EAAgE,QAAhE,GAAgE,EAA7B,EAAA,OAAe,IAAI,GAAA,CAAA;IAChC,EAAA,QAAQ,EAAA,SAAA,EAAA,GAA/B,EAAmE,GAAA;;KAAtB,OAAO,EAAA;;eAEtD,EAGO,QAAA,GAAA,CAFJ,EACA,QAAA,EADM,WAAQ,EAAA,MAAW,GAAA,MAAA,GAAA,CAAA,GACF,EAAA,QAAQ,EAAA,SAAA,EAAA,GAA/B,EAAmE,GAAA;;IAAtB,OAAO,EAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components58.js","names":[],"sources":["../src/components/data-table/DataCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { Column } from '@/types/data-list'\nimport { getColumnValue } from '@/utils/dataList'\nimport CopyToClipboard from '@/components/CopyToClipboard.vue'\nimport Loader from '@/components/Loader.vue'\nimport { computed } from 'vue'\nimport { shortUuid } from '@/utils/dataListConverters'\n\nconst props = withDefaults(\n defineProps<{\n item: Record<string, unknown>\n col: Column\n copy?: boolean\n }>(),\n {\n copy: true,\n },\n)\n\nconst columnValue = computed<string>(() => getColumnValue(props.item, props.col))\n\nconst uuIdValue = computed(() => {\n return shortUuid()(columnValue.value)\n})\n\nconst datetimeParts = computed<{ date: string; time: string } | null>(() => {\n if (props.col.type !== 'datetime') return null\n const value = columnValue.value\n if (!value) return { date: '', time: '' }\n const spaceIdx = value.indexOf(' ')\n if (spaceIdx === -1) return { date: value, time: '' }\n return {\n date: value.slice(0, spaceIdx),\n time: value.slice(spaceIdx + 1),\n }\n})\n</script>\n<template>\n <span v-if=\"col.loading?.()\" class=\"dc-loading\">\n <Loader :loading=\"true\" size=\"1rem\" />\n </span>\n <span v-else-if=\"col.type === 'uuid'\" v-tooltip=\"columnValue\">\n <span v-html=\"uuIdValue\"></span>\n <CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n <span v-else-if=\"col.type === 'datetime'\" class=\"dc-datetime\">\n <span class=\"dc-datetime__part\">{{ datetimeParts?.date }}</span\n ><span v-if=\"datetimeParts?.time\" class=\"dc-datetime__sep\"> </span\n ><span class=\"dc-datetime__part\">{{ datetimeParts?.time }}</span>\n <CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n <span v-else\n ><span v-html=\"columnValue\"></span\n ><CopyToClipboard v-if=\"copy && columnValue\" :value=\"columnValue\" />\n </span>\n</template>\n"],"mappings":""}
|