admins-components 9.0.13 → 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-components11.js.map +1 -1
- package/dist/admins-components13.js +65 -65
- package/dist/admins-components13.js.map +1 -1
- package/dist/admins-components14.js.map +1 -1
- package/dist/admins-components15.js +1 -1
- package/dist/admins-components15.js.map +1 -1
- package/dist/admins-components16.js.map +1 -1
- package/dist/admins-components18.js +57 -57
- package/dist/admins-components18.js.map +1 -1
- package/dist/admins-components19.js.map +1 -1
- package/dist/admins-components20.js +52 -52
- package/dist/admins-components20.js.map +1 -1
- package/dist/admins-components22.js.map +1 -1
- package/dist/admins-components23.js +19 -19
- package/dist/admins-components23.js.map +1 -1
- package/dist/admins-components24.js.map +1 -1
- package/dist/admins-components28.js +39 -22
- package/dist/admins-components28.js.map +1 -1
- package/dist/admins-components30.js.map +1 -1
- package/dist/admins-components31.js +20 -20
- package/dist/admins-components31.js.map +1 -1
- package/dist/admins-components33.js.map +1 -1
- package/dist/admins-components39.js +48 -48
- package/dist/admins-components39.js.map +1 -1
- package/dist/admins-components41.js.map +1 -1
- package/dist/admins-components42.js +41 -41
- package/dist/admins-components42.js.map +1 -1
- package/dist/admins-components43.js.map +1 -1
- package/dist/admins-components44.js +60 -60
- package/dist/admins-components44.js.map +1 -1
- package/dist/admins-components45.js.map +1 -1
- package/dist/admins-components5.js +1 -1
- package/dist/admins-components5.js.map +1 -1
- package/dist/admins-components59.js +80 -75
- package/dist/admins-components59.js.map +1 -1
- package/dist/admins-components6.js.map +1 -1
- package/dist/admins-components61.js.map +1 -1
- package/dist/admins-components62.js +90 -85
- package/dist/admins-components62.js.map +1 -1
- package/dist/admins-components64.js.map +1 -1
- package/dist/admins-components69.js +41 -41
- package/dist/admins-components69.js.map +1 -1
- package/dist/admins-components71.js.map +1 -1
- package/dist/admins-components8.js +93 -93
- package/dist/admins-components8.js.map +1 -1
- package/dist/admins-components81.js +1 -1
- package/dist/admins-components81.js.map +1 -1
- package/dist/admins-components83.js.map +1 -1
- package/dist/admins-components87.js +70 -70
- package/dist/admins-components87.js.map +1 -1
- package/dist/admins-components89.js.map +1 -1
- package/dist/admins-components93.js +1 -1
- package/dist/admins-components93.js.map +1 -1
- 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 };
|
|
@@ -1 +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=\"dp-calendar ac-component\">\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')\">{{ currentYear }}</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': !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</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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"}
|
|
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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"}
|
|
@@ -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",
|
|
@@ -1 +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
|
|
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"}
|
|
@@ -1 +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
|
|
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":""}
|