1(function() { 2 try { 3 var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {}; 4 e.SENTRY_RELEASE = { id: "live_2026-10-07-1527" }; 5 var t = new e.Error().stack; 6 t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "e468fbf1-c659-4de2-b474-215bd1d3b3fa", e._sentryDebugIdIdentifier = "sentry-dbid-e468fbf1-c659-4de2-b474-215bd1d3b3fa"); 7 } catch (e) {} 8})(); 9import { Kr as e, Qc as t, Ua as n, Wo as r, kn as i, uo as a } from "./topMessageHandler_BGjUyIM4.min.js"; 10import { F as o, L as s, N as c, Ot as l, R as u, T as d, X as ee, Y as f, _ as p, c as m, d as h, f as g, g as _, i as v, jt as y, l as b, lt as x, nt as S, q as te, tt as C, u as ne, y as w } from "./runtime-core.esm-bundler_gPtQx1Jq.min.js"; 11import { r as re } from "./vuex.esm-bundler_BVkMIwxs.min.js"; 12import { t as T } from "./ListPager_DuMjVvaZ.min.js"; 13import { t as E } from "./searchAbstract_BLeoB65V.min.js"; 14import { t as D } from "./AppContent_CP9HWXwh.min.js"; 15//#region src/views/time-tracker/planning/PlanningList.vue?vue&type=script&setup=true&lang.ts 16var O = { class: "calendar-view-data clearfix" }, k = { class: "calendar-table-view-data" }, A = { class: "sticky-wrapper" }, ie = { class: /*@__PURE__*/ l(["calendar-list calendar-table-view calendar-table-view-week"]) }, ae = { class: "calendar-bar-days" }, oe = { 17 key: 0, 18 class: "calendar-list-col contrast-primary" 19}, se = { class: "calendar-list-date" }, ce = { class: "calendar-list-row calendar-list-entry-row ng-scope" }, le = { class: "sticky-colum calendar-list-col" }, j = { 20 key: 0, 21 class: "text-center lined-if-last-child" 22}, M = { 23 key: 0, 24 class: "planning-navigation" 25}, N = { class: "planning-navigation-next" }, P = { 26 key: 0, 27 class: "planning-navigation" 28}, F = { class: "planning-navigation-next" }, I = /* @__PURE__ */ w({ 29 __name: "PlanningList", 30 props: { 31 year: { default: 0 }, 32 week: { default: 0 } 33 }, 34 setup(w, { expose: I }) { 35 let L = t(), R = w, z = re(), B = z.state.viewSize, V = m(() => "employee-time-tracker-planning-list"), H = m(() => B.sm || B.xs), U = C([ 36 e(), 37 { 38 label: "Zeiterfassung", 39 href: { name: "time-tracker" } 40 }, 41 { label: "Zeitplanung" }, 42 { label: "Anwesenheitsliste" } 43 ]), W = S(!1), G = S([]), K = S([]), q = S(""), J = S({}), ue = C({ 44 "-1": "Nicht geplant", 45 0: "Abwesend" 46 }), de = m(() => { 47 let e = "/employee/time-tracker/planning/fetch-list"; 48 return R.year && R.week && (e += `/year/${R.year}/week/${R.week}`), e; 49 }), fe = m(() => { 50 let e = []; 51 for (let t of G.value) e.push({ 52 label: t.name, 53 value: t.employee_id 54 }); 55 return e; 56 }), Y = m(() => { 57 let e = { 58 saturday: null, 59 sunday: null 60 }; 61 for (let t of K.value) switch (new Date(t.date).getDay()) { 62 case a.Saturday: 63 e.saturday = t.date; 64 break; 65 case a.Sunday: 66 e.sunday = t.date; 67 break; 68 default: break; 69 } 70 return e; 71 }), X = m(() => { 72 let e = { 73 saturday: [], 74 sunday: [] 75 }; 76 for (let t of G.value) { 77 let n = Object.values(t.plannings).filter((e) => Y.value.saturday === e.date || Y.value.sunday === e.date), r = n.find((e) => Y.value.saturday === e.date), i = n.find((e) => Y.value.sunday === e.date); 78 r && r.duration === 0 && r.state === 0 && e.saturday.push(t.employee_id), i && i.duration === 0 && i.state === 0 && e.sunday.push(t.employee_id); 79 } 80 return { 81 saturday: e.saturday.length === G.value.length, 82 sunday: e.sunday.length === G.value.length 83 }; 84 }), Z = (e) => H.value && (Y.value.saturday === e && X.value.saturday || Y.value.sunday === e && X.value.sunday), Q = () => { 85 z.dispatch("getPage", { url: de.value }).then(({ data: { data: e } }) => { 86 W.value = e.is_allowed_planning, G.value = e.entries, K.value = e.week, q.value = e.label, J.value = e.links; 87 }).catch(() => {}); 88 }, pe = (e) => { 89 if (e.state !== 1) return ue[e.state]; 90 let t = e.planning_time_periods.length; 91 if (t > 0) { 92 let n = ""; 93 for (let r of e.planning_time_periods) n += `Anwesend von ${r.start.substr(0, 5)} bis ${r.end.substr(0, 5)}`, t > 1 && (n += "<br>"); 94 return n; 95 } 96 }; 97 Q(), te(R, () => { 98 Q(); 99 }, { deep: !0 }); 100 let $ = E({ 101 emitter: L.emitter, 102 searchStorageScope: V 103 }); 104 return I(Object.assign({}, L, $.expose)), (e, t) => { 105 let a = s("router-link"), m = s("person-box-abstract"), S = u("tooltip"); 106 return c(), ne(D, { 107 class: "module-time-tracker planning", 108 headline: "Zeiterfassung: Anwesenheitsliste", 109 breadcrumb: U 110 }, { 111 default: f(() => [ 112 p(i, { class: "disclaimer" }, { 113 default: f(() => [ 114 t[5] || (t[5] = b("strong", null, "Hinweis", -1)), 115 t[6] || (t[6] = _()), 116 b("div", null, [t[4] || (t[4] = _("Mitarbeiter können hier ihre geplanten Arbeitszeiten eintragen, sodass besser ersichtlich wird, wann z.B. Teilzeitkräfte anwesend sind.\
116n ", -1)), W.value ? (c(), g(v, { key: 0 }, [ 117 t[2] || (t[2] = _("Unter ", -1)), 118 p(a, { to: { name: "time-tracker-planning-view" } }, { 119 default: f(() => [...t[1] || (t[1] = [_("Zeitplanung -> Zeiten planen", -1)])]), 120 _: 1 121 }), 122 t[3] || (t[3] = _(" können die kommenden Wochenstunden geplant werden.\n ", -1)) 123 ], 64)) : h("", !0)]) 124 ]), 125 _: 1 126 }), 127 t[31] || (t[31] = _()), 128 p(n, { 129 modelValue: x($).model.employee_id, 130 "onUpdate:modelValue": t[0] || (t[0] = (e) => x($).model.employee_id = e), 131 options: fe.value, 132 "aria-label": "Auswahl Mitarbeiter", 133 multiple: "" 134 }, { 135 all: f(() => [...t[7] || (t[7] = [_("Alle Mitarbeiter", -1)])]), 136 multiple: f(({ count: e }) => [_(y(e) + " Mitarbeiter", 1)]), 137 one: f(() => [...t[8] || (t[8] = [_("Ein Mitarbeiter", -1)])]), 138 placeholder: f(() => [...t[9] || (t[9] = [_("Mitarbeiter wählen", -1)])]), 139 _: 1 140 }, 8, ["modelValue", "options"]), 141 t[32] || (t[32] = _()), 142 p(T, d(x($).properties, { 143 class: "spacer-15", 144 entries: G.value, 145 ref: "list" 146 }), { 147 default: f(({ listEntries: e, loading: n }) => [ 148 p(i, { class: "no-padding" }, { 149 title: f(() => [ 150 t[21] || (t[21] = b("i", { 151 class: "material-icons", 152 "aria-hidden": "true", 153 role: "img" 154 }, "person", -1)), 155 t[22] || (t[22] = _()), 156 t[23] || (t[23] = b("span", null, "Zeitplanung", -1)), 157 t[24] || (t[24] = _()), 158 J.value.previous && J.value.next ? (c(), g("div", M, [ 159 p(a, { 160 to: { 161 name: "time-tracker-planning-list", 162 params: { 163 year: J.value.previous.year, 164 week: J.value.previous.week 165 } 166 }, 167 class: "planning-navigation-previous", 168 "aria-label": "Eine Woche vor" 169 }, { 170 default: f(() => [...t[17] || (t[17] = [_("â", -1)])]), 171 _: 1 172 }, 8, ["to"]), 173 t[19] || (t[19] = _()), 174 b("div", N, [p(a, { 175 to: { 176 name: "time-tracker-planning-list", 177 params: { 178 year: J.value.next.year, 179 week: J.value.next.week 180 } 181 }, 182 "aria-label": "Eine Woche weiter" 183 }, { 184 default: f(() => [...t[18] || (t[18] = [_("â¶", -1)])]), 185 _: 1 186 }, 8, ["to"])]), 187 t[20] || (t[20] = _()), 188 b("strong", null, y(q.value), 1) 189 ])) : h("", !0) 190 ]), 191 default: f(() => [b("div", O, [b("div", k, [b("div", A, [b("table", ie, [ 192 b("thead", null, [b("tr", ae, [ 193 t[13] || (t[13] = b("td", { class: "sticky-colum employee-header contrast-primary-light" }, null, -1)), 194 t[14] || (t[14] = _()), 195 (c(!0), g(v, null, o(K.value, (e) => (c(), g(v, null, [Z(e.date) ? h("", !0) : (c(), g("th", oe, [b("div", se, y(x(r)("d.", e.date)) + " " + y(H.value ? e.name.slice(0, 2) : e.name), 1)]))], 64))), 256)) 196 ])]), 197 t[16] || (t[16] = _()), 198 b("tbody", null, [(c(!0), g(v, null, o(e, (e) => (c(), g("tr", ce, [ 199 b("td", le, [p(m, { 200 type: "employee", 201 "show-name": !H.value, 202 id: e.employee_id 203 }, { 204 name: f(({ username: t }) => [p(a, { to: { 205 name: "employee-view", 206 params: { id: e.employee_id } 207 } }, { 208 default: f(() => [b("strong", null, y(t), 1)]), 209 _: 2 210 }, 1032, ["to"])]), 211 _: 2 212 }, 1032, ["show-name", "id"])]), 213 t[15] || (t[15] = _()), 214 (c(!0), g(v, null, o(K.value, (t) => (c(), g(v, null, [Z(t.date) ? h("", !0) : ee((c(), g("td", { 215 key: 0, 216 class: l(["calendar-table-view-column calendar-list-col", { 217 "planned-absence": e.plannings[t.date].state === 0, 218 "not-planned": e.plannings[t.date].state === -1 219 }]) 220 }, [e.plannings[t.date].planning_time_periods ? (c(!0), g(v, { key: 0 }, o(e.plannings[t.date].planning_time_periods, (n) => (c(), g(v, null, [e.plannings[t.date].state === 1 ? (c(), g("div", j, y(n.start.substr(0, 5)) + "-" + y(n.end.substr(0, 5)), 1)) : h("", !0)], 64))), 256)) : h("", !0)], 2)), [[S, pe(e.plannings[t.date])]])], 64))), 256)) 221 ]))), 256))]) 222 ])])])]), t[25] || (t[25] = _())]), 223 _: 2 224 }, 1024),
225 t[30] || (t[30] = _()), 226 x(B).xs && J.value.previous && J.value.next ? (c(), g("div", P, [ 227 p(a, { 228 to: { 229 name: "time-tracker-planning-list", 230 params: { 231 year: J.value.previous.year, 232 week: J.value.previous.week 233 } 234 }, 235 class: "planning-navigation-previous" 236 }, { 237 default: f(() => [...t[26] || (t[26] = [_("â", -1)])]), 238 _: 1 239 }, 8, ["to"]), 240 t[28] || (t[28] = _()), 241 b("div", F, [p(a, { to: { 242 name: "time-tracker-planning-list", 243 params: { 244 year: J.value.next.year, 245 week: J.value.next.week 246 } 247 } }, { 248 default: f(() => [...t[27] || (t[27] = [_("â¶", -1)])]), 249 _: 1 250 }, 8, ["to"])]), 251 t[29] || (t[29] = _()), 252 b("strong", null, y(q.value), 1) 253 ])) : h("", !0) 254 ]), 255 _: 1 256 }, 16, ["entries"]) 257 ]), 258 _: 1 259 }, 8, ["breadcrumb"]); 260 }; 261 } 262}); 263//#endregion 264export { I as default }; 265 266//# sourceMappingURL=PlanningList_C1CjXo54.min.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.