admins-components 9.0.12 → 9.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admins-components100.js.map +1 -0
- package/dist/admins-components101.js.map +1 -0
- package/dist/admins-components102.js.map +1 -0
- package/dist/admins-components103.js.map +1 -0
- package/dist/admins-components104.js.map +1 -0
- package/dist/admins-components105.js.map +1 -0
- package/dist/admins-components106.js.map +1 -0
- package/dist/admins-components107.js.map +1 -0
- package/dist/admins-components108.js.map +1 -0
- package/dist/admins-components109.js.map +1 -0
- package/dist/admins-components11.js.map +1 -0
- package/dist/admins-components110.js.map +1 -0
- package/dist/admins-components111.js.map +1 -0
- package/dist/admins-components112.js.map +1 -0
- package/dist/admins-components113.js.map +1 -0
- package/dist/admins-components114.js.map +1 -0
- package/dist/admins-components115.js.map +1 -0
- package/dist/admins-components116.js.map +1 -0
- package/dist/admins-components117.js.map +1 -0
- package/dist/admins-components118.js.map +1 -0
- package/dist/admins-components119.js.map +1 -0
- package/dist/admins-components12.js.map +1 -0
- package/dist/admins-components120.js.map +1 -0
- package/dist/admins-components121.js.map +1 -0
- package/dist/admins-components122.js.map +1 -0
- package/dist/admins-components123.js.map +1 -0
- package/dist/admins-components124.js.map +1 -0
- package/dist/admins-components125.js.map +1 -0
- package/dist/admins-components126.js.map +1 -0
- package/dist/admins-components127.js.map +1 -0
- package/dist/admins-components128.js.map +1 -0
- package/dist/admins-components129.js.map +1 -0
- package/dist/admins-components13.js +65 -65
- package/dist/admins-components13.js.map +1 -0
- package/dist/admins-components130.js.map +1 -0
- package/dist/admins-components131.js.map +1 -0
- package/dist/admins-components132.js.map +1 -0
- package/dist/admins-components133.js.map +1 -0
- package/dist/admins-components134.js.map +1 -0
- package/dist/admins-components135.js.map +1 -0
- package/dist/admins-components136.js.map +1 -0
- package/dist/admins-components137.js.map +1 -0
- package/dist/admins-components138.js.map +1 -0
- package/dist/admins-components139.js.map +1 -0
- package/dist/admins-components14.js.map +1 -0
- package/dist/admins-components140.js.map +1 -0
- package/dist/admins-components141.js.map +1 -0
- package/dist/admins-components142.js.map +1 -0
- package/dist/admins-components143.js.map +1 -0
- package/dist/admins-components144.js.map +1 -0
- package/dist/admins-components145.js.map +1 -0
- package/dist/admins-components146.js.map +1 -0
- package/dist/admins-components147.js.map +1 -0
- package/dist/admins-components148.js.map +1 -0
- package/dist/admins-components149.js.map +1 -0
- package/dist/admins-components15.js +1 -1
- package/dist/admins-components15.js.map +1 -0
- package/dist/admins-components150.js.map +1 -0
- package/dist/admins-components151.js.map +1 -0
- package/dist/admins-components153.js.map +1 -0
- package/dist/admins-components154.js.map +1 -0
- package/dist/admins-components155.js.map +1 -0
- package/dist/admins-components157.js.map +1 -0
- package/dist/admins-components158.js.map +1 -0
- package/dist/admins-components159.js.map +1 -0
- package/dist/admins-components16.js.map +1 -0
- package/dist/admins-components160.js.map +1 -0
- package/dist/admins-components161.js.map +1 -0
- package/dist/admins-components162.js.map +1 -0
- package/dist/admins-components163.js.map +1 -0
- package/dist/admins-components164.js.map +1 -0
- package/dist/admins-components165.js.map +1 -0
- package/dist/admins-components166.js.map +1 -0
- package/dist/admins-components167.js.map +1 -0
- package/dist/admins-components169.js.map +1 -0
- package/dist/admins-components17.js.map +1 -0
- package/dist/admins-components18.js +57 -57
- package/dist/admins-components18.js.map +1 -0
- package/dist/admins-components19.js.map +1 -0
- package/dist/admins-components20.js +52 -52
- package/dist/admins-components20.js.map +1 -0
- package/dist/admins-components22.js.map +1 -0
- package/dist/admins-components23.js +19 -19
- package/dist/admins-components23.js.map +1 -0
- package/dist/admins-components24.js.map +1 -0
- package/dist/admins-components25.js.map +1 -0
- package/dist/admins-components27.js.map +1 -0
- package/dist/admins-components28.js +39 -22
- package/dist/admins-components28.js.map +1 -0
- package/dist/admins-components3.js.map +1 -0
- package/dist/admins-components30.js.map +1 -0
- package/dist/admins-components31.js +20 -20
- package/dist/admins-components31.js.map +1 -0
- package/dist/admins-components33.js.map +1 -0
- package/dist/admins-components34.js.map +1 -0
- package/dist/admins-components35.js.map +1 -0
- package/dist/admins-components36.js.map +1 -0
- package/dist/admins-components38.js.map +1 -0
- package/dist/admins-components39.js +48 -48
- package/dist/admins-components39.js.map +1 -0
- package/dist/admins-components4.js.map +1 -0
- package/dist/admins-components41.js.map +1 -0
- package/dist/admins-components42.js +41 -41
- package/dist/admins-components42.js.map +1 -0
- package/dist/admins-components43.js.map +1 -0
- package/dist/admins-components44.js +60 -60
- package/dist/admins-components44.js.map +1 -0
- package/dist/admins-components45.js.map +1 -0
- package/dist/admins-components46.js.map +1 -0
- package/dist/admins-components48.js.map +1 -0
- package/dist/admins-components49.js.map +1 -0
- package/dist/admins-components5.js +1 -1
- package/dist/admins-components5.js.map +1 -0
- package/dist/admins-components50.js.map +1 -0
- package/dist/admins-components52.js.map +1 -0
- package/dist/admins-components53.js.map +1 -0
- package/dist/admins-components54.js.map +1 -0
- package/dist/admins-components55.js.map +1 -0
- package/dist/admins-components56.js.map +1 -0
- package/dist/admins-components57.js.map +1 -0
- package/dist/admins-components58.js.map +1 -0
- package/dist/admins-components59.js +80 -75
- package/dist/admins-components59.js.map +1 -0
- package/dist/admins-components6.js.map +1 -0
- package/dist/admins-components61.js.map +1 -0
- package/dist/admins-components62.js +90 -85
- package/dist/admins-components62.js.map +1 -0
- package/dist/admins-components64.js.map +1 -0
- package/dist/admins-components65.js.map +1 -0
- package/dist/admins-components66.js.map +1 -0
- package/dist/admins-components68.js.map +1 -0
- package/dist/admins-components69.js +41 -41
- package/dist/admins-components69.js.map +1 -0
- package/dist/admins-components7.js.map +1 -0
- package/dist/admins-components71.js.map +1 -0
- package/dist/admins-components72.js.map +1 -0
- package/dist/admins-components73.js.map +1 -0
- package/dist/admins-components75.js.map +1 -0
- package/dist/admins-components76.js.map +1 -0
- package/dist/admins-components77.js.map +1 -0
- package/dist/admins-components78.js.map +1 -0
- package/dist/admins-components8.js +93 -93
- package/dist/admins-components8.js.map +1 -0
- package/dist/admins-components80.js.map +1 -0
- package/dist/admins-components81.js +1 -1
- package/dist/admins-components81.js.map +1 -0
- package/dist/admins-components83.js.map +1 -0
- package/dist/admins-components84.js.map +1 -0
- package/dist/admins-components86.js.map +1 -0
- package/dist/admins-components87.js +70 -70
- package/dist/admins-components87.js.map +1 -0
- package/dist/admins-components89.js.map +1 -0
- package/dist/admins-components90.js.map +1 -0
- package/dist/admins-components91.js.map +1 -0
- package/dist/admins-components92.js.map +1 -0
- package/dist/admins-components93.js +1 -1
- package/dist/admins-components93.js.map +1 -0
- package/dist/admins-components94.js.map +1 -0
- package/dist/admins-components95.js.map +1 -0
- package/dist/admins-components96.js.map +1 -0
- package/dist/admins-components97.js.map +1 -0
- package/dist/admins-components98.js.map +1 -0
- package/dist/admins-components99.js.map +1 -0
- package/dist/base.css +1 -1
- package/dist/base.css.map +1 -1
- package/dist/src/components/HeaderComponent.vue.d.ts +13 -2
- package/dist/src/styles/components/calendar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/copy-to-clipboard.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-cards.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-filters.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list-guide.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list-options.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/data-list.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/data-table/filters-history.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/datepickers.scss_vue_type_style_index_1_src_true_lang.css +1 -1
- package/dist/src/styles/components/dropdown-select.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/header.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/image-picker.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/modal.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/dist/src/styles/components/sidebar.scss_vue_type_style_index_0_src_true_lang.css +1 -1
- package/package.json +2 -2
|
@@ -3,55 +3,55 @@ import n from "./admins-components6.js";
|
|
|
3
3
|
import { calendarConfigDefaults as r } from "./admins-components7.js";
|
|
4
4
|
import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as ee, defineComponent as u, nextTick as d, normalizeClass as f, openBlock as p, ref as m, renderList as h, resolveDirective as te, toDisplayString as g, unref as _, useTemplateRef as v, watch as ne, withDirectives as re } from "vue";
|
|
5
5
|
//#region src/components/Calendar.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
var ie = { class: "
|
|
6
|
+
var ie = { class: "ac-component" }, ae = { class: "dp-calendar" }, oe = { class: "dp-header" }, se = ["aria-label"], y = { class: "dp-header-labels" }, ce = ["aria-label", "aria-hidden"], le = ["onClick"], ue = {
|
|
7
7
|
key: 1,
|
|
8
8
|
class: "dp-picker-grid dp-month-picker dp-picker-grid--3col"
|
|
9
|
-
},
|
|
9
|
+
}, b = ["onClick"], de = {
|
|
10
10
|
key: 0,
|
|
11
11
|
class: "dp-weekday dp-weekday--week"
|
|
12
|
-
},
|
|
12
|
+
}, fe = ["disabled", "onClick"], pe = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "c-footer"
|
|
15
|
-
},
|
|
15
|
+
}, me = { class: "dp-time-inputs" }, x = ["value", "disabled"], he = ["value", "disabled"], S = /* @__PURE__ */ u({
|
|
16
16
|
__name: "Calendar",
|
|
17
17
|
props: {
|
|
18
18
|
modelValue: {},
|
|
19
19
|
config: { default: () => ({ ...r }) }
|
|
20
20
|
},
|
|
21
21
|
emits: ["update:modelValue", "confirm"],
|
|
22
|
-
setup(u, { emit:
|
|
23
|
-
let
|
|
22
|
+
setup(u, { emit: S }) {
|
|
23
|
+
let C = u, w = S, T = a(() => ({
|
|
24
24
|
...r,
|
|
25
|
-
...
|
|
26
|
-
})),
|
|
27
|
-
function
|
|
28
|
-
return e ? t(e,
|
|
29
|
-
}
|
|
30
|
-
let
|
|
31
|
-
ne(() =>
|
|
32
|
-
let t =
|
|
33
|
-
t ? (
|
|
25
|
+
...C.config
|
|
26
|
+
})), E = a(() => T.value.format ?? (T.value.showTime ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD"));
|
|
27
|
+
function D(e) {
|
|
28
|
+
return e ? t(e, E.value) : null;
|
|
29
|
+
}
|
|
30
|
+
let O = D(C.modelValue), k = m(O?.getMonth() ?? (/* @__PURE__ */ new Date()).getMonth()), A = m(O?.getFullYear() ?? (/* @__PURE__ */ new Date()).getFullYear()), j = m(O), M = m(O?.getHours() ?? 0), N = m(O?.getMinutes() ?? 0), P = m(null);
|
|
31
|
+
ne(() => C.modelValue, (e) => {
|
|
32
|
+
let t = D(e ?? null);
|
|
33
|
+
t ? (j.value = t, k.value = t.getMonth(), A.value = t.getFullYear(), M.value = t.getHours(), N.value = t.getMinutes()) : j.value = null;
|
|
34
34
|
});
|
|
35
|
-
let
|
|
36
|
-
let e = new Date(
|
|
35
|
+
let F = a(() => Array.from({ length: 7 }, (e, t) => new Date(2024, 0, t + 1).toLocaleDateString(T.value.locale, { weekday: "narrow" }))), I = a(() => new Date(A.value, k.value).toLocaleDateString(T.value.locale, { month: "long" })), L = a(() => Array.from({ length: 12 }, (e, t) => new Date(2024, t).toLocaleDateString(T.value.locale, { month: "long" }))), R = a(() => {
|
|
36
|
+
let e = new Date(A.value, k.value, 1), t = new Date(A.value, k.value + 1, 0), n = (e.getDay() + 6) % 7, r = [];
|
|
37
37
|
for (let e = n - 1; e >= 0; e--) r.push({
|
|
38
|
-
date: new Date(
|
|
38
|
+
date: new Date(A.value, k.value, -e),
|
|
39
39
|
currentMonth: !1,
|
|
40
|
-
disabled: V(new Date(
|
|
40
|
+
disabled: V(new Date(A.value, k.value, -e))
|
|
41
41
|
});
|
|
42
42
|
for (let e = 1; e <= t.getDate(); e++) r.push({
|
|
43
|
-
date: new Date(
|
|
43
|
+
date: new Date(A.value, k.value, e),
|
|
44
44
|
currentMonth: !0,
|
|
45
|
-
disabled: V(new Date(
|
|
45
|
+
disabled: V(new Date(A.value, k.value, e))
|
|
46
46
|
});
|
|
47
47
|
for (let e = 1; r.length < 35; e++) r.push({
|
|
48
|
-
date: new Date(
|
|
48
|
+
date: new Date(A.value, k.value + 1, e),
|
|
49
49
|
currentMonth: !1,
|
|
50
|
-
disabled: V(new Date(
|
|
50
|
+
disabled: V(new Date(A.value, k.value + 1, e))
|
|
51
51
|
});
|
|
52
52
|
return r;
|
|
53
53
|
});
|
|
54
|
-
function
|
|
54
|
+
function ge(e) {
|
|
55
55
|
let t = new Date(Date.UTC(e.getFullYear(), e.getMonth(), e.getDate())), n = (t.getUTCDay() + 6) % 7;
|
|
56
56
|
t.setUTCDate(t.getUTCDate() - n + 3);
|
|
57
57
|
let r = new Date(Date.UTC(t.getUTCFullYear(), 0, 4)), i = (t.getTime() - r.getTime()) / 864e5;
|
|
@@ -60,8 +60,8 @@ var ie = { class: "dp-calendar ac-component" }, ae = { class: "dp-header" }, oe
|
|
|
60
60
|
let z = a(() => {
|
|
61
61
|
let e = [];
|
|
62
62
|
for (let t = 0; t < 6; t++) {
|
|
63
|
-
let n =
|
|
64
|
-
e.push(n ?
|
|
63
|
+
let n = R.value[t * 7]?.date;
|
|
64
|
+
e.push(n ? ge(n) : 0);
|
|
65
65
|
}
|
|
66
66
|
return e;
|
|
67
67
|
});
|
|
@@ -69,56 +69,56 @@ var ie = { class: "dp-calendar ac-component" }, ae = { class: "dp-header" }, oe
|
|
|
69
69
|
return new Date(e.getFullYear(), e.getMonth(), e.getDate());
|
|
70
70
|
}
|
|
71
71
|
function V(e) {
|
|
72
|
-
return
|
|
72
|
+
return T.value.minDate && e < B(T.value.minDate) || T.value.maxDate && e > B(T.value.maxDate) || !1;
|
|
73
73
|
}
|
|
74
|
-
function
|
|
74
|
+
function _e(e) {
|
|
75
75
|
return e.getDay() === 0 || e.getDay() === 6;
|
|
76
76
|
}
|
|
77
77
|
function H(e, t) {
|
|
78
78
|
return !!t && e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
|
|
79
79
|
}
|
|
80
|
-
function
|
|
80
|
+
function ve(e) {
|
|
81
81
|
return H(e, /* @__PURE__ */ new Date());
|
|
82
82
|
}
|
|
83
83
|
function U(e) {
|
|
84
|
-
let t = new Date(
|
|
85
|
-
|
|
84
|
+
let t = new Date(A.value, k.value + e, 1);
|
|
85
|
+
A.value = t.getFullYear(), k.value = t.getMonth();
|
|
86
86
|
}
|
|
87
87
|
function W() {
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
function ve() {
|
|
91
|
-
N.value ? W() : U(-1);
|
|
88
|
+
P.value = null;
|
|
92
89
|
}
|
|
93
90
|
function ye() {
|
|
94
|
-
|
|
91
|
+
P.value ? W() : U(-1);
|
|
95
92
|
}
|
|
96
|
-
|
|
93
|
+
function be() {
|
|
94
|
+
P.value ? W() : U(1);
|
|
95
|
+
}
|
|
96
|
+
let xe = a(() => Array.from({ length: (/* @__PURE__ */ new Date()).getFullYear() + 3 - 2e3 + 1 }, (e, t) => 2e3 + t)), G = v("yearPickerRef");
|
|
97
97
|
function K(e) {
|
|
98
|
-
|
|
98
|
+
P.value = P.value === e ? null : e, P.value === "year" && d(() => {
|
|
99
99
|
let e = G.value, t = e?.querySelector(".dp-picker-item--selected");
|
|
100
100
|
t && e ? e.scrollTop = t.offsetTop - e.offsetHeight / 2 + t.offsetHeight / 2 : e && (e.scrollTop = e.scrollHeight);
|
|
101
101
|
});
|
|
102
102
|
}
|
|
103
|
-
function xe(e) {
|
|
104
|
-
k.value = e, N.value = null;
|
|
105
|
-
}
|
|
106
103
|
function Se(e) {
|
|
107
|
-
|
|
104
|
+
A.value = e, P.value = null;
|
|
108
105
|
}
|
|
109
106
|
function Ce(e) {
|
|
110
|
-
|
|
107
|
+
k.value = e, P.value = null;
|
|
108
|
+
}
|
|
109
|
+
function we(e) {
|
|
110
|
+
e.disabled || (j.value = new Date(e.date), q(), T.value.showTime && d(() => Z.value?.focus()));
|
|
111
111
|
}
|
|
112
112
|
function q() {
|
|
113
|
-
if (!
|
|
114
|
-
|
|
113
|
+
if (!j.value) {
|
|
114
|
+
w("update:modelValue", null);
|
|
115
115
|
return;
|
|
116
116
|
}
|
|
117
|
-
let t = new Date(
|
|
118
|
-
|
|
117
|
+
let t = new Date(j.value);
|
|
118
|
+
T.value.showTime ? t.setHours(M.value, N.value, 0, 0) : t.setHours(0, 0, 0, 0), w("update:modelValue", e(t, E.value));
|
|
119
119
|
}
|
|
120
|
-
function
|
|
121
|
-
|
|
120
|
+
function Te() {
|
|
121
|
+
j.value = null, M.value = 0, N.value = 0, w("update:modelValue", null);
|
|
122
122
|
}
|
|
123
123
|
function J(e, t) {
|
|
124
124
|
return a({
|
|
@@ -128,80 +128,80 @@ var ie = { class: "dp-calendar ac-component" }, ae = { class: "dp-header" }, oe
|
|
|
128
128
|
}
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
|
-
let Y = J(23,
|
|
131
|
+
let Y = J(23, M), X = J(59, N), Z = v("hoursInput"), Q = v("minutesInput");
|
|
132
132
|
function $(e, t) {
|
|
133
133
|
let n = t.target;
|
|
134
134
|
e === "hours" ? (Y.value = n.value, n.value.length >= 2 && (Q.value?.focus(), Q.value?.select())) : (X.value = n.value, n.value.length >= 2 && n.blur()), q();
|
|
135
135
|
}
|
|
136
136
|
return (e, t) => {
|
|
137
137
|
let r = te("tooltip");
|
|
138
|
-
return p(), c("div", ie, [l("div", ae, [
|
|
138
|
+
return p(), c("div", ie, [l("div", ae, [l("div", oe, [
|
|
139
139
|
l("button", {
|
|
140
140
|
class: "dp-nav-btn",
|
|
141
141
|
type: "button",
|
|
142
|
-
"aria-label":
|
|
143
|
-
onClick:
|
|
144
|
-
}, [...t[7] ||= [l("i", { class: "fa-solid fa-chevron-left" }, null, -1)]], 8,
|
|
145
|
-
l("div",
|
|
142
|
+
"aria-label": P.value ? "Back to days" : "Previous",
|
|
143
|
+
onClick: ye
|
|
144
|
+
}, [...t[7] ||= [l("i", { class: "fa-solid fa-chevron-left" }, null, -1)]], 8, se),
|
|
145
|
+
l("div", y, [l("span", {
|
|
146
146
|
class: "dp-header-labels--item",
|
|
147
147
|
onClick: t[0] ||= (e) => K("year")
|
|
148
|
-
}, g(
|
|
148
|
+
}, g(A.value), 1), l("span", {
|
|
149
149
|
class: "dp-header-labels--item",
|
|
150
150
|
onClick: t[1] ||= (e) => K("month")
|
|
151
|
-
}, g(
|
|
151
|
+
}, g(I.value), 1)]),
|
|
152
152
|
l("button", {
|
|
153
|
-
class: f(["dp-nav-btn", { "dp-nav-btn--spacer":
|
|
153
|
+
class: f(["dp-nav-btn", { "dp-nav-btn--spacer": P.value !== null }]),
|
|
154
154
|
type: "button",
|
|
155
|
-
"aria-label":
|
|
156
|
-
"aria-hidden":
|
|
157
|
-
onClick:
|
|
158
|
-
}, [...t[8] ||= [l("i", { class: "fa-solid fa-chevron-right" }, null, -1)]], 10,
|
|
159
|
-
]), l("div", { class: f(["dp-body", { "dp-body--has-footer":
|
|
155
|
+
"aria-label": P.value ? "Back to days" : "Next",
|
|
156
|
+
"aria-hidden": P.value ? "true" : "false",
|
|
157
|
+
onClick: be
|
|
158
|
+
}, [...t[8] ||= [l("i", { class: "fa-solid fa-chevron-right" }, null, -1)]], 10, ce)
|
|
159
|
+
]), l("div", { class: f(["dp-body", { "dp-body--has-footer": T.value.showTime || T.value.showOkButton || T.value.showClearButton }]) }, [P.value === "year" ? (p(), c("div", {
|
|
160
160
|
key: 0,
|
|
161
161
|
ref_key: "yearPickerRef",
|
|
162
162
|
ref: G,
|
|
163
163
|
class: "dp-picker-grid dp-picker-grid--4col dp-picker-grid--scrollable c-scroll"
|
|
164
|
-
}, [(p(!0), c(i, null, h(
|
|
164
|
+
}, [(p(!0), c(i, null, h(xe.value, (e) => (p(), c("button", {
|
|
165
165
|
key: e,
|
|
166
166
|
type: "button",
|
|
167
167
|
class: f(["dp-picker-item", {
|
|
168
|
-
"dp-picker-item--selected": e ===
|
|
168
|
+
"dp-picker-item--selected": e === A.value,
|
|
169
169
|
"dp-picker-item--today": e === (/* @__PURE__ */ new Date()).getFullYear()
|
|
170
170
|
}]),
|
|
171
|
-
onClick: (t) =>
|
|
172
|
-
}, g(e), 11,
|
|
171
|
+
onClick: (t) => Se(e)
|
|
172
|
+
}, g(e), 11, le))), 128))], 512)) : P.value === "month" ? (p(), c("div", ue, [(p(!0), c(i, null, h(L.value, (e, t) => (p(), c("button", {
|
|
173
173
|
key: t,
|
|
174
174
|
type: "button",
|
|
175
175
|
class: f(["dp-picker-item", {
|
|
176
|
-
"dp-picker-item--selected": t ===
|
|
177
|
-
"dp-picker-item--today": t === (/* @__PURE__ */ new Date()).getMonth() &&
|
|
176
|
+
"dp-picker-item--selected": t === k.value,
|
|
177
|
+
"dp-picker-item--today": t === (/* @__PURE__ */ new Date()).getMonth() && A.value === (/* @__PURE__ */ new Date()).getFullYear()
|
|
178
178
|
}]),
|
|
179
|
-
onClick: (e) =>
|
|
180
|
-
}, g(e), 11,
|
|
181
|
-
l("div", { class: f(["dp-weekdays", { "dp-weekdays--has-week":
|
|
179
|
+
onClick: (e) => Ce(t)
|
|
180
|
+
}, g(e), 11, b))), 128))])) : (p(), c(i, { key: 2 }, [
|
|
181
|
+
l("div", { class: f(["dp-weekdays", { "dp-weekdays--has-week": T.value.showWeekNumber }]) }, [T.value.showWeekNumber ? (p(), c("span", de)) : s("", !0), (p(!0), c(i, null, h(F.value, (e) => (p(), c("span", {
|
|
182
182
|
key: e,
|
|
183
183
|
class: "dp-weekday"
|
|
184
184
|
}, g(e), 1))), 128))], 2),
|
|
185
|
-
l("div", { class: f(["dp-picker-grid",
|
|
185
|
+
l("div", { class: f(["dp-picker-grid", T.value.showWeekNumber ? "dp-picker-grid--8col" : "dp-picker-grid--7col"]) }, [(p(!0), c(i, null, h(R.value, (e, t) => (p(), c(i, { key: t }, [T.value.showWeekNumber && Number(t) % 7 == 0 ? re((p(), c("span", {
|
|
186
186
|
key: 0,
|
|
187
|
-
class: f(["dp-week-number", { "dp-week-number--other": !e.currentMonth && !
|
|
187
|
+
class: f(["dp-week-number", { "dp-week-number--other": !e.currentMonth && !R.value[Number(t) + 7]?.currentMonth }])
|
|
188
188
|
}, [ee(g(z.value[Math.floor(Number(t) / 7)]) + ". ", 1)], 2)), [[r, `${z.value[Math.floor(Number(t) / 7)]}. hét`]]) : s("", !0), l("button", {
|
|
189
189
|
type: "button",
|
|
190
190
|
class: f(["dp-picker-item dp-picker-item--circle", {
|
|
191
191
|
"dp-picker-item--other": !e.currentMonth,
|
|
192
|
-
"dp-picker-item--selected": H(e.date,
|
|
193
|
-
"dp-picker-item--today":
|
|
192
|
+
"dp-picker-item--selected": H(e.date, j.value),
|
|
193
|
+
"dp-picker-item--today": ve(e.date),
|
|
194
194
|
"dp-picker-item--disabled": e.disabled,
|
|
195
|
-
"dp-picker-item--weekend":
|
|
195
|
+
"dp-picker-item--weekend": T.value.highlightWeekends && _e(e.date)
|
|
196
196
|
}]),
|
|
197
197
|
disabled: e.disabled,
|
|
198
|
-
onClick: (t) =>
|
|
199
|
-
}, g(e.date.getDate()), 11,
|
|
200
|
-
|
|
201
|
-
|
|
198
|
+
onClick: (t) => we(e)
|
|
199
|
+
}, g(e.date.getDate()), 11, fe)], 64))), 128))], 2),
|
|
200
|
+
T.value.showTime || T.value.showOkButton || T.value.showClearButton ? (p(), c("div", pe, [
|
|
201
|
+
T.value.showTime ? (p(), c(i, { key: 0 }, [t[10] ||= l("label", {
|
|
202
202
|
class: "dp-time-label",
|
|
203
203
|
for: "dp-hours"
|
|
204
|
-
}, "Idő", -1), l("div",
|
|
204
|
+
}, "Idő", -1), l("div", me, [
|
|
205
205
|
l("input", {
|
|
206
206
|
id: "dp-hours",
|
|
207
207
|
ref_key: "hoursInput",
|
|
@@ -209,12 +209,12 @@ var ie = { class: "dp-calendar ac-component" }, ae = { class: "dp-header" }, oe
|
|
|
209
209
|
type: "number",
|
|
210
210
|
class: "c-focus dp-time-input",
|
|
211
211
|
value: _(Y),
|
|
212
|
-
disabled: !
|
|
212
|
+
disabled: !j.value,
|
|
213
213
|
min: "0",
|
|
214
214
|
max: "23",
|
|
215
215
|
onInput: t[2] ||= (e) => $("hours", e),
|
|
216
216
|
onFocus: t[3] ||= (e) => e.target.select()
|
|
217
|
-
}, null, 40,
|
|
217
|
+
}, null, 40, x),
|
|
218
218
|
t[9] ||= l("span", { class: "dp-time-sep" }, ":", -1),
|
|
219
219
|
l("input", {
|
|
220
220
|
id: "dp-minutes",
|
|
@@ -223,31 +223,31 @@ var ie = { class: "dp-calendar ac-component" }, ae = { class: "dp-header" }, oe
|
|
|
223
223
|
type: "number",
|
|
224
224
|
class: "c-focus dp-time-input",
|
|
225
225
|
value: _(X),
|
|
226
|
-
disabled: !
|
|
226
|
+
disabled: !j.value,
|
|
227
227
|
min: "0",
|
|
228
228
|
max: "59",
|
|
229
229
|
onInput: t[4] ||= (e) => $("minutes", e),
|
|
230
230
|
onFocus: t[5] ||= (e) => e.target.select()
|
|
231
231
|
}, null, 40, he)
|
|
232
232
|
])], 64)) : s("", !0),
|
|
233
|
-
|
|
233
|
+
T.value.showClearButton ? (p(), o(n, {
|
|
234
234
|
key: 1,
|
|
235
235
|
label: "Törlés",
|
|
236
|
-
onClick:
|
|
236
|
+
onClick: Te,
|
|
237
237
|
outline: "",
|
|
238
|
-
disabled: !
|
|
238
|
+
disabled: !j.value
|
|
239
239
|
}, null, 8, ["disabled"])) : s("", !0),
|
|
240
|
-
|
|
240
|
+
T.value.showOkButton ? (p(), o(n, {
|
|
241
241
|
key: 2,
|
|
242
242
|
label: "OK",
|
|
243
243
|
type: "success",
|
|
244
|
-
onClick: t[6] ||= (e) =>
|
|
245
|
-
disabled: !
|
|
244
|
+
onClick: t[6] ||= (e) => w("confirm", u.modelValue),
|
|
245
|
+
disabled: !j.value
|
|
246
246
|
}, null, 8, ["disabled"])) : s("", !0)
|
|
247
247
|
])) : s("", !0)
|
|
248
|
-
], 64))], 2)]);
|
|
248
|
+
], 64))], 2)])]);
|
|
249
249
|
};
|
|
250
250
|
}
|
|
251
251
|
});
|
|
252
252
|
//#endregion
|
|
253
|
-
export {
|
|
253
|
+
export { S as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components8.js","names":[],"sources":["../src/components/Calendar.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { calendarConfigDefaults, type CalendarConfig } from '@/types/datepickers'\n\nexport { calendarConfigDefaults }\nexport type { CalendarConfig }\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, useTemplateRef, nextTick } from 'vue'\nimport { formatDate, parseDate } from '@/utils/date'\nimport Button from '@/components/Button.vue'\n\nconst props = withDefaults(defineProps<{ modelValue: string | null; config?: CalendarConfig }>(), {\n config: () => ({ ...calendarConfigDefaults }),\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string | null]\n confirm: [value: string | null]\n}>()\n\nconst cfg = computed(() => ({ ...calendarConfigDefaults, ...props.config }))\n\nconst DAYS_PER_PAGE = 5 * 7\n\nconst outputFormat = computed(\n () => cfg.value.format ?? (cfg.value.showTime ? 'YYYY-MM-DD HH:mm' : 'YYYY-MM-DD'),\n)\n\nfunction parseModelValue(val: string | null): Date | null {\n return val ? parseDate(val, outputFormat.value) : null\n}\n\nconst initial = parseModelValue(props.modelValue)\nconst currentMonth = ref(initial?.getMonth() ?? new Date().getMonth())\nconst currentYear = ref(initial?.getFullYear() ?? new Date().getFullYear())\nconst selectedDate = ref<Date | null>(initial)\nconst hours = ref(initial?.getHours() ?? 0)\nconst minutes = ref(initial?.getMinutes() ?? 0)\nconst activePicker = ref<'year' | 'month' | null>(null)\n\nwatch(\n () => props.modelValue,\n (val) => {\n const parsed = parseModelValue(val ?? null)\n if (parsed) {\n selectedDate.value = parsed\n currentMonth.value = parsed.getMonth()\n currentYear.value = parsed.getFullYear()\n hours.value = parsed.getHours()\n minutes.value = parsed.getMinutes()\n } else {\n selectedDate.value = null\n }\n },\n)\n\n// Locale\nconst weekDays = computed(() =>\n Array.from({ length: 7 }, (_, i) =>\n new Date(2024, 0, i + 1).toLocaleDateString(cfg.value.locale, { weekday: 'narrow' }),\n ),\n)\nconst monthName = computed(() =>\n new Date(currentYear.value, currentMonth.value).toLocaleDateString(cfg.value.locale, {\n month: 'long',\n }),\n)\nconst monthNames = computed(() =>\n Array.from({ length: 12 }, (_, i) =>\n new Date(2024, i).toLocaleDateString(cfg.value.locale, { month: 'long' }),\n ),\n)\n\n// Days grid\nconst calendarDays = computed(() => {\n const first = new Date(currentYear.value, currentMonth.value, 1)\n const last = new Date(currentYear.value, currentMonth.value + 1, 0)\n const offset = (first.getDay() + 6) % 7\n const days: { date: Date; currentMonth: boolean; disabled: boolean }[] = []\n\n for (let i = offset - 1; i >= 0; i--)\n days.push({\n date: new Date(currentYear.value, currentMonth.value, -i),\n currentMonth: false,\n disabled: isDisabled(new Date(currentYear.value, currentMonth.value, -i)),\n })\n for (let i = 1; i <= last.getDate(); i++)\n days.push({\n date: new Date(currentYear.value, currentMonth.value, i),\n currentMonth: true,\n disabled: isDisabled(new Date(currentYear.value, currentMonth.value, i)),\n })\n for (let i = 1; days.length < DAYS_PER_PAGE; i++)\n days.push({\n date: new Date(currentYear.value, currentMonth.value + 1, i),\n currentMonth: false,\n disabled: isDisabled(new Date(currentYear.value, currentMonth.value + 1, i)),\n })\n\n return days\n})\n\n// ISO 8601 week number\nfunction getIsoWeekNumber(d: Date) {\n const target = new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()))\n const dayNum = (target.getUTCDay() + 6) % 7\n target.setUTCDate(target.getUTCDate() - dayNum + 3)\n const firstThursday = new Date(Date.UTC(target.getUTCFullYear(), 0, 4))\n const diff = (target.getTime() - firstThursday.getTime()) / 86400000\n return 1 + Math.round((diff - 3 + ((firstThursday.getUTCDay() + 6) % 7)) / 7)\n}\n\nconst weekNumbers = computed(() => {\n const weeks: number[] = []\n for (let row = 0; row < 6; row++) {\n const firstDayOfRow = calendarDays.value[row * 7]?.date\n weeks.push(firstDayOfRow ? getIsoWeekNumber(firstDayOfRow) : 0)\n }\n return weeks\n})\n\n// Helpers\nfunction stripTime(d: Date) {\n return new Date(d.getFullYear(), d.getMonth(), d.getDate())\n}\nfunction isDisabled(d: Date) {\n return (\n (cfg.value.minDate && d < stripTime(cfg.value.minDate)) ||\n (cfg.value.maxDate && d > stripTime(cfg.value.maxDate)) ||\n false\n )\n}\nfunction isWeekend(d: Date) {\n return d.getDay() === 0 || d.getDay() === 6\n}\nfunction isSameDay(a: Date, b: Date | null) {\n return (\n !!b &&\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\nfunction isToday(d: Date) {\n return isSameDay(d, new Date())\n}\n\n// Navigation\nfunction navigate(delta: number) {\n const d = new Date(currentYear.value, currentMonth.value + delta, 1)\n currentYear.value = d.getFullYear()\n currentMonth.value = d.getMonth()\n}\n\nfunction backToDayPicker() {\n activePicker.value = null\n}\n\nfunction onPrev() {\n if (activePicker.value) backToDayPicker()\n else navigate(-1)\n}\n\nfunction onNext() {\n if (activePicker.value) backToDayPicker()\n else navigate(1)\n}\n\n// Pickers\nconst yearList = computed(() =>\n Array.from({ length: new Date().getFullYear() + 3 - 2000 + 1 }, (_, i) => 2000 + i),\n)\nconst yearPickerRef = useTemplateRef<HTMLElement>('yearPickerRef')\n\nfunction togglePicker(picker: 'year' | 'month') {\n activePicker.value = activePicker.value === picker ? null : picker\n if (activePicker.value === 'year') {\n nextTick(() => {\n const container = yearPickerRef.value\n const el = container?.querySelector('.dp-picker-item--selected') as HTMLElement | null\n if (el && container) {\n container.scrollTop = el.offsetTop - container.offsetHeight / 2 + el.offsetHeight / 2\n } else if (container) {\n container.scrollTop = container.scrollHeight\n }\n })\n }\n}\n\nfunction selectYear(year: number) {\n currentYear.value = year\n activePicker.value = null\n}\nfunction selectMonth(month: number) {\n currentMonth.value = month\n activePicker.value = null\n}\n\n// Selection & emit\nfunction selectDay(day: { date: Date; disabled: boolean }) {\n if (day.disabled) return\n selectedDate.value = new Date(day.date)\n emitValue()\n if (cfg.value.showTime) {\n nextTick(() => hoursInput.value?.focus())\n }\n}\n\nfunction emitValue() {\n if (!selectedDate.value) {\n emit('update:modelValue', null)\n return\n }\n const result = new Date(selectedDate.value)\n if (cfg.value.showTime) result.setHours(hours.value, minutes.value, 0, 0)\n else result.setHours(0, 0, 0, 0)\n emit('update:modelValue', formatDate(result, outputFormat.value))\n}\n\nfunction onClear() {\n selectedDate.value = null\n hours.value = 0\n minutes.value = 0\n emit('update:modelValue', null)\n}\n\n// Time input\nfunction createTimeField(max: number, valueRef: { value: number }) {\n return computed({\n get: () => String(valueRef.value).padStart(2, '0'),\n set: (val: string) => {\n valueRef.value = Math.min(max, Math.max(0, parseInt(val) || 0))\n },\n })\n}\n\nconst formattedHours = createTimeField(23, hours)\nconst formattedMinutes = createTimeField(59, minutes)\nconst hoursInput = useTemplateRef<HTMLInputElement>('hoursInput')\nconst minutesInput = useTemplateRef<HTMLInputElement>('minutesInput')\n\nfunction onTimeInput(field: 'hours' | 'minutes', event: Event) {\n const el = event.target as HTMLInputElement\n if (field === 'hours') {\n formattedHours.value = el.value\n if (el.value.length >= 2) {\n minutesInput.value?.focus()\n minutesInput.value?.select()\n }\n } else {\n formattedMinutes.value = el.value\n if (el.value.length >= 2) el.blur()\n }\n emitValue()\n}\n</script>\n\n<template>\n <div class=\"ac-component\">\n <div class=\"dp-calendar\">\n <div class=\"dp-header\">\n <button\n class=\"dp-nav-btn\"\n type=\"button\"\n :aria-label=\"activePicker ? 'Back to days' : 'Previous'\"\n @click=\"onPrev\"\n >\n <i class=\"fa-solid fa-chevron-left\"></i>\n </button>\n <div class=\"dp-header-labels\">\n <span class=\"dp-header-labels--item\" @click=\"togglePicker('year')\">{{\n currentYear\n }}</span>\n <span class=\"dp-header-labels--item\" @click=\"togglePicker('month')\">{{ monthName }}</span>\n </div>\n <button\n class=\"dp-nav-btn\"\n type=\"button\"\n :aria-label=\"activePicker ? 'Back to days' : 'Next'\"\n :class=\"{ 'dp-nav-btn--spacer': activePicker !== null }\"\n :aria-hidden=\"activePicker ? 'true' : 'false'\"\n @click=\"onNext\"\n >\n <i class=\"fa-solid fa-chevron-right\"></i>\n </button>\n </div>\n\n <div\n class=\"dp-body\"\n :class=\"{ 'dp-body--has-footer': cfg.showTime || cfg.showOkButton || cfg.showClearButton }\"\n >\n <!-- Year picker -->\n <div\n v-if=\"activePicker === 'year'\"\n ref=\"yearPickerRef\"\n class=\"dp-picker-grid dp-picker-grid--4col dp-picker-grid--scrollable c-scroll\"\n >\n <button\n v-for=\"y in yearList\"\n :key=\"y\"\n type=\"button\"\n class=\"dp-picker-item\"\n :class=\"{\n 'dp-picker-item--selected': y === currentYear,\n 'dp-picker-item--today': y === new Date().getFullYear(),\n }\"\n @click=\"selectYear(y)\"\n >\n {{ y }}\n </button>\n </div>\n\n <!-- Month picker -->\n <div\n v-else-if=\"activePicker === 'month'\"\n class=\"dp-picker-grid dp-month-picker dp-picker-grid--3col\"\n >\n <button\n v-for=\"(name, idx) in monthNames\"\n :key=\"idx\"\n type=\"button\"\n class=\"dp-picker-item\"\n :class=\"{\n 'dp-picker-item--selected': idx === currentMonth,\n 'dp-picker-item--today':\n idx === new Date().getMonth() && currentYear === new Date().getFullYear(),\n }\"\n @click=\"selectMonth(idx)\"\n >\n {{ name }}\n </button>\n </div>\n\n <!-- Day picker -->\n <template v-else>\n <div class=\"dp-weekdays\" :class=\"{ 'dp-weekdays--has-week': cfg.showWeekNumber }\">\n <span v-if=\"cfg.showWeekNumber\" class=\"dp-weekday dp-weekday--week\"></span>\n <span v-for=\"d in weekDays\" :key=\"d\" class=\"dp-weekday\">{{ d }}</span>\n </div>\n <div\n class=\"dp-picker-grid\"\n :class=\"cfg.showWeekNumber ? 'dp-picker-grid--8col' : 'dp-picker-grid--7col'\"\n >\n <template v-for=\"(day, i) in calendarDays\" :key=\"i\">\n <span\n v-if=\"cfg.showWeekNumber && Number(i) % 7 === 0\"\n class=\"dp-week-number\"\n :class=\"{\n 'dp-week-number--other':\n !day.currentMonth && !calendarDays[Number(i) + 7]?.currentMonth,\n }\"\n v-tooltip=\"`${weekNumbers[Math.floor(Number(i) / 7)]}. hét`\"\n >\n {{ weekNumbers[Math.floor(Number(i) / 7)] }}.\n </span>\n <button\n type=\"button\"\n class=\"dp-picker-item dp-picker-item--circle\"\n :class=\"{\n 'dp-picker-item--other': !day.currentMonth,\n 'dp-picker-item--selected': isSameDay(day.date, selectedDate),\n 'dp-picker-item--today': isToday(day.date),\n 'dp-picker-item--disabled': day.disabled,\n 'dp-picker-item--weekend': cfg.highlightWeekends && isWeekend(day.date),\n }\"\n :disabled=\"day.disabled\"\n @click=\"selectDay(day)\"\n >\n {{ day.date.getDate() }}\n </button>\n </template>\n </div>\n\n <div v-if=\"cfg.showTime || cfg.showOkButton || cfg.showClearButton\" class=\"c-footer\">\n <template v-if=\"cfg.showTime\">\n <label class=\"dp-time-label\" for=\"dp-hours\">Idő</label>\n <div class=\"dp-time-inputs\">\n <input\n id=\"dp-hours\"\n ref=\"hoursInput\"\n type=\"number\"\n class=\"c-focus dp-time-input\"\n :value=\"formattedHours\"\n :disabled=\"!selectedDate\"\n min=\"0\"\n max=\"23\"\n @input=\"onTimeInput('hours', $event)\"\n @focus=\"($event.target as HTMLInputElement).select()\"\n />\n <span class=\"dp-time-sep\">:</span>\n <input\n id=\"dp-minutes\"\n ref=\"minutesInput\"\n type=\"number\"\n class=\"c-focus dp-time-input\"\n :value=\"formattedMinutes\"\n :disabled=\"!selectedDate\"\n min=\"0\"\n max=\"59\"\n @input=\"onTimeInput('minutes', $event)\"\n @focus=\"($event.target as HTMLInputElement).select()\"\n />\n </div>\n </template>\n <Button\n v-if=\"cfg.showClearButton\"\n label=\"Törlés\"\n @click=\"onClear\"\n outline\n :disabled=\"!selectedDate\"\n />\n <Button\n v-if=\"cfg.showOkButton\"\n label=\"OK\"\n type=\"success\"\n @click=\"emit('confirm', modelValue)\"\n :disabled=\"!selectedDate\"\n />\n </div>\n </template>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/calendar.scss\"></style>\n<style lang=\"scss\" src=\"@/styles/components/datepickers.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components80.js","names":[],"sources":["../src/components/data-table/DataFilters.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DropdownOption } from '@/components/DropdownSelect.vue'\nimport { getFilterParams } from '@/utils/filterUrlSync'\n\nexport { getFilterParams }\n\nexport interface FilterItem {\n type: FilterItemType\n key: string\n label?: string\n placeholder?: string\n value?: any\n options?: DropdownOption[]\n fullWidth?: boolean\n config?: Record<string, any>\n displayClass?: string\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onMounted } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\nimport DatePicker from '@/components/DatePicker.vue'\nimport DateRangePicker from '@/components/DateRangePicker.vue'\nimport DropdownSelect from '@/components/DropdownSelect.vue'\nimport Button from '@/components/Button.vue'\nimport Checkbox from '@/components/Checkbox.vue'\nimport FiltersHistory from '@/components/data-table/FiltersHistory.vue'\nimport { debounce } from '@/utils/debounce'\nimport { readUrlFilterParams, writeFilterParams } from '@/utils/filterUrlSync'\nimport type { DatePickerConfig, DateRangePickerConfig } from '@/types/datepickers'\nimport type { FilterItemType, PickedDate, PickedUtcRange } from '@/types/types'\n\nconst props = withDefaults(\n defineProps<{\n open?: boolean\n items: FilterItem[]\n position?: SidebarPosition\n lazy?: boolean\n handleUrl?: boolean\n historyEnabled?: boolean\n storageKey?: string\n }>(),\n {\n open: false,\n position: 'left',\n lazy: true,\n handleUrl: false,\n historyEnabled: true,\n },\n)\n\nconst emit = defineEmits<{\n close: []\n change: [filters: Record<string, any>]\n}>()\n\nconst values = ref<Record<string, any>>(getDefaults())\nconst filterRefs = ref<Record<string, any>>({})\n\nfunction setFilterRef(key: string, el: any) {\n if (el) {\n filterRefs.value[key] = el\n } else {\n delete filterRefs.value[key]\n }\n}\n\nfunction buildDatePickerConfig(item: FilterItem): DatePickerConfig {\n return {\n ...(item.config ?? {}),\n showTime: item.type === 'datetime',\n placeholder: item.placeholder ?? (item.type === 'datetime' ? 'Időpont' : 'Dátum'),\n }\n}\n\nfunction buildDateRangePickerConfig(item: FilterItem): DateRangePickerConfig {\n return {\n ...(item.config ?? {}),\n ...(!item.fullWidth ? { compact: true } : {}),\n showTime: item.type === 'datetimerange',\n }\n}\n\nfunction getDefaults(value: any = null): Record<string, any> {\n const defaults: Record<string, any> = {}\n for (const item of props.items) {\n if (item.type === 'separator') continue\n defaults[item.key] = item.value ?? value\n }\n return defaults\n}\n\nonMounted(() => {\n if (!props.handleUrl) return\n const fromUrl = readUrlFilterParams(props.items)\n if (Object.keys(fromUrl).length > 0) {\n values.value = { ...values.value, ...fromUrl }\n }\n})\nfunction filterEmptyValues(filters: Record<string, any>): Record<string, any> {\n return Object.fromEntries(\n Object.entries(filters).filter(([_, val]) => val !== null && val !== '' && val !== undefined),\n )\n}\n\nfunction update(key: string, value: any) {\n values.value = { ...values.value, [key]: value }\n\n if (!props.lazy) {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', filterEmptyValues(values.value))\n }\n}\n\nconst debouncedUpdate = debounce((key: string, value: any) => {\n update(key, value)\n})\n\nfunction confirm() {\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', filterEmptyValues(values.value))\n emit('close')\n}\n\n/* function reset() {\n values.value = getDefaults()\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', filterEmptyValues(values.value))\n} */\n\nfunction clearAll() {\n values.value = {}\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n\n emit('change', filterEmptyValues(values.value))\n}\n\nconst hasActiveFilters = ref(false)\nwatch(\n values,\n (v) => {\n hasActiveFilters.value = Object.values(v).some(\n (val) => val !== null && val !== '' && val !== undefined,\n )\n },\n { deep: true, immediate: true },\n)\n\nfunction clearFilter(key: string) {\n values.value = { ...values.value, [key]: null }\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', filterEmptyValues(values.value))\n}\n\nfunction focusFilter(key: string) {\n const ref = (filterRefs.value as Record<string, any>)[key]\n if (!ref) return\n\n if (typeof ref.focusAndOpen === 'function') {\n ref.focusAndOpen()\n return\n }\n if (typeof ref.focus === 'function') {\n ref.focus()\n }\n}\n\nfunction onHistoryLoad(loaded: Record<string, any>) {\n const next: Record<string, any> = { ...values.value }\n for (const item of props.items) {\n if (item.type === 'separator') continue\n if (item.key in loaded) {\n next[item.key] = loaded[item.key] ?? null\n }\n }\n values.value = next\n if (props.handleUrl) writeFilterParams(props.items, values.value)\n emit('change', filterEmptyValues(values.value))\n}\n\ndefineExpose({ clearFilter, focusFilter })\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Szűrők\" :position=\"position\" @close=\"emit('close')\">\n <div class=\"data-filters\">\n <div\n v-for=\"item in items\"\n :key=\"item.key\"\n class=\"data-filters__field\"\n :class=\"{ 'data-filters__field--full': item.fullWidth || item.type === 'separator' }\"\n >\n <hr v-if=\"item.type === 'separator'\" class=\"data-filters__separator\" />\n <template v-else-if=\"item.type === 'checkbox'\">\n <Checkbox\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as boolean) ?? false\"\n :label=\"item.label ?? item.key\"\n @update:model-value=\"(val) => update(item.key, val)\"\n v-bind=\"item.config\"\n />\n </template>\n <template v-else>\n <label class=\"c-label\" :for=\"`df-${item.key}`\">{{ item.label ?? item.key }}</label>\n\n <input\n v-if=\"item.type === 'text'\"\n type=\"text\"\n class=\"c-input-row\"\n :placeholder=\"item.placeholder\"\n :value=\"values[item.key] ?? ''\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n @input=\"debouncedUpdate(item.key, ($event.target as HTMLInputElement).value || null)\"\n v-bind=\"item.config\"\n />\n\n <textarea\n v-else-if=\"item.type === 'textarea'\"\n class=\"c-input-row data-filters__textarea\"\n :placeholder=\"item.placeholder\"\n :value=\"values[item.key] ?? ''\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n v-bind=\"item.config\"\n @input=\"debouncedUpdate(item.key, ($event.target as HTMLTextAreaElement).value || null)\"\n />\n\n <input\n v-else-if=\"item.type === 'number'\"\n type=\"number\"\n class=\"c-input-row\"\n :placeholder=\"item.placeholder\"\n :value=\"values[item.key] ?? ''\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n v-bind=\"item.config\"\n @input=\"\n debouncedUpdate(\n item.key,\n ($event.target as HTMLInputElement).value\n ? Number(($event.target as HTMLInputElement).value)\n : null,\n )\n \"\n />\n\n <DatePicker\n v-else-if=\"item.type === 'date' || item.type === 'datetime'\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :id=\"`df-${item.key}`\"\n :model-value=\"(values[item.key] as PickedDate) ?? null\"\n :config=\"buildDatePickerConfig(item)\"\n @update:model-value=\"update(item.key, $event)\"\n />\n\n <DateRangePicker\n v-else-if=\"item.type === 'daterange' || item.type === 'datetimerange'\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as PickedUtcRange) ?? null\"\n :config=\"buildDateRangePickerConfig(item)\"\n @update:model-value=\"update(item.key, $event)\"\n />\n\n <DropdownSelect\n v-else-if=\"item.type === 'dropdown'\"\n :ref=\"(el: any) => setFilterRef(item.key, el)\"\n :model-value=\"(values[item.key] as string) ?? null\"\n :options=\"item.options ?? []\"\n :config=\"{\n ...(item.config ?? {}),\n placeholder: item.placeholder ?? 'Válassz...',\n clearable: true,\n filterable: true,\n }\"\n @update:model-value=\"update(item.key, $event)\"\n />\n </template>\n </div>\n </div>\n <div class=\"data-filters__footer\">\n <!-- <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Alaphelyzet visszaállítása\"\n size=\"small\"\n @click=\"reset\"\n /> -->\n <Button\n icon=\"fa-solid fa-trash-can\"\n :disabled=\"!hasActiveFilters\"\n label=\"Szűrők törlése\"\n aria-label=\"Szűrők törlése\"\n size=\"small\"\n @click=\"clearAll\"\n />\n <Button label=\"Szűrés\" aria-label=\"Szűrés\" type=\"success\" @click=\"confirm\" />\n </div>\n <hr v-if=\"historyEnabled\" class=\"separator my-3\" />\n <FiltersHistory\n v-if=\"historyEnabled\"\n :items=\"items\"\n :values=\"values\"\n :storage-key=\"storageKey\"\n @load=\"onHistoryLoad\"\n @change=\"onHistoryLoad\"\n />\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-filters.scss\"></style>\n"],"mappings":""}
|
|
@@ -21,7 +21,7 @@ var d = { class: "filter-tags ac-component gap-1" }, f = ["onClick"], p = { clas
|
|
|
21
21
|
key: 0,
|
|
22
22
|
class: o(["filter-tags__tag c-chip", [a.itemClass, y(d)?.displayClass]])
|
|
23
23
|
}, [i("span", {
|
|
24
|
-
class: "filter-tags__content align-center-
|
|
24
|
+
class: "filter-tags__content align-center-fix",
|
|
25
25
|
onClick: (e) => v("openFilter", String(d))
|
|
26
26
|
}, [i("span", p, l(b(String(d))) + ":", 1), i("span", {
|
|
27
27
|
class: "filter-tags__value",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components81.js","names":[],"sources":["../src/components/data-table/FilterTags.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { FilterItem } from '@/components/data-table/DataFilters.vue'\nimport { displayFilterValue } from '@/utils/filterDisplay'\n\nconst props = defineProps<{\n filters: Record<string, any>\n items: FilterItem[]\n itemClass?: string\n}>()\nconst emit = defineEmits<{\n remove: [key: string]\n openFilter: [key: string]\n}>()\n\nfunction getFilterItem(key: string): FilterItem | undefined {\n return props.items.find((i) => i.key === key)\n}\n\nfunction getLabel(key: string): string {\n return getFilterItem(key)?.label ?? key\n}\n</script>\n\n<template>\n <div class=\"filter-tags ac-component gap-1\">\n <template v-for=\"(value, key) in filters\" :key=\"key\">\n <span\n v-if=\"value != null && value !== ''\"\n class=\"filter-tags__tag c-chip\"\n :class=\"[itemClass, getFilterItem(key)?.displayClass]\"\n >\n <span\n class=\"filter-tags__content align-center-fix\"\n @click=\"emit('openFilter', String(key))\"\n >\n <span class=\"filter-tags__key\">{{ getLabel(String(key)) }}:</span>\n <span class=\"filter-tags__value\" :title=\"displayFilterValue(items, String(key), value)\">{{\n displayFilterValue(items, String(key), value)\n }}</span>\n </span>\n\n <button\n type=\"button\"\n class=\"filter-tags__remove\"\n @click=\"emit('remove', String(key))\"\n aria-label=\"Remove filter\"\n >\n <i class=\"fa-solid fa-fw fa-xmark\"></i>\n </button>\n </span>\n </template>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/filter-tags.scss\"></style>\n"],"mappings":";;;;;;;;;;;;EAIA,IAAM,IAAQ,GAKR,IAAO;EAKb,SAAS,EAAc,GAAqC;GAC1D,OAAO,EAAM,MAAM,MAAM,MAAM,EAAE,QAAQ,CAAG;EAC9C;EAEA,SAAS,EAAS,GAAqB;GACrC,OAAO,EAAc,CAAG,GAAG,SAAS;EACtC;yBAIE,EA2BM,OA3BN,GA2BM,EAAA,EAAA,EAAA,GA1BJ,EAyBW,GAAA,MAAA,EAzBsB,EAAA,UAAf,GAAO,mBAAuB,OAAG,GAAA,CAEzC,KAAK,QAAY,MAAK,MAAA,EAAA,GAD9B,EAuBO,QAAA;;GArBL,OAAK,EAAA,CAAC,2BAAyB,CACtB,EAAA,WAAW,EAAc,CAAG,GAAG,YAAY,CAAA,CAAA;MAEpD,EAQO,QAAA;GAPL,OAAM;GACL,UAAK,MAAE,EAAI,cAAe,OAAO,CAAG,CAAA;MAErC,EAAkE,QAAlE,GAAkE,EAAhC,EAAS,OAAO,CAAG,CAAA,CAAA,IAAK,KAAC,CAAA,GAC3D,EAES,QAAA;GAFH,OAAM;GAAsB,OAAO,EAAA,CAAA,EAAmB,EAAA,OAAO,OAAO,CAAG,GAAG,CAAK;OACnF,EAAA,CAAA,EAAmB,EAAA,OAAO,OAAO,CAAG,GAAG,CAAK,CAAA,GAAA,GAAA,CAAA,CAAA,GAAA,GAAA,CAAA,GAIhD,EAOS,UAAA;GANP,MAAK;GACL,OAAM;GACL,UAAK,MAAE,EAAI,UAAW,OAAO,CAAG,CAAA;GACjC,cAAW;mBAEX,EAAuC,KAAA,EAApC,OAAM,0BAAyB,GAAA,MAAA,EAAA,CAAA,CAAA,GAAA,GAAA,CAAA,CAAA,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,GAAA,EAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components83.js","names":[],"sources":["../src/components/data-table/FilterTags.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { FilterItem } from '@/components/data-table/DataFilters.vue'\nimport { displayFilterValue } from '@/utils/filterDisplay'\n\nconst props = defineProps<{\n filters: Record<string, any>\n items: FilterItem[]\n itemClass?: string\n}>()\nconst emit = defineEmits<{\n remove: [key: string]\n openFilter: [key: string]\n}>()\n\nfunction getFilterItem(key: string): FilterItem | undefined {\n return props.items.find((i) => i.key === key)\n}\n\nfunction getLabel(key: string): string {\n return getFilterItem(key)?.label ?? key\n}\n</script>\n\n<template>\n <div class=\"filter-tags ac-component gap-1\">\n <template v-for=\"(value, key) in filters\" :key=\"key\">\n <span\n v-if=\"value != null && value !== ''\"\n class=\"filter-tags__tag c-chip\"\n :class=\"[itemClass, getFilterItem(key)?.displayClass]\"\n >\n <span\n class=\"filter-tags__content align-center-fix\"\n @click=\"emit('openFilter', String(key))\"\n >\n <span class=\"filter-tags__key\">{{ getLabel(String(key)) }}:</span>\n <span class=\"filter-tags__value\" :title=\"displayFilterValue(items, String(key), value)\">{{\n displayFilterValue(items, String(key), value)\n }}</span>\n </span>\n\n <button\n type=\"button\"\n class=\"filter-tags__remove\"\n @click=\"emit('remove', String(key))\"\n aria-label=\"Remove filter\"\n >\n <i class=\"fa-solid fa-fw fa-xmark\"></i>\n </button>\n </span>\n </template>\n </div>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/filter-tags.scss\"></style>\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components84.js","names":[],"sources":["../src/components/data-table/DataListGuide.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nwithDefaults(\n defineProps<{\n open?: boolean\n position?: SidebarPosition\n }>(),\n {\n open: false,\n position: 'right',\n },\n)\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst root = ref<HTMLElement | null>(null)\n\nfunction scrollToSection(target: string | null | undefined) {\n if (!target || !root.value) return\n const el = root.value.querySelector(`#${target}`)\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' })\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Súgó\" :position=\"position\" @close=\"emit('close')\">\n <div ref=\"root\" class=\"ac-component dl-guide\">\n <section class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">Tartalom</h3>\n <ul class=\"dl-guide-toc m-0\">\n <li>\n <a\n href=\"#\"\n class=\"dl-guide-toc-link dl-guide-toc-link--primary\"\n @click.prevent=\"scrollToSection('layout')\"\n >Megjelenés testreszabása</a\n >\n <ul>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('view')\"\n >Nézet</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('appearance')\"\n >Megjelenés</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('columns')\"\n >Oszlopok láthatósága és sorrendje</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('reset')\"\n >Beállítások visszaállítása</a\n >\n </li>\n </ul>\n </li>\n <li>\n <a\n href=\"#\"\n class=\"dl-guide-toc-link dl-guide-toc-link--primary\"\n @click.prevent=\"scrollToSection('filters')\"\n >Szűrők</a\n >\n <ul>\n <li class=\"m-0\">\n <a\n href=\"#\"\n class=\"dl-guide-toc-link\"\n @click.prevent=\"scrollToSection('exact-match')\"\n >Pontos egyezés</a\n >\n </li>\n <li class=\"m-0\">\n <a\n href=\"#\"\n class=\"dl-guide-toc-link\"\n @click.prevent=\"scrollToSection('save-filters')\"\n >Szűrések mentése</a\n >\n </li>\n </ul>\n </li>\n </ul>\n </section>\n <hr class=\"separator\" />\n <section id=\"layout\" class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">A táblázat megjelenésének testreszabása</h3>\n <p>\n A <strong><i class=\"fa-solid fa-gear\"></i> Beállítások</strong> gombra kattintva lehetőség\n van a tábla megjelenésének testreszabására. A beállítások az adott táblához kapcsolódóan\n helyi tárolóban kerülnek mentésre, így ugyanazon eszközön és böngészőben megmaradnak a\n következő látogatáskor is.\n </p>\n <hr class=\"separator\" />\n <h4 id=\"view\" class=\"dl-guide-subtitle\">Nézet</h4>\n <ul>\n <li>\n <i class=\"fa-solid fa-display mr-1\"></i>\n <strong>Kijelző méretéhez igazodó</strong> (alapértelmezett): A kijelző méretétől\n függően automatikusan választ a táblázat és a kártyás nézet között.\n </li>\n <li>\n <i class=\"fa-solid fa-table-list mr-1\"></i> <strong>Táblázat:</strong> klasszikus\n táblázatos megjelenés\n </li>\n <li>\n <i class=\"fa-solid fa-list mr-1\"></i> <strong>Kártyák:</strong> sorok kártyás\n megjelenítése, a kártya fejlécére kattintva lenyithatóak a részletes adatok.\n </li>\n </ul>\n <hr class=\"separator\" />\n <h4 id=\"appearance\" class=\"dl-guide-subtitle\">Megjelenés</h4>\n <ul>\n <li>\n <strong>Kompakt:</strong> A sorok közti távolság és a belső margók csökkentésével több\n adat jeleníthető meg egyszerre.\n </li>\n <li>\n <strong>Sávos (striped):</strong> Csak a táblázatos nézetben elérhető, minden második\n sor enyhe szürke hátteret kap, ezzel megkönnyítve a sorok követését.\n </li>\n </ul>\n <hr class=\"separator\" />\n <h4 id=\"columns\" class=\"dl-guide-subtitle\">Oszlopok láthatósága és sorrendje</h4>\n <ul>\n <li>\n <strong>Kártya fejléc:</strong> kártyás nézet esetén a fejlécben megjelenő mezők\n láthatósága és sorrendje.\n </li>\n <li>\n <strong>Oszlopok:</strong> táblázat nézetben az oszlopok láthatósága és sorrendje.\n </li>\n </ul>\n <p>\n A sorrend módosítása történhet az <i class=\"fa-solid fa-grip-vertical\"></i> ikonon\n <strong class=\"nowrap\">drag-n-drop</strong>al vagy az ikonra kattinva a megjelenő nyilak\n segítségével.\n </p>\n <hr class=\"separator\" />\n\n <h4 id=\"reset\" class=\"dl-guide-subtitle\">Beállítások visszaállítása</h4>\n <p>\n Az\n <strong>Alapértelmezés visszaállítása</strong> gomb visszaállítja a gyári értékeket, és\n törli a helyi tárolóban elmentett beállításokat.\n </p>\n </section>\n <hr class=\"separator\" />\n <section id=\"filters\" class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">Szűrők</h3>\n <h4 id=\"exact-match\" class=\"dl-guide-subtitle\">Pontos egyezés</h4>\n <p>\n Amennyiben a táblázhoz tartozik szabad szavas keresés, a pontos egyezés opciót használva\n csak azokat a találatokat kapjuk, amelyek teljes mértékben megfelelnek a keresett\n kifejezésnek. Pl. alap esetben <strong><em>\"alma\"</em></strong> keresésre a <strong><em>\"piros alma\"</em></strong>, <strong><em>\"almafa\"</em></strong>, <strong><em>\"alma\"</em></strong> vagy\n <strong><em>\"almás pite\"</em></strong> is találat lehet, míg pontos egyezés esetén csak az <strong><em>\"alma\"</em></strong> található meg.\n </p>\n<hr class=\"separator\" />\n <h4 id=\"save-filters\" class=\"dl-guide-subtitle\">Szűrések mentése</h4>\n <p>\n A <strong><i class=\"fa-solid fa-sliders\"></i> Mentett szűrők</strong>re kattintva\n lehetőség van elmenteni az aktuális szűrési feltételeket, így később egyetlen kattintással\n előhívhatja azokat.\n </p>\n <p>\n A szűrési feltételek megadása után a\n <strong><i class=\"fa-solid fa-bookmark fa-sm\"></i> Mentés</strong> gomb megnyomásával\n elmenthető a szűrőkészlet. Az elnevezés megadása nem kötelező, csak saját magadnak szól a\n későbbi könnyebb azonosítás érdekében.\n </p>\n <p>\n Ezt követően a szűrőkészlet a mentés dátumával és elnevezésével jelenik meg a mentett\n szűrők között. Ezekre kattintva lenyithatók a szűrőkészlet részletei.\n </p>\n <p>A mentett készlet jobb oldalán található 3 ikon:</p>\n <ul>\n <li>\n <i class=\"fa-solid fa-check\"></i>: ikonra kattintva tölthetők be a készletek.\n Megnyomásakor a szűrési feltételek automatikusan kitöltődnek az elmentett értékekkel.\n </li>\n\n <li>\n <span class=\"c-indicator\">?</span>: azt mutatja, hogy hány szűrési feltétel van a\n készletben.\n </li>\n <li>\n <i class=\"fa-solid fa-xmark\"></i>: a mentett szűrőkészlet törlése (a művelet\n megerősítést kér).\n </li>\n </ul>\n <p class=\"dl-guide-note\">Táblázatonként maximum <strong>20</strong> készlet menthető el.</p>\n <p>\n A lista alján található \"Összes törlése\" gombbal törölhető a táblához tartozó minden\n elmentett szűrőkészlet.\n </p>\n\n <p class=\"dl-guide-note\">\n <strong>Fontos:</strong> a beállítások és a szűrők is csak böngészőben (localStorage)\n kerülnek tárolásra, ezért más eszközön vagy böngészőben nem lesznek elérhetőek.\n </p>\n </section>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-guide.scss\"></style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admins-components86.js","names":[],"sources":["../src/components/data-table/DataListGuide.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref } from 'vue'\nimport Sidebar, { type SidebarPosition } from '@/components/Sidebar.vue'\n\nwithDefaults(\n defineProps<{\n open?: boolean\n position?: SidebarPosition\n }>(),\n {\n open: false,\n position: 'right',\n },\n)\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst root = ref<HTMLElement | null>(null)\n\nfunction scrollToSection(target: string | null | undefined) {\n if (!target || !root.value) return\n const el = root.value.querySelector(`#${target}`)\n if (el) el.scrollIntoView({ behavior: 'smooth', block: 'start' })\n}\n</script>\n\n<template>\n <Sidebar :open=\"open\" title=\"Súgó\" :position=\"position\" @close=\"emit('close')\">\n <div ref=\"root\" class=\"ac-component dl-guide\">\n <section class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">Tartalom</h3>\n <ul class=\"dl-guide-toc m-0\">\n <li>\n <a\n href=\"#\"\n class=\"dl-guide-toc-link dl-guide-toc-link--primary\"\n @click.prevent=\"scrollToSection('layout')\"\n >Megjelenés testreszabása</a\n >\n <ul>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('view')\"\n >Nézet</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('appearance')\"\n >Megjelenés</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('columns')\"\n >Oszlopok láthatósága és sorrendje</a\n >\n </li>\n <li class=\"m-0\">\n <a href=\"#\" class=\"dl-guide-toc-link\" @click.prevent=\"scrollToSection('reset')\"\n >Beállítások visszaállítása</a\n >\n </li>\n </ul>\n </li>\n <li>\n <a\n href=\"#\"\n class=\"dl-guide-toc-link dl-guide-toc-link--primary\"\n @click.prevent=\"scrollToSection('filters')\"\n >Szűrők</a\n >\n <ul>\n <li class=\"m-0\">\n <a\n href=\"#\"\n class=\"dl-guide-toc-link\"\n @click.prevent=\"scrollToSection('exact-match')\"\n >Pontos egyezés</a\n >\n </li>\n <li class=\"m-0\">\n <a\n href=\"#\"\n class=\"dl-guide-toc-link\"\n @click.prevent=\"scrollToSection('save-filters')\"\n >Szűrések mentése</a\n >\n </li>\n </ul>\n </li>\n </ul>\n </section>\n <hr class=\"separator\" />\n <section id=\"layout\" class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">A táblázat megjelenésének testreszabása</h3>\n <p>\n A <strong><i class=\"fa-solid fa-gear\"></i> Beállítások</strong> gombra kattintva lehetőség\n van a tábla megjelenésének testreszabására. A beállítások az adott táblához kapcsolódóan\n helyi tárolóban kerülnek mentésre, így ugyanazon eszközön és böngészőben megmaradnak a\n következő látogatáskor is.\n </p>\n <hr class=\"separator\" />\n <h4 id=\"view\" class=\"dl-guide-subtitle\">Nézet</h4>\n <ul>\n <li>\n <i class=\"fa-solid fa-display mr-1\"></i>\n <strong>Kijelző méretéhez igazodó</strong> (alapértelmezett): A kijelző méretétől\n függően automatikusan választ a táblázat és a kártyás nézet között.\n </li>\n <li>\n <i class=\"fa-solid fa-table-list mr-1\"></i> <strong>Táblázat:</strong> klasszikus\n táblázatos megjelenés\n </li>\n <li>\n <i class=\"fa-solid fa-list mr-1\"></i> <strong>Kártyák:</strong> sorok kártyás\n megjelenítése, a kártya fejlécére kattintva lenyithatóak a részletes adatok.\n </li>\n </ul>\n <hr class=\"separator\" />\n <h4 id=\"appearance\" class=\"dl-guide-subtitle\">Megjelenés</h4>\n <ul>\n <li>\n <strong>Kompakt:</strong> A sorok közti távolság és a belső margók csökkentésével több\n adat jeleníthető meg egyszerre.\n </li>\n <li>\n <strong>Sávos (striped):</strong> Csak a táblázatos nézetben elérhető, minden második\n sor enyhe szürke hátteret kap, ezzel megkönnyítve a sorok követését.\n </li>\n </ul>\n <hr class=\"separator\" />\n <h4 id=\"columns\" class=\"dl-guide-subtitle\">Oszlopok láthatósága és sorrendje</h4>\n <ul>\n <li>\n <strong>Kártya fejléc:</strong> kártyás nézet esetén a fejlécben megjelenő mezők\n láthatósága és sorrendje.\n </li>\n <li>\n <strong>Oszlopok:</strong> táblázat nézetben az oszlopok láthatósága és sorrendje.\n </li>\n </ul>\n <p>\n A sorrend módosítása történhet az <i class=\"fa-solid fa-grip-vertical\"></i> ikonon\n <strong class=\"nowrap\">drag-n-drop</strong>al vagy az ikonra kattinva a megjelenő nyilak\n segítségével.\n </p>\n <hr class=\"separator\" />\n\n <h4 id=\"reset\" class=\"dl-guide-subtitle\">Beállítások visszaállítása</h4>\n <p>\n Az\n <strong>Alapértelmezés visszaállítása</strong> gomb visszaállítja a gyári értékeket, és\n törli a helyi tárolóban elmentett beállításokat.\n </p>\n </section>\n <hr class=\"separator\" />\n <section id=\"filters\" class=\"dl-guide-section\">\n <h3 class=\"dl-guide-title\">Szűrők</h3>\n <h4 id=\"exact-match\" class=\"dl-guide-subtitle\">Pontos egyezés</h4>\n <p>\n Amennyiben a táblázhoz tartozik szabad szavas keresés, a pontos egyezés opciót használva\n csak azokat a találatokat kapjuk, amelyek teljes mértékben megfelelnek a keresett\n kifejezésnek. Pl. alap esetben <strong><em>\"alma\"</em></strong> keresésre a <strong><em>\"piros alma\"</em></strong>, <strong><em>\"almafa\"</em></strong>, <strong><em>\"alma\"</em></strong> vagy\n <strong><em>\"almás pite\"</em></strong> is találat lehet, míg pontos egyezés esetén csak az <strong><em>\"alma\"</em></strong> található meg.\n </p>\n<hr class=\"separator\" />\n <h4 id=\"save-filters\" class=\"dl-guide-subtitle\">Szűrések mentése</h4>\n <p>\n A <strong><i class=\"fa-solid fa-sliders\"></i> Mentett szűrők</strong>re kattintva\n lehetőség van elmenteni az aktuális szűrési feltételeket, így később egyetlen kattintással\n előhívhatja azokat.\n </p>\n <p>\n A szűrési feltételek megadása után a\n <strong><i class=\"fa-solid fa-bookmark fa-sm\"></i> Mentés</strong> gomb megnyomásával\n elmenthető a szűrőkészlet. Az elnevezés megadása nem kötelező, csak saját magadnak szól a\n későbbi könnyebb azonosítás érdekében.\n </p>\n <p>\n Ezt követően a szűrőkészlet a mentés dátumával és elnevezésével jelenik meg a mentett\n szűrők között. Ezekre kattintva lenyithatók a szűrőkészlet részletei.\n </p>\n <p>A mentett készlet jobb oldalán található 3 ikon:</p>\n <ul>\n <li>\n <i class=\"fa-solid fa-check\"></i>: ikonra kattintva tölthetők be a készletek.\n Megnyomásakor a szűrési feltételek automatikusan kitöltődnek az elmentett értékekkel.\n </li>\n\n <li>\n <span class=\"c-indicator\">?</span>: azt mutatja, hogy hány szűrési feltétel van a\n készletben.\n </li>\n <li>\n <i class=\"fa-solid fa-xmark\"></i>: a mentett szűrőkészlet törlése (a művelet\n megerősítést kér).\n </li>\n </ul>\n <p class=\"dl-guide-note\">Táblázatonként maximum <strong>20</strong> készlet menthető el.</p>\n <p>\n A lista alján található \"Összes törlése\" gombbal törölhető a táblához tartozó minden\n elmentett szűrőkészlet.\n </p>\n\n <p class=\"dl-guide-note\">\n <strong>Fontos:</strong> a beállítások és a szűrők is csak böngészőben (localStorage)\n kerülnek tárolásra, ezért más eszközön vagy böngészőben nem lesznek elérhetőek.\n </p>\n </section>\n </div>\n </Sidebar>\n</template>\n\n<style lang=\"scss\" src=\"@/styles/components/data-table/data-list-guide.scss\"></style>\n"],"mappings":""}
|