@feedmepos/mf-hrm-portal 2.3.0-dev.13 → 2.3.0-dev.15
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/{ApprovalCodeList-D3egZFML.js → ApprovalCodeList-CY0ox1dX.js} +4 -4
- package/dist/{AuditLogList-BzbaEsSj.js → AuditLogList-CBkA-KQT.js} +17 -18
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Do52KbKm.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-B8cb8yqV.js} +2 -2
- package/dist/{EmployeeList-BiM8dRwZ.js → EmployeeList-0PrcuHPJ.js} +255 -267
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-rjDE1B4E.js} +6 -6
- package/dist/{GrantUserList-Dj2ms20E.js → GrantUserList-Dw923P2j.js} +5 -5
- package/dist/{Main-DmpwTPaI.js → Main-BqX7n1ik.js} +9 -9
- package/dist/{Main-C2z7Jf9A.js → Main-C0bcn2NY.js} +5 -5
- package/dist/{Main-DklZWoKj.js → Main-Dpf2KdSH.js} +2 -2
- package/dist/{PermissionSetList-C-qgCcRO.js → PermissionSetList-xrI130SW.js} +5 -5
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ggZB5zWW.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-3_8qycrF.js} +465 -465
- package/dist/{RoleList-ohfin77B.js → RoleList-DPkG5dg9.js} +7 -7
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-DYLLW46A.js +501 -0
- package/dist/{ScheduleGeneralPage-aCljFf21.js → ScheduleGeneralPage-CISbuAff.js} +141 -143
- package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-x_-BYkcc.js → ScheduleModal.vue_vue_type_script_setup_true_lang-BeTuMw3f.js} +989 -858
- package/dist/SchedulePage-Dn6_TiBS.js +18757 -0
- package/dist/{SchedulePositionPage-CID91orD.js → SchedulePositionPage-Cu3WRfH-.js} +79 -81
- package/dist/{SelectFilter-CG13h83-.js → SelectFilter-ssnRUIN6.js} +1 -1
- package/dist/{TeamMemberList-DJIKL4dE.js → TeamMemberList-DTqNCDJb.js} +35 -36
- package/dist/{TimesheetList-BPXWPNfT.js → TimesheetList-CA19TmKm.js} +52 -53
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-DVcV0knM.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-B1jnsZpD.js} +2 -2
- package/dist/{app-Bz8568j8.js → app-3xGY2Rn0.js} +2062 -1800
- package/dist/app.js +1 -1
- package/dist/{dayjs.min-DhSRKSu4.js → dayjs.min-C_c8OoEU.js} +1 -1
- package/dist/{employee-BM44u8b-.js → employee-Dt0y51t3.js} +3 -3
- package/dist/{iteration-BHDxs89d.js → iteration-C4YvbrCe.js} +1 -1
- package/dist/{lodash-DgSYLwYD.js → lodash-huRs3Cbj.js} +1 -1
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/{role-BMJ7LEHN.js → role-fM58UmtC.js} +1 -1
- package/dist/{rule-CCo7_ckA.js → rule-CCN0QCPF.js} +2 -2
- package/dist/src/views/audit-log/locales/index.d.ts +252 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +1 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
- package/dist/src/views/scheduling/composables/schedule-error.d.ts +3 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +5 -2
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +3 -11
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +45 -1
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +14 -6
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +0 -2
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +25 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +163 -4
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +44 -0
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +26 -2
- package/dist/src/views/scheduling/country-rules/index.d.ts +8 -3
- package/dist/src/views/scheduling/data.d.ts +17 -0
- package/dist/src/views/scheduling/schedule-store.d.ts +7 -7
- package/dist/src/views/scheduling/types.d.ts +5 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useReportPermissions-C_Cd__n1.js → useReportPermissions-BlX_Mk5f.js} +3 -3
- package/package.json +1 -1
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-diuWysro.js +0 -492
- package/dist/SchedulePage-DdMHF6kX.js +0 -17993
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { ref as w, reactive as
|
|
2
|
-
import { useRouter as
|
|
3
|
-
import { useSnackbar as
|
|
4
|
-
import { R as
|
|
5
|
-
import { b as v, o as
|
|
6
|
-
import "
|
|
7
|
-
|
|
8
|
-
import "./employee-BM44u8b-.js";
|
|
9
|
-
const Z = [
|
|
1
|
+
import { ref as w, reactive as B, computed as N, defineComponent as T, createBlock as I, openBlock as p, withCtx as k, createElementVNode as e, createVNode as b, createElementBlock as m, Fragment as L, createTextVNode as H, toDisplayString as h, withDirectives as f, vModelText as g, createCommentVNode as A, renderList as V, onMounted as z, createStaticVNode as Y, unref as l, normalizeClass as U } from "vue";
|
|
2
|
+
import { useRouter as q } from "vue-router";
|
|
3
|
+
import { useSnackbar as F } from "@feedmepos/ui-library";
|
|
4
|
+
import { R as G } from "./app-3xGY2Rn0.js";
|
|
5
|
+
import { b as v, o as $, Q as j, $ as W, p as E, g as J, at as Q, ar as x, av as K, aw as X, ag as Z, as as _ } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-BeTuMw3f.js";
|
|
6
|
+
import { useCoreStore as ee } from "@feedmepos/mf-common";
|
|
7
|
+
const se = [
|
|
10
8
|
{ key: "payrates", label: "Pay rates" },
|
|
11
9
|
{ key: "overtime", label: "Overtime" },
|
|
12
10
|
{ key: "workingHours", label: "Working hours" }
|
|
13
11
|
];
|
|
14
|
-
function
|
|
12
|
+
function M() {
|
|
15
13
|
return structuredClone({
|
|
16
14
|
// RULES is reactive, so spreading each rate tier first gives structuredClone plain
|
|
17
15
|
// objects instead of Vue Proxy instances, which structuredClone cannot clone.
|
|
@@ -24,38 +22,39 @@ function $() {
|
|
|
24
22
|
workingHours: { ...v.workingHours }
|
|
25
23
|
});
|
|
26
24
|
}
|
|
27
|
-
function
|
|
28
|
-
const r =
|
|
25
|
+
function te() {
|
|
26
|
+
const r = ee(), d = w(!1), a = w("payrates"), n = B(M()), t = w(!1);
|
|
29
27
|
let u = 0;
|
|
30
28
|
async function C() {
|
|
31
|
-
if (
|
|
32
|
-
const c = ++u, o =
|
|
29
|
+
if (!$.value) return;
|
|
30
|
+
const c = ++u, o = $.value;
|
|
33
31
|
t.value = !0;
|
|
34
32
|
try {
|
|
35
|
-
const s = await
|
|
36
|
-
if (c !== u ||
|
|
37
|
-
|
|
33
|
+
const s = await W.getSettings(o);
|
|
34
|
+
if (c !== u || $.value !== o) return;
|
|
35
|
+
E.value && (E.value = { ...E.value, settings: s });
|
|
36
|
+
const i = J(r.currentCountry.value);
|
|
38
37
|
v.payRate = structuredClone(s.settingsConfigured ? s.payRate : i.payRate), v.otCapHours = s.settingsConfigured ? s.overtime.maxHoursPerMonth : i.overtime.maxHoursPerMonth, v.workingHours = s.settingsConfigured ? structuredClone(s.workingHours) : {
|
|
39
38
|
minHoursPerDay: null,
|
|
40
|
-
maxHoursPerDay: i.workingHours.maxHoursPerDay,
|
|
41
|
-
maxHoursPerWeek: i.workingHours.maxHoursPerWeek
|
|
39
|
+
maxHoursPerDay: i.workingHours.fullTime.maxHoursPerDay,
|
|
40
|
+
maxHoursPerWeek: i.workingHours.fullTime.maxHoursPerWeek
|
|
42
41
|
};
|
|
43
42
|
} finally {
|
|
44
43
|
c === u && (t.value = !1);
|
|
45
44
|
}
|
|
46
45
|
}
|
|
47
46
|
function y(c) {
|
|
48
|
-
Object.assign(n,
|
|
47
|
+
Object.assign(n, M()), a.value = c ?? "payrates", d.value = !0;
|
|
49
48
|
}
|
|
50
|
-
const S =
|
|
49
|
+
const S = N(() => JSON.stringify(n) !== JSON.stringify(M()));
|
|
51
50
|
function P() {
|
|
52
51
|
return S.value ? !1 : (d.value = !1, !0);
|
|
53
52
|
}
|
|
54
53
|
function D() {
|
|
55
|
-
Object.assign(n,
|
|
54
|
+
Object.assign(n, M()), d.value = !1;
|
|
56
55
|
}
|
|
57
56
|
async function R() {
|
|
58
|
-
if (
|
|
57
|
+
if (!$.value) throw new Error("No outlet selected");
|
|
59
58
|
const c = n.otCapHours === 0 ? null : n.otCapHours;
|
|
60
59
|
if (c != null && c <= 0)
|
|
61
60
|
throw new Error("Maximum monthly overtime hours must be greater than zero");
|
|
@@ -68,7 +67,7 @@ function _() {
|
|
|
68
67
|
throw new Error("Working-hour limits must be in ascending order");
|
|
69
68
|
if (o.maxHoursPerDay != null && o.maxHoursPerWeek != null && o.maxHoursPerDay > o.maxHoursPerWeek)
|
|
70
69
|
throw new Error("Working-hour limits must be in ascending order");
|
|
71
|
-
const s = await
|
|
70
|
+
const s = await j({
|
|
72
71
|
payRate: n.payRate,
|
|
73
72
|
overtime: { maxHoursPerMonth: c },
|
|
74
73
|
workingHours: o
|
|
@@ -77,13 +76,13 @@ function _() {
|
|
|
77
76
|
}
|
|
78
77
|
return { isOpen: d, activeSection: a, draft: n, dirty: S, loading: t, load: C, open: y, close: P, discard: D, save: R };
|
|
79
78
|
}
|
|
80
|
-
function
|
|
81
|
-
const a = w(!1), n = w(""), t = w(/* @__PURE__ */ new Set()), u = w(!1), C = w(null), y =
|
|
79
|
+
function ae(r, d = {}) {
|
|
80
|
+
const a = w(!1), n = w(""), t = w(/* @__PURE__ */ new Set()), u = w(!1), C = w(null), y = N(
|
|
82
81
|
() => {
|
|
83
82
|
var o;
|
|
84
83
|
return ((o = r.options.value.find((s) => s.value === r.outletId.value)) == null ? void 0 : o.label) ?? "";
|
|
85
84
|
}
|
|
86
|
-
), S =
|
|
85
|
+
), S = N(() => {
|
|
87
86
|
const o = n.value.trim().toLowerCase();
|
|
88
87
|
return r.options.value.filter(
|
|
89
88
|
(s) => s.value !== r.outletId.value && (!o || s.label.toLowerCase().includes(o))
|
|
@@ -107,7 +106,7 @@ function ee(r, d = {}) {
|
|
|
107
106
|
try {
|
|
108
107
|
await Promise.all(
|
|
109
108
|
o.map(
|
|
110
|
-
(O) =>
|
|
109
|
+
(O) => W.saveSettings(O, {
|
|
111
110
|
payRate: v.payRate,
|
|
112
111
|
overtime: { maxHoursPerMonth: v.otCapHours },
|
|
113
112
|
workingHours: v.workingHours
|
|
@@ -143,35 +142,35 @@ function ee(r, d = {}) {
|
|
|
143
142
|
confirm: c
|
|
144
143
|
};
|
|
145
144
|
}
|
|
146
|
-
const
|
|
145
|
+
const oe = { class: "am-head" }, le = { class: "ce-body" }, re = {
|
|
147
146
|
class: "ce-hint",
|
|
148
147
|
style: { "margin-bottom": "var(--fm-spacing-10)" }
|
|
149
|
-
},
|
|
148
|
+
}, ne = { class: "sch-search" }, ie = { class: "asg-list" }, ue = ["checked", "onChange"], de = { class: "asg-id" }, pe = { class: "asg-nm" }, ve = {
|
|
150
149
|
key: 0,
|
|
151
150
|
class: "asg-empty"
|
|
152
|
-
},
|
|
151
|
+
}, me = {
|
|
153
152
|
key: 1,
|
|
154
153
|
class: "cg-done"
|
|
155
|
-
},
|
|
154
|
+
}, ce = { class: "cg-st-main" }, ye = { class: "am-foot" }, fe = { class: "am-cost-preview" }, ge = { class: "am-foot-btns" }, he = /* @__PURE__ */ T({
|
|
156
155
|
__name: "ScheduleCloneOutletModal",
|
|
157
156
|
props: {
|
|
158
157
|
modal: {}
|
|
159
158
|
},
|
|
160
159
|
setup(r) {
|
|
161
|
-
return (d, a) => (p(), I(
|
|
160
|
+
return (d, a) => (p(), I(Q, {
|
|
162
161
|
open: r.modal.open.value,
|
|
163
162
|
"panel-class": "ce-modal",
|
|
164
163
|
"panel-style": "width: min(460px, 95vw)",
|
|
165
164
|
"labelled-by": "schedule-clone-title",
|
|
166
165
|
onClose: a[5] || (a[5] = (n) => r.modal.close())
|
|
167
166
|
}, {
|
|
168
|
-
default:
|
|
169
|
-
e("div",
|
|
167
|
+
default: k(() => [
|
|
168
|
+
e("div", oe, [
|
|
170
169
|
a[7] || (a[7] = e("div", {
|
|
171
170
|
id: "schedule-clone-title",
|
|
172
171
|
class: "am-title"
|
|
173
172
|
}, "Clone outlet setup", -1)),
|
|
174
|
-
|
|
173
|
+
b(x, {
|
|
175
174
|
hierarchy: "ghost",
|
|
176
175
|
size: "xs",
|
|
177
176
|
"icon-only": "",
|
|
@@ -180,7 +179,7 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
180
179
|
"aria-label": "Close",
|
|
181
180
|
onClick: a[0] || (a[0] = (n) => r.modal.close())
|
|
182
181
|
}, {
|
|
183
|
-
default:
|
|
182
|
+
default: k(() => [...a[6] || (a[6] = [
|
|
184
183
|
e("svg", {
|
|
185
184
|
width: "20",
|
|
186
185
|
height: "20",
|
|
@@ -197,14 +196,14 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
197
196
|
_: 1
|
|
198
197
|
})
|
|
199
198
|
]),
|
|
200
|
-
e("div",
|
|
199
|
+
e("div", le, [
|
|
201
200
|
r.modal.done.value === null ? (p(), m(L, { key: 0 }, [
|
|
202
|
-
e("div",
|
|
201
|
+
e("div", re, [
|
|
203
202
|
a[8] || (a[8] = H(" Copy ", -1)),
|
|
204
203
|
e("b", null, h(r.modal.sourceLabel.value), 1),
|
|
205
204
|
a[9] || (a[9] = H("'s pay rates to: ", -1))
|
|
206
205
|
]),
|
|
207
|
-
e("div",
|
|
206
|
+
e("div", ne, [
|
|
208
207
|
a[10] || (a[10] = e("svg", {
|
|
209
208
|
width: "16",
|
|
210
209
|
height: "16",
|
|
@@ -236,7 +235,7 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
236
235
|
[g, r.modal.query.value]
|
|
237
236
|
])
|
|
238
237
|
]),
|
|
239
|
-
e("div",
|
|
238
|
+
e("div", ie, [
|
|
240
239
|
(p(!0), m(L, null, V(r.modal.targets.value, (n) => (p(), m("label", {
|
|
241
240
|
key: n.value,
|
|
242
241
|
class: "asg-row"
|
|
@@ -247,45 +246,45 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
247
246
|
"data-platform": "desktop",
|
|
248
247
|
checked: r.modal.selected.value.has(n.value),
|
|
249
248
|
onChange: (t) => r.modal.toggle(n.value)
|
|
250
|
-
}, null, 40,
|
|
251
|
-
e("span",
|
|
252
|
-
e("span",
|
|
249
|
+
}, null, 40, ue),
|
|
250
|
+
e("span", de, [
|
|
251
|
+
e("span", pe, h(n.label), 1)
|
|
253
252
|
])
|
|
254
253
|
]))), 128)),
|
|
255
|
-
r.modal.targets.value.length ?
|
|
254
|
+
r.modal.targets.value.length ? A("", !0) : (p(), m("div", ve, h(r.modal.query.value ? "No outlet matches that search." : "No other outlets."), 1))
|
|
256
255
|
]),
|
|
257
256
|
a[11] || (a[11] = e("div", {
|
|
258
257
|
class: "ce-hint",
|
|
259
258
|
style: { "margin-top": "var(--fm-spacing-10)" }
|
|
260
259
|
}, " Copies this outlet's pay rates to the outlets you tick. Their current pay rates are replaced. ", -1))
|
|
261
|
-
], 64)) : (p(), m("div",
|
|
260
|
+
], 64)) : (p(), m("div", me, [
|
|
262
261
|
a[13] || (a[13] = e("span", {
|
|
263
262
|
class: "cg-done-tick",
|
|
264
263
|
"aria-hidden": "true"
|
|
265
264
|
}, "✓", -1)),
|
|
266
|
-
e("div",
|
|
265
|
+
e("div", ce, [
|
|
267
266
|
a[12] || (a[12] = e("b", null, "Pay rates copied", -1)),
|
|
268
267
|
e("small", null, "Sent to " + h(r.modal.done.value) + " outlet" + h(r.modal.done.value === 1 ? "" : "s"), 1)
|
|
269
268
|
])
|
|
270
269
|
]))
|
|
271
270
|
]),
|
|
272
|
-
e("div",
|
|
273
|
-
e("div",
|
|
274
|
-
e("div",
|
|
271
|
+
e("div", ye, [
|
|
272
|
+
e("div", fe, h(r.modal.done.value === null && r.modal.selected.value.size ? `${r.modal.selected.value.size} outlet${r.modal.selected.value.size === 1 ? "" : "s"} selected` : ""), 1),
|
|
273
|
+
e("div", ge, [
|
|
275
274
|
r.modal.done.value === null ? (p(), m(L, { key: 0 }, [
|
|
276
|
-
|
|
275
|
+
b(x, {
|
|
277
276
|
hierarchy: "secondary",
|
|
278
277
|
size: "sm",
|
|
279
278
|
class: "am-btn am-btn-sec",
|
|
280
279
|
type: "button",
|
|
281
280
|
onClick: a[2] || (a[2] = (n) => r.modal.close())
|
|
282
281
|
}, {
|
|
283
|
-
default:
|
|
282
|
+
default: k(() => [...a[14] || (a[14] = [
|
|
284
283
|
H(" Cancel ", -1)
|
|
285
284
|
])]),
|
|
286
285
|
_: 1
|
|
287
286
|
}),
|
|
288
|
-
|
|
287
|
+
b(x, {
|
|
289
288
|
hierarchy: "primary",
|
|
290
289
|
size: "sm",
|
|
291
290
|
class: "am-btn am-btn-primary",
|
|
@@ -293,7 +292,7 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
293
292
|
disabled: !r.modal.selected.value.size || r.modal.saving.value,
|
|
294
293
|
onClick: a[3] || (a[3] = (n) => r.modal.confirm())
|
|
295
294
|
}, {
|
|
296
|
-
default:
|
|
295
|
+
default: k(() => [
|
|
297
296
|
H(h(r.modal.saving.value ? "Copying…" : "Copy setup"), 1)
|
|
298
297
|
]),
|
|
299
298
|
_: 1
|
|
@@ -306,7 +305,7 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
306
305
|
type: "button",
|
|
307
306
|
onClick: a[4] || (a[4] = (n) => r.modal.close())
|
|
308
307
|
}, {
|
|
309
|
-
default:
|
|
308
|
+
default: k(() => [...a[15] || (a[15] = [
|
|
310
309
|
H(" Done ", -1)
|
|
311
310
|
])]),
|
|
312
311
|
_: 1
|
|
@@ -317,40 +316,40 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
317
316
|
_: 1
|
|
318
317
|
}, 8, ["open"]));
|
|
319
318
|
}
|
|
320
|
-
}),
|
|
319
|
+
}), we = { class: "main" }, be = {
|
|
321
320
|
id: "viewSettings",
|
|
322
321
|
class: "view"
|
|
323
|
-
},
|
|
322
|
+
}, ke = { class: "sp-head" }, He = { class: "outlet-bar" }, Ce = { class: "sp-body" }, xe = { class: "sp-tabs" }, Se = ["onClick"], Pe = { class: "sp-content" }, De = { class: "sp-panel" }, Re = {
|
|
324
323
|
key: 0,
|
|
325
324
|
id: "sp-payrates",
|
|
326
325
|
class: "sp-sec"
|
|
327
|
-
},
|
|
326
|
+
}, Oe = { class: "sp-card" }, $e = { class: "sp-row" }, Me = { class: "sp-field" }, Le = { class: "sp-row" }, Ne = { class: "sp-field" }, Ee = { class: "sp-row" }, Ae = { class: "sp-field" }, Ie = { class: "sp-card" }, Ue = { class: "sp-row" }, Te = { class: "sp-field" }, Ve = { class: "sp-row" }, We = { class: "sp-field" }, Be = {
|
|
328
327
|
key: 1,
|
|
329
328
|
id: "sp-working-hours",
|
|
330
329
|
class: "sp-sec"
|
|
331
|
-
},
|
|
330
|
+
}, ze = { class: "sp-card" }, Ye = { class: "sp-row" }, qe = { class: "sp-field" }, Fe = { class: "sp-row" }, Ge = { class: "sp-field" }, je = { class: "sp-row" }, Je = { class: "sp-field" }, Qe = {
|
|
332
331
|
key: 2,
|
|
333
332
|
id: "sp-overtime",
|
|
334
333
|
class: "sp-sec"
|
|
335
|
-
},
|
|
334
|
+
}, Ke = { class: "sp-card" }, Xe = { class: "sp-row" }, Ze = { class: "sp-save-txt" }, _e = { key: 0 }, rs = /* @__PURE__ */ T({
|
|
336
335
|
__name: "ScheduleGeneralPage",
|
|
337
336
|
setup(r) {
|
|
338
337
|
const d = w(null);
|
|
339
|
-
|
|
340
|
-
const a =
|
|
338
|
+
K(d);
|
|
339
|
+
const a = q(), n = F(), t = te(), u = X(), C = ae(u, {
|
|
341
340
|
notify: (o, s) => n.open({ message: o, type: s })
|
|
342
341
|
}), y = w(!1);
|
|
343
|
-
|
|
344
|
-
await u.resolve() && await
|
|
342
|
+
z(async () => {
|
|
343
|
+
await u.resolve() && await Z(/* @__PURE__ */ new Date()), await t.load(), t.open();
|
|
345
344
|
});
|
|
346
|
-
const S =
|
|
345
|
+
const S = N(
|
|
347
346
|
() => u.options.value.length ? u.options.value : [{ value: "", label: "No outlet selected", disabled: !0 }]
|
|
348
347
|
);
|
|
349
348
|
async function P(o) {
|
|
350
349
|
t.dirty.value || await u.switchTo(o, /* @__PURE__ */ new Date()) && (await t.load(), t.open());
|
|
351
350
|
}
|
|
352
351
|
function D() {
|
|
353
|
-
t.close() && a.push({ name:
|
|
352
|
+
t.close() && a.push({ name: G.SCHEDULE });
|
|
354
353
|
}
|
|
355
354
|
function R() {
|
|
356
355
|
if (!y.value) {
|
|
@@ -374,17 +373,17 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
374
373
|
ref: d,
|
|
375
374
|
class: "sch"
|
|
376
375
|
}, [
|
|
377
|
-
e("div",
|
|
378
|
-
e("div",
|
|
379
|
-
e("div",
|
|
380
|
-
|
|
376
|
+
e("div", we, [
|
|
377
|
+
e("div", be, [
|
|
378
|
+
e("div", ke, [
|
|
379
|
+
b(x, {
|
|
381
380
|
hierarchy: "ghost",
|
|
382
381
|
size: "sm",
|
|
383
382
|
class: "sp-back",
|
|
384
383
|
type: "button",
|
|
385
384
|
onClick: D
|
|
386
385
|
}, {
|
|
387
|
-
default:
|
|
386
|
+
default: k(() => [...s[12] || (s[12] = [
|
|
388
387
|
e("svg", {
|
|
389
388
|
width: "12",
|
|
390
389
|
height: "12",
|
|
@@ -404,11 +403,10 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
404
403
|
])]),
|
|
405
404
|
_: 1
|
|
406
405
|
}),
|
|
407
|
-
s[15] || (s[15] =
|
|
408
|
-
|
|
409
|
-
e("div", we, [
|
|
406
|
+
s[15] || (s[15] = Y('<div class="sp-title-row"><div class="sp-title">General Settings</div><span class="page-tags"><span class="sch-badge page-tag-premium" data-color="brand">Premium</span><span class="sch-badge" data-color="info">Free until 31 Dec 2026</span></span></div><div class="sp-sub">Pay multipliers and overtime limit for this outlet.</div>', 2)),
|
|
407
|
+
e("div", He, [
|
|
410
408
|
s[14] || (s[14] = e("span", { class: "outlet-bar-lbl" }, "Outlet", -1)),
|
|
411
|
-
|
|
409
|
+
b(_, {
|
|
412
410
|
class: "outlet-sel",
|
|
413
411
|
"aria-label": "Outlet being configured",
|
|
414
412
|
searchable: "",
|
|
@@ -418,7 +416,7 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
418
416
|
options: S.value,
|
|
419
417
|
"onUpdate:modelValue": P
|
|
420
418
|
}, null, 8, ["disabled", "title", "model-value", "options"]),
|
|
421
|
-
|
|
419
|
+
b(x, {
|
|
422
420
|
hierarchy: "secondary",
|
|
423
421
|
size: "sm",
|
|
424
422
|
class: "outlet-clone",
|
|
@@ -427,7 +425,7 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
427
425
|
title: l(t).dirty.value ? "Save or discard changes before cloning" : "Copy this outlet's pay rates to other outlets",
|
|
428
426
|
onClick: s[0] || (s[0] = (i) => l(C).openModal())
|
|
429
427
|
}, {
|
|
430
|
-
default:
|
|
428
|
+
default: k(() => [...s[13] || (s[13] = [
|
|
431
429
|
e("svg", {
|
|
432
430
|
width: "12",
|
|
433
431
|
height: "12",
|
|
@@ -457,34 +455,34 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
457
455
|
}, 8, ["disabled", "title"])
|
|
458
456
|
])
|
|
459
457
|
]),
|
|
460
|
-
e("div",
|
|
461
|
-
e("nav",
|
|
462
|
-
(p(!0), m(L, null, V(l(
|
|
458
|
+
e("div", Ce, [
|
|
459
|
+
e("nav", xe, [
|
|
460
|
+
(p(!0), m(L, null, V(l(se), (i) => (p(), m("button", {
|
|
463
461
|
key: i.key,
|
|
464
462
|
type: "button",
|
|
465
463
|
class: U(["sch-tab sp-tab", { active: l(t).activeSection.value === i.key }]),
|
|
466
464
|
"data-active": "false",
|
|
467
465
|
onClick: (O) => l(t).activeSection.value = i.key
|
|
468
|
-
}, h(i.label), 11,
|
|
466
|
+
}, h(i.label), 11, Se))), 128))
|
|
469
467
|
]),
|
|
470
|
-
e("div",
|
|
471
|
-
e("div",
|
|
472
|
-
l(t).activeSection.value === "payrates" ? (p(), m("section",
|
|
473
|
-
s[
|
|
468
|
+
e("div", Pe, [
|
|
469
|
+
e("div", De, [
|
|
470
|
+
l(t).activeSection.value === "payrates" ? (p(), m("section", Re, [
|
|
471
|
+
s[28] || (s[28] = e("div", { class: "sp-sec-head" }, [
|
|
474
472
|
e("div", { class: "sp-panel-title" }, "Pay rates")
|
|
475
473
|
], -1)),
|
|
476
|
-
s[
|
|
477
|
-
e("div",
|
|
478
|
-
s[
|
|
474
|
+
s[29] || (s[29] = e("div", { class: "sp-panel-desc" }, "Pay multipliers by kind of day.", -1)),
|
|
475
|
+
e("div", Oe, [
|
|
476
|
+
s[22] || (s[22] = e("div", { class: "sp-card-head" }, [
|
|
479
477
|
e("div", { class: "sp-card-title" }, "Overtime rate"),
|
|
480
478
|
e("div", { class: "sp-card-note" }, "Multiplier on every OT hour")
|
|
481
479
|
], -1)),
|
|
482
|
-
e("div",
|
|
483
|
-
s[
|
|
480
|
+
e("div", $e, [
|
|
481
|
+
s[17] || (s[17] = e("div", { class: "sp-row-main" }, [
|
|
484
482
|
e("div", { class: "sp-row-label" }, "Normal operations day"),
|
|
485
483
|
e("div", { class: "sp-row-hint" }, " Multiplier on their rate for hours past the weekly contract. ")
|
|
486
484
|
], -1)),
|
|
487
|
-
e("div",
|
|
485
|
+
e("div", Me, [
|
|
488
486
|
f(e("input", {
|
|
489
487
|
"onUpdate:modelValue": s[1] || (s[1] = (i) => l(t).draft.payRate.NORMAL.overtime = i),
|
|
490
488
|
class: "sch-input sp-num",
|
|
@@ -501,15 +499,15 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
501
499
|
{ number: !0 }
|
|
502
500
|
]
|
|
503
501
|
]),
|
|
504
|
-
s[
|
|
502
|
+
s[16] || (s[16] = e("span", { class: "sp-unit" }, "×", -1))
|
|
505
503
|
])
|
|
506
504
|
]),
|
|
507
|
-
e("div",
|
|
508
|
-
s[
|
|
505
|
+
e("div", Le, [
|
|
506
|
+
s[19] || (s[19] = e("div", { class: "sp-row-main" }, [
|
|
509
507
|
e("div", { class: "sp-row-label" }, "Off day"),
|
|
510
508
|
e("div", { class: "sp-row-hint" }, " For a shift on the person's off day, weekly or booked. Check the rate with HR. ")
|
|
511
509
|
], -1)),
|
|
512
|
-
e("div",
|
|
510
|
+
e("div", Ne, [
|
|
513
511
|
f(e("input", {
|
|
514
512
|
"onUpdate:modelValue": s[2] || (s[2] = (i) => l(t).draft.payRate.REST_DAY.overtime = i),
|
|
515
513
|
class: "sch-input sp-num",
|
|
@@ -526,15 +524,15 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
526
524
|
{ number: !0 }
|
|
527
525
|
]
|
|
528
526
|
]),
|
|
529
|
-
s[
|
|
527
|
+
s[18] || (s[18] = e("span", { class: "sp-unit" }, "×", -1))
|
|
530
528
|
])
|
|
531
529
|
]),
|
|
532
|
-
e("div",
|
|
533
|
-
s[
|
|
530
|
+
e("div", Ee, [
|
|
531
|
+
s[21] || (s[21] = e("div", { class: "sp-row-main" }, [
|
|
534
532
|
e("div", { class: "sp-row-label" }, "Public holiday"),
|
|
535
533
|
e("div", { class: "sp-row-hint" }, " For dates on the holiday calendar. Wins over an off day on the same date. ")
|
|
536
534
|
], -1)),
|
|
537
|
-
e("div",
|
|
535
|
+
e("div", Ae, [
|
|
538
536
|
f(e("input", {
|
|
539
537
|
"onUpdate:modelValue": s[3] || (s[3] = (i) => l(t).draft.payRate.PUBLIC_HOLIDAY.overtime = i),
|
|
540
538
|
class: "sch-input sp-num",
|
|
@@ -551,21 +549,21 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
551
549
|
{ number: !0 }
|
|
552
550
|
]
|
|
553
551
|
]),
|
|
554
|
-
s[
|
|
552
|
+
s[20] || (s[20] = e("span", { class: "sp-unit" }, "×", -1))
|
|
555
553
|
])
|
|
556
554
|
])
|
|
557
555
|
]),
|
|
558
|
-
e("div",
|
|
559
|
-
s[
|
|
556
|
+
e("div", Ie, [
|
|
557
|
+
s[27] || (s[27] = e("div", { class: "sp-card-head" }, [
|
|
560
558
|
e("div", { class: "sp-card-title" }, "Regular rate"),
|
|
561
559
|
e("div", { class: "sp-card-note" }, "Multiplier on ordinary hours")
|
|
562
560
|
], -1)),
|
|
563
|
-
e("div",
|
|
564
|
-
s[
|
|
561
|
+
e("div", Ue, [
|
|
562
|
+
s[24] || (s[24] = e("div", { class: "sp-row-main" }, [
|
|
565
563
|
e("div", { class: "sp-row-label" }, "Off day"),
|
|
566
564
|
e("div", { class: "sp-row-hint" }, "Ordinary hours worked on the person's off day.")
|
|
567
565
|
], -1)),
|
|
568
|
-
e("div",
|
|
566
|
+
e("div", Te, [
|
|
569
567
|
f(e("input", {
|
|
570
568
|
"onUpdate:modelValue": s[4] || (s[4] = (i) => l(t).draft.payRate.REST_DAY.regular = i),
|
|
571
569
|
class: "sch-input sp-num",
|
|
@@ -582,15 +580,15 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
582
580
|
{ number: !0 }
|
|
583
581
|
]
|
|
584
582
|
]),
|
|
585
|
-
s[
|
|
583
|
+
s[23] || (s[23] = e("span", { class: "sp-unit" }, "×", -1))
|
|
586
584
|
])
|
|
587
585
|
]),
|
|
588
|
-
e("div",
|
|
589
|
-
s[
|
|
586
|
+
e("div", Ve, [
|
|
587
|
+
s[26] || (s[26] = e("div", { class: "sp-row-main" }, [
|
|
590
588
|
e("div", { class: "sp-row-label" }, "Public holiday"),
|
|
591
589
|
e("div", { class: "sp-row-hint" }, " Ordinary hours worked on a date on the holiday calendar. ")
|
|
592
590
|
], -1)),
|
|
593
|
-
e("div",
|
|
591
|
+
e("div", We, [
|
|
594
592
|
f(e("input", {
|
|
595
593
|
"onUpdate:modelValue": s[5] || (s[5] = (i) => l(t).draft.payRate.PUBLIC_HOLIDAY.regular = i),
|
|
596
594
|
class: "sch-input sp-num",
|
|
@@ -607,25 +605,25 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
607
605
|
{ number: !0 }
|
|
608
606
|
]
|
|
609
607
|
]),
|
|
610
|
-
s[
|
|
608
|
+
s[25] || (s[25] = e("span", { class: "sp-unit" }, "×", -1))
|
|
611
609
|
])
|
|
612
610
|
])
|
|
613
611
|
])
|
|
614
|
-
])) : l(t).activeSection.value === "workingHours" ? (p(), m("section",
|
|
615
|
-
s[
|
|
612
|
+
])) : l(t).activeSection.value === "workingHours" ? (p(), m("section", Be, [
|
|
613
|
+
s[37] || (s[37] = e("div", { class: "sp-sec-head" }, [
|
|
616
614
|
e("div", { class: "sp-panel-title" }, "Working hours")
|
|
617
615
|
], -1)),
|
|
618
|
-
s[
|
|
619
|
-
e("div",
|
|
620
|
-
s[
|
|
616
|
+
s[38] || (s[38] = e("div", { class: "sp-panel-desc" }, "Default employee working-hour limits when no individual setting is provided.", -1)),
|
|
617
|
+
e("div", ze, [
|
|
618
|
+
s[36] || (s[36] = e("div", { class: "sp-card-head" }, [
|
|
621
619
|
e("div", { class: "sp-card-title" }, "Default working hours"),
|
|
622
620
|
e("div", { class: "sp-card-note" }, "Used as the employee default")
|
|
623
621
|
], -1)),
|
|
624
|
-
e("div",
|
|
625
|
-
s[
|
|
622
|
+
e("div", Ye, [
|
|
623
|
+
s[31] || (s[31] = e("div", { class: "sp-row-main" }, [
|
|
626
624
|
e("div", { class: "sp-row-label" }, "Min hours per day")
|
|
627
625
|
], -1)),
|
|
628
|
-
e("div",
|
|
626
|
+
e("div", qe, [
|
|
629
627
|
f(e("input", {
|
|
630
628
|
"onUpdate:modelValue": s[6] || (s[6] = (i) => l(t).draft.workingHours.minHoursPerDay = i),
|
|
631
629
|
class: "sch-input sp-num",
|
|
@@ -643,14 +641,14 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
643
641
|
{ number: !0 }
|
|
644
642
|
]
|
|
645
643
|
]),
|
|
646
|
-
s[
|
|
644
|
+
s[30] || (s[30] = e("span", { class: "sp-unit" }, "hours / day", -1))
|
|
647
645
|
])
|
|
648
646
|
]),
|
|
649
|
-
e("div",
|
|
650
|
-
s[
|
|
647
|
+
e("div", Fe, [
|
|
648
|
+
s[33] || (s[33] = e("div", { class: "sp-row-main" }, [
|
|
651
649
|
e("div", { class: "sp-row-label" }, "Max hours per day")
|
|
652
650
|
], -1)),
|
|
653
|
-
e("div",
|
|
651
|
+
e("div", Ge, [
|
|
654
652
|
f(e("input", {
|
|
655
653
|
"onUpdate:modelValue": s[7] || (s[7] = (i) => l(t).draft.workingHours.maxHoursPerDay = i),
|
|
656
654
|
class: "sch-input sp-num",
|
|
@@ -668,14 +666,14 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
668
666
|
{ number: !0 }
|
|
669
667
|
]
|
|
670
668
|
]),
|
|
671
|
-
s[
|
|
669
|
+
s[32] || (s[32] = e("span", { class: "sp-unit" }, "hours / day", -1))
|
|
672
670
|
])
|
|
673
671
|
]),
|
|
674
|
-
e("div",
|
|
675
|
-
s[
|
|
672
|
+
e("div", je, [
|
|
673
|
+
s[35] || (s[35] = e("div", { class: "sp-row-main" }, [
|
|
676
674
|
e("div", { class: "sp-row-label" }, "Max hours per week")
|
|
677
675
|
], -1)),
|
|
678
|
-
e("div",
|
|
676
|
+
e("div", Je, [
|
|
679
677
|
f(e("input", {
|
|
680
678
|
"onUpdate:modelValue": s[8] || (s[8] = (i) => l(t).draft.workingHours.maxHoursPerWeek = i),
|
|
681
679
|
class: "sch-input sp-num",
|
|
@@ -693,22 +691,22 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
693
691
|
{ number: !0 }
|
|
694
692
|
]
|
|
695
693
|
]),
|
|
696
|
-
s[
|
|
694
|
+
s[34] || (s[34] = e("span", { class: "sp-unit" }, "hours / week", -1))
|
|
697
695
|
])
|
|
698
696
|
])
|
|
699
697
|
])
|
|
700
|
-
])) : l(t).activeSection.value === "overtime" ? (p(), m("section",
|
|
701
|
-
s[
|
|
698
|
+
])) : l(t).activeSection.value === "overtime" ? (p(), m("section", Qe, [
|
|
699
|
+
s[41] || (s[41] = e("div", { class: "sp-sec-head" }, [
|
|
702
700
|
e("div", { class: "sp-panel-title" }, "Overtime")
|
|
703
701
|
], -1)),
|
|
704
|
-
s[
|
|
705
|
-
e("div",
|
|
706
|
-
s[
|
|
702
|
+
s[42] || (s[42] = e("div", { class: "sp-panel-desc" }, "The monthly statutory cap on overtime hours.", -1)),
|
|
703
|
+
e("div", Ke, [
|
|
704
|
+
s[40] || (s[40] = e("div", { class: "sp-card-head" }, [
|
|
707
705
|
e("div", { class: "sp-card-title" }, "Maximum OT Hours"),
|
|
708
706
|
e("div", { class: "sp-card-note" }, "Enforced")
|
|
709
707
|
], -1)),
|
|
710
|
-
e("div",
|
|
711
|
-
s[
|
|
708
|
+
e("div", Xe, [
|
|
709
|
+
s[39] || (s[39] = e("div", { class: "sp-row-main" }, [
|
|
712
710
|
e("div", { class: "sp-row-label" }, "Monthly OT cap"),
|
|
713
711
|
e("div", { class: "sp-row-hint" }, " Hours per person per month. Auto-Schedule never exceeds it. ")
|
|
714
712
|
], -1)),
|
|
@@ -731,36 +729,36 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
731
729
|
])
|
|
732
730
|
])
|
|
733
731
|
])
|
|
734
|
-
])) :
|
|
732
|
+
])) : A("", !0)
|
|
735
733
|
])
|
|
736
734
|
]),
|
|
737
735
|
e("div", {
|
|
738
736
|
class: U(["sp-save", { dirty: l(t).dirty.value, arming: y.value }])
|
|
739
737
|
}, [
|
|
740
|
-
e("div",
|
|
738
|
+
e("div", Ze, [
|
|
741
739
|
H(h(y.value ? "Discard unsaved changes?" : "Unsaved changes") + " ", 1),
|
|
742
|
-
y.value ?
|
|
740
|
+
y.value ? A("", !0) : (p(), m("span", _e, "— save or discard before leaving."))
|
|
743
741
|
]),
|
|
744
|
-
|
|
742
|
+
b(x, {
|
|
745
743
|
hierarchy: "secondary",
|
|
746
744
|
size: "sm",
|
|
747
745
|
class: "am-btn am-btn-sec",
|
|
748
746
|
type: "button",
|
|
749
747
|
onClick: s[10] || (s[10] = (i) => R())
|
|
750
748
|
}, {
|
|
751
|
-
default:
|
|
749
|
+
default: k(() => [
|
|
752
750
|
H(h(y.value ? "Confirm discard" : "Discard"), 1)
|
|
753
751
|
]),
|
|
754
752
|
_: 1
|
|
755
753
|
}),
|
|
756
|
-
|
|
754
|
+
b(x, {
|
|
757
755
|
hierarchy: "primary",
|
|
758
756
|
size: "sm",
|
|
759
757
|
class: "am-btn am-btn-primary",
|
|
760
758
|
type: "button",
|
|
761
759
|
onClick: s[11] || (s[11] = (i) => c())
|
|
762
760
|
}, {
|
|
763
|
-
default:
|
|
761
|
+
default: k(() => [...s[43] || (s[43] = [
|
|
764
762
|
H(" Save changes ", -1)
|
|
765
763
|
])]),
|
|
766
764
|
_: 1
|
|
@@ -769,10 +767,10 @@ const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
|
|
|
769
767
|
])
|
|
770
768
|
])
|
|
771
769
|
]),
|
|
772
|
-
|
|
770
|
+
b(he, { modal: l(C) }, null, 8, ["modal"])
|
|
773
771
|
], 512));
|
|
774
772
|
}
|
|
775
773
|
});
|
|
776
774
|
export {
|
|
777
|
-
|
|
775
|
+
rs as default
|
|
778
776
|
};
|