@feedmepos/mf-hrm-portal 2.3.0-dev.8 → 2.3.0

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