admins-components 9.0.34 → 9.0.35
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-components.js +35 -34
- package/dist/admins-components100.js +50 -80
- package/dist/admins-components100.js.map +1 -1
- package/dist/admins-components101.js +78 -109
- package/dist/admins-components101.js.map +1 -1
- package/dist/admins-components102.js +110 -44
- package/dist/admins-components102.js.map +1 -1
- package/dist/admins-components103.js +42 -101
- package/dist/admins-components103.js.map +1 -1
- package/dist/admins-components104.js +104 -18
- package/dist/admins-components104.js.map +1 -1
- package/dist/admins-components105.js +19 -6
- package/dist/admins-components105.js.map +1 -1
- package/dist/admins-components106.js +5 -250
- package/dist/admins-components106.js.map +1 -1
- package/dist/admins-components107.js +250 -25
- package/dist/admins-components107.js.map +1 -1
- package/dist/admins-components108.js +26 -27
- package/dist/admins-components108.js.map +1 -1
- package/dist/admins-components109.js +25 -169
- package/dist/admins-components109.js.map +1 -1
- package/dist/admins-components110.js +165 -61
- package/dist/admins-components110.js.map +1 -1
- package/dist/admins-components111.js +61 -60
- package/dist/admins-components111.js.map +1 -1
- package/dist/admins-components112.js +65 -28
- package/dist/admins-components112.js.map +1 -1
- package/dist/admins-components113.js +28 -14
- package/dist/admins-components113.js.map +1 -1
- package/dist/admins-components114.js +15 -26
- package/dist/admins-components114.js.map +1 -1
- package/dist/admins-components115.js +26 -8
- package/dist/admins-components115.js.map +1 -1
- package/dist/admins-components116.js +9 -4
- package/dist/admins-components116.js.map +1 -1
- package/dist/admins-components117.js +4 -3
- package/dist/admins-components117.js.map +1 -1
- package/dist/admins-components118.js +2 -2
- package/dist/admins-components118.js.map +1 -1
- package/dist/admins-components119.js +3 -21
- package/dist/admins-components119.js.map +1 -1
- package/dist/admins-components120.js +21 -14
- package/dist/admins-components120.js.map +1 -1
- package/dist/admins-components121.js +14 -8
- package/dist/admins-components121.js.map +1 -1
- package/dist/admins-components122.js +8 -13
- package/dist/admins-components122.js.map +1 -1
- package/dist/admins-components123.js +11 -24
- package/dist/admins-components123.js.map +1 -1
- package/dist/admins-components124.js +24 -81
- package/dist/admins-components124.js.map +1 -1
- package/dist/admins-components125.js +82 -10
- package/dist/admins-components125.js.map +1 -1
- package/dist/admins-components126.js +10 -4
- package/dist/admins-components126.js.map +1 -1
- package/dist/admins-components127.js +5 -8
- package/dist/admins-components127.js.map +1 -1
- package/dist/admins-components128.js +7 -6
- package/dist/admins-components128.js.map +1 -1
- package/dist/admins-components129.js +6 -5
- package/dist/admins-components129.js.map +1 -1
- package/dist/admins-components130.js +4 -13
- package/dist/admins-components130.js.map +1 -1
- package/dist/admins-components131.js +11 -9
- package/dist/admins-components131.js.map +1 -1
- package/dist/admins-components132.js +13 -30
- package/dist/admins-components132.js.map +1 -1
- package/dist/admins-components133.js +30 -4
- package/dist/admins-components133.js.map +1 -1
- package/dist/admins-components134.js +4 -29
- package/dist/admins-components134.js.map +1 -1
- package/dist/admins-components135.js +29 -5
- package/dist/admins-components135.js.map +1 -1
- package/dist/admins-components136.js +3 -3
- package/dist/admins-components136.js.map +1 -1
- package/dist/admins-components137.js +4 -7
- package/dist/admins-components137.js.map +1 -1
- package/dist/admins-components138.js +7 -73
- package/dist/admins-components138.js.map +1 -1
- package/dist/admins-components139.js +71 -26
- package/dist/admins-components139.js.map +1 -1
- package/dist/admins-components140.js +27 -57
- package/dist/admins-components140.js.map +1 -1
- package/dist/admins-components141.js +57 -22
- package/dist/admins-components141.js.map +1 -1
- package/dist/admins-components142.js +21 -47
- package/dist/admins-components142.js.map +1 -1
- package/dist/admins-components143.js +48 -29
- package/dist/admins-components143.js.map +1 -1
- package/dist/admins-components144.js +31 -3
- package/dist/admins-components144.js.map +1 -1
- package/dist/admins-components145.js +3 -179
- package/dist/admins-components145.js.map +1 -1
- package/dist/admins-components146.js +176 -43
- package/dist/admins-components146.js.map +1 -1
- package/dist/admins-components147.js +44 -35
- package/dist/admins-components147.js.map +1 -1
- package/dist/admins-components148.js +34 -43
- package/dist/admins-components148.js.map +1 -1
- package/dist/admins-components149.js +42 -137
- package/dist/admins-components149.js.map +1 -1
- package/dist/admins-components150.js +134 -51
- package/dist/admins-components150.js.map +1 -1
- package/dist/admins-components151.js +58 -7
- package/dist/admins-components151.js.map +1 -1
- package/dist/admins-components152.js +6 -5
- package/dist/admins-components152.js.map +1 -1
- package/dist/admins-components153.js +6 -76
- package/dist/admins-components153.js.map +1 -1
- package/dist/admins-components154.js +76 -29
- package/dist/admins-components154.js.map +1 -1
- package/dist/admins-components155.js +29 -1931
- package/dist/admins-components155.js.map +1 -1
- package/dist/admins-components156.js +1748 -24628
- package/dist/admins-components156.js.map +1 -1
- package/dist/admins-components157.js +24810 -8
- package/dist/admins-components157.js.map +1 -1
- package/dist/admins-components158.js +9 -7
- package/dist/admins-components158.js.map +1 -0
- package/dist/admins-components159.js +7 -142
- package/dist/admins-components160.js +141 -8
- package/dist/admins-components160.js.map +1 -1
- package/dist/admins-components161.js +3 -3
- package/dist/admins-components161.js.map +1 -1
- package/dist/admins-components162.js +10 -0
- package/dist/admins-components162.js.map +1 -0
- package/dist/admins-components164.js +161 -44
- package/dist/admins-components164.js.map +1 -1
- package/dist/admins-components165.js +50 -8
- package/dist/admins-components165.js.map +1 -1
- package/dist/admins-components166.js +8 -49
- package/dist/admins-components166.js.map +1 -1
- package/dist/admins-components167.js +50 -6
- package/dist/admins-components167.js.map +1 -1
- package/dist/admins-components168.js +6 -80
- package/dist/admins-components168.js.map +1 -1
- package/dist/admins-components169.js +70 -48
- package/dist/admins-components169.js.map +1 -1
- package/dist/admins-components170.js +30 -31
- package/dist/admins-components170.js.map +1 -1
- package/dist/admins-components171.js +58 -8
- package/dist/admins-components171.js.map +1 -1
- package/dist/admins-components172.js +8 -51
- package/dist/admins-components172.js.map +1 -1
- package/dist/admins-components173.js +51 -8
- package/dist/admins-components173.js.map +1 -1
- package/dist/admins-components174.js +10 -0
- package/dist/admins-components174.js.map +1 -0
- package/dist/{admins-components175.js → admins-components176.js} +3 -3
- package/dist/{admins-components175.js.map → admins-components176.js.map} +1 -1
- package/dist/admins-components21.js +114 -114
- package/dist/admins-components21.js.map +1 -1
- package/dist/admins-components22.js.map +1 -1
- package/dist/admins-components73.js +7 -122
- package/dist/admins-components73.js.map +1 -1
- package/dist/admins-components74.js +127 -0
- package/dist/admins-components74.js.map +1 -0
- package/dist/admins-components76.js +6 -59
- package/dist/admins-components76.js.map +1 -1
- package/dist/admins-components77.js +55 -217
- package/dist/admins-components77.js.map +1 -1
- package/dist/admins-components78.js +73 -0
- package/dist/admins-components78.js.map +1 -0
- package/dist/admins-components79.js +238 -6
- package/dist/admins-components79.js.map +1 -1
- package/dist/admins-components81.js +6 -251
- package/dist/admins-components81.js.map +1 -1
- package/dist/admins-components82.js +246 -0
- package/dist/admins-components82.js.map +1 -0
- package/dist/admins-components84.js +6 -37
- package/dist/admins-components84.js.map +1 -1
- package/dist/admins-components85.js +38 -0
- package/dist/{admins-components86.js.map → admins-components85.js.map} +1 -1
- package/dist/admins-components87.js +6 -198
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components88.js +200 -0
- package/dist/admins-components88.js.map +1 -0
- package/dist/admins-components90.js +6 -16
- package/dist/admins-components90.js.map +1 -1
- package/dist/admins-components91.js +16 -75
- package/dist/admins-components91.js.map +1 -1
- package/dist/admins-components92.js +76 -0
- package/dist/{admins-components93.js.map → admins-components92.js.map} +1 -1
- package/dist/admins-components94.js +6 -203
- package/dist/admins-components94.js.map +1 -1
- package/dist/admins-components95.js +204 -0
- package/dist/admins-components95.js.map +1 -0
- package/dist/admins-components97.js +6 -3
- package/dist/admins-components97.js.map +1 -1
- package/dist/admins-components98.js +3 -3
- package/dist/admins-components98.js.map +1 -1
- package/dist/admins-components99.js +3 -52
- package/dist/admins-components99.js.map +1 -1
- package/dist/main.css +1 -1
- package/dist/main.css.map +1 -1
- package/dist/src/components/data-table/FiltersHistory.vue.d.ts +10 -8
- package/dist/src/index.d.ts +3 -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/utils/dataFilters.d.ts +6 -2
- package/dist/src/utils/storageKey.d.ts +4 -0
- package/package.json +1 -1
- package/dist/admins-components159.js.map +0 -1
- package/dist/admins-components163.js +0 -169
- package/dist/admins-components163.js.map +0 -1
- package/dist/admins-components75.js +0 -7
- package/dist/admins-components75.js.map +0 -1
- package/dist/admins-components80.js +0 -53
- package/dist/admins-components80.js.map +0 -1
- package/dist/admins-components83.js +0 -7
- package/dist/admins-components83.js.map +0 -1
- package/dist/admins-components86.js +0 -7
- package/dist/admins-components89.js +0 -7
- package/dist/admins-components89.js.map +0 -1
- package/dist/admins-components93.js +0 -7
- package/dist/admins-components96.js +0 -7
- package/dist/admins-components96.js.map +0 -1
|
@@ -1,204 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { getFilterParams as a } from "./admins-components80.js";
|
|
7
|
-
import o from "./admins-components83.js";
|
|
8
|
-
import s from "./admins-components86.js";
|
|
9
|
-
import c from "./admins-components89.js";
|
|
10
|
-
import l from "./admins-components93.js";
|
|
11
|
-
import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, mergeDefaults as _, mergeProps as v, onBeforeUnmount as y, onMounted as b, openBlock as x, ref as S } from "vue";
|
|
12
|
-
//#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
|
|
13
|
-
var C = { class: "ac-component" }, w = { class: "c-data-list__toolbar" }, T = {
|
|
14
|
-
key: 2,
|
|
15
|
-
class: "flex-center gap-1"
|
|
16
|
-
}, E = { class: "ml-auto" }, D = {
|
|
17
|
-
layoutBreakpoint: 768,
|
|
18
|
-
orderable: !0,
|
|
19
|
-
loading: !1,
|
|
20
|
-
useSearch: !0,
|
|
21
|
-
useFilters: !0
|
|
22
|
-
}, O = /* @__PURE__ */ g({
|
|
23
|
-
__name: "DataList",
|
|
24
|
-
props: /* @__PURE__ */ _({
|
|
25
|
-
config: {},
|
|
26
|
-
items: {},
|
|
27
|
-
settings: {},
|
|
28
|
-
id: {},
|
|
29
|
-
layoutBreakpoint: {},
|
|
30
|
-
orderable: { type: Boolean },
|
|
31
|
-
pagination: {},
|
|
32
|
-
loading: { type: Boolean },
|
|
33
|
-
handleUrl: { type: Boolean },
|
|
34
|
-
useSearch: { type: Boolean },
|
|
35
|
-
useFilters: { type: Boolean },
|
|
36
|
-
searchConfig: {},
|
|
37
|
-
filterConfig: {}
|
|
38
|
-
}, {
|
|
39
|
-
...D,
|
|
40
|
-
searchConfig: void 0,
|
|
41
|
-
filterConfig: void 0
|
|
42
|
-
}),
|
|
43
|
-
emits: [
|
|
44
|
-
"filter-change",
|
|
45
|
-
"selection-change",
|
|
46
|
-
"settings-change",
|
|
47
|
-
"pagination-change",
|
|
48
|
-
"sort-change",
|
|
49
|
-
"search-change"
|
|
50
|
-
],
|
|
51
|
-
setup(g, { expose: _, emit: D }) {
|
|
52
|
-
let O = S(null), k = g;
|
|
53
|
-
function A(e) {
|
|
54
|
-
let t = k[e];
|
|
55
|
-
return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : k.handleUrl;
|
|
56
|
-
}
|
|
57
|
-
let j = u(() => ({
|
|
58
|
-
...k.searchConfig,
|
|
59
|
-
handleUrl: A("searchConfig")
|
|
60
|
-
})), M = u(() => ({
|
|
61
|
-
...k.filterConfig,
|
|
62
|
-
handleUrl: A("filterConfig")
|
|
63
|
-
})), N = D, P = S(!1), F = S(!1), I = S(null), L = S(!1), R = S(null), z = S(!1), B = S(k.filterConfig?.items ? a(k.filterConfig.items) ?? {} : {}), V = null;
|
|
64
|
-
b(() => {
|
|
65
|
-
V = new ResizeObserver((e) => {
|
|
66
|
-
L.value = (e[0]?.contentRect.width ?? 0) < k.layoutBreakpoint;
|
|
67
|
-
}), R.value && V.observe(R.value);
|
|
68
|
-
}), y(() => V?.disconnect());
|
|
69
|
-
let H = u(() => {
|
|
70
|
-
let e = I.value?.layout;
|
|
71
|
-
return e === "table" || e === "cards" ? e : L.value ? "cards" : "table";
|
|
72
|
-
}), U = u(() => {
|
|
73
|
-
if (!I.value) return k.config;
|
|
74
|
-
let e = I.value.columnOrder, t = k.config.columns.map((e) => ({
|
|
75
|
-
...e,
|
|
76
|
-
visible: I.value.columns[e.property] ?? e.visible !== !1
|
|
77
|
-
}));
|
|
78
|
-
return e?.length && t.sort((t, n) => {
|
|
79
|
-
let r = e.indexOf(t.property), i = e.indexOf(n.property);
|
|
80
|
-
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
81
|
-
}), {
|
|
82
|
-
...k.config,
|
|
83
|
-
columns: t
|
|
84
|
-
};
|
|
85
|
-
});
|
|
86
|
-
function W(e) {
|
|
87
|
-
I.value = e, N("settings-change", e);
|
|
88
|
-
}
|
|
89
|
-
_({
|
|
90
|
-
openOptions: () => P.value = !0,
|
|
91
|
-
closeOptions: () => P.value = !1,
|
|
92
|
-
openFilters: () => z.value = !0,
|
|
93
|
-
closeFilters: () => z.value = !1
|
|
94
|
-
});
|
|
95
|
-
async function G(e) {
|
|
96
|
-
z.value = !0, setTimeout(() => {
|
|
97
|
-
O.value?.focusFilter(e);
|
|
98
|
-
}, 300);
|
|
99
|
-
}
|
|
100
|
-
function K(e) {
|
|
101
|
-
B.value = e.values, N("filter-change", e.transformed);
|
|
102
|
-
}
|
|
103
|
-
let q = u(() => Object.values(B.value).filter((e) => e != null && e !== "").length), J = u(() => !!k.pagination && (k.items.length > 0 || !k.loading)), Y = (e) => {
|
|
104
|
-
N("search-change", e);
|
|
105
|
-
};
|
|
106
|
-
return (a, u) => (x(), p("div", C, [m("div", {
|
|
107
|
-
ref_key: "root",
|
|
108
|
-
ref: R,
|
|
109
|
-
class: "c-data-list"
|
|
110
|
-
}, [
|
|
111
|
-
m("div", w, [
|
|
112
|
-
g.useSearch ? (x(), d(l, v({ key: 0 }, j.value, { onSearchChange: Y }), null, 16)) : f("", !0),
|
|
113
|
-
g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(e, {
|
|
114
|
-
key: 1,
|
|
115
|
-
label: "Szűrők",
|
|
116
|
-
icon: "fa-solid fa-filter",
|
|
117
|
-
onClick: u[0] ||= (e) => z.value = !0,
|
|
118
|
-
style: { "flex-shrink": "0" },
|
|
119
|
-
type: q.value > 0 ? "info" : "normal",
|
|
120
|
-
indicator: q.value > 0 ? q.value : void 0
|
|
121
|
-
}, null, 8, ["type", "indicator"])) : f("", !0),
|
|
122
|
-
g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), p("div", T, [h(s, {
|
|
123
|
-
filters: B.value,
|
|
124
|
-
items: g.filterConfig.items,
|
|
125
|
-
onRemove: u[1] ||= (e) => O.value?.clearFilter(e),
|
|
126
|
-
onOpenFilter: G
|
|
127
|
-
}, null, 8, ["filters", "items"])])) : f("", !0),
|
|
128
|
-
m("div", E, [h(e, {
|
|
129
|
-
icon: "fa-solid fa-gear",
|
|
130
|
-
class: "lh-normal",
|
|
131
|
-
onClick: u[2] ||= (e) => P.value = !0
|
|
132
|
-
}), h(e, {
|
|
133
|
-
icon: "fa-solid fa-question",
|
|
134
|
-
class: "lh-normal",
|
|
135
|
-
onClick: u[3] ||= (e) => F.value = !0
|
|
136
|
-
})])
|
|
137
|
-
]),
|
|
138
|
-
g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(o, v({
|
|
139
|
-
key: 0,
|
|
140
|
-
ref_key: "dataFiltersRef",
|
|
141
|
-
ref: O
|
|
142
|
-
}, M.value, {
|
|
143
|
-
"storage-key": g.id,
|
|
144
|
-
open: z.value,
|
|
145
|
-
onClose: u[4] ||= (e) => z.value = !1,
|
|
146
|
-
onChange: K
|
|
147
|
-
}), null, 16, ["storage-key", "open"])) : f("", !0),
|
|
148
|
-
h(c, {
|
|
149
|
-
open: F.value,
|
|
150
|
-
onClose: u[5] ||= (e) => F.value = !1
|
|
151
|
-
}, null, 8, ["open"]),
|
|
152
|
-
H.value === "table" ? (x(), d(t, {
|
|
153
|
-
key: 1,
|
|
154
|
-
config: U.value,
|
|
155
|
-
loading: g.loading,
|
|
156
|
-
items: g.items,
|
|
157
|
-
settings: I.value ?? void 0,
|
|
158
|
-
onFilterChange: u[6] ||= (e) => N("filter-change", e),
|
|
159
|
-
onSelectionChange: u[7] ||= (e) => N("selection-change", e),
|
|
160
|
-
onSortChange: u[8] ||= (e) => N("sort-change", e)
|
|
161
|
-
}, null, 8, [
|
|
162
|
-
"config",
|
|
163
|
-
"loading",
|
|
164
|
-
"items",
|
|
165
|
-
"settings"
|
|
166
|
-
])) : (x(), d(n, {
|
|
167
|
-
key: 2,
|
|
168
|
-
config: U.value,
|
|
169
|
-
loading: g.loading,
|
|
170
|
-
items: g.items,
|
|
171
|
-
settings: I.value ?? void 0,
|
|
172
|
-
onSelectionChange: u[9] ||= (e) => N("selection-change", e)
|
|
173
|
-
}, null, 8, [
|
|
174
|
-
"config",
|
|
175
|
-
"loading",
|
|
176
|
-
"items",
|
|
177
|
-
"settings"
|
|
178
|
-
])),
|
|
179
|
-
g.pagination && J.value ? (x(), d(i, {
|
|
180
|
-
key: 3,
|
|
181
|
-
settings: g.pagination,
|
|
182
|
-
"storage-key": g.id,
|
|
183
|
-
"onUpdate:pagination": u[10] ||= (e) => N("pagination-change", e)
|
|
184
|
-
}, null, 8, ["settings", "storage-key"])) : f("", !0),
|
|
185
|
-
h(r, {
|
|
186
|
-
open: P.value,
|
|
187
|
-
columns: g.config.columns,
|
|
188
|
-
settings: g.settings ?? {},
|
|
189
|
-
"storage-key": g.id,
|
|
190
|
-
orderable: g.orderable,
|
|
191
|
-
onClose: u[11] ||= (e) => P.value = !1,
|
|
192
|
-
onChange: W
|
|
193
|
-
}, null, 8, [
|
|
194
|
-
"open",
|
|
195
|
-
"columns",
|
|
196
|
-
"settings",
|
|
197
|
-
"storage-key",
|
|
198
|
-
"orderable"
|
|
199
|
-
])
|
|
200
|
-
], 512)]));
|
|
201
|
-
}
|
|
202
|
-
});
|
|
1
|
+
import './src/styles/components/data-table/data-search.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
+
import e from "./admins-components92.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
//#region src/components/data-table/DataSearch.vue
|
|
5
|
+
var t = e;
|
|
203
6
|
//#endregion
|
|
204
|
-
export {
|
|
7
|
+
export { t as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components94.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\nimport DataTable from '@/components/data-table/DataTable.vue'\nimport DataCards from '@/components/data-table/DataCards.vue'\nimport DataListOptions from '@/components/data-table/DataListOptions.vue'\nimport DataPaginator from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport type {\n DataListConfig,\n DataListSettings,\n PageSettings,\n PaginatorSettings,\n} from '@/types/data-list'\nimport type { FilterValue } from '@/types/data-list'\nimport DataFilters, {\n type FilterResponse,\n type DataFiltersProps,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport { getFilterParams } from '@/utils/dataFilters'\nimport DataSearch, { type DataSearchProps } from './DataSearch.vue'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\n searchConfig: undefined,\n filterConfig: undefined,\n})\n\nfunction resolvedHandleUrl(side: 'searchConfig' | 'filterConfig'): boolean | undefined {\n const sideConfig = props[side]\n if (sideConfig && Object.hasOwn(sideConfig as object, 'handleUrl')) {\n return (sideConfig as { handleUrl?: boolean }).handleUrl\n }\n return props.handleUrl\n}\n\nconst mergedSearchConfig = computed<DataSearchProps>(() => ({\n ...props.searchConfig,\n handleUrl: resolvedHandleUrl('searchConfig'),\n}))\n\nconst mergedFilterConfig = computed<DataFiltersProps>(() => ({\n ...(props.filterConfig as DataFiltersProps),\n handleUrl: resolvedHandleUrl('filterConfig'),\n}))\n\nconst emit = defineEmits<{\n 'filter-change': [filters: Record<string, FilterValue>]\n 'selection-change': [selected: unknown[]]\n 'settings-change': [settings: DataListSettings]\n 'pagination-change': [pagination: PageSettings]\n 'sort-change': [sort: { key: string; direction: 'asc' | 'desc' }]\n 'search-change': [filters: Record<string, string | boolean>]\n}>()\n\nconst showOptions = ref(false)\nconst showGuide = ref(false)\nconst resolvedSettings = ref<DataListSettings | null>(null)\nconst isMobile = ref(false)\nconst root = ref<HTMLElement | null>(null)\nconst showFilters = ref(false)\n\nconst activeFilters = ref<Record<string, any>>(\n props.filterConfig?.items ? (getFilterParams(props.filterConfig.items) ?? {}) : {},\n)\n\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n resizeObserver = new ResizeObserver((entries) => {\n isMobile.value = (entries[0]?.contentRect.width ?? 0) < props.layoutBreakpoint\n })\n if (root.value) resizeObserver.observe(root.value)\n})\n\nonBeforeUnmount(() => resizeObserver?.disconnect())\n\nconst effectiveLayout = computed<'table' | 'cards'>(() => {\n const layout = resolvedSettings.value?.layout\n if (layout === 'table' || layout === 'cards') return layout\n return isMobile.value ? 'cards' : 'table'\n})\n\nconst internalConfig = computed<DataListConfig>(() => {\n if (!resolvedSettings.value) return props.config\n const order = resolvedSettings.value.columnOrder\n const mapped = props.config.columns.map((c) => ({\n ...c,\n visible: resolvedSettings.value!.columns[c.property] ?? c.visible !== false,\n }))\n if (order?.length) {\n mapped.sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return { ...props.config, columns: mapped }\n})\n\nfunction onSettingsChange(s: DataListSettings) {\n resolvedSettings.value = s\n emit('settings-change', s)\n}\n\ndefineExpose({\n openOptions: () => (showOptions.value = true),\n closeOptions: () => (showOptions.value = false),\n openFilters: () => (showFilters.value = true),\n closeFilters: () => (showFilters.value = false),\n})\n\nasync function openFilter(key: string) {\n showFilters.value = true\n setTimeout(() => {\n dataFiltersRef.value?.focusFilter(key)\n }, 300)\n}\n\nfunction onFilterChange(response: FilterResponse) {\n activeFilters.value = response.values\n emit('filter-change', response.transformed)\n}\n\nconst activeFiltersCount = computed(\n () => Object.values(activeFilters.value).filter((v) => v != null && v !== '').length,\n)\n\nconst showPaginator = computed(\n () => !!props.pagination && (props.items.length > 0 || !props.loading),\n)\n\nconst searchChange = (value: Record<string, string | boolean>) => {\n emit('search-change', value)\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <div class=\"c-data-list__toolbar\">\n <DataSearch v-if=\"useSearch\" v-bind=\"mergedSearchConfig\" @search-change=\"searchChange\" />\n <Button\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n label=\"Szűrők\"\n icon=\"fa-solid fa-filter\"\n @click=\"showFilters = true\"\n style=\"flex-shrink: 0\"\n :type=\"activeFiltersCount > 0 ? 'info' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"ml-auto\">\n <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\n <Button icon=\"fa-solid fa-question\" class=\"lh-normal\" @click=\"showGuide = true\" />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n v-bind=\"mergedFilterConfig\"\n :storage-key=\"id\"\n :open=\"showFilters\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n\n <!-- <div class=\"c-data-list__toolbar\">\n <Button\n\n icon=\"fa-solid fa-gear\"\n class=\"c-data-list__toolbar__item\"\n size=\"small\"\n @click=\"showOptions = true\"\n />\n <Button\n\n icon=\"fa-solid fa-question\"\n icon-position=\"right\"\n class=\"c-data-list__toolbar__item ml-auto\"\n label-alignment-fix\n size=\"small\"\n @click=\"showGuide = true\"\n />\n </div> -->\n <DataListGuide :open=\"showGuide\" @close=\"showGuide = false\" />\n <DataTable\n v-if=\"effectiveLayout === 'table'\"\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\n\n <DataCards\n v-else\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @selection-change=\"emit('selection-change', $event)\"\n />\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n @update:pagination=\"emit('pagination-change', $event)\"\n />\n\n <DataListOptions\n :open=\"showOptions\"\n :columns=\"config.columns\"\n :settings=\"settings ?? {}\"\n :storage-key=\"id\"\n :orderable=\"orderable\"\n @close=\"showOptions = false\"\n @change=\"onSettingsChange\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"admins-components94.js","names":[],"sources":["../src/components/data-table/DataSearch.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface DataSearchProps {\n showExactMatch?: boolean\n showSearch?: boolean\n placeholder?: string\n handleUrl?: boolean\n searchKey?: string\n exactMatchKey?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport Checkbox from '@/components/Checkbox.vue'\nimport TextInput from '@/components/TextInput.vue'\nimport { debounce } from '@/utils/debounce'\nimport { getUrlParam, removeUrlParam, setUrlParam } from '@/utils/url'\nimport { onMounted, ref } from 'vue'\n\nconst props = withDefaults(\n defineProps<DataSearchProps>(),\n {\n showExactMatch: true,\n showSearch: true,\n placeholder: 'Keresés...',\n handleUrl: false,\n searchKey: 'search',\n exactMatchKey: 'exactMatch',\n },\n)\n\ntype SearchFilterPayload = { [k: string]: string | boolean }\n\nconst exactMatch = ref<boolean | undefined>(false)\nconst search = ref<string>('')\n\nconst emit = defineEmits<{\n 'search-change': [filters: SearchFilterPayload]\n}>()\n\nfunction emitChange() {\n const filters: SearchFilterPayload = {}\n if (props.showSearch) filters[props.searchKey] = search.value\n if (props.showExactMatch) filters[props.exactMatchKey] = exactMatch.value ?? false\n emit('search-change', filters)\n}\n\nfunction onCheckboxChange(value: boolean | undefined) {\n exactMatch.value = value\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction onSearchChange(value: string | number | null) {\n search.value = value == null ? '' : String(value)\n emitChange()\n debouncedSyncToUrl()\n}\n\nfunction readUrlOnMount() {\n const rawSearch = getUrlParam(props.searchKey)\n if (rawSearch && rawSearch !== '') search.value = rawSearch\n\n const rawExact = getUrlParam(props.exactMatchKey)\n if (rawExact === 'true' || rawExact === '1') exactMatch.value = true\n else if (rawExact === 'false' || rawExact === '0') exactMatch.value = false\n}\n\nfunction syncToUrl() {\n if (!props.handleUrl) return\n\n if (search.value === '') removeUrlParam(props.searchKey)\n else setUrlParam(props.searchKey, search.value)\n\n const exact = exactMatch.value ?? false\n if (!exact) removeUrlParam(props.exactMatchKey)\n else setUrlParam(props.exactMatchKey, 'true')\n}\n\nconst debouncedSyncToUrl = debounce(syncToUrl, 300)\n\nonMounted(() => {\n if (!props.handleUrl) return\n readUrlOnMount()\n\n emitChange()\n})\n</script>\n<template>\n <div class=\"data-search-wrapper\">\n <Checkbox\n v-if=\"showExactMatch\"\n :model-value=\"exactMatch\"\n class=\"gap-1\"\n @update:model-value=\"onCheckboxChange\"\n >\n <template #label>\n <span class=\"data-search-label\">Pontos<br />egyezés </span>\n </template>\n </Checkbox>\n <TextInput\n v-if=\"showSearch\"\n type=\"text\"\n clearable\n :model-value=\"search\"\n label-on-border=\"Keresés\"\n :placeholder=\"placeholder\"\n :autocomplete=\"false\"\n @update:model-value=\"onSearchChange\"\n />\n </div>\n</template>\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-search.scss\"></style>\n"],"mappings":""}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import e from "./admins-components6.js";
|
|
2
|
+
import t from "./admins-components65.js";
|
|
3
|
+
import n from "./admins-components68.js";
|
|
4
|
+
import r from "./admins-components72.js";
|
|
5
|
+
import i from "./admins-components76.js";
|
|
6
|
+
import { getDefaultFilterRaws as a } from "./admins-components78.js";
|
|
7
|
+
import o from "./admins-components84.js";
|
|
8
|
+
import s from "./admins-components87.js";
|
|
9
|
+
import c from "./admins-components90.js";
|
|
10
|
+
import l from "./admins-components94.js";
|
|
11
|
+
import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, mergeDefaults as _, mergeProps as v, onBeforeUnmount as y, onMounted as b, openBlock as x, ref as S } from "vue";
|
|
12
|
+
//#region src/components/data-table/DataList.vue?vue&type=script&setup=true&lang.ts
|
|
13
|
+
var C = { class: "ac-component" }, w = { class: "c-data-list__toolbar" }, T = {
|
|
14
|
+
key: 2,
|
|
15
|
+
class: "flex-center gap-1"
|
|
16
|
+
}, E = { class: "flex-center ml-auto nowrap" }, D = {
|
|
17
|
+
layoutBreakpoint: 768,
|
|
18
|
+
orderable: !0,
|
|
19
|
+
loading: !1,
|
|
20
|
+
useSearch: !0,
|
|
21
|
+
useFilters: !0
|
|
22
|
+
}, O = /* @__PURE__ */ g({
|
|
23
|
+
__name: "DataList",
|
|
24
|
+
props: /* @__PURE__ */ _({
|
|
25
|
+
config: {},
|
|
26
|
+
items: {},
|
|
27
|
+
settings: {},
|
|
28
|
+
id: {},
|
|
29
|
+
layoutBreakpoint: {},
|
|
30
|
+
orderable: { type: Boolean },
|
|
31
|
+
pagination: {},
|
|
32
|
+
loading: { type: Boolean },
|
|
33
|
+
handleUrl: { type: Boolean },
|
|
34
|
+
useSearch: { type: Boolean },
|
|
35
|
+
useFilters: { type: Boolean },
|
|
36
|
+
searchConfig: {},
|
|
37
|
+
filterConfig: {}
|
|
38
|
+
}, {
|
|
39
|
+
...D,
|
|
40
|
+
searchConfig: void 0,
|
|
41
|
+
filterConfig: void 0
|
|
42
|
+
}),
|
|
43
|
+
emits: [
|
|
44
|
+
"filter-change",
|
|
45
|
+
"selection-change",
|
|
46
|
+
"settings-change",
|
|
47
|
+
"pagination-change",
|
|
48
|
+
"sort-change",
|
|
49
|
+
"search-change"
|
|
50
|
+
],
|
|
51
|
+
setup(g, { expose: _, emit: D }) {
|
|
52
|
+
let O = S(null), k = g;
|
|
53
|
+
function A(e) {
|
|
54
|
+
let t = k[e];
|
|
55
|
+
return t && Object.hasOwn(t, "handleUrl") ? t.handleUrl : k.handleUrl;
|
|
56
|
+
}
|
|
57
|
+
let j = u(() => ({
|
|
58
|
+
...k.searchConfig,
|
|
59
|
+
handleUrl: A("searchConfig")
|
|
60
|
+
})), M = u(() => ({
|
|
61
|
+
...k.filterConfig,
|
|
62
|
+
handleUrl: A("filterConfig")
|
|
63
|
+
})), N = D, P = S(!1), F = S(!1), I = S(null), L = S(!1), R = S(null), z = S(!1), B = S(k.filterConfig?.items ? a(k.filterConfig.items, k.id) : {}), V = null;
|
|
64
|
+
b(() => {
|
|
65
|
+
V = new ResizeObserver((e) => {
|
|
66
|
+
L.value = (e[0]?.contentRect.width ?? 0) < k.layoutBreakpoint;
|
|
67
|
+
}), R.value && V.observe(R.value);
|
|
68
|
+
}), y(() => V?.disconnect());
|
|
69
|
+
let H = u(() => {
|
|
70
|
+
let e = I.value?.layout;
|
|
71
|
+
return e === "table" || e === "cards" ? e : L.value ? "cards" : "table";
|
|
72
|
+
}), U = u(() => {
|
|
73
|
+
if (!I.value) return k.config;
|
|
74
|
+
let e = I.value.columnOrder, t = k.config.columns.map((e) => ({
|
|
75
|
+
...e,
|
|
76
|
+
visible: I.value.columns[e.property] ?? e.visible !== !1
|
|
77
|
+
}));
|
|
78
|
+
return e?.length && t.sort((t, n) => {
|
|
79
|
+
let r = e.indexOf(t.property), i = e.indexOf(n.property);
|
|
80
|
+
return (r === -1 ? 999 : r) - (i === -1 ? 999 : i);
|
|
81
|
+
}), {
|
|
82
|
+
...k.config,
|
|
83
|
+
columns: t
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
function W(e) {
|
|
87
|
+
I.value = e, N("settings-change", e);
|
|
88
|
+
}
|
|
89
|
+
_({
|
|
90
|
+
openOptions: () => P.value = !0,
|
|
91
|
+
closeOptions: () => P.value = !1,
|
|
92
|
+
openFilters: () => z.value = !0,
|
|
93
|
+
closeFilters: () => z.value = !1
|
|
94
|
+
});
|
|
95
|
+
async function G(e) {
|
|
96
|
+
z.value = !0, setTimeout(() => {
|
|
97
|
+
O.value?.focusFilter(e);
|
|
98
|
+
}, 300);
|
|
99
|
+
}
|
|
100
|
+
function K(e) {
|
|
101
|
+
B.value = e.values, N("filter-change", e.transformed);
|
|
102
|
+
}
|
|
103
|
+
let q = u(() => Object.values(B.value).filter((e) => e != null && e !== "").length), J = u(() => !!k.pagination && (k.items.length > 0 || !k.loading)), Y = (e) => {
|
|
104
|
+
N("search-change", e);
|
|
105
|
+
};
|
|
106
|
+
return (a, u) => (x(), p("div", C, [m("div", {
|
|
107
|
+
ref_key: "root",
|
|
108
|
+
ref: R,
|
|
109
|
+
class: "c-data-list"
|
|
110
|
+
}, [
|
|
111
|
+
m("div", w, [
|
|
112
|
+
g.useSearch ? (x(), d(l, v({ key: 0 }, j.value, { onSearchChange: Y }), null, 16)) : f("", !0),
|
|
113
|
+
g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(e, {
|
|
114
|
+
key: 1,
|
|
115
|
+
label: "Szűrők",
|
|
116
|
+
icon: "fa-solid fa-filter",
|
|
117
|
+
onClick: u[0] ||= (e) => z.value = !0,
|
|
118
|
+
style: { "flex-shrink": "0" },
|
|
119
|
+
type: q.value > 0 ? "info" : "normal",
|
|
120
|
+
indicator: q.value > 0 ? q.value : void 0
|
|
121
|
+
}, null, 8, ["type", "indicator"])) : f("", !0),
|
|
122
|
+
g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), p("div", T, [h(s, {
|
|
123
|
+
filters: B.value,
|
|
124
|
+
items: g.filterConfig.items,
|
|
125
|
+
onRemove: u[1] ||= (e) => O.value?.clearFilter(e),
|
|
126
|
+
onOpenFilter: G
|
|
127
|
+
}, null, 8, ["filters", "items"])])) : f("", !0),
|
|
128
|
+
m("div", E, [h(e, {
|
|
129
|
+
icon: "fa-solid fa-gear",
|
|
130
|
+
class: "lh-normal",
|
|
131
|
+
onClick: u[2] ||= (e) => P.value = !0
|
|
132
|
+
}), h(e, {
|
|
133
|
+
icon: "fa-solid fa-question",
|
|
134
|
+
class: "lh-normal",
|
|
135
|
+
onClick: u[3] ||= (e) => F.value = !0
|
|
136
|
+
})])
|
|
137
|
+
]),
|
|
138
|
+
g.useFilters && g.filterConfig?.items && g.filterConfig.items.length > 0 ? (x(), d(o, v({
|
|
139
|
+
key: 0,
|
|
140
|
+
ref_key: "dataFiltersRef",
|
|
141
|
+
ref: O
|
|
142
|
+
}, M.value, {
|
|
143
|
+
"storage-key": g.id,
|
|
144
|
+
open: z.value,
|
|
145
|
+
onClose: u[4] ||= (e) => z.value = !1,
|
|
146
|
+
onChange: K
|
|
147
|
+
}), null, 16, ["storage-key", "open"])) : f("", !0),
|
|
148
|
+
h(c, {
|
|
149
|
+
open: F.value,
|
|
150
|
+
onClose: u[5] ||= (e) => F.value = !1
|
|
151
|
+
}, null, 8, ["open"]),
|
|
152
|
+
H.value === "table" ? (x(), d(t, {
|
|
153
|
+
key: 1,
|
|
154
|
+
config: U.value,
|
|
155
|
+
loading: g.loading,
|
|
156
|
+
items: g.items,
|
|
157
|
+
settings: I.value ?? void 0,
|
|
158
|
+
onFilterChange: u[6] ||= (e) => N("filter-change", e),
|
|
159
|
+
onSelectionChange: u[7] ||= (e) => N("selection-change", e),
|
|
160
|
+
onSortChange: u[8] ||= (e) => N("sort-change", e)
|
|
161
|
+
}, null, 8, [
|
|
162
|
+
"config",
|
|
163
|
+
"loading",
|
|
164
|
+
"items",
|
|
165
|
+
"settings"
|
|
166
|
+
])) : (x(), d(n, {
|
|
167
|
+
key: 2,
|
|
168
|
+
config: U.value,
|
|
169
|
+
loading: g.loading,
|
|
170
|
+
items: g.items,
|
|
171
|
+
settings: I.value ?? void 0,
|
|
172
|
+
onSelectionChange: u[9] ||= (e) => N("selection-change", e)
|
|
173
|
+
}, null, 8, [
|
|
174
|
+
"config",
|
|
175
|
+
"loading",
|
|
176
|
+
"items",
|
|
177
|
+
"settings"
|
|
178
|
+
])),
|
|
179
|
+
g.pagination && J.value ? (x(), d(i, {
|
|
180
|
+
key: 3,
|
|
181
|
+
settings: g.pagination,
|
|
182
|
+
"storage-key": g.id,
|
|
183
|
+
"onUpdate:pagination": u[10] ||= (e) => N("pagination-change", e)
|
|
184
|
+
}, null, 8, ["settings", "storage-key"])) : f("", !0),
|
|
185
|
+
h(r, {
|
|
186
|
+
open: P.value,
|
|
187
|
+
columns: g.config.columns,
|
|
188
|
+
settings: g.settings ?? {},
|
|
189
|
+
"storage-key": g.id,
|
|
190
|
+
orderable: g.orderable,
|
|
191
|
+
onClose: u[11] ||= (e) => P.value = !1,
|
|
192
|
+
onChange: W
|
|
193
|
+
}, null, 8, [
|
|
194
|
+
"open",
|
|
195
|
+
"columns",
|
|
196
|
+
"settings",
|
|
197
|
+
"storage-key",
|
|
198
|
+
"orderable"
|
|
199
|
+
])
|
|
200
|
+
], 512)]));
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
//#endregion
|
|
204
|
+
export { D as dataListDefaults, O as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components95.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\nimport DataTable from '@/components/data-table/DataTable.vue'\nimport DataCards from '@/components/data-table/DataCards.vue'\nimport DataListOptions from '@/components/data-table/DataListOptions.vue'\nimport DataPaginator from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport type {\n DataListConfig,\n DataListSettings,\n PageSettings,\n PaginatorSettings,\n} from '@/types/data-list'\nimport type { FilterValue } from '@/types/data-list'\nimport DataFilters, {\n type FilterResponse,\n type DataFiltersProps,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport DataSearch, { type DataSearchProps } from './DataSearch.vue'\nimport { getDefaultFilterRaws } from '@/utils/dataFilters.ts'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\n searchConfig: undefined,\n filterConfig: undefined,\n})\n\nfunction resolvedHandleUrl(side: 'searchConfig' | 'filterConfig'): boolean | undefined {\n const sideConfig = props[side]\n if (sideConfig && Object.hasOwn(sideConfig as object, 'handleUrl')) {\n return (sideConfig as { handleUrl?: boolean }).handleUrl\n }\n return props.handleUrl\n}\n\nconst mergedSearchConfig = computed<DataSearchProps>(() => ({\n ...props.searchConfig,\n handleUrl: resolvedHandleUrl('searchConfig'),\n}))\n\nconst mergedFilterConfig = computed<DataFiltersProps>(() => ({\n ...(props.filterConfig as DataFiltersProps),\n handleUrl: resolvedHandleUrl('filterConfig'),\n}))\n\nconst emit = defineEmits<{\n 'filter-change': [filters: Record<string, FilterValue>]\n 'selection-change': [selected: unknown[]]\n 'settings-change': [settings: DataListSettings]\n 'pagination-change': [pagination: PageSettings]\n 'sort-change': [sort: { key: string; direction: 'asc' | 'desc' }]\n 'search-change': [filters: Record<string, string | boolean>]\n}>()\n\nconst showOptions = ref(false)\nconst showGuide = ref(false)\nconst resolvedSettings = ref<DataListSettings | null>(null)\nconst isMobile = ref(false)\nconst root = ref<HTMLElement | null>(null)\nconst showFilters = ref(false)\n\nconst activeFilters = ref<Record<string, unknown>>(\n props.filterConfig?.items ? getDefaultFilterRaws(props.filterConfig.items, props.id) : {},\n)\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n resizeObserver = new ResizeObserver((entries) => {\n isMobile.value = (entries[0]?.contentRect.width ?? 0) < props.layoutBreakpoint\n })\n if (root.value) resizeObserver.observe(root.value)\n})\n\nonBeforeUnmount(() => resizeObserver?.disconnect())\n\nconst effectiveLayout = computed<'table' | 'cards'>(() => {\n const layout = resolvedSettings.value?.layout\n if (layout === 'table' || layout === 'cards') return layout\n return isMobile.value ? 'cards' : 'table'\n})\n\nconst internalConfig = computed<DataListConfig>(() => {\n if (!resolvedSettings.value) return props.config\n const order = resolvedSettings.value.columnOrder\n const mapped = props.config.columns.map((c) => ({\n ...c,\n visible: resolvedSettings.value!.columns[c.property] ?? c.visible !== false,\n }))\n if (order?.length) {\n mapped.sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return { ...props.config, columns: mapped }\n})\n\nfunction onSettingsChange(s: DataListSettings) {\n resolvedSettings.value = s\n emit('settings-change', s)\n}\n\ndefineExpose({\n openOptions: () => (showOptions.value = true),\n closeOptions: () => (showOptions.value = false),\n openFilters: () => (showFilters.value = true),\n closeFilters: () => (showFilters.value = false),\n})\n\nasync function openFilter(key: string) {\n showFilters.value = true\n setTimeout(() => {\n dataFiltersRef.value?.focusFilter(key)\n }, 300)\n}\n\nfunction onFilterChange(response: FilterResponse) {\n activeFilters.value = response.values\n emit('filter-change', response.transformed)\n}\n\nconst activeFiltersCount = computed(\n () => Object.values(activeFilters.value).filter((v) => v != null && v !== '').length,\n)\n\nconst showPaginator = computed(\n () => !!props.pagination && (props.items.length > 0 || !props.loading),\n)\n\nconst searchChange = (value: Record<string, string | boolean>) => {\n emit('search-change', value)\n}\n\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <div class=\"c-data-list__toolbar\">\n <DataSearch v-if=\"useSearch\" v-bind=\"mergedSearchConfig\" @search-change=\"searchChange\" />\n <Button\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n label=\"Szűrők\"\n icon=\"fa-solid fa-filter\"\n @click=\"showFilters = true\"\n style=\"flex-shrink: 0\"\n :type=\"activeFiltersCount > 0 ? 'info' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"flex-center ml-auto nowrap\">\n <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\n <Button icon=\"fa-solid fa-question\" class=\"lh-normal\" @click=\"showGuide = true\" />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n v-bind=\"mergedFilterConfig\"\n :storage-key=\"id\"\n :open=\"showFilters\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n <DataListGuide :open=\"showGuide\" @close=\"showGuide = false\" />\n <DataTable\n v-if=\"effectiveLayout === 'table'\"\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\n\n <DataCards\n v-else\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @selection-change=\"emit('selection-change', $event)\"\n />\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n @update:pagination=\"emit('pagination-change', $event)\"\n />\n\n <DataListOptions\n :open=\"showOptions\"\n :columns=\"config.columns\"\n :settings=\"settings ?? {}\"\n :storage-key=\"id\"\n :orderable=\"orderable\"\n @close=\"showOptions = false\"\n @change=\"onSettingsChange\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import './src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css';
|
|
2
|
+
import e from "./admins-components95.js";
|
|
3
|
+
/* empty css */
|
|
4
|
+
//#region src/components/data-table/DataList.vue
|
|
5
|
+
var t = e;
|
|
3
6
|
//#endregion
|
|
4
|
-
export {
|
|
7
|
+
export { t as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components97.js","names":[],"sources":["../src/
|
|
1
|
+
{"version":3,"file":"admins-components97.js","names":[],"sources":["../src/components/data-table/DataList.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type { PaginatorSettings } from '@/types/data-list'\nexport type { DataSearchProps } from './DataSearch.vue'\nexport type { DataFiltersProps } from './DataFilters.vue'\n\nexport interface DataListProps {\n config: DataListConfig\n items: Record<string, unknown>[]\n settings?: Partial<DataListSettings>\n id: string\n layoutBreakpoint?: number\n orderable?: boolean\n pagination?: PaginatorSettings\n loading?: boolean\n handleUrl?: boolean\n useSearch?: boolean\n useFilters?: boolean\n searchConfig?: DataSearchProps\n filterConfig?: DataFiltersProps\n}\n\nexport const dataListDefaults = {\n layoutBreakpoint: 768,\n orderable: true,\n loading: false,\n useSearch: true,\n useFilters: true,\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, onMounted, onBeforeUnmount } from 'vue'\nimport DataTable from '@/components/data-table/DataTable.vue'\nimport DataCards from '@/components/data-table/DataCards.vue'\nimport DataListOptions from '@/components/data-table/DataListOptions.vue'\nimport DataPaginator from '@/components/data-table/DataPaginator.vue'\nimport Button from '@/components/Button.vue'\nimport type {\n DataListConfig,\n DataListSettings,\n PageSettings,\n PaginatorSettings,\n} from '@/types/data-list'\nimport type { FilterValue } from '@/types/data-list'\nimport DataFilters, {\n type FilterResponse,\n type DataFiltersProps,\n} from '@/components/data-table/DataFilters.vue'\nimport FilterTags from '@/components/data-table/FilterTags.vue'\nimport DataListGuide from '@/components/data-table/DataListGuide.vue'\nimport DataSearch, { type DataSearchProps } from './DataSearch.vue'\nimport { getDefaultFilterRaws } from '@/utils/dataFilters.ts'\n\nconst dataFiltersRef = ref<InstanceType<typeof DataFilters> | null>(null)\n\nconst props = withDefaults(defineProps<DataListProps>(), {\n ...dataListDefaults,\n searchConfig: undefined,\n filterConfig: undefined,\n})\n\nfunction resolvedHandleUrl(side: 'searchConfig' | 'filterConfig'): boolean | undefined {\n const sideConfig = props[side]\n if (sideConfig && Object.hasOwn(sideConfig as object, 'handleUrl')) {\n return (sideConfig as { handleUrl?: boolean }).handleUrl\n }\n return props.handleUrl\n}\n\nconst mergedSearchConfig = computed<DataSearchProps>(() => ({\n ...props.searchConfig,\n handleUrl: resolvedHandleUrl('searchConfig'),\n}))\n\nconst mergedFilterConfig = computed<DataFiltersProps>(() => ({\n ...(props.filterConfig as DataFiltersProps),\n handleUrl: resolvedHandleUrl('filterConfig'),\n}))\n\nconst emit = defineEmits<{\n 'filter-change': [filters: Record<string, FilterValue>]\n 'selection-change': [selected: unknown[]]\n 'settings-change': [settings: DataListSettings]\n 'pagination-change': [pagination: PageSettings]\n 'sort-change': [sort: { key: string; direction: 'asc' | 'desc' }]\n 'search-change': [filters: Record<string, string | boolean>]\n}>()\n\nconst showOptions = ref(false)\nconst showGuide = ref(false)\nconst resolvedSettings = ref<DataListSettings | null>(null)\nconst isMobile = ref(false)\nconst root = ref<HTMLElement | null>(null)\nconst showFilters = ref(false)\n\nconst activeFilters = ref<Record<string, unknown>>(\n props.filterConfig?.items ? getDefaultFilterRaws(props.filterConfig.items, props.id) : {},\n)\nlet resizeObserver: ResizeObserver | null = null\n\nonMounted(() => {\n resizeObserver = new ResizeObserver((entries) => {\n isMobile.value = (entries[0]?.contentRect.width ?? 0) < props.layoutBreakpoint\n })\n if (root.value) resizeObserver.observe(root.value)\n})\n\nonBeforeUnmount(() => resizeObserver?.disconnect())\n\nconst effectiveLayout = computed<'table' | 'cards'>(() => {\n const layout = resolvedSettings.value?.layout\n if (layout === 'table' || layout === 'cards') return layout\n return isMobile.value ? 'cards' : 'table'\n})\n\nconst internalConfig = computed<DataListConfig>(() => {\n if (!resolvedSettings.value) return props.config\n const order = resolvedSettings.value.columnOrder\n const mapped = props.config.columns.map((c) => ({\n ...c,\n visible: resolvedSettings.value!.columns[c.property] ?? c.visible !== false,\n }))\n if (order?.length) {\n mapped.sort((a, b) => {\n const ai = order.indexOf(a.property)\n const bi = order.indexOf(b.property)\n return (ai === -1 ? 999 : ai) - (bi === -1 ? 999 : bi)\n })\n }\n return { ...props.config, columns: mapped }\n})\n\nfunction onSettingsChange(s: DataListSettings) {\n resolvedSettings.value = s\n emit('settings-change', s)\n}\n\ndefineExpose({\n openOptions: () => (showOptions.value = true),\n closeOptions: () => (showOptions.value = false),\n openFilters: () => (showFilters.value = true),\n closeFilters: () => (showFilters.value = false),\n})\n\nasync function openFilter(key: string) {\n showFilters.value = true\n setTimeout(() => {\n dataFiltersRef.value?.focusFilter(key)\n }, 300)\n}\n\nfunction onFilterChange(response: FilterResponse) {\n activeFilters.value = response.values\n emit('filter-change', response.transformed)\n}\n\nconst activeFiltersCount = computed(\n () => Object.values(activeFilters.value).filter((v) => v != null && v !== '').length,\n)\n\nconst showPaginator = computed(\n () => !!props.pagination && (props.items.length > 0 || !props.loading),\n)\n\nconst searchChange = (value: Record<string, string | boolean>) => {\n emit('search-change', value)\n}\n\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div ref=\"root\" class=\"c-data-list\">\n <div class=\"c-data-list__toolbar\">\n <DataSearch v-if=\"useSearch\" v-bind=\"mergedSearchConfig\" @search-change=\"searchChange\" />\n <Button\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n label=\"Szűrők\"\n icon=\"fa-solid fa-filter\"\n @click=\"showFilters = true\"\n style=\"flex-shrink: 0\"\n :type=\"activeFiltersCount > 0 ? 'info' : 'normal'\"\n :indicator=\"activeFiltersCount > 0 ? activeFiltersCount : undefined\"\n />\n <div\n class=\"flex-center gap-1\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n >\n <FilterTags\n :filters=\"activeFilters\"\n :items=\"filterConfig.items\"\n @remove=\"(key: string) => dataFiltersRef?.clearFilter(key)\"\n @openFilter=\"openFilter\"\n />\n </div>\n <div class=\"flex-center ml-auto nowrap\">\n <Button icon=\"fa-solid fa-gear\" class=\"lh-normal\" @click=\"showOptions = true\" />\n <Button icon=\"fa-solid fa-question\" class=\"lh-normal\" @click=\"showGuide = true\" />\n </div>\n </div>\n <DataFilters\n ref=\"dataFiltersRef\"\n v-if=\"useFilters && filterConfig?.items && filterConfig.items.length > 0\"\n v-bind=\"mergedFilterConfig\"\n :storage-key=\"id\"\n :open=\"showFilters\"\n @close=\"showFilters = false\"\n @change=\"onFilterChange\"\n />\n <DataListGuide :open=\"showGuide\" @close=\"showGuide = false\" />\n <DataTable\n v-if=\"effectiveLayout === 'table'\"\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @filter-change=\"emit('filter-change', $event)\"\n @selection-change=\"emit('selection-change', $event)\"\n @sort-change=\"emit('sort-change', $event)\"\n />\n\n <DataCards\n v-else\n :config=\"internalConfig\"\n :loading=\"loading\"\n :items=\"items\"\n :settings=\"resolvedSettings ?? undefined\"\n @selection-change=\"emit('selection-change', $event)\"\n />\n\n <DataPaginator\n v-if=\"pagination && showPaginator\"\n :settings=\"pagination\"\n :storage-key=\"id\"\n @update:pagination=\"emit('pagination-change', $event)\"\n />\n\n <DataListOptions\n :open=\"showOptions\"\n :columns=\"config.columns\"\n :settings=\"settings ?? {}\"\n :storage-key=\"id\"\n :orderable=\"orderable\"\n @close=\"showOptions = false\"\n @change=\"onSettingsChange\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list.scss\"></style>\n"],"mappings":""}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region src/utils/
|
|
2
|
-
var e = () =>
|
|
1
|
+
//#region src/utils/ipUtils.ts
|
|
2
|
+
var e = (e) => /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.test(e);
|
|
3
3
|
//#endregion
|
|
4
|
-
export { e as
|
|
4
|
+
export { e as isIpInUrl };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components98.js","names":[],"sources":["../src/utils/
|
|
1
|
+
{"version":3,"file":"admins-components98.js","names":[],"sources":["../src/utils/ipUtils.ts"],"sourcesContent":["export const isIpInUrl = (url: string) => {\n const ipv4Regex =\n /(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/\n\n return ipv4Regex.test(url)\n}\n"],"mappings":";AAAA,IAAa,KAAa,MAIjB,iKAAU,KAAK,CAAG"}
|
|
@@ -1,53 +1,4 @@
|
|
|
1
|
-
//#region src/
|
|
2
|
-
|
|
3
|
-
let e = document.createElement("div");
|
|
4
|
-
return e.className = "v-tooltip ac-component", e.style.position = "fixed", e.style.zIndex = "9999999", e.style.opacity = "0", e.style.pointerEvents = "none", e.style.transition = "opacity 0.15s", e;
|
|
5
|
-
}
|
|
6
|
-
function t(e, t) {
|
|
7
|
-
let n = window.innerWidth, r = window.innerHeight;
|
|
8
|
-
e.style.maxWidth = `min(${n - 16}px, 300px)`;
|
|
9
|
-
let i = e.getBoundingClientRect(), a = i.width, o = i.height, s = t.clientX + 12, c = t.clientY + 18;
|
|
10
|
-
s + a > n - 8 && (s = t.clientX - a - 12), c + o > r - 8 && (c = t.clientY - o - 12), s = Math.max(8, Math.min(s, n - a - 8)), c = Math.max(8, Math.min(c, r - o - 8)), e.style.left = `${s}px`, e.style.top = `${c}px`;
|
|
11
|
-
}
|
|
12
|
-
function n(e, t, n) {
|
|
13
|
-
n ? e.innerHTML = t : e.textContent = t;
|
|
14
|
-
}
|
|
15
|
-
var r = {
|
|
16
|
-
mounted(r, i) {
|
|
17
|
-
let a = e();
|
|
18
|
-
n(a, i.value, !!i.modifiers.html), document.body.appendChild(a);
|
|
19
|
-
let o = null, s = null, c = null, l = (e) => {
|
|
20
|
-
c = e;
|
|
21
|
-
}, u = (e) => {
|
|
22
|
-
c = e, s &&= (clearTimeout(s), null), o = setTimeout(() => {
|
|
23
|
-
t(a, c ?? e), a.style.opacity = "1";
|
|
24
|
-
}, 400);
|
|
25
|
-
}, d = () => {
|
|
26
|
-
c = null, o &&= (clearTimeout(o), null), s = setTimeout(() => {
|
|
27
|
-
a.style.opacity = "0";
|
|
28
|
-
}, 50);
|
|
29
|
-
}, f = (e) => {
|
|
30
|
-
o &&= (clearTimeout(o), null), s &&= (clearTimeout(s), null), a.style.opacity === "1" ? a.style.opacity = "0" : (t(a, e), a.style.opacity = "1");
|
|
31
|
-
}, p = () => {
|
|
32
|
-
o &&= (clearTimeout(o), null), a.style.opacity = "0";
|
|
33
|
-
};
|
|
34
|
-
r.addEventListener("mouseenter", u), r.addEventListener("mousemove", l), r.addEventListener("mouseleave", d), r.addEventListener("click", f), window.addEventListener("scroll", p, !0), r._tooltip = {
|
|
35
|
-
el: a,
|
|
36
|
-
showTimeout: o,
|
|
37
|
-
hideTimeout: s,
|
|
38
|
-
onEnter: u,
|
|
39
|
-
onMove: l,
|
|
40
|
-
onLeave: d,
|
|
41
|
-
onClick: f,
|
|
42
|
-
onScroll: p
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
updated(e, t) {
|
|
46
|
-
e._tooltip && n(e._tooltip.el, t.value, !!t.modifiers.html);
|
|
47
|
-
},
|
|
48
|
-
unmounted(e) {
|
|
49
|
-
e._tooltip &&= (e.removeEventListener("mouseenter", e._tooltip.onEnter), e.removeEventListener("mousemove", e._tooltip.onMove), e.removeEventListener("mouseleave", e._tooltip.onLeave), e.removeEventListener("click", e._tooltip.onClick), window.removeEventListener("scroll", e._tooltip.onScroll, !0), e._tooltip.el.remove(), void 0);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
1
|
+
//#region src/utils/cmsContext.ts
|
|
2
|
+
var e = () => window.cmsContext?.currentSite;
|
|
52
3
|
//#endregion
|
|
53
|
-
export {
|
|
4
|
+
export { e as getCurrentSite };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admins-components99.js","names":[],"sources":["../src/
|
|
1
|
+
{"version":3,"file":"admins-components99.js","names":[],"sources":["../src/utils/cmsContext.ts"],"sourcesContent":["export const getCurrentSite = (): string | undefined => {\n return (window as any).cmsContext?.currentSite\n}\n"],"mappings":";AAAA,IAAa,UACD,OAAe,YAAY"}
|