golden-logic-ui 1.3.6 → 1.3.7
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.
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { computed as
|
|
2
|
-
const
|
|
1
|
+
import { computed as h, ref as B, watch as Y, onBeforeUnmount as Z, createElementBlock as d, openBlock as c, Fragment as D, createCommentVNode as g, normalizeClass as b, createElementVNode as a, toDisplayString as u, renderList as z, withKeys as V, withModifiers as j, createTextVNode as ee } from "vue";
|
|
2
|
+
const te = {
|
|
3
3
|
key: 0,
|
|
4
4
|
class: "gl-label-form"
|
|
5
|
-
},
|
|
5
|
+
}, re = { class: "mt-1 text-gray-900 dark:text-white" }, ne = { dir: "ltr" }, ae = {
|
|
6
6
|
key: 1,
|
|
7
7
|
class: "text-sm text-gray-500 dark:text-gray-400"
|
|
8
|
-
},
|
|
8
|
+
}, le = ["for"], oe = { class: "flex flex-col items-center gap-2 md:flex-row md:items-start" }, se = ["for"], ie = { class: "relative" }, ue = ["id", "name", "required", "placeholder", "value", "aria-expanded", "onFocus", "onInput", "onBlur", "onKeydown"], de = ["aria-label", "onClick"], ce = {
|
|
9
9
|
class: "flex items-center justify-center gap-2",
|
|
10
10
|
dir: "ltr"
|
|
11
|
-
},
|
|
11
|
+
}, me = { class: "flex flex-col items-center" }, ve = ["aria-label", "onClick"], ge = { class: "w-12 rounded-md border border-gray-300 bg-white py-1 text-center text-sm text-gray-900 dark:border-gray-600 dark:bg-gray-700 dark:text-white" }, ye = ["aria-label", "onClick"], fe = { class: "flex flex-col items-center" }, he = ["aria-label", "onClick"], xe = { class: "w-12 rounded-md border border-gray-300 bg-white py-1 text-center text-sm text-gray-900 dark:border-gray-600 dark:bg-gray-700 dark:text-white" }, be = ["aria-label", "onClick"], pe = { class: "ms-1 flex flex-col gap-1" }, ke = ["onClick"], _e = { class: "mt-4 flex flex-wrap items-center justify-between gap-2 border-t border-gray-200 pt-3 dark:border-gray-700" }, we = { dir: "ltr" }, $e = {
|
|
12
12
|
key: 2,
|
|
13
13
|
class: "mt-1"
|
|
14
|
-
},
|
|
14
|
+
}, Se = { class: "gl-span-form-error" }, Me = {
|
|
15
15
|
key: 3,
|
|
16
16
|
class: "mt-1 block text-sm font-normal leading-5 text-gray-500"
|
|
17
|
-
},
|
|
17
|
+
}, Be = {
|
|
18
18
|
__name: "GlTimeRangePicker",
|
|
19
19
|
props: {
|
|
20
20
|
modelValue: {
|
|
@@ -34,8 +34,13 @@ const tt = {
|
|
|
34
34
|
container_class: { type: String, default: "" },
|
|
35
35
|
// Minutes moved by one press of the minute arrows
|
|
36
36
|
minute_step: { type: Number, default: 5 },
|
|
37
|
-
// Whether an end at or before the start means the next day
|
|
37
|
+
// Whether an end at or before the start means the next day. When false the
|
|
38
|
+
// end must be after the start, except that 00:00 is accepted as midnight
|
|
39
|
+
// (the end of the day), so a range is never longer than 24 hours.
|
|
38
40
|
allow_overnight: { type: Boolean, default: !0 },
|
|
41
|
+
// With overnight off: whether the end may equal the start, as a date range
|
|
42
|
+
// may start and end on the same day. Off, equal times are refused.
|
|
43
|
+
allow_equal: { type: Boolean, default: !0 },
|
|
39
44
|
// Show the line explaining the range ("… · 9 hours", "Closes the next day …")
|
|
40
45
|
show_summary: { type: Boolean, default: !0 },
|
|
41
46
|
// "en" and "ar" are built in; anything else falls back to English
|
|
@@ -44,8 +49,8 @@ const tt = {
|
|
|
44
49
|
labels: { type: Object, default: () => ({}) }
|
|
45
50
|
},
|
|
46
51
|
emits: ["update:modelValue", "change"],
|
|
47
|
-
setup(l, { expose:
|
|
48
|
-
const
|
|
52
|
+
setup(l, { expose: U, emit: G }) {
|
|
53
|
+
const s = l, F = G, L = {
|
|
49
54
|
en: {
|
|
50
55
|
midnight: "Midnight",
|
|
51
56
|
clear: "Clear",
|
|
@@ -57,6 +62,7 @@ const tt = {
|
|
|
57
62
|
next_day: "closes the next day",
|
|
58
63
|
all_day: "open 24 hours",
|
|
59
64
|
end_after_start: "The end time must be after the start time.",
|
|
65
|
+
end_not_before_start: "The end time must not be before the start time.",
|
|
60
66
|
invalid: "Enter a time such as 8:30 AM."
|
|
61
67
|
},
|
|
62
68
|
ar: {
|
|
@@ -70,9 +76,10 @@ const tt = {
|
|
|
70
76
|
next_day: "يغلق في اليوم التالي",
|
|
71
77
|
all_day: "مفتوح 24 ساعة",
|
|
72
78
|
end_after_start: "يجب أن يكون وقت الانتهاء بعد وقت البدء.",
|
|
79
|
+
end_not_before_start: "يجب ألا يكون وقت الانتهاء قبل وقت البدء.",
|
|
73
80
|
invalid: "أدخل وقتاً مثل 8:30 AM."
|
|
74
81
|
}
|
|
75
|
-
}, O =
|
|
82
|
+
}, O = h(() => s.locale && s.locale.startsWith("ar") ? "ar" : "en"), m = (r) => s.labels[r] || L[O.value][r] || L.en[r] || r, i = B({ start: "", end: "" }), p = B({ start: null, end: null }), k = B(null), q = B(""), _ = B(null), E = (r) => {
|
|
76
83
|
if (r == null)
|
|
77
84
|
return null;
|
|
78
85
|
const e = String(r).trim();
|
|
@@ -81,147 +88,154 @@ const tt = {
|
|
|
81
88
|
const t = e.match(/^(\d{1,2})(?::(\d{1,2}))?(?::\d{1,2})?\s*([ap])\.?\s*m?\.?$/i) || e.match(/^(\d{1,2})(?::(\d{1,2}))?(?::\d{1,2})?$/);
|
|
82
89
|
if (!t)
|
|
83
90
|
return null;
|
|
84
|
-
let
|
|
91
|
+
let n = parseInt(t[1], 10);
|
|
85
92
|
const v = parseInt(t[2] || "0", 10), o = t[3] ? t[3].toUpperCase() : null;
|
|
86
93
|
if (v > 59)
|
|
87
94
|
return null;
|
|
88
95
|
if (o) {
|
|
89
|
-
if (
|
|
96
|
+
if (n < 1 || n > 12)
|
|
90
97
|
return null;
|
|
91
|
-
|
|
92
|
-
} else if (
|
|
98
|
+
n = n % 12 + (o === "P" ? 12 : 0);
|
|
99
|
+
} else if (n > 23)
|
|
93
100
|
return null;
|
|
94
|
-
return `${String(
|
|
101
|
+
return `${String(n).padStart(2, "0")}:${String(v).padStart(2, "0")}`;
|
|
95
102
|
};
|
|
96
|
-
|
|
97
|
-
() =>
|
|
103
|
+
Y(
|
|
104
|
+
() => s.modelValue,
|
|
98
105
|
(r) => {
|
|
99
|
-
i.value.start =
|
|
106
|
+
i.value.start = E(r?.start) ?? "", i.value.end = E(r?.end) ?? "";
|
|
100
107
|
},
|
|
101
108
|
{ immediate: !0, deep: !0 }
|
|
102
109
|
);
|
|
103
|
-
const
|
|
110
|
+
const y = (r) => {
|
|
104
111
|
const [e, t] = r.split(":").map(Number);
|
|
105
112
|
return e * 60 + t;
|
|
106
113
|
}, A = (r) => {
|
|
107
114
|
const e = (r % 1440 + 1440) % 1440;
|
|
108
115
|
return `${String(Math.floor(e / 60)).padStart(2, "0")}:${String(e % 60).padStart(2, "0")}`;
|
|
109
|
-
},
|
|
110
|
-
const e = r || "08:00", [t,
|
|
111
|
-
return { hour12: t % 12 || 12, minute:
|
|
116
|
+
}, P = (r) => {
|
|
117
|
+
const e = r || "08:00", [t, n] = e.split(":").map(Number);
|
|
118
|
+
return { hour12: t % 12 || 12, minute: n, meridiem: t >= 12 ? "PM" : "AM" };
|
|
112
119
|
}, w = (r) => {
|
|
113
|
-
const e =
|
|
120
|
+
const e = E(r);
|
|
114
121
|
if (!e)
|
|
115
122
|
return "";
|
|
116
|
-
const t =
|
|
123
|
+
const t = P(e);
|
|
117
124
|
return `${t.hour12}:${String(t.minute).padStart(2, "0")} ${t.meridiem}`;
|
|
118
|
-
},
|
|
125
|
+
}, R = () => {
|
|
119
126
|
const r = { start: i.value.start, end: i.value.end };
|
|
120
|
-
|
|
121
|
-
},
|
|
122
|
-
i.value[r] = e, p.value[r] = null,
|
|
123
|
-
},
|
|
124
|
-
const
|
|
125
|
-
let o =
|
|
126
|
-
e === "minute" &&
|
|
127
|
-
},
|
|
128
|
-
const t = i.value[r] || (r === "end" ? "17:00" : "08:00"),
|
|
129
|
-
e === "PM" !== v &&
|
|
127
|
+
q.value = "", F("update:modelValue", r), F("change", r);
|
|
128
|
+
}, $ = (r, e) => {
|
|
129
|
+
i.value[r] = e, p.value[r] = null, R();
|
|
130
|
+
}, x = (r, e, t) => {
|
|
131
|
+
const n = i.value[r] || (r === "end" ? "17:00" : "08:00"), v = e === "hour" ? t * 60 : t * s.minute_step;
|
|
132
|
+
let o = y(n) + v;
|
|
133
|
+
e === "minute" && s.minute_step > 1 && (o = t > 0 ? Math.floor(o / s.minute_step) * s.minute_step : Math.ceil(o / s.minute_step) * s.minute_step), $(r, A(o));
|
|
134
|
+
}, H = (r, e) => {
|
|
135
|
+
const t = i.value[r] || (r === "end" ? "17:00" : "08:00"), n = y(t), v = n >= 720;
|
|
136
|
+
e === "PM" !== v && $(r, A(n + (e === "PM" ? 720 : -720)));
|
|
130
137
|
}, I = (r) => {
|
|
131
138
|
const e = p.value[r];
|
|
132
139
|
if (e === null)
|
|
133
140
|
return;
|
|
134
|
-
const t =
|
|
141
|
+
const t = E(e);
|
|
135
142
|
if (t === null) {
|
|
136
|
-
|
|
143
|
+
q.value = m("invalid");
|
|
137
144
|
return;
|
|
138
145
|
}
|
|
139
|
-
|
|
146
|
+
$(r, t);
|
|
140
147
|
}, K = (r) => {
|
|
141
|
-
|
|
142
|
-
},
|
|
143
|
-
|
|
144
|
-
},
|
|
145
|
-
|
|
146
|
-
},
|
|
147
|
-
|
|
148
|
+
k.value = r, document.addEventListener("mousedown", T);
|
|
149
|
+
}, f = () => {
|
|
150
|
+
k.value = null, document.removeEventListener("mousedown", T);
|
|
151
|
+
}, T = (r) => {
|
|
152
|
+
_.value && !_.value.contains(r.target) && f();
|
|
153
|
+
}, J = (r) => {
|
|
154
|
+
_.value && !_.value.contains(r.relatedTarget) && f();
|
|
148
155
|
};
|
|
149
|
-
|
|
150
|
-
const
|
|
156
|
+
Z(() => document.removeEventListener("mousedown", T));
|
|
157
|
+
const S = h(() => {
|
|
151
158
|
const { start: r, end: e } = i.value;
|
|
152
159
|
if (!r || !e)
|
|
153
160
|
return null;
|
|
154
|
-
const t =
|
|
155
|
-
|
|
156
|
-
|
|
161
|
+
const t = y(r), n = y(e);
|
|
162
|
+
if (s.allow_overnight)
|
|
163
|
+
return n > t ? n - t : n + 1440 - t;
|
|
164
|
+
const v = e === "00:00" ? 1440 : n;
|
|
165
|
+
return v >= t ? v - t : null;
|
|
166
|
+
}), N = h(() => {
|
|
157
167
|
const { start: r, end: e } = i.value;
|
|
158
|
-
return !!r && !!e &&
|
|
159
|
-
})
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
168
|
+
return s.allow_overnight && !!r && !!e && y(e) <= y(r);
|
|
169
|
+
}), Q = h(() => {
|
|
170
|
+
const { start: r, end: e } = i.value;
|
|
171
|
+
if (s.allow_overnight || !r || !e)
|
|
172
|
+
return "";
|
|
173
|
+
const t = y(r), n = e === "00:00" ? 1440 : y(e);
|
|
174
|
+
return n > t || n === t && s.allow_equal ? "" : m(s.allow_equal ? "end_not_before_start" : "end_after_start");
|
|
175
|
+
}), W = h(() => q.value || Q.value), M = h(() => s.error_message !== "" || W.value !== ""), X = (r) => {
|
|
164
176
|
const e = Math.floor(r / 60), t = r % 60;
|
|
165
177
|
if (O.value === "ar") {
|
|
166
|
-
const
|
|
167
|
-
return [e ?
|
|
178
|
+
const n = (o) => o === 1 ? "ساعة واحدة" : o === 2 ? "ساعتان" : o <= 10 ? `${o} ساعات` : `${o} ساعة`, v = (o) => o === 1 ? "دقيقة واحدة" : o === 2 ? "دقيقتان" : o <= 10 ? `${o} دقائق` : `${o} دقيقة`;
|
|
179
|
+
return [e ? n(e) : "", t ? v(t) : ""].filter(Boolean).join(" و ");
|
|
168
180
|
}
|
|
169
181
|
return [
|
|
170
182
|
e ? `${e} ${e === 1 ? "hour" : "hours"}` : "",
|
|
171
183
|
t ? `${t} ${t === 1 ? "minute" : "minutes"}` : ""
|
|
172
184
|
].filter(Boolean).join(" ");
|
|
173
|
-
},
|
|
174
|
-
if (!
|
|
185
|
+
}, C = h(() => {
|
|
186
|
+
if (!s.show_summary || S.value === null)
|
|
175
187
|
return null;
|
|
176
|
-
const {
|
|
177
|
-
if (
|
|
178
|
-
return { text: m("all_day"), overnight:
|
|
179
|
-
|
|
180
|
-
|
|
188
|
+
const { end: r } = i.value;
|
|
189
|
+
if (S.value === 1440)
|
|
190
|
+
return { text: m("all_day"), overnight: N.value };
|
|
191
|
+
if (S.value === 0)
|
|
192
|
+
return null;
|
|
193
|
+
const e = X(S.value);
|
|
194
|
+
return r === "00:00" ? { text: `${m("until_midnight")} · ${e}`, overnight: !1 } : N.value ? { text: `${m("next_day")} · ${e}`, overnight: !0 } : { text: e, overnight: !1 };
|
|
181
195
|
});
|
|
182
|
-
return
|
|
183
|
-
l.show ? (
|
|
196
|
+
return U({ span: S, isOvernight: N }), (r, e) => (c(), d(D, null, [
|
|
197
|
+
l.show ? (c(), d("div", {
|
|
184
198
|
key: 0,
|
|
185
|
-
class:
|
|
199
|
+
class: b(["md:col-span-2", l.field_name])
|
|
186
200
|
}, [
|
|
187
|
-
l.label_name ? (
|
|
188
|
-
|
|
189
|
-
|
|
201
|
+
l.label_name ? (c(), d("label", te, u(l.label_name), 1)) : g("", !0),
|
|
202
|
+
a("p", re, [
|
|
203
|
+
a("span", ne, u(w(l.modelValue.start)) + " – " + u(w(l.modelValue.end)), 1)
|
|
190
204
|
]),
|
|
191
|
-
|
|
192
|
-
e[6] || (e[6] =
|
|
205
|
+
C.value ? (c(), d("p", ae, u(C.value.text), 1)) : g("", !0),
|
|
206
|
+
e[6] || (e[6] = a("hr", { class: "opacity-100! bg-gray-200 border-0 dark:bg-gray-700" }, null, -1))
|
|
193
207
|
], 2)) : g("", !0),
|
|
194
|
-
l.show ? g("", !0) : (
|
|
208
|
+
l.show ? g("", !0) : (c(), d("div", {
|
|
195
209
|
key: 1,
|
|
196
210
|
ref_key: "root",
|
|
197
|
-
ref:
|
|
198
|
-
class:
|
|
211
|
+
ref: _,
|
|
212
|
+
class: b(["md:col-span-2", {
|
|
199
213
|
[l.field_name]: l.field_name && l.field_name !== "",
|
|
200
214
|
[l.container_class]: l.container_class && l.container_class !== ""
|
|
201
215
|
}]),
|
|
202
|
-
onFocusout:
|
|
216
|
+
onFocusout: J
|
|
203
217
|
}, [
|
|
204
|
-
l.label_name ? (
|
|
218
|
+
l.label_name ? (c(), d("label", {
|
|
205
219
|
key: 0,
|
|
206
|
-
class:
|
|
207
|
-
"gl-label-form":
|
|
208
|
-
"gl-label-form-invalid":
|
|
220
|
+
class: b({
|
|
221
|
+
"gl-label-form": !M.value,
|
|
222
|
+
"gl-label-form-invalid": M.value,
|
|
209
223
|
required: l.is_required
|
|
210
224
|
}),
|
|
211
225
|
for: l.field_name + "_start"
|
|
212
|
-
},
|
|
213
|
-
|
|
214
|
-
(
|
|
226
|
+
}, u(l.label_name), 11, le)) : g("", !0),
|
|
227
|
+
a("div", oe, [
|
|
228
|
+
(c(), d(D, null, z(["start", "end"], (t) => a("div", {
|
|
215
229
|
key: t,
|
|
216
230
|
class: "relative w-full md:flex-1"
|
|
217
231
|
}, [
|
|
218
|
-
(t === "start" ? l.label_name_start : l.label_name_end) ? (
|
|
232
|
+
(t === "start" ? l.label_name_start : l.label_name_end) ? (c(), d("label", {
|
|
219
233
|
key: 0,
|
|
220
234
|
for: l.field_name + "_" + t,
|
|
221
235
|
class: "gl-label-form"
|
|
222
|
-
},
|
|
223
|
-
|
|
224
|
-
|
|
236
|
+
}, u(t === "start" ? l.label_name_start : l.label_name_end), 9, se)) : g("", !0),
|
|
237
|
+
a("div", ie, [
|
|
238
|
+
a("input", {
|
|
225
239
|
id: l.field_name + "_" + t,
|
|
226
240
|
name: l.field_name + "_" + t,
|
|
227
241
|
type: "text",
|
|
@@ -230,194 +244,194 @@ const tt = {
|
|
|
230
244
|
required: l.is_required,
|
|
231
245
|
placeholder: t === "start" ? l.placeholder_start : l.placeholder_end,
|
|
232
246
|
value: p.value[t] !== null ? p.value[t] : w(i.value[t]),
|
|
233
|
-
class:
|
|
234
|
-
"aria-expanded":
|
|
235
|
-
onFocus: (
|
|
236
|
-
onInput: (
|
|
237
|
-
onBlur: (
|
|
247
|
+
class: b([M.value ? "gl-input-form-invalid" : "gl-input-form", "pe-10 text-start"]),
|
|
248
|
+
"aria-expanded": k.value === t,
|
|
249
|
+
onFocus: (n) => K(t),
|
|
250
|
+
onInput: (n) => p.value[t] = n.target.value,
|
|
251
|
+
onBlur: (n) => I(t),
|
|
238
252
|
onKeydown: [
|
|
239
|
-
|
|
240
|
-
I(t),
|
|
253
|
+
V(j((n) => {
|
|
254
|
+
I(t), f();
|
|
241
255
|
}, ["prevent"]), ["enter"]),
|
|
242
|
-
e[0] || (e[0] =
|
|
243
|
-
|
|
244
|
-
|
|
256
|
+
e[0] || (e[0] = V((n) => f(), ["esc"])),
|
|
257
|
+
V(j((n) => x(t, "minute", 1), ["prevent"]), ["up"]),
|
|
258
|
+
V(j((n) => x(t, "minute", -1), ["prevent"]), ["down"])
|
|
245
259
|
]
|
|
246
|
-
}, null, 42,
|
|
247
|
-
|
|
260
|
+
}, null, 42, ue),
|
|
261
|
+
a("button", {
|
|
248
262
|
type: "button",
|
|
249
263
|
tabindex: "-1",
|
|
250
264
|
class: "absolute inset-y-0 end-0 flex items-center pe-3 text-gray-500 dark:text-gray-400",
|
|
251
265
|
"aria-label": m("pick_time"),
|
|
252
|
-
onMousedown: e[1] || (e[1] =
|
|
266
|
+
onMousedown: e[1] || (e[1] = j(() => {
|
|
253
267
|
}, ["prevent"])),
|
|
254
|
-
onClick: (
|
|
268
|
+
onClick: (n) => k.value === t ? f() : K(t)
|
|
255
269
|
}, e[7] || (e[7] = [
|
|
256
|
-
|
|
270
|
+
a("svg", {
|
|
257
271
|
class: "h-4 w-4",
|
|
258
272
|
"aria-hidden": "true",
|
|
259
273
|
fill: "none",
|
|
260
274
|
stroke: "currentColor",
|
|
261
275
|
viewBox: "0 0 24 24"
|
|
262
276
|
}, [
|
|
263
|
-
|
|
277
|
+
a("circle", {
|
|
264
278
|
cx: "12",
|
|
265
279
|
cy: "12",
|
|
266
280
|
r: "9",
|
|
267
281
|
"stroke-width": "2"
|
|
268
282
|
}),
|
|
269
|
-
|
|
283
|
+
a("path", {
|
|
270
284
|
"stroke-linecap": "round",
|
|
271
285
|
"stroke-linejoin": "round",
|
|
272
286
|
"stroke-width": "2",
|
|
273
287
|
d: "M12 7v5l3 2"
|
|
274
288
|
})
|
|
275
289
|
], -1)
|
|
276
|
-
]), 40,
|
|
290
|
+
]), 40, de)
|
|
277
291
|
]),
|
|
278
|
-
|
|
292
|
+
k.value === t ? (c(), d("div", {
|
|
279
293
|
key: 1,
|
|
280
294
|
class: "absolute start-0 z-50 mt-1 w-72 rounded-lg border border-gray-200 bg-white p-4 shadow-lg dark:border-gray-700 dark:bg-gray-800",
|
|
281
|
-
onMousedown: e[5] || (e[5] =
|
|
295
|
+
onMousedown: e[5] || (e[5] = j(() => {
|
|
282
296
|
}, ["prevent"]))
|
|
283
297
|
}, [
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
298
|
+
a("div", ce, [
|
|
299
|
+
a("div", me, [
|
|
300
|
+
a("button", {
|
|
287
301
|
type: "button",
|
|
288
302
|
class: "p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",
|
|
289
303
|
"aria-label": m("later"),
|
|
290
|
-
onClick: (
|
|
304
|
+
onClick: (n) => x(t, "hour", 1)
|
|
291
305
|
}, e[8] || (e[8] = [
|
|
292
|
-
|
|
306
|
+
a("svg", {
|
|
293
307
|
class: "h-3 w-3",
|
|
294
308
|
fill: "none",
|
|
295
309
|
stroke: "currentColor",
|
|
296
310
|
viewBox: "0 0 24 24"
|
|
297
311
|
}, [
|
|
298
|
-
|
|
312
|
+
a("path", {
|
|
299
313
|
"stroke-linecap": "round",
|
|
300
314
|
"stroke-linejoin": "round",
|
|
301
315
|
"stroke-width": "2",
|
|
302
316
|
d: "M5 15l7-7 7 7"
|
|
303
317
|
})
|
|
304
318
|
], -1)
|
|
305
|
-
]), 8,
|
|
306
|
-
|
|
307
|
-
|
|
319
|
+
]), 8, ve),
|
|
320
|
+
a("span", ge, u(String(P(i.value[t]).hour12).padStart(2, "0")), 1),
|
|
321
|
+
a("button", {
|
|
308
322
|
type: "button",
|
|
309
323
|
class: "p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",
|
|
310
324
|
"aria-label": m("earlier"),
|
|
311
|
-
onClick: (
|
|
325
|
+
onClick: (n) => x(t, "hour", -1)
|
|
312
326
|
}, e[9] || (e[9] = [
|
|
313
|
-
|
|
327
|
+
a("svg", {
|
|
314
328
|
class: "h-3 w-3",
|
|
315
329
|
fill: "none",
|
|
316
330
|
stroke: "currentColor",
|
|
317
331
|
viewBox: "0 0 24 24"
|
|
318
332
|
}, [
|
|
319
|
-
|
|
333
|
+
a("path", {
|
|
320
334
|
"stroke-linecap": "round",
|
|
321
335
|
"stroke-linejoin": "round",
|
|
322
336
|
"stroke-width": "2",
|
|
323
337
|
d: "M19 9l-7 7-7-7"
|
|
324
338
|
})
|
|
325
339
|
], -1)
|
|
326
|
-
]), 8,
|
|
340
|
+
]), 8, ye)
|
|
327
341
|
]),
|
|
328
|
-
e[12] || (e[12] =
|
|
329
|
-
|
|
330
|
-
|
|
342
|
+
e[12] || (e[12] = a("span", { class: "pb-1 text-lg font-semibold text-gray-900 dark:text-white" }, ":", -1)),
|
|
343
|
+
a("div", fe, [
|
|
344
|
+
a("button", {
|
|
331
345
|
type: "button",
|
|
332
346
|
class: "p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",
|
|
333
347
|
"aria-label": m("later"),
|
|
334
|
-
onClick: (
|
|
348
|
+
onClick: (n) => x(t, "minute", 1)
|
|
335
349
|
}, e[10] || (e[10] = [
|
|
336
|
-
|
|
350
|
+
a("svg", {
|
|
337
351
|
class: "h-3 w-3",
|
|
338
352
|
fill: "none",
|
|
339
353
|
stroke: "currentColor",
|
|
340
354
|
viewBox: "0 0 24 24"
|
|
341
355
|
}, [
|
|
342
|
-
|
|
356
|
+
a("path", {
|
|
343
357
|
"stroke-linecap": "round",
|
|
344
358
|
"stroke-linejoin": "round",
|
|
345
359
|
"stroke-width": "2",
|
|
346
360
|
d: "M5 15l7-7 7 7"
|
|
347
361
|
})
|
|
348
362
|
], -1)
|
|
349
|
-
]), 8,
|
|
350
|
-
|
|
351
|
-
|
|
363
|
+
]), 8, he),
|
|
364
|
+
a("span", xe, u(String(P(i.value[t]).minute).padStart(2, "0")), 1),
|
|
365
|
+
a("button", {
|
|
352
366
|
type: "button",
|
|
353
367
|
class: "p-1 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200",
|
|
354
368
|
"aria-label": m("earlier"),
|
|
355
|
-
onClick: (
|
|
369
|
+
onClick: (n) => x(t, "minute", -1)
|
|
356
370
|
}, e[11] || (e[11] = [
|
|
357
|
-
|
|
371
|
+
a("svg", {
|
|
358
372
|
class: "h-3 w-3",
|
|
359
373
|
fill: "none",
|
|
360
374
|
stroke: "currentColor",
|
|
361
375
|
viewBox: "0 0 24 24"
|
|
362
376
|
}, [
|
|
363
|
-
|
|
377
|
+
a("path", {
|
|
364
378
|
"stroke-linecap": "round",
|
|
365
379
|
"stroke-linejoin": "round",
|
|
366
380
|
"stroke-width": "2",
|
|
367
381
|
d: "M19 9l-7 7-7-7"
|
|
368
382
|
})
|
|
369
383
|
], -1)
|
|
370
|
-
]), 8,
|
|
384
|
+
]), 8, be)
|
|
371
385
|
]),
|
|
372
|
-
|
|
373
|
-
(
|
|
374
|
-
key:
|
|
386
|
+
a("div", pe, [
|
|
387
|
+
(c(), d(D, null, z(["AM", "PM"], (n) => a("button", {
|
|
388
|
+
key: n,
|
|
375
389
|
type: "button",
|
|
376
|
-
class:
|
|
377
|
-
onClick: (v) =>
|
|
378
|
-
},
|
|
390
|
+
class: b(["rounded-md px-2 py-1 text-xs font-medium transition-colors", P(i.value[t]).meridiem === n ? "bg-primary text-white dark:bg-primaryDark" : "bg-gray-100 text-gray-600 hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:hover:bg-gray-600"]),
|
|
391
|
+
onClick: (v) => H(t, n)
|
|
392
|
+
}, u(n), 11, ke)), 64))
|
|
379
393
|
])
|
|
380
394
|
]),
|
|
381
|
-
|
|
382
|
-
t === "end" ? (
|
|
395
|
+
a("div", _e, [
|
|
396
|
+
t === "end" ? (c(), d("button", {
|
|
383
397
|
key: 0,
|
|
384
398
|
type: "button",
|
|
385
399
|
class: "text-sm font-medium text-primary hover:text-primary/80 dark:text-primaryDark",
|
|
386
|
-
onClick: e[2] || (e[2] = (
|
|
387
|
-
|
|
400
|
+
onClick: e[2] || (e[2] = (n) => {
|
|
401
|
+
$("end", "00:00"), f();
|
|
388
402
|
})
|
|
389
|
-
},
|
|
403
|
+
}, u(m("midnight")), 1)) : (c(), d("button", {
|
|
390
404
|
key: 1,
|
|
391
405
|
type: "button",
|
|
392
406
|
class: "text-sm text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300",
|
|
393
|
-
onClick: e[3] || (e[3] = (
|
|
394
|
-
|
|
407
|
+
onClick: e[3] || (e[3] = (n) => {
|
|
408
|
+
$("start", ""), f();
|
|
395
409
|
})
|
|
396
|
-
},
|
|
397
|
-
|
|
410
|
+
}, u(m("clear")), 1)),
|
|
411
|
+
a("button", {
|
|
398
412
|
type: "button",
|
|
399
413
|
class: "text-sm font-medium text-primary hover:text-primary/80 dark:text-primaryDark",
|
|
400
|
-
onClick: e[4] || (e[4] = (
|
|
401
|
-
},
|
|
414
|
+
onClick: e[4] || (e[4] = (n) => f())
|
|
415
|
+
}, u(m("done")), 1)
|
|
402
416
|
])
|
|
403
417
|
], 32)) : g("", !0)
|
|
404
418
|
])), 64))
|
|
405
419
|
]),
|
|
406
|
-
|
|
420
|
+
C.value && !M.value ? (c(), d("p", {
|
|
407
421
|
key: 1,
|
|
408
|
-
class:
|
|
422
|
+
class: b(["mt-1.5 text-sm", C.value.overnight ? "text-amber-700 dark:text-amber-400" : "text-gray-500 dark:text-gray-400"])
|
|
409
423
|
}, [
|
|
410
|
-
|
|
411
|
-
|
|
424
|
+
a("span", we, u(w(i.value.start)) + " – " + u(w(i.value.end)), 1),
|
|
425
|
+
ee(" · " + u(C.value.text), 1)
|
|
412
426
|
], 2)) : g("", !0),
|
|
413
|
-
|
|
414
|
-
|
|
427
|
+
M.value ? (c(), d("div", $e, [
|
|
428
|
+
a("span", Se, u(l.error_message || W.value), 1)
|
|
415
429
|
])) : g("", !0),
|
|
416
|
-
l.description ? (
|
|
430
|
+
l.description ? (c(), d("small", Me, u(l.description), 1)) : g("", !0)
|
|
417
431
|
], 34))
|
|
418
432
|
], 64));
|
|
419
433
|
}
|
|
420
434
|
};
|
|
421
435
|
export {
|
|
422
|
-
|
|
436
|
+
Be as default
|
|
423
437
|
};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "The most popular library of interactive components built with Vuejs && Tailwind CSS",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"private": false,
|
|
6
|
-
"version": "1.3.
|
|
6
|
+
"version": "1.3.7",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
9
|
"url": "git+https://github.com/mrgiant/GoldenLogicUi.git"
|