@feedmepos/mf-hrm-portal 2.3.0-dev.9 → 2.3.1-dev.1

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.
Files changed (130) hide show
  1. package/dist/{ApprovalCodeList-BDpxEJpC.js → ApprovalCodeList-CDU3yUHy.js} +7 -7
  2. package/dist/AuditLogList-BU11Q5sF.js +1950 -0
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BBK2gl7r.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BjHwyaXu.js} +2 -2
  4. package/dist/{EmployeeList-C8cbVcmY.js → EmployeeList-BqzXg3uA.js} +255 -266
  5. package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-Clh43Y-8.js} +6 -6
  6. package/dist/{GrantUserList-zul0_Dlm.js → GrantUserList-Cw8RkFqf.js} +8 -8
  7. package/dist/{Main-Cjo4FMZZ.js → Main-BxcRbcce.js} +5 -5
  8. package/dist/{Main-5TsFTFpc.js → Main-CL-ysWRu.js} +8 -8
  9. package/dist/{Main-DSr9KbjT.js → Main-Dlar77Zq.js} +11 -11
  10. package/dist/{PermissionSetList-CDhiiu37.js → PermissionSetList-_8aBzGy7.js} +19 -18
  11. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DoK944l0.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CNgtAtYH.js} +896 -896
  12. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-BVz6q3HE.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js} +1 -1
  13. package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
  14. package/dist/{RoleList-DEbOPQD_.js → RoleList-C3n_zOB3.js} +21 -20
  15. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CnrbCggg.js +544 -0
  16. package/dist/ScheduleGeneralPage-DGHKW_ww.js +811 -0
  17. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-AfTAGsh1.js +2556 -0
  18. package/dist/SchedulePage-UzDPRldO.js +19458 -0
  19. package/dist/SchedulePositionPage-RHETW36P.js +282 -0
  20. package/dist/{SelectFilter-CG13h83-.js → SelectFilter-CeBV_Kug.js} +1 -1
  21. package/dist/{TeamMemberList-DpCGqHCk.js → TeamMemberList-B-qR7VS3.js} +27 -27
  22. package/dist/{TimesheetList-B7HAC5zS.js → TimesheetList-BqRIZBt1.js} +52 -53
  23. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BGD6m5M-.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-oIBUAjtv.js} +3 -3
  24. package/dist/{app-Lh0cqgHy.js → app-DFL6Nv_p.js} +10822 -3893
  25. package/dist/app.js +1 -1
  26. package/dist/{approval-code-DHsUgc4K.js → approval-code-BXUiojPH.js} +1 -1
  27. package/dist/{dayjs.min-joq4stsa.js → dayjs.min-CH-gVmsz.js} +1 -1
  28. package/dist/{employee-BPmp9c6i.js → employee-3xpIjR6i.js} +51 -47
  29. package/dist/{grant-user-qzKHFTro.js → grant-user-CBJ3gEgW.js} +1 -1
  30. package/dist/{iteration-jvdTHQUx.js → iteration-D6wutq5U.js} +1 -1
  31. package/dist/{lodash-CIAEpr9s.js → lodash-D5kU1nPN.js} +1 -1
  32. package/dist/object-Dwyg2LgX.js +16 -0
  33. package/dist/{restaurant-BbYRA_IT.js → restaurant-D2mfKHaH.js} +44 -45
  34. package/dist/{role-Dd1TUMhn.js → role-B7nu6hH1.js} +2 -2
  35. package/dist/{rule-DmxI7qEY.js → rule-CMd6SL3n.js} +3 -3
  36. package/dist/src/api/audit-log/index.d.ts +4 -0
  37. package/dist/src/api/employee/index.d.ts +2 -2
  38. package/dist/src/api/schedule/index.d.ts +11 -1
  39. package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
  40. package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
  41. package/dist/src/stores/employee.d.ts +12 -12
  42. package/dist/src/types/schedule.d.ts +1 -1
  43. package/dist/src/views/audit-log/constants.d.ts +9 -30
  44. package/dist/src/views/audit-log/locales/index.d.ts +488 -0
  45. package/dist/src/views/audit-log/pos-row.d.ts +27 -0
  46. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +6 -2
  47. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
  48. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +2 -0
  49. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
  50. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +2 -0
  51. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +1 -0
  52. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +0 -1
  53. package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +1 -1
  54. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +4 -3
  55. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
  56. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +0 -1
  57. package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
  58. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +1 -1
  59. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +7 -5
  60. package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +2 -0
  61. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
  62. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +4 -2
  63. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +1 -1
  64. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -0
  65. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +10 -0
  66. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +5 -0
  67. package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -0
  68. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
  69. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
  70. package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
  71. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +1 -1
  72. package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +9 -0
  73. package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +23 -0
  74. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
  75. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +3 -1
  76. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +1 -0
  77. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +30 -7
  78. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +5 -11
  79. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +0 -1
  80. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +22 -13
  81. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +58 -7
  82. package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +3 -10
  83. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
  84. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -1
  85. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +16 -2
  86. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +9 -2
  87. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
  88. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +14 -6
  89. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +2 -2
  90. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -4
  91. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +1 -1
  92. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +3 -0
  93. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +0 -2
  94. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +1 -0
  95. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +13 -12
  96. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +1 -1
  97. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +28 -2
  98. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +210 -14
  99. package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +11 -8
  100. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +1 -1
  101. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +3 -1
  102. package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +13 -0
  103. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +6 -0
  104. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -1
  105. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +46 -0
  106. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +1 -1
  107. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
  108. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +29 -1
  109. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +33 -4
  110. package/dist/src/views/scheduling/country-rules/index.d.ts +13 -4
  111. package/dist/src/views/scheduling/data.d.ts +17 -0
  112. package/dist/src/views/scheduling/locales/index.d.ts +6300 -0
  113. package/dist/src/views/scheduling/schedule-state.d.ts +236 -236
  114. package/dist/src/views/scheduling/schedule-store.d.ts +29 -7
  115. package/dist/src/views/scheduling/types.d.ts +8 -0
  116. package/dist/style.css +1 -1
  117. package/dist/tsconfig.app.tsbuildinfo +1 -1
  118. package/dist/{useAppStore-BoLkvkE2.js → useAppStore-DZCdxlCd.js} +1 -1
  119. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  120. package/dist/{useLoading-Ch1AUYT1.js → useLoading-Nygx2zn8.js} +1 -1
  121. package/dist/{useReportPermissions-DM3GOFCC.js → useReportPermissions-BcxIKxlF.js} +3 -3
  122. package/package.json +2 -2
  123. package/dist/AuditLogList-Dgwj1gz8.js +0 -1779
  124. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cx9jFgBS.js +0 -492
  125. package/dist/ScheduleGeneralPage-B8PWNsc2.js +0 -776
  126. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js +0 -2253
  127. package/dist/SchedulePage-ndLByVBl.js +0 -17785
  128. package/dist/SchedulePositionPage-Cuv4ydOK.js +0 -264
  129. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  130. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
