admins-components 9.0.84 → 9.0.86
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-components103.js +121 -117
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components51.js +1 -3
- package/dist/admins-components51.js.map +1 -1
- package/dist/admins-components52.js.map +1 -1
- package/dist/admins-components60.js +1 -0
- package/dist/admins-components60.js.map +1 -1
- package/dist/admins-components68.js +7 -4
- package/dist/admins-components68.js.map +1 -1
- package/dist/admins-components70.js.map +1 -1
- package/dist/admins-components71.js +5 -2
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components73.js.map +1 -1
- package/dist/admins-components75.js +103 -77
- package/dist/admins-components75.js.map +1 -1
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components80.js +49 -48
- package/dist/admins-components80.js.map +1 -1
- package/dist/admins-components82.js.map +1 -1
- package/dist/src/components/data-table/DataCards.vue.d.ts +4 -4
- package/dist/src/components/data-table/DataPaginator.vue.d.ts +3 -0
- package/dist/src/components/data-table/DataTable.vue.d.ts +4 -4
- package/dist/src/types/data-list.d.ts +2 -1
- package/dist/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-list-options.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-paginator.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/styles/components/data-table/data-table.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/test.html +162 -162
- package/dist/test81.html +160 -160
- package/dist/widget.css +1 -1
- package/package.json +1 -1
|
@@ -2,31 +2,31 @@ import e from "./admins-components6.js";
|
|
|
2
2
|
import t from "./admins-components34.js";
|
|
3
3
|
import { dataCardsSettingsDefaults as n, dataListSettingsDefaults as r, dataTableSettingsDefaults as i } from "./admins-components60.js";
|
|
4
4
|
import { deepMerge as a } from "./admins-components74.js";
|
|
5
|
-
import { Fragment as o, computed as s, createBlock as ee, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, onMounted as te, openBlock as h, ref as g, renderList as _, resolveDirective as ne, toDisplayString as v, watch as
|
|
5
|
+
import { Fragment as o, computed as s, createBlock as ee, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, normalizeClass as m, onMounted as te, openBlock as h, ref as g, renderList as _, resolveDirective as ne, toDisplayString as v, watch as y, withCtx as re, withDirectives as b, withModifiers as x } from "vue";
|
|
6
6
|
//#region src/components/data-table/DataListOptions.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var
|
|
7
|
+
var ie = { class: "list-options basic" }, ae = { class: "list-options__col" }, oe = { class: "list-options__title" }, se = { class: "list-options__title-value" }, ce = { class: "layout-switch" }, le = { class: "list-options__col" }, ue = { class: "list-options__title" }, de = { class: "list-options__list" }, fe = { class: "list-options__col list-options__col--full" }, pe = { class: "list-options__title" }, me = { class: "list-options__title-value" }, he = { class: "layout-switch" }, ge = { class: "list-options__col" }, _e = { class: "list-options__title" }, ve = { class: "list-options__list" }, ye = [
|
|
8
8
|
"draggable",
|
|
9
9
|
"onDragstart",
|
|
10
10
|
"onDragover",
|
|
11
11
|
"onClick"
|
|
12
|
-
],
|
|
12
|
+
], be = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "fa-solid fa-grip-vertical list-options__drag-handle"
|
|
15
|
-
},
|
|
15
|
+
}, xe = ["onClick"], Se = {
|
|
16
16
|
key: 0,
|
|
17
17
|
class: "list-options__move-actions"
|
|
18
|
-
},
|
|
18
|
+
}, S = ["disabled"], C = ["disabled"], w = { class: "list-options__col" }, T = { class: "list-options__title flex-center gap-1" }, E = { class: "list-options__list" }, D = [
|
|
19
19
|
"draggable",
|
|
20
20
|
"onDragstart",
|
|
21
21
|
"onDragover",
|
|
22
22
|
"onClick"
|
|
23
|
-
],
|
|
23
|
+
], O = {
|
|
24
24
|
key: 0,
|
|
25
25
|
class: "fa-solid fa-grip-vertical list-options__drag-handle"
|
|
26
|
-
},
|
|
26
|
+
}, k = ["onClick"], A = {
|
|
27
27
|
key: 0,
|
|
28
28
|
class: "list-options__move-actions"
|
|
29
|
-
},
|
|
29
|
+
}, j = ["disabled"], Ce = ["disabled"], we = { class: "list-options-footer" }, Te = { class: "list-options advanced" }, Ee = { class: "list-options__col" }, De = { class: "list-options__title" }, Oe = { class: "list-options__list" }, M = /*@__PURE__*/ p({
|
|
30
30
|
__name: "DataListOptions",
|
|
31
31
|
props: {
|
|
32
32
|
open: { type: Boolean },
|
|
@@ -41,7 +41,7 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
41
41
|
},
|
|
42
42
|
emits: ["close", "change"],
|
|
43
43
|
setup(p, { emit: M }) {
|
|
44
|
-
let N = p, P = M, F = g(z()), I = s(() => `data-list-${N.storageKey}`),
|
|
44
|
+
let N = p, P = M, F = g(z()), I = s(() => `data-list-${N.storageKey}`), ke = s(() => JSON.stringify(F.value) !== JSON.stringify(z()));
|
|
45
45
|
function L(e) {
|
|
46
46
|
return e.primary === !0 || e.hideable === !1;
|
|
47
47
|
}
|
|
@@ -60,7 +60,7 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
60
60
|
cardHeaderOrder: N.settings.cardHeaderOrder ?? N.columns.map((e) => e.property)
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
|
-
function
|
|
63
|
+
function Ae() {
|
|
64
64
|
try {
|
|
65
65
|
let e = localStorage.getItem(I.value), t = z();
|
|
66
66
|
if (e) {
|
|
@@ -84,7 +84,7 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
84
84
|
cardHeaderOrder: r(e.cardHeaderOrder)
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
function
|
|
87
|
+
function je() {
|
|
88
88
|
try {
|
|
89
89
|
let e = I.value, t = localStorage.getItem(e), n = t ? JSON.parse(t) : {};
|
|
90
90
|
n.settings = F.value, localStorage.setItem(e, JSON.stringify(n));
|
|
@@ -97,7 +97,7 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
97
97
|
F.value = {
|
|
98
98
|
...F.value,
|
|
99
99
|
[e]: t
|
|
100
|
-
},
|
|
100
|
+
}, je();
|
|
101
101
|
}
|
|
102
102
|
function H(e) {
|
|
103
103
|
V("columns", {
|
|
@@ -121,18 +121,18 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
123
|
let K = s(() => G(N.columns, F.value.columnOrder)), q = s(() => G(N.columns, F.value.cardHeaderOrder)), J = g(null), Y = g(null), X = g(null), Z = g(null);
|
|
124
|
-
function
|
|
124
|
+
function Me(e) {
|
|
125
125
|
J.value = e;
|
|
126
126
|
}
|
|
127
|
-
function
|
|
127
|
+
function Ne(e, t) {
|
|
128
128
|
if (e.preventDefault(), J.value === null || J.value === t) return;
|
|
129
129
|
let n = [...F.value.columnOrder], r = n.splice(J.value, 1)[0];
|
|
130
130
|
r && (n.splice(t, 0, r), J.value = t, V("columnOrder", n));
|
|
131
131
|
}
|
|
132
|
-
function
|
|
132
|
+
function Pe() {
|
|
133
133
|
J.value = null;
|
|
134
134
|
}
|
|
135
|
-
function
|
|
135
|
+
function Fe(e) {
|
|
136
136
|
Y.value = Y.value === e ? null : e;
|
|
137
137
|
}
|
|
138
138
|
function Q(e) {
|
|
@@ -142,18 +142,18 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
142
142
|
let n = [...F.value.columnOrder], r = n[Y.value];
|
|
143
143
|
n[Y.value] = n[t], n[t] = r, V("columnOrder", n), Y.value = t;
|
|
144
144
|
}
|
|
145
|
-
function
|
|
145
|
+
function Ie(e) {
|
|
146
146
|
X.value = e;
|
|
147
147
|
}
|
|
148
|
-
function
|
|
148
|
+
function Le(e, t) {
|
|
149
149
|
if (e.preventDefault(), X.value === null || X.value === t) return;
|
|
150
150
|
let n = [...F.value.cardHeaderOrder], r = n.splice(X.value, 1)[0];
|
|
151
151
|
r && (n.splice(t, 0, r), X.value = t, V("cardHeaderOrder", n));
|
|
152
152
|
}
|
|
153
|
-
function
|
|
153
|
+
function Re() {
|
|
154
154
|
X.value = null;
|
|
155
155
|
}
|
|
156
|
-
function
|
|
156
|
+
function ze(e) {
|
|
157
157
|
Z.value = Z.value === e ? null : e;
|
|
158
158
|
}
|
|
159
159
|
function $(e) {
|
|
@@ -163,10 +163,10 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
163
163
|
let n = [...F.value.cardHeaderOrder], r = n[Z.value];
|
|
164
164
|
n[Z.value] = n[t], n[t] = r, V("cardHeaderOrder", n), Z.value = t;
|
|
165
165
|
}
|
|
166
|
-
function
|
|
166
|
+
function Be() {
|
|
167
167
|
localStorage.removeItem(I.value), F.value = z(), P("change", F.value);
|
|
168
168
|
}
|
|
169
|
-
return te(
|
|
169
|
+
return te(Ae), y(() => N.columns, () => {
|
|
170
170
|
F.value = B(F.value, N.columns), R(F.value);
|
|
171
171
|
}), (n, r) => {
|
|
172
172
|
let i = ne("tooltip");
|
|
@@ -174,28 +174,28 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
174
174
|
open: p.open,
|
|
175
175
|
title: "Lista beállítások",
|
|
176
176
|
position: N.position,
|
|
177
|
-
onClose: r[
|
|
177
|
+
onClose: r[21] ||= (e) => P("close")
|
|
178
178
|
}, {
|
|
179
|
-
default:
|
|
180
|
-
u("div",
|
|
181
|
-
u("div",
|
|
179
|
+
default: re(() => [
|
|
180
|
+
u("div", ie, [
|
|
181
|
+
u("div", ae, [u("h4", oe, [r[22] ||= d(" Elrendezés ", -1), u("span", se, "— " + v(F.value.layout === "screen" ? "Auto" : F.value.layout === "table" ? "Táblázat" : "Kártyák"), 1)]), u("div", ce, [
|
|
182
182
|
u("button", {
|
|
183
183
|
class: m(["layout-switch__btn", { "layout-switch__btn--active": F.value.layout === "screen" }]),
|
|
184
184
|
title: "Kijelző méretéhez igazodó elrendezés",
|
|
185
185
|
onClick: r[0] ||= (e) => V("layout", "screen")
|
|
186
|
-
}, [...r[
|
|
186
|
+
}, [...r[23] ||= [u("i", { class: "fa-solid fa-display" }, null, -1)]], 2),
|
|
187
187
|
u("button", {
|
|
188
188
|
class: m(["layout-switch__btn", { "layout-switch__btn--active": F.value.layout === "table" }]),
|
|
189
189
|
title: "Táblázat nézet",
|
|
190
190
|
onClick: r[1] ||= (e) => V("layout", "table")
|
|
191
|
-
}, [...r[
|
|
191
|
+
}, [...r[24] ||= [u("i", { class: "fa-solid fa-table-list" }, null, -1)]], 2),
|
|
192
192
|
u("button", {
|
|
193
193
|
class: m(["layout-switch__btn", { "layout-switch__btn--active": F.value.layout === "cards" }]),
|
|
194
194
|
title: "Kártya nézet",
|
|
195
195
|
onClick: r[2] ||= (e) => V("layout", "cards")
|
|
196
|
-
}, [...r[
|
|
196
|
+
}, [...r[25] ||= [u("i", { class: "fa-solid fa-list" }, null, -1)]], 2)
|
|
197
197
|
])]),
|
|
198
|
-
u("div", le, [
|
|
198
|
+
u("div", le, [b((h(), l("h4", ue, [...r[26] ||= [d(" Megjelenés ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[
|
|
199
199
|
i,
|
|
200
200
|
"<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb ",
|
|
201
201
|
void 0,
|
|
@@ -206,18 +206,44 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
206
206
|
title: "A sorok közötti térköz csökkentése"
|
|
207
207
|
}, [u("span", {
|
|
208
208
|
class: m(["c-checkbox", { "c-checkbox--checked": F.value.compact }]),
|
|
209
|
-
onClick: r[3] ||=
|
|
210
|
-
}, null, 2), r[
|
|
209
|
+
onClick: r[3] ||= x((e) => W("compact"), ["stop"])
|
|
210
|
+
}, null, 2), r[27] ||= u("span", null, "Kompakt", -1)]), u("li", {
|
|
211
211
|
class: "list-options__item",
|
|
212
212
|
onClick: r[6] ||= (e) => W("striped"),
|
|
213
213
|
title: "A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)"
|
|
214
214
|
}, [u("span", {
|
|
215
215
|
class: m(["c-checkbox", { "c-checkbox--checked": F.value.striped }]),
|
|
216
|
-
onClick: r[5] ||=
|
|
217
|
-
}, null, 2), r[
|
|
218
|
-
u("div", fe, [
|
|
219
|
-
|
|
220
|
-
|
|
216
|
+
onClick: r[5] ||= x((e) => W("striped"), ["stop"])
|
|
217
|
+
}, null, 2), r[28] ||= u("span", null, "Sávos (striped)", -1)])])]),
|
|
218
|
+
u("div", fe, [b((h(), l("h4", pe, [r[29] ||= d(" Betűméret ", -1), u("span", me, "— " + v(F.value.fontSize === "small" ? "Kicsi" : F.value.fontSize === "normal" ? "Normál" : "Nagy"), 1)])), [[i, "Betűméret: a lista összes szövegének alap mérete"]]), u("div", he, [
|
|
219
|
+
u("button", {
|
|
220
|
+
class: m(["layout-switch__btn", { "layout-switch__btn--active": F.value.fontSize === "small" }]),
|
|
221
|
+
title: "Kis betűméret",
|
|
222
|
+
onClick: r[7] ||= (e) => V("fontSize", "small")
|
|
223
|
+
}, [...r[30] ||= [u("i", {
|
|
224
|
+
class: "fa-solid fa-a",
|
|
225
|
+
style: { "font-size": "0.725em" }
|
|
226
|
+
}, null, -1)]], 2),
|
|
227
|
+
u("button", {
|
|
228
|
+
class: m(["layout-switch__btn", { "layout-switch__btn--active": F.value.fontSize === "normal" }]),
|
|
229
|
+
title: "Normál betűméret",
|
|
230
|
+
onClick: r[8] ||= (e) => V("fontSize", "normal")
|
|
231
|
+
}, [...r[31] ||= [u("i", {
|
|
232
|
+
class: "fa-solid fa-a",
|
|
233
|
+
style: { "font-size": "0.825rem" }
|
|
234
|
+
}, null, -1)]], 2),
|
|
235
|
+
u("button", {
|
|
236
|
+
class: m(["layout-switch__btn", { "layout-switch__btn--active": F.value.fontSize === "large" }]),
|
|
237
|
+
title: "Nagy betűméret",
|
|
238
|
+
onClick: r[9] ||= (e) => V("fontSize", "large")
|
|
239
|
+
}, [...r[32] ||= [u("i", {
|
|
240
|
+
class: "fa-solid fa-a",
|
|
241
|
+
style: { "font-size": "1.25em" }
|
|
242
|
+
}, null, -1)]], 2)
|
|
243
|
+
])]),
|
|
244
|
+
u("div", ge, [
|
|
245
|
+
b((h(), l("h4", _e, [...r[33] ||= [d(" Táblázat oszlopok ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[i, "Táblázat nézetben megjelenő oszlopok"]]),
|
|
246
|
+
u("ul", ve, [(h(!0), l(o, null, _(K.value, (e, t) => (h(), l("li", {
|
|
221
247
|
key: e.property,
|
|
222
248
|
class: m(["list-options__item", {
|
|
223
249
|
"list-options__item--disabled": L(e),
|
|
@@ -225,28 +251,28 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
225
251
|
"list-options__item--dragging": p.orderable && J.value === t
|
|
226
252
|
}]),
|
|
227
253
|
draggable: p.orderable,
|
|
228
|
-
onDragstart:
|
|
229
|
-
onDragover:
|
|
230
|
-
onDrop: r[
|
|
231
|
-
onDragend: r[
|
|
232
|
-
onClick:
|
|
233
|
-
}, [p.orderable ? (h(), l("i",
|
|
254
|
+
onDragstart: x((e) => p.orderable && Me(t), ["stop"]),
|
|
255
|
+
onDragover: x((e) => p.orderable && Ne(e, t), ["prevent"]),
|
|
256
|
+
onDrop: r[10] ||= x(() => {}, ["prevent"]),
|
|
257
|
+
onDragend: r[11] ||= (e) => p.orderable && Pe(),
|
|
258
|
+
onClick: x((n) => p.orderable ? Fe(t) : !L(e) && H(e.property), ["prevent"])
|
|
259
|
+
}, [p.orderable ? (h(), l("i", be)) : c("", !0), u("span", {
|
|
234
260
|
class: "list-options__toggle",
|
|
235
|
-
onClick:
|
|
236
|
-
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": F.value.columns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8,
|
|
237
|
-
p.orderable && Y.value !== null ? (h(), l("div",
|
|
261
|
+
onClick: x((t) => !L(e) && H(e.property), ["stop"])
|
|
262
|
+
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": F.value.columns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8, xe)], 42, ye))), 128))]),
|
|
263
|
+
p.orderable && Y.value !== null ? (h(), l("div", Se, [u("button", {
|
|
238
264
|
class: "list-options__move-btn",
|
|
239
265
|
disabled: Y.value === 0,
|
|
240
|
-
onClick: r[
|
|
241
|
-
}, [...r[
|
|
266
|
+
onClick: r[12] ||= (e) => Q(-1)
|
|
267
|
+
}, [...r[34] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, S), u("button", {
|
|
242
268
|
class: "list-options__move-btn",
|
|
243
269
|
disabled: Y.value === K.value.length - 1,
|
|
244
|
-
onClick: r[
|
|
245
|
-
}, [...r[
|
|
270
|
+
onClick: r[13] ||= (e) => Q(1)
|
|
271
|
+
}, [...r[35] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, C)])) : c("", !0)
|
|
246
272
|
]),
|
|
247
|
-
u("div",
|
|
248
|
-
|
|
249
|
-
u("ul",
|
|
273
|
+
u("div", w, [
|
|
274
|
+
b((h(), l("h4", T, [...r[36] ||= [d(" Kártya fejléc ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[i, "Kártya nézetben, a sorok fejlécén megjelenő oszlopok"]]),
|
|
275
|
+
u("ul", E, [(h(!0), l(o, null, _(q.value, (e, t) => (h(), l("li", {
|
|
250
276
|
key: "ch-" + e.property,
|
|
251
277
|
class: m(["list-options__item", {
|
|
252
278
|
"list-options__item--disabled": L(e),
|
|
@@ -254,51 +280,51 @@ var ae = { class: "list-options basic" }, oe = { class: "list-options__col" }, x
|
|
|
254
280
|
"list-options__item--dragging": p.orderable && X.value === t
|
|
255
281
|
}]),
|
|
256
282
|
draggable: p.orderable,
|
|
257
|
-
onDragstart:
|
|
258
|
-
onDragover:
|
|
259
|
-
onDrop: r[
|
|
260
|
-
onDragend: r[
|
|
261
|
-
onClick:
|
|
262
|
-
}, [p.orderable ? (h(), l("i",
|
|
283
|
+
onDragstart: x((e) => p.orderable && Ie(t), ["stop"]),
|
|
284
|
+
onDragover: x((e) => p.orderable && Le(e, t), ["prevent"]),
|
|
285
|
+
onDrop: r[14] ||= x(() => {}, ["prevent"]),
|
|
286
|
+
onDragend: r[15] ||= (e) => p.orderable && Re(),
|
|
287
|
+
onClick: x((n) => p.orderable ? ze(t) : !L(e) && U(e.property), ["prevent"])
|
|
288
|
+
}, [p.orderable ? (h(), l("i", O)) : c("", !0), u("span", {
|
|
263
289
|
class: "list-options__toggle",
|
|
264
|
-
onClick:
|
|
265
|
-
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": F.value.cardHeaderColumns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8,
|
|
266
|
-
p.orderable && Z.value !== null ? (h(), l("div",
|
|
290
|
+
onClick: x((t) => !L(e) && U(e.property), ["stop"])
|
|
291
|
+
}, [u("span", { class: m(["c-checkbox", { "c-checkbox--checked": F.value.cardHeaderColumns[e.property] }]) }, null, 2), u("span", null, v(e.label), 1)], 8, k)], 42, D))), 128))]),
|
|
292
|
+
p.orderable && Z.value !== null ? (h(), l("div", A, [u("button", {
|
|
267
293
|
class: "list-options__move-btn",
|
|
268
294
|
disabled: Z.value === 0,
|
|
269
|
-
onClick: r[
|
|
270
|
-
}, [...r[
|
|
295
|
+
onClick: r[16] ||= (e) => $(-1)
|
|
296
|
+
}, [...r[37] ||= [u("i", { class: "fa-solid fa-arrow-up" }, null, -1)]], 8, j), u("button", {
|
|
271
297
|
class: "list-options__move-btn",
|
|
272
298
|
disabled: Z.value === q.value.length - 1,
|
|
273
|
-
onClick: r[
|
|
274
|
-
}, [...r[
|
|
299
|
+
onClick: r[17] ||= (e) => $(1)
|
|
300
|
+
}, [...r[38] ||= [u("i", { class: "fa-solid fa-arrow-down" }, null, -1)]], 8, Ce)])) : c("", !0)
|
|
275
301
|
])
|
|
276
302
|
]),
|
|
277
|
-
r[
|
|
278
|
-
u("div",
|
|
303
|
+
r[41] ||= u("hr", { class: "separator my-3" }, null, -1),
|
|
304
|
+
u("div", we, [f(e, {
|
|
279
305
|
icon: "fa-solid fa-triangle-exclamation",
|
|
280
|
-
disabled: !
|
|
306
|
+
disabled: !ke.value,
|
|
281
307
|
label: "Alapértelmezés visszaállítása",
|
|
282
308
|
size: "small",
|
|
283
|
-
onClick:
|
|
309
|
+
onClick: Be
|
|
284
310
|
}, null, 8, ["disabled"]), f(e, {
|
|
285
311
|
label: "OK",
|
|
286
|
-
onClick: r[
|
|
312
|
+
onClick: r[18] ||= (e) => P("close")
|
|
287
313
|
})]),
|
|
288
|
-
r[
|
|
289
|
-
u("div",
|
|
314
|
+
r[42] ||= u("hr", { class: "separator my-3" }, null, -1),
|
|
315
|
+
u("div", Te, [u("div", Ee, [b((h(), l("h4", De, [...r[39] ||= [d(" Haladó beállítások ", -1), u("i", { class: "fa-regular fa-question-circle" }, null, -1)]])), [[
|
|
290
316
|
i,
|
|
291
317
|
"<b>Azonnali szűrés</b>: Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép, míg kikapcsolva csak a „Szűrés” gombra kattintva kerülnek alkalmazásra.",
|
|
292
318
|
void 0,
|
|
293
319
|
{ html: !0 }
|
|
294
|
-
]]), u("ul",
|
|
320
|
+
]]), u("ul", Oe, [u("li", {
|
|
295
321
|
class: "list-options__item",
|
|
296
|
-
onClick: r[
|
|
322
|
+
onClick: r[20] ||= (e) => W("filtersEager"),
|
|
297
323
|
title: "Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép"
|
|
298
324
|
}, [u("span", {
|
|
299
325
|
class: m(["c-checkbox", { "c-checkbox--checked": F.value.filtersEager }]),
|
|
300
|
-
onClick: r[
|
|
301
|
-
}, null, 2), r[
|
|
326
|
+
onClick: r[19] ||= x((e) => W("filtersEager"), ["stop"])
|
|
327
|
+
}, null, 2), r[40] ||= u("span", null, "Azonnali szűrés", -1)])])])])
|
|
302
328
|
]),
|
|
303
329
|
_: 1
|
|
304
330
|
}, 8, ["open", "position"]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components75.js","names":[],"sources":["../src/components/data-table/DataListOptions.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Column, DataListSettings } from '@/types/data-list'\nimport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\nimport { deepMerge } from '@/utils/objects'\nimport Button from '@/components/Button.vue'\n\nexport interface DataListOptionsProps {\n open?: boolean\n columns: Column[]\n settings: Partial<DataListSettings>\n position?: SidebarPosition\n storageKey: string\n orderable?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, watch } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nconst props = withDefaults(defineProps<DataListOptionsProps>(), {\n orderable: false,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [settings: DataListSettings]\n}>()\n\nconst local = ref<DataListSettings>(getDefaults())\n\nconst storageKey = computed(() => `data-list-${props.storageKey}`)\n\nconst hasCustomSettings = computed(\n () => JSON.stringify(local.value) !== JSON.stringify(getDefaults()),\n)\n\nfunction isColumnLocked(col: Column): boolean {\n return col.primary === true || col.hideable === false\n}\n\nfunction applyLockedOverrides(s: DataListSettings) {\n for (const col of props.columns) {\n if (isColumnLocked(col)) {\n s.columns[col.property] = true\n s.cardHeaderColumns[col.property] = true\n }\n }\n}\n\nfunction getDefaults(): DataListSettings {\n return {\n ...dataCardsSettingsDefaults,\n ...dataTableSettingsDefaults,\n ...dataListSettingsDefaults,\n ...props.settings,\n columns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.columns?.[c.property] ?? c.visible !== false,\n ]),\n ),\n cardHeaderColumns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.cardHeaderColumns?.[c.property] ??\n (c.primary === true || c.hideable === false || c.defaultCardHeader === true),\n ]),\n ),\n columnOrder: props.settings.columnOrder ?? props.columns.map((c) => c.property),\n cardHeaderOrder: props.settings.cardHeaderOrder ?? props.columns.map((c) => c.property),\n } as DataListSettings\n}\n\nfunction load() {\n try {\n const raw = localStorage.getItem(storageKey.value)\n const defaults = getDefaults()\n if (raw) {\n const data = JSON.parse(raw)\n local.value = data.settings\n ? reconcileOrders(deepMerge(defaults, data.settings) as DataListSettings, props.columns)\n : defaults\n } else {\n local.value = defaults\n }\n } catch {\n local.value = getDefaults()\n }\n applyLockedOverrides(local.value)\n emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const sourceOrder = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n const saved = (order ?? []).filter((p) => sourceOrder.includes(p))\n const savedSet = new Set(saved)\n const merged: string[] = []\n let savedIdx = 0\n for (const property of sourceOrder) {\n if (savedSet.has(property)) {\n merged.push(saved[savedIdx++]!)\n } else {\n merged.push(property)\n }\n }\n return merged\n }\n return {\n ...settings,\n columnOrder: reconcile(settings.columnOrder),\n cardHeaderOrder: reconcile(settings.cardHeaderOrder),\n }\n}\n\nfunction save() {\n try {\n const key = storageKey.value\n const raw = localStorage.getItem(key)\n const data = raw ? JSON.parse(raw) : {}\n data.settings = local.value\n localStorage.setItem(key, JSON.stringify(data))\n } catch (e) {\n console.error(e)\n }\n emit('change', local.value)\n}\n\nfunction update<K extends keyof DataListSettings>(key: K, value: DataListSettings[K]) {\n local.value = { ...local.value, [key]: value }\n save()\n}\n\nfunction toggleColumn(property: string) {\n update('columns', { ...local.value.columns, [property]: !local.value.columns[property] })\n}\n\nfunction toggleCardHeaderColumn(property: string) {\n update('cardHeaderColumns', {\n ...local.value.cardHeaderColumns,\n [property]: !local.value.cardHeaderColumns[property],\n })\n}\n\nfunction toggle(key: 'striped' | 'compact' | 'filtersEager') {\n update(key, !local.value[key])\n}\n\nfunction sortByOrder(cols: Column[], order: 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\nconst orderedColumns = computed(() => sortByOrder(props.columns, local.value.columnOrder))\n\nconst orderedCardHeaderColumns = computed(() =>\n sortByOrder(props.columns, local.value.cardHeaderOrder),\n)\n\nconst dragIndex = ref<number | null>(null)\nconst selectedReorderIndex = ref<number | null>(null)\n\nconst cardHeaderDragIndex = ref<number | null>(null)\nconst selectedCardHeaderIndex = ref<number | null>(null)\n\nfunction onDragStart(index: number) {\n dragIndex.value = index\n}\n\nfunction onDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (dragIndex.value === null || dragIndex.value === index) return\n const order = [...local.value.columnOrder]\n const moved = order.splice(dragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n dragIndex.value = index\n update('columnOrder', order)\n}\n\nfunction onDragEnd() {\n dragIndex.value = null\n}\n\nfunction selectForReorder(index: number) {\n selectedReorderIndex.value = selectedReorderIndex.value === index ? null : index\n}\n\nfunction moveSelected(direction: -1 | 1) {\n if (selectedReorderIndex.value === null) return\n const target = selectedReorderIndex.value + direction\n if (target < 0 || target >= local.value.columnOrder.length) return\n const order = [...local.value.columnOrder]\n const tmp = order[selectedReorderIndex.value]!\n order[selectedReorderIndex.value] = order[target]!\n order[target] = tmp\n update('columnOrder', order)\n selectedReorderIndex.value = target\n}\n\nfunction onCardHeaderDragStart(index: number) {\n cardHeaderDragIndex.value = index\n}\n\nfunction onCardHeaderDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (cardHeaderDragIndex.value === null || cardHeaderDragIndex.value === index) return\n const order = [...local.value.cardHeaderOrder]\n const moved = order.splice(cardHeaderDragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n cardHeaderDragIndex.value = index\n update('cardHeaderOrder', order)\n}\n\nfunction onCardHeaderDragEnd() {\n cardHeaderDragIndex.value = null\n}\n\nfunction selectCardHeader(index: number) {\n selectedCardHeaderIndex.value = selectedCardHeaderIndex.value === index ? null : index\n}\n\nfunction moveCardHeader(direction: -1 | 1) {\n if (selectedCardHeaderIndex.value === null) return\n const target = selectedCardHeaderIndex.value + direction\n if (target < 0 || target >= local.value.cardHeaderOrder.length) return\n const order = [...local.value.cardHeaderOrder]\n const tmp = order[selectedCardHeaderIndex.value]!\n order[selectedCardHeaderIndex.value] = order[target]!\n order[target] = tmp\n update('cardHeaderOrder', order)\n selectedCardHeaderIndex.value = target\n}\n\nfunction reset() {\n localStorage.removeItem(storageKey.value)\n local.value = getDefaults()\n emit('change', local.value)\n}\n\nonMounted(load)\n\nwatch(\n () => props.columns,\n () => {\n local.value = reconcileOrders(local.value, props.columns)\n applyLockedOverrides(local.value)\n },\n)\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Lista beállítások\" :position=\"props.position\" @close=\"emit('close')\">\n <div class=\"list-options basic\">\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\">\n Elrendezés\n <span class=\"list-options__title-value\"\n >—\n {{\n local.layout === 'screen' ? 'Auto' : local.layout === 'table' ? 'Táblázat' : 'Kártyák'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'screen' }\"\n title=\"Kijelző méretéhez igazodó elrendezés\"\n @click=\"update('layout', 'screen')\"\n >\n <i class=\"fa-solid fa-display\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'table' }\"\n title=\"Táblázat nézet\"\n @click=\"update('layout', 'table')\"\n >\n <i class=\"fa-solid fa-table-list\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'cards' }\"\n title=\"Kártya nézet\"\n @click=\"update('layout', 'cards')\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb '\n \"\n >\n Megjelenés <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('compact')\"\n title=\"A sorok közötti térköz csökkentése\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.compact }\"\n @click.stop=\"toggle('compact')\"\n ></span>\n <span>Kompakt</span>\n </li>\n <li\n class=\"list-options__item\"\n @click=\"toggle('striped')\"\n title=\"A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.striped }\"\n @click.stop=\"toggle('striped')\"\n ></span>\n <span>Sávos (striped)</span>\n </li>\n </ul>\n </div>\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\" v-tooltip=\"'Táblázat nézetben megjelenő oszlopok'\">\n Táblázat oszlopok <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedColumns\"\n :key=\"col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedReorderIndex === index,\n 'list-options__item--dragging': orderable && dragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onDragStart(index)\"\n @dragover.prevent=\"orderable && onDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectForReorder(index)\n : !isColumnLocked(col) && toggleColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.columns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div v-if=\"orderable && selectedReorderIndex !== null\" class=\"list-options__move-actions\">\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === 0\"\n @click=\"moveSelected(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === orderedColumns.length - 1\"\n @click=\"moveSelected(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title flex-center gap-1\"\n v-tooltip=\"'Kártya nézetben, a sorok fejlécén megjelenő oszlopok'\"\n >\n Kártya fejléc <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedCardHeaderColumns\"\n :key=\"'ch-' + col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedCardHeaderIndex === index,\n 'list-options__item--dragging': orderable && cardHeaderDragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onCardHeaderDragStart(index)\"\n @dragover.prevent=\"orderable && onCardHeaderDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onCardHeaderDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectCardHeader(index)\n : !isColumnLocked(col) && toggleCardHeaderColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleCardHeaderColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.cardHeaderColumns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div\n v-if=\"orderable && selectedCardHeaderIndex !== null\"\n class=\"list-options__move-actions\"\n >\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === 0\"\n @click=\"moveCardHeader(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === orderedCardHeaderColumns.length - 1\"\n @click=\"moveCardHeader(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options-footer\">\n <Button\n icon=\"fa-solid fa-triangle-exclamation\"\n :disabled=\"!hasCustomSettings\"\n label=\"Alapértelmezés visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n />\n <Button label=\"OK\" @click=\"emit('close')\" />\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options advanced\">\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Azonnali szűrés</b>: Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép, míg kikapcsolva csak a „Szűrés” gombra kattintva kerülnek alkalmazásra.'\n \"\n >\n Haladó beállítások <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('filtersEager')\"\n title=\"Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.filtersEager }\"\n @click.stop=\"toggle('filtersEager')\"\n ></span>\n <span>Azonnali szűrés</span>\n </li>\n </ul>\n </div>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-options.scss\"></style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components75.js","names":[],"sources":["../src/components/data-table/DataListOptions.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Column, DataListSettings } from '@/types/data-list'\nimport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\nimport { deepMerge } from '@/utils/objects'\nimport Button from '@/components/Button.vue'\n\nexport interface DataListOptionsProps {\n open?: boolean\n columns: Column[]\n settings: Partial<DataListSettings>\n position?: SidebarPosition\n storageKey: string\n orderable?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, watch } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nconst props = withDefaults(defineProps<DataListOptionsProps>(), {\n orderable: false,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [settings: DataListSettings]\n}>()\n\nconst local = ref<DataListSettings>(getDefaults())\n\nconst storageKey = computed(() => `data-list-${props.storageKey}`)\n\nconst hasCustomSettings = computed(\n () => JSON.stringify(local.value) !== JSON.stringify(getDefaults()),\n)\n\nfunction isColumnLocked(col: Column): boolean {\n return col.primary === true || col.hideable === false\n}\n\nfunction applyLockedOverrides(s: DataListSettings) {\n for (const col of props.columns) {\n if (isColumnLocked(col)) {\n s.columns[col.property] = true\n s.cardHeaderColumns[col.property] = true\n }\n }\n}\n\nfunction getDefaults(): DataListSettings {\n return {\n ...dataCardsSettingsDefaults,\n ...dataTableSettingsDefaults,\n ...dataListSettingsDefaults,\n ...props.settings,\n columns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.columns?.[c.property] ?? c.visible !== false,\n ]),\n ),\n cardHeaderColumns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.cardHeaderColumns?.[c.property] ??\n (c.primary === true || c.hideable === false || c.defaultCardHeader === true),\n ]),\n ),\n columnOrder: props.settings.columnOrder ?? props.columns.map((c) => c.property),\n cardHeaderOrder: props.settings.cardHeaderOrder ?? props.columns.map((c) => c.property),\n } as DataListSettings\n}\n\nfunction load() {\n try {\n const raw = localStorage.getItem(storageKey.value)\n const defaults = getDefaults()\n if (raw) {\n const data = JSON.parse(raw)\n local.value = data.settings\n ? reconcileOrders(deepMerge(defaults, data.settings) as DataListSettings, props.columns)\n : defaults\n } else {\n local.value = defaults\n }\n } catch {\n local.value = getDefaults()\n }\n applyLockedOverrides(local.value)\n emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const sourceOrder = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n const saved = (order ?? []).filter((p) => sourceOrder.includes(p))\n const savedSet = new Set(saved)\n const merged: string[] = []\n let savedIdx = 0\n for (const property of sourceOrder) {\n if (savedSet.has(property)) {\n merged.push(saved[savedIdx++]!)\n } else {\n merged.push(property)\n }\n }\n return merged\n }\n return {\n ...settings,\n columnOrder: reconcile(settings.columnOrder),\n cardHeaderOrder: reconcile(settings.cardHeaderOrder),\n }\n}\n\nfunction save() {\n try {\n const key = storageKey.value\n const raw = localStorage.getItem(key)\n const data = raw ? JSON.parse(raw) : {}\n data.settings = local.value\n localStorage.setItem(key, JSON.stringify(data))\n } catch (e) {\n console.error(e)\n }\n emit('change', local.value)\n}\n\nfunction update<K extends keyof DataListSettings>(key: K, value: DataListSettings[K]) {\n local.value = { ...local.value, [key]: value }\n save()\n}\n\nfunction toggleColumn(property: string) {\n update('columns', { ...local.value.columns, [property]: !local.value.columns[property] })\n}\n\nfunction toggleCardHeaderColumn(property: string) {\n update('cardHeaderColumns', {\n ...local.value.cardHeaderColumns,\n [property]: !local.value.cardHeaderColumns[property],\n })\n}\n\nfunction toggle(key: 'striped' | 'compact' | 'filtersEager') {\n update(key, !local.value[key])\n}\n\nfunction sortByOrder(cols: Column[], order: 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\nconst orderedColumns = computed(() => sortByOrder(props.columns, local.value.columnOrder))\n\nconst orderedCardHeaderColumns = computed(() =>\n sortByOrder(props.columns, local.value.cardHeaderOrder),\n)\n\nconst dragIndex = ref<number | null>(null)\nconst selectedReorderIndex = ref<number | null>(null)\n\nconst cardHeaderDragIndex = ref<number | null>(null)\nconst selectedCardHeaderIndex = ref<number | null>(null)\n\nfunction onDragStart(index: number) {\n dragIndex.value = index\n}\n\nfunction onDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (dragIndex.value === null || dragIndex.value === index) return\n const order = [...local.value.columnOrder]\n const moved = order.splice(dragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n dragIndex.value = index\n update('columnOrder', order)\n}\n\nfunction onDragEnd() {\n dragIndex.value = null\n}\n\nfunction selectForReorder(index: number) {\n selectedReorderIndex.value = selectedReorderIndex.value === index ? null : index\n}\n\nfunction moveSelected(direction: -1 | 1) {\n if (selectedReorderIndex.value === null) return\n const target = selectedReorderIndex.value + direction\n if (target < 0 || target >= local.value.columnOrder.length) return\n const order = [...local.value.columnOrder]\n const tmp = order[selectedReorderIndex.value]!\n order[selectedReorderIndex.value] = order[target]!\n order[target] = tmp\n update('columnOrder', order)\n selectedReorderIndex.value = target\n}\n\nfunction onCardHeaderDragStart(index: number) {\n cardHeaderDragIndex.value = index\n}\n\nfunction onCardHeaderDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (cardHeaderDragIndex.value === null || cardHeaderDragIndex.value === index) return\n const order = [...local.value.cardHeaderOrder]\n const moved = order.splice(cardHeaderDragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n cardHeaderDragIndex.value = index\n update('cardHeaderOrder', order)\n}\n\nfunction onCardHeaderDragEnd() {\n cardHeaderDragIndex.value = null\n}\n\nfunction selectCardHeader(index: number) {\n selectedCardHeaderIndex.value = selectedCardHeaderIndex.value === index ? null : index\n}\n\nfunction moveCardHeader(direction: -1 | 1) {\n if (selectedCardHeaderIndex.value === null) return\n const target = selectedCardHeaderIndex.value + direction\n if (target < 0 || target >= local.value.cardHeaderOrder.length) return\n const order = [...local.value.cardHeaderOrder]\n const tmp = order[selectedCardHeaderIndex.value]!\n order[selectedCardHeaderIndex.value] = order[target]!\n order[target] = tmp\n update('cardHeaderOrder', order)\n selectedCardHeaderIndex.value = target\n}\n\nfunction reset() {\n localStorage.removeItem(storageKey.value)\n local.value = getDefaults()\n emit('change', local.value)\n}\n\nonMounted(load)\n\nwatch(\n () => props.columns,\n () => {\n local.value = reconcileOrders(local.value, props.columns)\n applyLockedOverrides(local.value)\n },\n)\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Lista beállítások\" :position=\"props.position\" @close=\"emit('close')\">\n <div class=\"list-options basic\">\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\">\n Elrendezés\n <span class=\"list-options__title-value\"\n >—\n {{\n local.layout === 'screen' ? 'Auto' : local.layout === 'table' ? 'Táblázat' : 'Kártyák'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'screen' }\"\n title=\"Kijelző méretéhez igazodó elrendezés\"\n @click=\"update('layout', 'screen')\"\n >\n <i class=\"fa-solid fa-display\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'table' }\"\n title=\"Táblázat nézet\"\n @click=\"update('layout', 'table')\"\n >\n <i class=\"fa-solid fa-table-list\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'cards' }\"\n title=\"Kártya nézet\"\n @click=\"update('layout', 'cards')\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb '\n \"\n >\n Megjelenés <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('compact')\"\n title=\"A sorok közötti térköz csökkentése\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.compact }\"\n @click.stop=\"toggle('compact')\"\n ></span>\n <span>Kompakt</span>\n </li>\n <li\n class=\"list-options__item\"\n @click=\"toggle('striped')\"\n title=\"A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.striped }\"\n @click.stop=\"toggle('striped')\"\n ></span>\n <span>Sávos (striped)</span>\n </li>\n </ul>\n </div>\n <div class=\"list-options__col list-options__col--full\">\n <h4\n class=\"list-options__title\"\n v-tooltip=\"'Betűméret: a lista összes szövegének alap mérete'\"\n >\n Betűméret\n <span class=\"list-options__title-value\"\n >—\n {{\n local.fontSize === 'small' ? 'Kicsi' : local.fontSize === 'normal' ? 'Normál' : 'Nagy'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.fontSize === 'small' }\"\n title=\"Kis betűméret\"\n @click=\"update('fontSize', 'small')\"\n >\n <i class=\"fa-solid fa-a\" style=\"font-size: 0.725em\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.fontSize === 'normal' }\"\n title=\"Normál betűméret\"\n @click=\"update('fontSize', 'normal')\"\n >\n <i class=\"fa-solid fa-a\" style=\"font-size: 0.825rem\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.fontSize === 'large' }\"\n title=\"Nagy betűméret\"\n @click=\"update('fontSize', 'large')\"\n >\n <i class=\"fa-solid fa-a\" style=\"font-size: 1.25em\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\" v-tooltip=\"'Táblázat nézetben megjelenő oszlopok'\">\n Táblázat oszlopok <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedColumns\"\n :key=\"col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedReorderIndex === index,\n 'list-options__item--dragging': orderable && dragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onDragStart(index)\"\n @dragover.prevent=\"orderable && onDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectForReorder(index)\n : !isColumnLocked(col) && toggleColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.columns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div v-if=\"orderable && selectedReorderIndex !== null\" class=\"list-options__move-actions\">\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === 0\"\n @click=\"moveSelected(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === orderedColumns.length - 1\"\n @click=\"moveSelected(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title flex-center gap-1\"\n v-tooltip=\"'Kártya nézetben, a sorok fejlécén megjelenő oszlopok'\"\n >\n Kártya fejléc <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedCardHeaderColumns\"\n :key=\"'ch-' + col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedCardHeaderIndex === index,\n 'list-options__item--dragging': orderable && cardHeaderDragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onCardHeaderDragStart(index)\"\n @dragover.prevent=\"orderable && onCardHeaderDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onCardHeaderDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectCardHeader(index)\n : !isColumnLocked(col) && toggleCardHeaderColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleCardHeaderColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.cardHeaderColumns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div\n v-if=\"orderable && selectedCardHeaderIndex !== null\"\n class=\"list-options__move-actions\"\n >\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === 0\"\n @click=\"moveCardHeader(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === orderedCardHeaderColumns.length - 1\"\n @click=\"moveCardHeader(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options-footer\">\n <Button\n icon=\"fa-solid fa-triangle-exclamation\"\n :disabled=\"!hasCustomSettings\"\n label=\"Alapértelmezés visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n />\n <Button label=\"OK\" @click=\"emit('close')\" />\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options advanced\">\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Azonnali szűrés</b>: Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép, míg kikapcsolva csak a „Szűrés” gombra kattintva kerülnek alkalmazásra.'\n \"\n >\n Haladó beállítások <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('filtersEager')\"\n title=\"Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.filtersEager }\"\n @click.stop=\"toggle('filtersEager')\"\n ></span>\n <span>Azonnali szűrés</span>\n </li>\n </ul>\n </div>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-options.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components77.js","names":[],"sources":["../src/components/data-table/DataListOptions.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Column, DataListSettings } from '@/types/data-list'\nimport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\nimport { deepMerge } from '@/utils/objects'\nimport Button from '@/components/Button.vue'\n\nexport interface DataListOptionsProps {\n open?: boolean\n columns: Column[]\n settings: Partial<DataListSettings>\n position?: SidebarPosition\n storageKey: string\n orderable?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, watch } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nconst props = withDefaults(defineProps<DataListOptionsProps>(), {\n orderable: false,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [settings: DataListSettings]\n}>()\n\nconst local = ref<DataListSettings>(getDefaults())\n\nconst storageKey = computed(() => `data-list-${props.storageKey}`)\n\nconst hasCustomSettings = computed(\n () => JSON.stringify(local.value) !== JSON.stringify(getDefaults()),\n)\n\nfunction isColumnLocked(col: Column): boolean {\n return col.primary === true || col.hideable === false\n}\n\nfunction applyLockedOverrides(s: DataListSettings) {\n for (const col of props.columns) {\n if (isColumnLocked(col)) {\n s.columns[col.property] = true\n s.cardHeaderColumns[col.property] = true\n }\n }\n}\n\nfunction getDefaults(): DataListSettings {\n return {\n ...dataCardsSettingsDefaults,\n ...dataTableSettingsDefaults,\n ...dataListSettingsDefaults,\n ...props.settings,\n columns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.columns?.[c.property] ?? c.visible !== false,\n ]),\n ),\n cardHeaderColumns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.cardHeaderColumns?.[c.property] ??\n (c.primary === true || c.hideable === false || c.defaultCardHeader === true),\n ]),\n ),\n columnOrder: props.settings.columnOrder ?? props.columns.map((c) => c.property),\n cardHeaderOrder: props.settings.cardHeaderOrder ?? props.columns.map((c) => c.property),\n } as DataListSettings\n}\n\nfunction load() {\n try {\n const raw = localStorage.getItem(storageKey.value)\n const defaults = getDefaults()\n if (raw) {\n const data = JSON.parse(raw)\n local.value = data.settings\n ? reconcileOrders(deepMerge(defaults, data.settings) as DataListSettings, props.columns)\n : defaults\n } else {\n local.value = defaults\n }\n } catch {\n local.value = getDefaults()\n }\n applyLockedOverrides(local.value)\n emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const sourceOrder = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n const saved = (order ?? []).filter((p) => sourceOrder.includes(p))\n const savedSet = new Set(saved)\n const merged: string[] = []\n let savedIdx = 0\n for (const property of sourceOrder) {\n if (savedSet.has(property)) {\n merged.push(saved[savedIdx++]!)\n } else {\n merged.push(property)\n }\n }\n return merged\n }\n return {\n ...settings,\n columnOrder: reconcile(settings.columnOrder),\n cardHeaderOrder: reconcile(settings.cardHeaderOrder),\n }\n}\n\nfunction save() {\n try {\n const key = storageKey.value\n const raw = localStorage.getItem(key)\n const data = raw ? JSON.parse(raw) : {}\n data.settings = local.value\n localStorage.setItem(key, JSON.stringify(data))\n } catch (e) {\n console.error(e)\n }\n emit('change', local.value)\n}\n\nfunction update<K extends keyof DataListSettings>(key: K, value: DataListSettings[K]) {\n local.value = { ...local.value, [key]: value }\n save()\n}\n\nfunction toggleColumn(property: string) {\n update('columns', { ...local.value.columns, [property]: !local.value.columns[property] })\n}\n\nfunction toggleCardHeaderColumn(property: string) {\n update('cardHeaderColumns', {\n ...local.value.cardHeaderColumns,\n [property]: !local.value.cardHeaderColumns[property],\n })\n}\n\nfunction toggle(key: 'striped' | 'compact' | 'filtersEager') {\n update(key, !local.value[key])\n}\n\nfunction sortByOrder(cols: Column[], order: 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\nconst orderedColumns = computed(() => sortByOrder(props.columns, local.value.columnOrder))\n\nconst orderedCardHeaderColumns = computed(() =>\n sortByOrder(props.columns, local.value.cardHeaderOrder),\n)\n\nconst dragIndex = ref<number | null>(null)\nconst selectedReorderIndex = ref<number | null>(null)\n\nconst cardHeaderDragIndex = ref<number | null>(null)\nconst selectedCardHeaderIndex = ref<number | null>(null)\n\nfunction onDragStart(index: number) {\n dragIndex.value = index\n}\n\nfunction onDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (dragIndex.value === null || dragIndex.value === index) return\n const order = [...local.value.columnOrder]\n const moved = order.splice(dragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n dragIndex.value = index\n update('columnOrder', order)\n}\n\nfunction onDragEnd() {\n dragIndex.value = null\n}\n\nfunction selectForReorder(index: number) {\n selectedReorderIndex.value = selectedReorderIndex.value === index ? null : index\n}\n\nfunction moveSelected(direction: -1 | 1) {\n if (selectedReorderIndex.value === null) return\n const target = selectedReorderIndex.value + direction\n if (target < 0 || target >= local.value.columnOrder.length) return\n const order = [...local.value.columnOrder]\n const tmp = order[selectedReorderIndex.value]!\n order[selectedReorderIndex.value] = order[target]!\n order[target] = tmp\n update('columnOrder', order)\n selectedReorderIndex.value = target\n}\n\nfunction onCardHeaderDragStart(index: number) {\n cardHeaderDragIndex.value = index\n}\n\nfunction onCardHeaderDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (cardHeaderDragIndex.value === null || cardHeaderDragIndex.value === index) return\n const order = [...local.value.cardHeaderOrder]\n const moved = order.splice(cardHeaderDragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n cardHeaderDragIndex.value = index\n update('cardHeaderOrder', order)\n}\n\nfunction onCardHeaderDragEnd() {\n cardHeaderDragIndex.value = null\n}\n\nfunction selectCardHeader(index: number) {\n selectedCardHeaderIndex.value = selectedCardHeaderIndex.value === index ? null : index\n}\n\nfunction moveCardHeader(direction: -1 | 1) {\n if (selectedCardHeaderIndex.value === null) return\n const target = selectedCardHeaderIndex.value + direction\n if (target < 0 || target >= local.value.cardHeaderOrder.length) return\n const order = [...local.value.cardHeaderOrder]\n const tmp = order[selectedCardHeaderIndex.value]!\n order[selectedCardHeaderIndex.value] = order[target]!\n order[target] = tmp\n update('cardHeaderOrder', order)\n selectedCardHeaderIndex.value = target\n}\n\nfunction reset() {\n localStorage.removeItem(storageKey.value)\n local.value = getDefaults()\n emit('change', local.value)\n}\n\nonMounted(load)\n\nwatch(\n () => props.columns,\n () => {\n local.value = reconcileOrders(local.value, props.columns)\n applyLockedOverrides(local.value)\n },\n)\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Lista beállítások\" :position=\"props.position\" @close=\"emit('close')\">\n <div class=\"list-options basic\">\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\">\n Elrendezés\n <span class=\"list-options__title-value\"\n >—\n {{\n local.layout === 'screen' ? 'Auto' : local.layout === 'table' ? 'Táblázat' : 'Kártyák'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'screen' }\"\n title=\"Kijelző méretéhez igazodó elrendezés\"\n @click=\"update('layout', 'screen')\"\n >\n <i class=\"fa-solid fa-display\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'table' }\"\n title=\"Táblázat nézet\"\n @click=\"update('layout', 'table')\"\n >\n <i class=\"fa-solid fa-table-list\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'cards' }\"\n title=\"Kártya nézet\"\n @click=\"update('layout', 'cards')\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb '\n \"\n >\n Megjelenés <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('compact')\"\n title=\"A sorok közötti térköz csökkentése\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.compact }\"\n @click.stop=\"toggle('compact')\"\n ></span>\n <span>Kompakt</span>\n </li>\n <li\n class=\"list-options__item\"\n @click=\"toggle('striped')\"\n title=\"A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.striped }\"\n @click.stop=\"toggle('striped')\"\n ></span>\n <span>Sávos (striped)</span>\n </li>\n </ul>\n </div>\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\" v-tooltip=\"'Táblázat nézetben megjelenő oszlopok'\">\n Táblázat oszlopok <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedColumns\"\n :key=\"col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedReorderIndex === index,\n 'list-options__item--dragging': orderable && dragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onDragStart(index)\"\n @dragover.prevent=\"orderable && onDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectForReorder(index)\n : !isColumnLocked(col) && toggleColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.columns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div v-if=\"orderable && selectedReorderIndex !== null\" class=\"list-options__move-actions\">\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === 0\"\n @click=\"moveSelected(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === orderedColumns.length - 1\"\n @click=\"moveSelected(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title flex-center gap-1\"\n v-tooltip=\"'Kártya nézetben, a sorok fejlécén megjelenő oszlopok'\"\n >\n Kártya fejléc <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedCardHeaderColumns\"\n :key=\"'ch-' + col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedCardHeaderIndex === index,\n 'list-options__item--dragging': orderable && cardHeaderDragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onCardHeaderDragStart(index)\"\n @dragover.prevent=\"orderable && onCardHeaderDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onCardHeaderDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectCardHeader(index)\n : !isColumnLocked(col) && toggleCardHeaderColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleCardHeaderColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.cardHeaderColumns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div\n v-if=\"orderable && selectedCardHeaderIndex !== null\"\n class=\"list-options__move-actions\"\n >\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === 0\"\n @click=\"moveCardHeader(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === orderedCardHeaderColumns.length - 1\"\n @click=\"moveCardHeader(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options-footer\">\n <Button\n icon=\"fa-solid fa-triangle-exclamation\"\n :disabled=\"!hasCustomSettings\"\n label=\"Alapértelmezés visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n />\n <Button label=\"OK\" @click=\"emit('close')\" />\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options advanced\">\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Azonnali szűrés</b>: Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép, míg kikapcsolva csak a „Szűrés” gombra kattintva kerülnek alkalmazásra.'\n \"\n >\n Haladó beállítások <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('filtersEager')\"\n title=\"Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.filtersEager }\"\n @click.stop=\"toggle('filtersEager')\"\n ></span>\n <span>Azonnali szűrés</span>\n </li>\n </ul>\n </div>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-options.scss\"></style>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"admins-components77.js","names":[],"sources":["../src/components/data-table/DataListOptions.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Column, DataListSettings } from '@/types/data-list'\nimport {\n dataTableSettingsDefaults,\n dataCardsSettingsDefaults,\n dataListSettingsDefaults,\n} from '@/types/data-list'\nimport { deepMerge } from '@/utils/objects'\nimport Button from '@/components/Button.vue'\n\nexport interface DataListOptionsProps {\n open?: boolean\n columns: Column[]\n settings: Partial<DataListSettings>\n position?: SidebarPosition\n storageKey: string\n orderable?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, watch } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nconst props = withDefaults(defineProps<DataListOptionsProps>(), {\n orderable: false,\n})\n\nconst emit = defineEmits<{\n close: []\n change: [settings: DataListSettings]\n}>()\n\nconst local = ref<DataListSettings>(getDefaults())\n\nconst storageKey = computed(() => `data-list-${props.storageKey}`)\n\nconst hasCustomSettings = computed(\n () => JSON.stringify(local.value) !== JSON.stringify(getDefaults()),\n)\n\nfunction isColumnLocked(col: Column): boolean {\n return col.primary === true || col.hideable === false\n}\n\nfunction applyLockedOverrides(s: DataListSettings) {\n for (const col of props.columns) {\n if (isColumnLocked(col)) {\n s.columns[col.property] = true\n s.cardHeaderColumns[col.property] = true\n }\n }\n}\n\nfunction getDefaults(): DataListSettings {\n return {\n ...dataCardsSettingsDefaults,\n ...dataTableSettingsDefaults,\n ...dataListSettingsDefaults,\n ...props.settings,\n columns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.columns?.[c.property] ?? c.visible !== false,\n ]),\n ),\n cardHeaderColumns: Object.fromEntries(\n props.columns.map((c) => [\n c.property,\n props.settings.cardHeaderColumns?.[c.property] ??\n (c.primary === true || c.hideable === false || c.defaultCardHeader === true),\n ]),\n ),\n columnOrder: props.settings.columnOrder ?? props.columns.map((c) => c.property),\n cardHeaderOrder: props.settings.cardHeaderOrder ?? props.columns.map((c) => c.property),\n } as DataListSettings\n}\n\nfunction load() {\n try {\n const raw = localStorage.getItem(storageKey.value)\n const defaults = getDefaults()\n if (raw) {\n const data = JSON.parse(raw)\n local.value = data.settings\n ? reconcileOrders(deepMerge(defaults, data.settings) as DataListSettings, props.columns)\n : defaults\n } else {\n local.value = defaults\n }\n } catch {\n local.value = getDefaults()\n }\n applyLockedOverrides(local.value)\n emit('change', local.value)\n}\n\nfunction reconcileOrders(settings: DataListSettings, columns: Column[]): DataListSettings {\n const sourceOrder = columns.map((c) => c.property)\n const reconcile = (order: string[] | undefined): string[] => {\n const saved = (order ?? []).filter((p) => sourceOrder.includes(p))\n const savedSet = new Set(saved)\n const merged: string[] = []\n let savedIdx = 0\n for (const property of sourceOrder) {\n if (savedSet.has(property)) {\n merged.push(saved[savedIdx++]!)\n } else {\n merged.push(property)\n }\n }\n return merged\n }\n return {\n ...settings,\n columnOrder: reconcile(settings.columnOrder),\n cardHeaderOrder: reconcile(settings.cardHeaderOrder),\n }\n}\n\nfunction save() {\n try {\n const key = storageKey.value\n const raw = localStorage.getItem(key)\n const data = raw ? JSON.parse(raw) : {}\n data.settings = local.value\n localStorage.setItem(key, JSON.stringify(data))\n } catch (e) {\n console.error(e)\n }\n emit('change', local.value)\n}\n\nfunction update<K extends keyof DataListSettings>(key: K, value: DataListSettings[K]) {\n local.value = { ...local.value, [key]: value }\n save()\n}\n\nfunction toggleColumn(property: string) {\n update('columns', { ...local.value.columns, [property]: !local.value.columns[property] })\n}\n\nfunction toggleCardHeaderColumn(property: string) {\n update('cardHeaderColumns', {\n ...local.value.cardHeaderColumns,\n [property]: !local.value.cardHeaderColumns[property],\n })\n}\n\nfunction toggle(key: 'striped' | 'compact' | 'filtersEager') {\n update(key, !local.value[key])\n}\n\nfunction sortByOrder(cols: Column[], order: 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\nconst orderedColumns = computed(() => sortByOrder(props.columns, local.value.columnOrder))\n\nconst orderedCardHeaderColumns = computed(() =>\n sortByOrder(props.columns, local.value.cardHeaderOrder),\n)\n\nconst dragIndex = ref<number | null>(null)\nconst selectedReorderIndex = ref<number | null>(null)\n\nconst cardHeaderDragIndex = ref<number | null>(null)\nconst selectedCardHeaderIndex = ref<number | null>(null)\n\nfunction onDragStart(index: number) {\n dragIndex.value = index\n}\n\nfunction onDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (dragIndex.value === null || dragIndex.value === index) return\n const order = [...local.value.columnOrder]\n const moved = order.splice(dragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n dragIndex.value = index\n update('columnOrder', order)\n}\n\nfunction onDragEnd() {\n dragIndex.value = null\n}\n\nfunction selectForReorder(index: number) {\n selectedReorderIndex.value = selectedReorderIndex.value === index ? null : index\n}\n\nfunction moveSelected(direction: -1 | 1) {\n if (selectedReorderIndex.value === null) return\n const target = selectedReorderIndex.value + direction\n if (target < 0 || target >= local.value.columnOrder.length) return\n const order = [...local.value.columnOrder]\n const tmp = order[selectedReorderIndex.value]!\n order[selectedReorderIndex.value] = order[target]!\n order[target] = tmp\n update('columnOrder', order)\n selectedReorderIndex.value = target\n}\n\nfunction onCardHeaderDragStart(index: number) {\n cardHeaderDragIndex.value = index\n}\n\nfunction onCardHeaderDragOver(e: DragEvent, index: number) {\n e.preventDefault()\n if (cardHeaderDragIndex.value === null || cardHeaderDragIndex.value === index) return\n const order = [...local.value.cardHeaderOrder]\n const moved = order.splice(cardHeaderDragIndex.value, 1)[0]\n if (!moved) return\n order.splice(index, 0, moved)\n cardHeaderDragIndex.value = index\n update('cardHeaderOrder', order)\n}\n\nfunction onCardHeaderDragEnd() {\n cardHeaderDragIndex.value = null\n}\n\nfunction selectCardHeader(index: number) {\n selectedCardHeaderIndex.value = selectedCardHeaderIndex.value === index ? null : index\n}\n\nfunction moveCardHeader(direction: -1 | 1) {\n if (selectedCardHeaderIndex.value === null) return\n const target = selectedCardHeaderIndex.value + direction\n if (target < 0 || target >= local.value.cardHeaderOrder.length) return\n const order = [...local.value.cardHeaderOrder]\n const tmp = order[selectedCardHeaderIndex.value]!\n order[selectedCardHeaderIndex.value] = order[target]!\n order[target] = tmp\n update('cardHeaderOrder', order)\n selectedCardHeaderIndex.value = target\n}\n\nfunction reset() {\n localStorage.removeItem(storageKey.value)\n local.value = getDefaults()\n emit('change', local.value)\n}\n\nonMounted(load)\n\nwatch(\n () => props.columns,\n () => {\n local.value = reconcileOrders(local.value, props.columns)\n applyLockedOverrides(local.value)\n },\n)\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Lista beállítások\" :position=\"props.position\" @close=\"emit('close')\">\n <div class=\"list-options basic\">\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\">\n Elrendezés\n <span class=\"list-options__title-value\"\n >—\n {{\n local.layout === 'screen' ? 'Auto' : local.layout === 'table' ? 'Táblázat' : 'Kártyák'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'screen' }\"\n title=\"Kijelző méretéhez igazodó elrendezés\"\n @click=\"update('layout', 'screen')\"\n >\n <i class=\"fa-solid fa-display\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'table' }\"\n title=\"Táblázat nézet\"\n @click=\"update('layout', 'table')\"\n >\n <i class=\"fa-solid fa-table-list\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.layout === 'cards' }\"\n title=\"Kártya nézet\"\n @click=\"update('layout', 'cards')\"\n >\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Kompakt</b>: A sorok közötti térköz csökkentése<br><br><b>Sávos</b> (csak táblázat nézetben): A páros sorok háttere kicsit sötétebb '\n \"\n >\n Megjelenés <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('compact')\"\n title=\"A sorok közötti térköz csökkentése\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.compact }\"\n @click.stop=\"toggle('compact')\"\n ></span>\n <span>Kompakt</span>\n </li>\n <li\n class=\"list-options__item\"\n @click=\"toggle('striped')\"\n title=\"A páros sorok háttere kicsit sötétebb (csak táblázat nézetben)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.striped }\"\n @click.stop=\"toggle('striped')\"\n ></span>\n <span>Sávos (striped)</span>\n </li>\n </ul>\n </div>\n <div class=\"list-options__col list-options__col--full\">\n <h4\n class=\"list-options__title\"\n v-tooltip=\"'Betűméret: a lista összes szövegének alap mérete'\"\n >\n Betűméret\n <span class=\"list-options__title-value\"\n >—\n {{\n local.fontSize === 'small' ? 'Kicsi' : local.fontSize === 'normal' ? 'Normál' : 'Nagy'\n }}</span\n >\n </h4>\n <div class=\"layout-switch\">\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.fontSize === 'small' }\"\n title=\"Kis betűméret\"\n @click=\"update('fontSize', 'small')\"\n >\n <i class=\"fa-solid fa-a\" style=\"font-size: 0.725em\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.fontSize === 'normal' }\"\n title=\"Normál betűméret\"\n @click=\"update('fontSize', 'normal')\"\n >\n <i class=\"fa-solid fa-a\" style=\"font-size: 0.825rem\"></i>\n </button>\n <button\n class=\"layout-switch__btn\"\n :class=\"{ 'layout-switch__btn--active': local.fontSize === 'large' }\"\n title=\"Nagy betűméret\"\n @click=\"update('fontSize', 'large')\"\n >\n <i class=\"fa-solid fa-a\" style=\"font-size: 1.25em\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4 class=\"list-options__title\" v-tooltip=\"'Táblázat nézetben megjelenő oszlopok'\">\n Táblázat oszlopok <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedColumns\"\n :key=\"col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedReorderIndex === index,\n 'list-options__item--dragging': orderable && dragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onDragStart(index)\"\n @dragover.prevent=\"orderable && onDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectForReorder(index)\n : !isColumnLocked(col) && toggleColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.columns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div v-if=\"orderable && selectedReorderIndex !== null\" class=\"list-options__move-actions\">\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === 0\"\n @click=\"moveSelected(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedReorderIndex === orderedColumns.length - 1\"\n @click=\"moveSelected(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title flex-center gap-1\"\n v-tooltip=\"'Kártya nézetben, a sorok fejlécén megjelenő oszlopok'\"\n >\n Kártya fejléc <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n v-for=\"(col, index) in orderedCardHeaderColumns\"\n :key=\"'ch-' + col.property\"\n class=\"list-options__item\"\n :class=\"{\n 'list-options__item--disabled': isColumnLocked(col),\n 'list-options__item--selected': orderable && selectedCardHeaderIndex === index,\n 'list-options__item--dragging': orderable && cardHeaderDragIndex === index,\n }\"\n :draggable=\"orderable\"\n @dragstart.stop=\"orderable && onCardHeaderDragStart(index)\"\n @dragover.prevent=\"orderable && onCardHeaderDragOver($event, index)\"\n @drop.prevent\n @dragend=\"orderable && onCardHeaderDragEnd()\"\n @click.prevent=\"\n orderable\n ? selectCardHeader(index)\n : !isColumnLocked(col) && toggleCardHeaderColumn(col.property)\n \"\n >\n <i v-if=\"orderable\" class=\"fa-solid fa-grip-vertical list-options__drag-handle\"></i>\n <span\n class=\"list-options__toggle\"\n @click.stop=\"!isColumnLocked(col) && toggleCardHeaderColumn(col.property)\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.cardHeaderColumns[col.property] }\"\n ></span>\n <span>{{ col.label }}</span>\n </span>\n </li>\n </ul>\n <div\n v-if=\"orderable && selectedCardHeaderIndex !== null\"\n class=\"list-options__move-actions\"\n >\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === 0\"\n @click=\"moveCardHeader(-1)\"\n >\n <i class=\"fa-solid fa-arrow-up\"></i>\n </button>\n <button\n class=\"list-options__move-btn\"\n :disabled=\"selectedCardHeaderIndex === orderedCardHeaderColumns.length - 1\"\n @click=\"moveCardHeader(1)\"\n >\n <i class=\"fa-solid fa-arrow-down\"></i>\n </button>\n </div>\n </div>\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options-footer\">\n <Button\n icon=\"fa-solid fa-triangle-exclamation\"\n :disabled=\"!hasCustomSettings\"\n label=\"Alapértelmezés visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n />\n <Button label=\"OK\" @click=\"emit('close')\" />\n </div>\n <hr class=\"separator my-3\" />\n <div class=\"list-options advanced\">\n <div class=\"list-options__col\">\n <h4\n class=\"list-options__title\"\n v-tooltip.html=\"\n '<b>Azonnali szűrés</b>: Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép, míg kikapcsolva csak a „Szűrés” gombra kattintva kerülnek alkalmazásra.'\n \"\n >\n Haladó beállítások <i class=\"fa-regular fa-question-circle\"></i>\n </h4>\n <ul class=\"list-options__list\">\n <li\n class=\"list-options__item\"\n @click=\"toggle('filtersEager')\"\n title=\"Bekapcsolt állapotban a szűrő mezők módosítása azonnal érvénybe lép\"\n >\n <span\n class=\"c-checkbox\"\n :class=\"{ 'c-checkbox--checked': local.filtersEager }\"\n @click.stop=\"toggle('filtersEager')\"\n ></span>\n <span>Azonnali szűrés</span>\n </li>\n </ul>\n </div>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-options.scss\"></style>\n"],"mappings":""}
|