@@ -1,776 +0,0 @@
1
- import { ref as w, reactive as B, computed as N, defineComponent as T, createBlock as I, openBlock as p, withCtx as b, createElementVNode as e, createVNode as k, 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, unref as o, normalizeClass as U } from "vue";
2
- import { useRouter as W } from "vue-router";
3
- import { useSnackbar as Y } from "@feedmepos/ui-library";
4
- import { R as q } from "./app-Lh0cqgHy.js";
5
- import { b as v, o as M, L as E, g as G, aq as F, ao as x, as as j, at as J, aa as K, ap as Q } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-V1sZ_xhO.js";
6
- import "./iteration-jvdTHQUx.js";
7
- import { useCoreStore as X } from "@feedmepos/mf-common";
8
- import "./employee-BPmp9c6i.js";
9
- const Z = [
10
- { key: "payrates", label: "Pay rates" },
11
- { key: "overtime", label: "Overtime" },
12
- { key: "workingHours", label: "Working hours" }
13
- ];
14
- function $() {
15
- return structuredClone({
16
- // RULES is reactive, so spreading each rate tier first gives structuredClone plain
17
- // objects instead of Vue Proxy instances, which structuredClone cannot clone.
18
- payRate: {
19
- NORMAL: { ...v.payRate.NORMAL },
20
- REST_DAY: { ...v.payRate.REST_DAY },
21
- PUBLIC_HOLIDAY: { ...v.payRate.PUBLIC_HOLIDAY }
22
- },
23
- otCapHours: v.otCapHours,
24
- workingHours: { ...v.workingHours }
25
- });
26
- }
27
- function _() {
28
- const l = X(), d = w(!1), a = w("payrates"), r = B($()), t = w(!1);
29
- let u = 0;
30
- async function C() {
31
- if (!M.value) return;
32
- const c = ++u, i = M.value;
33
- t.value = !0;
34
- try {
35
- const s = await E.getSettings(i);
36
- if (c !== u || M.value !== i) return;
37
- const n = G(l.currentCountry.value);
38
- v.payRate = structuredClone(s.settingsConfigured ? s.payRate : n.payRate), v.otCapHours = s.settingsConfigured ? s.overtime.maxHoursPerMonth : n.overtime.maxHoursPerMonth, v.workingHours = s.settingsConfigured ? structuredClone(s.workingHours) : {
39
- minHoursPerDay: null,
40
- maxHoursPerDay: n.workingHours.maxHoursPerDay,
41
- maxHoursPerWeek: n.workingHours.maxHoursPerWeek
42
- };
43
- } finally {
44
- c === u && (t.value = !1);
45
- }
46
- }
47
- function y(c) {
48
- Object.assign(r, $()), a.value = c ?? "payrates", d.value = !0;
49
- }
50
- const S = N(() => JSON.stringify(r) !== JSON.stringify($()));
51
- function P() {
52
- return S.value ? !1 : (d.value = !1, !0);
53
- }
54
- function D() {
55
- Object.assign(r, $()), d.value = !1;
56
- }
57
- async function R() {
58
- if (!M.value) throw new Error("No outlet selected");
59
- const c = r.otCapHours === 0 ? null : r.otCapHours;
60
- if (c != null && c <= 0)
61
- throw new Error("Maximum monthly overtime hours must be greater than zero");
62
- const i = {
63
- minHoursPerDay: r.workingHours.minHoursPerDay === 0 ? null : r.workingHours.minHoursPerDay,
64
- maxHoursPerDay: r.workingHours.maxHoursPerDay === 0 ? null : r.workingHours.maxHoursPerDay,
65
- maxHoursPerWeek: r.workingHours.maxHoursPerWeek === 0 ? null : r.workingHours.maxHoursPerWeek
66
- };
67
- if (i.minHoursPerDay != null && i.maxHoursPerDay != null && i.minHoursPerDay > i.maxHoursPerDay)
68
- throw new Error("Minimum daily working hours cannot exceed maximum daily working hours");
69
- const s = await E.saveSettings(M.value, {
70
- payRate: r.payRate,
71
- overtime: { maxHoursPerMonth: c },
72
- workingHours: i
73
- });
74
- v.payRate = structuredClone(s.payRate), v.otCapHours = s.overtime.maxHoursPerMonth, v.workingHours = structuredClone(s.workingHours), d.value = !1;
75
- }
76
- return { isOpen: d, activeSection: a, draft: r, dirty: S, loading: t, load: C, open: y, close: P, discard: D, save: R };
77
- }
78
- function ee(l, d = {}) {
79
- const a = w(!1), r = w(""), t = w(/* @__PURE__ */ new Set()), u = w(!1), C = w(null), y = N(
80
- () => {
81
- var i;
82
- return ((i = l.options.value.find((s) => s.value === l.outletId.value)) == null ? void 0 : i.label) ?? "";
83
- }
84
- ), S = N(() => {
85
- const i = r.value.trim().toLowerCase();
86
- return l.options.value.filter(
87
- (s) => s.value !== l.outletId.value && (!i || s.label.toLowerCase().includes(i))
88
- );
89
- });
90
- function P() {
91
- r.value = "", t.value = /* @__PURE__ */ new Set(), u.value = !1, C.value = null, a.value = !0;
92
- }
93
- function D() {
94
- a.value = !1;
95
- }
96
- function R(i) {
97
- const s = new Set(t.value);
98
- s.has(i) ? s.delete(i) : s.add(i), t.value = s;
99
- }
100
- async function c() {
101
- var s, n;
102
- const i = [...t.value];
103
- if (!(!i.length || u.value)) {
104
- u.value = !0;
105
- try {
106
- await Promise.all(
107
- i.map(
108
- (O) => E.saveSettings(O, {
109
- payRate: v.payRate,
110
- overtime: { maxHoursPerMonth: v.otCapHours },
111
- workingHours: v.workingHours
112
- })
113
- )
114
- ), C.value = i.length, (s = d.notify) == null || s.call(
115
- d,
116
- `Setup copied to ${i.length} outlet${i.length === 1 ? "" : "s"}`,
117
- "success"
118
- );
119
- } catch (O) {
120
- (n = d.notify) == null || n.call(
121
- d,
122
- O instanceof Error ? O.message : "Could not clone outlet setup",
123
- "error"
124
- );
125
- } finally {
126
- u.value = !1;
127
- }
128
- }
129
- }
130
- return {
131
- open: a,
132
- query: r,
133
- selected: t,
134
- saving: u,
135
- done: C,
136
- sourceLabel: y,
137
- targets: S,
138
- openModal: P,
139
- close: D,
140
- toggle: R,
141
- confirm: c
142
- };
143
- }
144
- const se = { class: "am-head" }, te = { class: "ce-body" }, ae = {
145
- class: "ce-hint",
146
- style: { "margin-bottom": "var(--fm-spacing-10)" }
147
- }, oe = { class: "sch-search" }, le = { class: "asg-list" }, re = ["checked", "onChange"], ne = { class: "asg-id" }, ie = { class: "asg-nm" }, ue = {
148
- key: 0,
149
- class: "asg-empty"
150
- }, de = {
151
- key: 1,
152
- class: "cg-done"
153
- }, pe = { class: "cg-st-main" }, ve = { class: "am-foot" }, me = { class: "am-cost-preview" }, ce = { class: "am-foot-btns" }, ye = /* @__PURE__ */ T({
154
- __name: "ScheduleCloneOutletModal",
155
- props: {
156
- modal: {}
157
- },
158
- setup(l) {
159
- return (d, a) => (p(), I(F, {
160
- open: l.modal.open.value,
161
- "panel-class": "ce-modal",
162
- "panel-style": "width: min(460px, 95vw)",
163
- "labelled-by": "schedule-clone-title",
164
- onClose: a[5] || (a[5] = (r) => l.modal.close())
165
- }, {
166
- default: b(() => [
167
- e("div", se, [
168
- a[7] || (a[7] = e("div", {
169
- id: "schedule-clone-title",
170
- class: "am-title"
171
- }, "Clone outlet setup", -1)),
172
- k(x, {
173
- hierarchy: "ghost",
174
- size: "xs",
175
- "icon-only": "",
176
- class: "ce-close-x",
177
- type: "button",
178
- "aria-label": "Close",
179
- onClick: a[0] || (a[0] = (r) => l.modal.close())
180
- }, {
181
- default: b(() => [...a[6] || (a[6] = [
182
- e("svg", {
183
- width: "20",
184
- height: "20",
185
- viewBox: "0 0 20 20",
186
- fill: "none",
187
- stroke: "currentColor",
188
- "stroke-width": "1.8",
189
- "stroke-linecap": "round",
190
- "aria-hidden": "true"
191
- }, [
192
- e("path", { d: "M5.5 5.5l9 9M14.5 5.5l-9 9" })
193
- ], -1)
194
- ])]),
195
- _: 1
196
- })
197
- ]),
198
- e("div", te, [
199
- l.modal.done.value === null ? (p(), m(L, { key: 0 }, [
200
- e("div", ae, [
201
- a[8] || (a[8] = H(" Copy ", -1)),
202
- e("b", null, h(l.modal.sourceLabel.value), 1),
203
- a[9] || (a[9] = H("'s pay rates to: ", -1))
204
- ]),
205
- e("div", oe, [
206
- a[10] || (a[10] = e("svg", {
207
- width: "16",
208
- height: "16",
209
- viewBox: "0 0 16 16",
210
- fill: "none",
211
- "aria-hidden": "true"
212
- }, [
213
- e("circle", {
214
- cx: "7",
215
- cy: "7",
216
- r: "4.5",
217
- stroke: "currentColor",
218
- "stroke-width": "1.5"
219
- }),
220
- e("path", {
221
- d: "M10.5 10.5L14 14",
222
- stroke: "currentColor",
223
- "stroke-width": "1.5",
224
- "stroke-linecap": "round"
225
- })
226
- ], -1)),
227
- f(e("input", {
228
- "onUpdate:modelValue": a[1] || (a[1] = (r) => l.modal.query.value = r),
229
- type: "search",
230
- placeholder: "Search outlets",
231
- "aria-label": "Search outlets",
232
- autocomplete: "off"
233
- }, null, 512), [
234
- [g, l.modal.query.value]
235
- ])
236
- ]),
237
- e("div", le, [
238
- (p(!0), m(L, null, V(l.modal.targets.value, (r) => (p(), m("label", {
239
- key: r.value,
240
- class: "asg-row"
241
- }, [
242
- e("input", {
243
- type: "checkbox",
244
- class: "sch-checkbox",
245
- "data-platform": "desktop",
246
- checked: l.modal.selected.value.has(r.value),
247
- onChange: (t) => l.modal.toggle(r.value)
248
- }, null, 40, re),
249
- e("span", ne, [
250
- e("span", ie, h(r.label), 1)
251
- ])
252
- ]))), 128)),
253
- l.modal.targets.value.length ? A("", !0) : (p(), m("div", ue, h(l.modal.query.value ? "No outlet matches that search." : "No other outlets."), 1))
254
- ]),
255
- a[11] || (a[11] = e("div", {
256
- class: "ce-hint",
257
- style: { "margin-top": "var(--fm-spacing-10)" }
258
- }, " Copies this outlet's pay rates to the outlets you tick. Their current pay rates are replaced. ", -1))
259
- ], 64)) : (p(), m("div", de, [
260
- a[13] || (a[13] = e("span", {
261
- class: "cg-done-tick",
262
- "aria-hidden": "true"
263
- }, "✓", -1)),
264
- e("div", pe, [
265
- a[12] || (a[12] = e("b", null, "Pay rates copied", -1)),
266
- e("small", null, "Sent to " + h(l.modal.done.value) + " outlet" + h(l.modal.done.value === 1 ? "" : "s"), 1)
267
- ])
268
- ]))
269
- ]),
270
- e("div", ve, [
271
- e("div", me, h(l.modal.done.value === null && l.modal.selected.value.size ? `${l.modal.selected.value.size} outlet${l.modal.selected.value.size === 1 ? "" : "s"} selected` : ""), 1),
272
- e("div", ce, [
273
- l.modal.done.value === null ? (p(), m(L, { key: 0 }, [
274
- k(x, {
275
- hierarchy: "secondary",
276
- size: "sm",
277
- class: "am-btn am-btn-sec",
278
- type: "button",
279
- onClick: a[2] || (a[2] = (r) => l.modal.close())
280
- }, {
281
- default: b(() => [...a[14] || (a[14] = [
282
- H(" Cancel ", -1)
283
- ])]),
284
- _: 1
285
- }),
286
- k(x, {
287
- hierarchy: "primary",
288
- size: "sm",
289
- class: "am-btn am-btn-primary",
290
- type: "button",
291
- disabled: !l.modal.selected.value.size || l.modal.saving.value,
292
- onClick: a[3] || (a[3] = (r) => l.modal.confirm())
293
- }, {
294
- default: b(() => [
295
- H(h(l.modal.saving.value ? "Copying…" : "Copy setup"), 1)
296
- ]),
297
- _: 1
298
- }, 8, ["disabled"])
299
- ], 64)) : (p(), I(x, {
300
- key: 1,
301
- hierarchy: "primary",
302
- size: "sm",
303
- class: "am-btn am-btn-primary",
304
- type: "button",
305
- onClick: a[4] || (a[4] = (r) => l.modal.close())
306
- }, {
307
- default: b(() => [...a[15] || (a[15] = [
308
- H(" Done ", -1)
309
- ])]),
310
- _: 1
311
- }))
312
- ])
313
- ])
314
- ]),
315
- _: 1
316
- }, 8, ["open"]));
317
- }
318
- }), fe = { class: "main" }, ge = {
319
- id: "viewSettings",
320
- class: "view"
321
- }, he = { class: "sp-head" }, we = { class: "outlet-bar" }, ke = { class: "sp-body" }, be = { class: "sp-tabs" }, He = ["onClick"], Ce = { class: "sp-content" }, xe = { class: "sp-panel" }, Se = {
322
- key: 0,
323
- id: "sp-payrates",
324
- class: "sp-sec"
325
- }, Pe = { class: "sp-card" }, De = { class: "sp-row" }, Re = { class: "sp-field" }, Oe = { class: "sp-row" }, Me = { class: "sp-field" }, $e = { class: "sp-row" }, Le = { class: "sp-field" }, Ne = { class: "sp-card" }, Ae = { class: "sp-row" }, Ee = { class: "sp-field" }, Ie = { class: "sp-row" }, Ue = { class: "sp-field" }, Te = {
326
- key: 1,
327
- id: "sp-working-hours",
328
- class: "sp-sec"
329
- }, Ve = { class: "sp-card" }, Be = { class: "sp-row" }, ze = { class: "sp-field" }, We = { class: "sp-row" }, Ye = { class: "sp-field" }, qe = { class: "sp-row" }, Ge = { class: "sp-field" }, Fe = {
330
- key: 2,
331
- id: "sp-overtime",
332
- class: "sp-sec"
333
- }, je = { class: "sp-card" }, Je = { class: "sp-row" }, Ke = { class: "sp-save-txt" }, Qe = { key: 0 }, ls = /* @__PURE__ */ T({
334
- __name: "ScheduleGeneralPage",
335
- setup(l) {
336
- const d = w(null);
337
- j(d);
338
- const a = W(), r = Y(), t = _(), u = J(), C = ee(u, {
339
- notify: (i, s) => r.open({ message: i, type: s })
340
- }), y = w(!1);
341
- z(async () => {
342
- await u.resolve() && await K(/* @__PURE__ */ new Date()), await t.load(), t.open();
343
- });
344
- const S = N(
345
- () => u.options.value.length ? u.options.value : [{ value: "", label: "No outlet selected", disabled: !0 }]
346
- );
347
- async function P(i) {
348
- t.dirty.value || await u.switchTo(i, /* @__PURE__ */ new Date()) && (await t.load(), t.open());
349
- }
350
- function D() {
351
- t.close() && a.push({ name: q.SCHEDULE });
352
- }
353
- function R() {
354
- if (!y.value) {
355
- y.value = !0;
356
- return;
357
- }
358
- y.value = !1, t.discard();
359
- }
360
- async function c() {
361
- try {
362
- await t.save(), r.open({ message: "General settings saved", type: "success" });
363
- } catch (i) {
364
- r.open({
365
- message: i instanceof Error ? i.message : "Could not save general settings",
366
- type: "error"
367
- });
368
- }
369
- }
370
- return (i, s) => (p(), m("div", {
371
- ref_key: "rootEl",
372
- ref: d,
373
- class: "sch"
374
- }, [
375
- e("div", fe, [
376
- e("div", ge, [
377
- e("div", he, [
378
- k(x, {
379
- hierarchy: "ghost",
380
- size: "sm",
381
- class: "sp-back",
382
- type: "button",
383
- onClick: D
384
- }, {
385
- default: b(() => [...s[12] || (s[12] = [
386
- e("svg", {
387
- width: "12",
388
- height: "12",
389
- viewBox: "0 0 16 16",
390
- fill: "none",
391
- "aria-hidden": "true"
392
- }, [
393
- e("path", {
394
- d: "M10 3.5L5.5 8l4.5 4.5",
395
- stroke: "currentColor",
396
- "stroke-width": "1.7",
397
- "stroke-linecap": "round",
398
- "stroke-linejoin": "round"
399
- })
400
- ], -1),
401
- e("span", null, "Back to schedule", -1)
402
- ])]),
403
- _: 1
404
- }),
405
- s[15] || (s[15] = e("div", { class: "sp-title" }, "General Settings", -1)),
406
- s[16] || (s[16] = e("div", { class: "sp-sub" }, "Pay multipliers and overtime limit for this outlet.", -1)),
407
- e("div", we, [
408
- s[14] || (s[14] = e("span", { class: "outlet-bar-lbl" }, "Outlet", -1)),
409
- k(Q, {
410
- class: "outlet-sel",
411
- "aria-label": "Outlet being configured",
412
- searchable: "",
413
- disabled: o(t).dirty.value || o(t).loading.value,
414
- title: o(t).dirty.value ? "Save or discard changes before switching outlets" : "Which outlet these pay rates apply to",
415
- "model-value": o(u).outletId.value,
416
- options: S.value,
417
- "onUpdate:modelValue": P
418
- }, null, 8, ["disabled", "title", "model-value", "options"]),
419
- k(x, {
420
- hierarchy: "secondary",
421
- size: "sm",
422
- class: "outlet-clone",
423
- type: "button",
424
- disabled: o(t).dirty.value || o(t).loading.value || !o(u).outletId.value,
425
- title: o(t).dirty.value ? "Save or discard changes before cloning" : "Copy this outlet's pay rates to other outlets",
426
- onClick: s[0] || (s[0] = (n) => o(C).openModal())
427
- }, {
428
- default: b(() => [...s[13] || (s[13] = [
429
- e("svg", {
430
- width: "12",
431
- height: "12",
432
- viewBox: "0 0 16 16",
433
- fill: "none",
434
- "aria-hidden": "true"
435
- }, [
436
- e("rect", {
437
- x: "5.5",
438
- y: "5.5",
439
- width: "8.5",
440
- height: "8.5",
441
- rx: "1.5",
442
- stroke: "currentColor",
443
- "stroke-width": "1.4"
444
- }),
445
- e("path", {
446
- d: "M10.5 5.5V3.2A1.6 1.6 0 0 0 8.9 1.6H3.2A1.6 1.6 0 0 0 1.6 3.2v5.7a1.6 1.6 0 0 0 1.6 1.6h2.3",
447
- stroke: "currentColor",
448
- "stroke-width": "1.4",
449
- "stroke-linecap": "round"
450
- })
451
- ], -1),
452
- H(" Clone setup to… ", -1)
453
- ])]),
454
- _: 1
455
- }, 8, ["disabled", "title"])
456
- ])
457
- ]),
458
- e("div", ke, [
459
- e("nav", be, [
460
- (p(!0), m(L, null, V(o(Z), (n) => (p(), m("button", {
461
- key: n.key,
462
- type: "button",
463
- class: U(["sch-tab sp-tab", { active: o(t).activeSection.value === n.key }]),
464
- "data-active": "false",
465
- onClick: (O) => o(t).activeSection.value = n.key
466
- }, h(n.label), 11, He))), 128))
467
- ]),
468
- e("div", Ce, [
469
- e("div", xe, [
470
- o(t).activeSection.value === "payrates" ? (p(), m("section", Se, [
471
- s[29] || (s[29] = e("div", { class: "sp-sec-head" }, [
472
- e("div", { class: "sp-panel-title" }, "Pay rates")
473
- ], -1)),
474
- s[30] || (s[30] = e("div", { class: "sp-panel-desc" }, "Pay multipliers by kind of day.", -1)),
475
- e("div", Pe, [
476
- s[23] || (s[23] = e("div", { class: "sp-card-head" }, [
477
- e("div", { class: "sp-card-title" }, "Overtime rate"),
478
- e("div", { class: "sp-card-note" }, "Multiplier on every OT hour")
479
- ], -1)),
480
- e("div", De, [
481
- s[18] || (s[18] = e("div", { class: "sp-row-main" }, [
482
- e("div", { class: "sp-row-label" }, "Normal operations day"),
483
- e("div", { class: "sp-row-hint" }, " Multiplier on their rate for hours past the weekly contract. ")
484
- ], -1)),
485
- e("div", Re, [
486
- f(e("input", {
487
- "onUpdate:modelValue": s[1] || (s[1] = (n) => o(t).draft.payRate.NORMAL.overtime = n),
488
- class: "sch-input sp-num",
489
- type: "number",
490
- min: "1",
491
- max: "4",
492
- step: "0.1",
493
- "aria-label": "Overtime rate on a normal day"
494
- }, null, 512), [
495
- [
496
- g,
497
- o(t).draft.payRate.NORMAL.overtime,
498
- void 0,
499
- { number: !0 }
500
- ]
501
- ]),
502
- s[17] || (s[17] = e("span", { class: "sp-unit" }, "×", -1))
503
- ])
504
- ]),
505
- e("div", Oe, [
506
- s[20] || (s[20] = e("div", { class: "sp-row-main" }, [
507
- e("div", { class: "sp-row-label" }, "Off day"),
508
- e("div", { class: "sp-row-hint" }, " For a shift on the person's off day, weekly or booked. Check the rate with HR. ")
509
- ], -1)),
510
- e("div", Me, [
511
- f(e("input", {
512
- "onUpdate:modelValue": s[2] || (s[2] = (n) => o(t).draft.payRate.REST_DAY.overtime = n),
513
- class: "sch-input sp-num",
514
- type: "number",
515
- min: "1",
516
- max: "4",
517
- step: "0.1",
518
- "aria-label": "Overtime rate on an off day"
519
- }, null, 512), [
520
- [
521
- g,
522
- o(t).draft.payRate.REST_DAY.overtime,
523
- void 0,
524
- { number: !0 }
525
- ]
526
- ]),
527
- s[19] || (s[19] = e("span", { class: "sp-unit" }, "×", -1))
528
- ])
529
- ]),
530
- e("div", $e, [
531
- s[22] || (s[22] = e("div", { class: "sp-row-main" }, [
532
- e("div", { class: "sp-row-label" }, "Public holiday"),
533
- e("div", { class: "sp-row-hint" }, " For dates on the holiday calendar. Wins over an off day on the same date. ")
534
- ], -1)),
535
- e("div", Le, [
536
- f(e("input", {
537
- "onUpdate:modelValue": s[3] || (s[3] = (n) => o(t).draft.payRate.PUBLIC_HOLIDAY.overtime = n),
538
- class: "sch-input sp-num",
539
- type: "number",
540
- min: "1",
541
- max: "4",
542
- step: "0.1",
543
- "aria-label": "Overtime rate on a public holiday"
544
- }, null, 512), [
545
- [
546
- g,
547
- o(t).draft.payRate.PUBLIC_HOLIDAY.overtime,
548
- void 0,
549
- { number: !0 }
550
- ]
551
- ]),
552
- s[21] || (s[21] = e("span", { class: "sp-unit" }, "×", -1))
553
- ])
554
- ])
555
- ]),
556
- e("div", Ne, [
557
- s[28] || (s[28] = e("div", { class: "sp-card-head" }, [
558
- e("div", { class: "sp-card-title" }, "Regular rate"),
559
- e("div", { class: "sp-card-note" }, "Multiplier on ordinary hours")
560
- ], -1)),
561
- e("div", Ae, [
562
- s[25] || (s[25] = e("div", { class: "sp-row-main" }, [
563
- e("div", { class: "sp-row-label" }, "Off day"),
564
- e("div", { class: "sp-row-hint" }, "Ordinary hours worked on the person's off day.")
565
- ], -1)),
566
- e("div", Ee, [
567
- f(e("input", {
568
- "onUpdate:modelValue": s[4] || (s[4] = (n) => o(t).draft.payRate.REST_DAY.regular = n),
569
- class: "sch-input sp-num",
570
- type: "number",
571
- min: "1",
572
- max: "4",
573
- step: "0.1",
574
- "aria-label": "Regular rate on an off day"
575
- }, null, 512), [
576
- [
577
- g,
578
- o(t).draft.payRate.REST_DAY.regular,
579
- void 0,
580
- { number: !0 }
581
- ]
582
- ]),
583
- s[24] || (s[24] = e("span", { class: "sp-unit" }, "×", -1))
584
- ])
585
- ]),
586
- e("div", Ie, [
587
- s[27] || (s[27] = e("div", { class: "sp-row-main" }, [
588
- e("div", { class: "sp-row-label" }, "Public holiday"),
589
- e("div", { class: "sp-row-hint" }, " Ordinary hours worked on a date on the holiday calendar. ")
590
- ], -1)),
591
- e("div", Ue, [
592
- f(e("input", {
593
- "onUpdate:modelValue": s[5] || (s[5] = (n) => o(t).draft.payRate.PUBLIC_HOLIDAY.regular = n),
594
- class: "sch-input sp-num",
595
- type: "number",
596
- min: "1",
597
- max: "4",
598
- step: "0.1",
599
- "aria-label": "Regular rate on a public holiday"
600
- }, null, 512), [
601
- [
602
- g,
603
- o(t).draft.payRate.PUBLIC_HOLIDAY.regular,
604
- void 0,
605
- { number: !0 }
606
- ]
607
- ]),
608
- s[26] || (s[26] = e("span", { class: "sp-unit" }, "×", -1))
609
- ])
610
- ])
611
- ])
612
- ])) : o(t).activeSection.value === "workingHours" ? (p(), m("section", Te, [
613
- s[38] || (s[38] = e("div", { class: "sp-sec-head" }, [
614
- e("div", { class: "sp-panel-title" }, "Working hours")
615
- ], -1)),
616
- s[39] || (s[39] = e("div", { class: "sp-panel-desc" }, "Default employee working-hour limits when no individual setting is provided.", -1)),
617
- e("div", Ve, [
618
- s[37] || (s[37] = e("div", { class: "sp-card-head" }, [
619
- e("div", { class: "sp-card-title" }, "Default working hours"),
620
- e("div", { class: "sp-card-note" }, "Used as the employee default")
621
- ], -1)),
622
- e("div", Be, [
623
- s[32] || (s[32] = e("div", { class: "sp-row-main" }, [
624
- e("div", { class: "sp-row-label" }, "Min hours per day")
625
- ], -1)),
626
- e("div", ze, [
627
- f(e("input", {
628
- "onUpdate:modelValue": s[6] || (s[6] = (n) => o(t).draft.workingHours.minHoursPerDay = n),
629
- class: "sch-input sp-num",
630
- type: "number",
631
- min: "0",
632
- max: "24",
633
- step: "1",
634
- placeholder: "None",
635
- "aria-label": "Default minimum working hours per day"
636
- }, null, 512), [
637
- [
638
- g,
639
- o(t).draft.workingHours.minHoursPerDay,
640
- void 0,
641
- { number: !0 }
642
- ]
643
- ]),
644
- s[31] || (s[31] = e("span", { class: "sp-unit" }, "hours / day", -1))
645
- ])
646
- ]),
647
- e("div", We, [
648
- s[34] || (s[34] = e("div", { class: "sp-row-main" }, [
649
- e("div", { class: "sp-row-label" }, "Max hours per day")
650
- ], -1)),
651
- e("div", Ye, [
652
- f(e("input", {
653
- "onUpdate:modelValue": s[7] || (s[7] = (n) => o(t).draft.workingHours.maxHoursPerDay = n),
654
- class: "sch-input sp-num",
655
- type: "number",
656
- min: "0",
657
- max: "24",
658
- step: "1",
659
- placeholder: "None",
660
- "aria-label": "Default maximum working hours per day"
661
- }, null, 512), [
662
- [
663
- g,
664
- o(t).draft.workingHours.maxHoursPerDay,
665
- void 0,
666
- { number: !0 }
667
- ]
668
- ]),
669
- s[33] || (s[33] = e("span", { class: "sp-unit" }, "hours / day", -1))
670
- ])
671
- ]),
672
- e("div", qe, [
673
- s[36] || (s[36] = e("div", { class: "sp-row-main" }, [
674
- e("div", { class: "sp-row-label" }, "Max hours per week")
675
- ], -1)),
676
- e("div", Ge, [
677
- f(e("input", {
678
- "onUpdate:modelValue": s[8] || (s[8] = (n) => o(t).draft.workingHours.maxHoursPerWeek = n),
679
- class: "sch-input sp-num",
680
- type: "number",
681
- min: "0",
682
- max: "168",
683
- step: "1",
684
- placeholder: "None",
685
- "aria-label": "Default maximum working hours per week"
686
- }, null, 512), [
687
- [
688
- g,
689
- o(t).draft.workingHours.maxHoursPerWeek,
690
- void 0,
691
- { number: !0 }
692
- ]
693
- ]),
694
- s[35] || (s[35] = e("span", { class: "sp-unit" }, "hours / week", -1))
695
- ])
696
- ])
697
- ])
698
- ])) : o(t).activeSection.value === "overtime" ? (p(), m("section", Fe, [
699
- s[42] || (s[42] = e("div", { class: "sp-sec-head" }, [
700
- e("div", { class: "sp-panel-title" }, "Overtime")
701
- ], -1)),
702
- s[43] || (s[43] = e("div", { class: "sp-panel-desc" }, "The monthly statutory cap on overtime hours.", -1)),
703
- e("div", je, [
704
- s[41] || (s[41] = e("div", { class: "sp-card-head" }, [
705
- e("div", { class: "sp-card-title" }, "Maximum OT Hours"),
706
- e("div", { class: "sp-card-note" }, "Enforced")
707
- ], -1)),
708
- e("div", Je, [
709
- s[40] || (s[40] = e("div", { class: "sp-row-main" }, [
710
- e("div", { class: "sp-row-label" }, "Monthly OT cap"),
711
- e("div", { class: "sp-row-hint" }, " Hours per person per month. Auto-Schedule never exceeds it. ")
712
- ], -1)),
713
- f(e("input", {
714
- "onUpdate:modelValue": s[9] || (s[9] = (n) => o(t).draft.otCapHours = n),
715
- class: "sch-input sp-num",
716
- type: "number",
717
- min: "0",
718
- max: "300",
719
- step: "1",
720
- placeholder: "None",
721
- "aria-label": "Monthly OT cap in hours"
722
- }, null, 512), [
723
- [
724
- g,
725
- o(t).draft.otCapHours,
726
- void 0,
727
- { number: !0 }
728
- ]
729
- ])
730
- ])
731
- ])
732
- ])) : A("", !0)
733
- ])
734
- ]),
735
- e("div", {
736
- class: U(["sp-save", { dirty: o(t).dirty.value, arming: y.value }])
737
- }, [
738
- e("div", Ke, [
739
- H(h(y.value ? "Discard unsaved changes?" : "Unsaved changes") + " ", 1),
740
- y.value ? A("", !0) : (p(), m("span", Qe, "— save or discard before leaving."))
741
- ]),
742
- k(x, {
743
- hierarchy: "secondary",
744
- size: "sm",
745
- class: "am-btn am-btn-sec",
746
- type: "button",
747
- onClick: s[10] || (s[10] = (n) => R())
748
- }, {
749
- default: b(() => [
750
- H(h(y.value ? "Confirm discard" : "Discard"), 1)
751
- ]),
752
- _: 1
753
- }),
754
- k(x, {
755
- hierarchy: "primary",
756
- size: "sm",
757
- class: "am-btn am-btn-primary",
758
- type: "button",
759
- onClick: s[11] || (s[11] = (n) => c())
760
- }, {
761
- default: b(() => [...s[44] || (s[44] = [
762
- H(" Save changes ", -1)
763
- ])]),
764
- _: 1
765
- })
766
- ], 2)
767
- ])
768
- ])
769
- ]),
770
- k(ye, { modal: o(C) }, null, 8, ["modal"])
771
- ], 512));
772
- }
773
- });
774
- export {
775
- ls as default
776
- };