@feedmepos/mf-hrm-portal 2.3.0-dev.3 → 2.3.0-dev.31

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 (137) hide show
  1. package/dist/{ApprovalCodeList-SjyWZghY.js → ApprovalCodeList-CWch1fPp.js} +7 -7
  2. package/dist/{AuditLogList-aTI3QeO0.js → AuditLogList-Dghwxogp.js} +18 -19
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang--JTV7non.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BrZD73bP.js} +2 -2
  4. package/dist/{EmployeeList-D2Q_2ZE0.js → EmployeeList-BSrQTgKS.js} +255 -266
  5. package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-BaoNK72R.js} +6 -6
  6. package/dist/{GrantUserList-6YXLPuHR.js → GrantUserList-Cqlm7SC8.js} +8 -8
  7. package/dist/{Main-dSqOeBRJ.js → Main-Cv6emTjo.js} +11 -11
  8. package/dist/{Main-B-a6F9g8.js → Main-Cy39OsdC.js} +8 -8
  9. package/dist/{Main-CFIWlIaC.js → Main-GFkUfBG7.js} +5 -5
  10. package/dist/{PermissionSetList-DxkaPCMs.js → PermissionSetList-DckK2K9d.js} +19 -18
  11. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CLegdfVG.js +4167 -0
  12. package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.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-DQZ_w5uM.js → RoleList-Bfpgb4WK.js} +21 -20
  15. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Tqp7ALu_.js +530 -0
  16. package/dist/ScheduleGeneralPage-DpvA2Qmg.js +776 -0
  17. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-DgXhOBUA.js +2457 -0
  18. package/dist/SchedulePage-DGBxv7Xl.js +19366 -0
  19. package/dist/{SchedulePositionPage-BGrZBU3g.js → SchedulePositionPage-CoDH-_GS.js} +79 -81
  20. package/dist/{SelectFilter-CG13h83-.js → SelectFilter-BmPl0nGk.js} +1 -1
  21. package/dist/{TeamMemberList-BiTHVJwE.js → TeamMemberList-C4sRgPCJ.js} +27 -27
  22. package/dist/{TimesheetList-CUkYacGW.js → TimesheetList-BvbGXbQJ.js} +52 -53
  23. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-B1Y587O-.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-CjlquA4w.js} +3 -3
  24. package/dist/{app-CAKCDrbJ.js → app-P7IBQlke.js} +2891 -2474
  25. package/dist/app.js +1 -1
  26. package/dist/{approval-code-C9DmR4Md.js → approval-code-BXUiojPH.js} +1 -1
  27. package/dist/{dayjs.min-CZ8QYRoc.js → dayjs.min-F98FDy4j.js} +1 -1
  28. package/dist/{employee-D56eWEFe.js → employee-1Xm80pW8.js} +51 -47
  29. package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-CBJ3gEgW.js} +1 -1
  30. package/dist/{iteration-BVJdyLNq.js → iteration-BdSsaLV1.js} +1 -1
  31. package/dist/{lodash-BcIRkQPW.js → lodash-DbhAtFh7.js} +1 -1
  32. package/dist/object-Dwyg2LgX.js +16 -0
  33. package/dist/{restaurant-D7PEQjPY.js → restaurant-D2mfKHaH.js} +48 -48
  34. package/dist/{role-B-eZDaBX.js → role-BPGfYbnf.js} +2 -2
  35. package/dist/{rule-D6AIfx8b.js → rule-C3777WTe.js} +3 -3
  36. package/dist/src/api/employee/index.d.ts +2 -2
  37. package/dist/src/api/schedule/index.d.ts +17 -2
  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/composables/useMessage.d.ts +8 -2
  41. package/dist/src/stores/employee.d.ts +12 -12
  42. package/dist/src/types/schedule.d.ts +3 -4
  43. package/dist/src/views/audit-log/locales/index.d.ts +252 -0
  44. package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +4 -8
  45. package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleAutoScheduleDetailsModal.vue.d.ts} +2 -2
  46. package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
  47. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +1 -4
  48. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +0 -2
  49. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +0 -7
  50. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
  51. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +2 -6
  52. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +1 -0
  53. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +0 -1
  54. package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +1 -1
  55. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +4 -1
  56. package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +1 -5
  57. package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
  58. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +0 -1
  59. package/dist/src/views/scheduling/components/ScheduleOnboardingAssignPositionModal.vue.d.ts +6 -0
  60. package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
  61. package/dist/src/views/scheduling/components/SchedulePublishShareArt.vue.d.ts +2 -0
  62. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +10 -0
  63. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +1 -1
  64. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +0 -10
  65. package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +33 -0
  66. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
  67. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +15 -0
  68. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
  69. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -0
  70. package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
  71. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
  72. package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
  73. package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +22 -0
  74. package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
  75. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +16 -0
  76. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +46 -11
  77. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +3 -11
  78. package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
  79. package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -9
  80. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +126 -4
  81. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +86 -11
  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 -5
  86. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +3 -5
  87. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +14 -3
  88. package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
  89. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +20 -7
  90. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +1 -1
  91. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -3
  92. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +7 -0
  93. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +2 -2
  94. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +2 -0
  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 +425 -29
  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 +3 -0
  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 +362 -298
  116. package/dist/src/views/scheduling/schedule-store.d.ts +41 -12
  117. package/dist/src/views/scheduling/types.d.ts +33 -5
  118. package/dist/style.css +1 -1
  119. package/dist/tsconfig.app.tsbuildinfo +1 -1
  120. package/dist/{useAppStore-d_nHyK5u.js → useAppStore-DZCdxlCd.js} +1 -1
  121. package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
  122. package/dist/{useLoading-JFoghhRz.js → useLoading-Nygx2zn8.js} +1 -1
  123. package/dist/{useReportPermissions-DHA0jrIr.js → useReportPermissions-CW4Tk5tm.js} +3 -3
  124. package/package.json +3 -2
  125. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DnKckKZ0.js +0 -4167
  126. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Dr6QruG6.js +0 -470
  127. package/dist/ScheduleGeneralPage-CvskrXcV.js +0 -666
  128. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-C4On5sVD.js +0 -2157
  129. package/dist/SchedulePage-CW-K836l.js +0 -18248
  130. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  131. package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
  132. package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
  133. package/dist/src/views/scheduling/composables/scheduleAutoSolver.d.ts +0 -23
  134. package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
  135. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -124
  136. package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
  137. package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
@@ -0,0 +1,776 @@
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-P7IBQlke.js";
5
+ import { b as v, o as $, Q as j, $ as W, p as E, g as J, au as Q, as as x, aw as K, ax as X, ag as Z, at as _ } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-DgXhOBUA.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 M() {
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: { ...v.payRate.NORMAL },
18
+ REST_DAY: { ...v.payRate.REST_DAY },
19
+ PUBLIC_HOLIDAY: { ...v.payRate.PUBLIC_HOLIDAY }
20
+ },
21
+ otCapHours: v.otCapHours,
22
+ workingHours: { ...v.workingHours }
23
+ });
24
+ }
25
+ function te() {
26
+ const r = ee(), d = w(!1), a = w("payrates"), n = B(M()), t = w(!1);
27
+ let u = 0;
28
+ async function C() {
29
+ if (!$.value) return;
30
+ const c = ++u, o = $.value;
31
+ t.value = !0;
32
+ try {
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);
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) : {
38
+ minHoursPerDay: null,
39
+ maxHoursPerDay: i.workingHours.fullTime.maxHoursPerDay,
40
+ maxHoursPerWeek: i.workingHours.fullTime.maxHoursPerWeek
41
+ };
42
+ } finally {
43
+ c === u && (t.value = !1);
44
+ }
45
+ }
46
+ function y(c) {
47
+ Object.assign(n, M()), a.value = c ?? "payrates", d.value = !0;
48
+ }
49
+ const S = N(() => JSON.stringify(n) !== JSON.stringify(M()));
50
+ function P() {
51
+ return S.value ? !1 : (d.value = !1, !0);
52
+ }
53
+ function D() {
54
+ Object.assign(n, M()), d.value = !1;
55
+ }
56
+ async function R() {
57
+ if (!$.value) throw new Error("No outlet selected");
58
+ const c = n.otCapHours === 0 ? null : n.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: n.workingHours.minHoursPerDay === 0 ? null : n.workingHours.minHoursPerDay,
63
+ maxHoursPerDay: n.workingHours.maxHoursPerDay === 0 ? null : n.workingHours.maxHoursPerDay,
64
+ maxHoursPerWeek: n.workingHours.maxHoursPerWeek === 0 ? null : n.workingHours.maxHoursPerWeek
65
+ };
66
+ if (o.minHoursPerDay != null && o.maxHoursPerDay != null && o.minHoursPerDay > o.maxHoursPerDay)
67
+ throw new Error("Working-hour limits must be in ascending order");
68
+ if (o.maxHoursPerDay != null && o.maxHoursPerWeek != null && o.maxHoursPerDay > o.maxHoursPerWeek)
69
+ throw new Error("Working-hour limits must be in ascending order");
70
+ const s = await j({
71
+ payRate: n.payRate,
72
+ overtime: { maxHoursPerMonth: c },
73
+ workingHours: o
74
+ });
75
+ v.payRate = structuredClone(s.payRate), v.otCapHours = s.overtime.maxHoursPerMonth, v.workingHours = structuredClone(s.workingHours), d.value = !1;
76
+ }
77
+ return { isOpen: d, activeSection: a, draft: n, dirty: S, loading: t, load: C, open: y, close: P, discard: D, save: R };
78
+ }
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(
81
+ () => {
82
+ var o;
83
+ return ((o = r.options.value.find((s) => s.value === r.outletId.value)) == null ? void 0 : o.label) ?? "";
84
+ }
85
+ ), S = N(() => {
86
+ const o = n.value.trim().toLowerCase();
87
+ return r.options.value.filter(
88
+ (s) => s.value !== r.outletId.value && (!o || s.label.toLowerCase().includes(o))
89
+ );
90
+ });
91
+ function P() {
92
+ n.value = "", t.value = /* @__PURE__ */ new Set(), u.value = !1, C.value = null, a.value = !0;
93
+ }
94
+ function D() {
95
+ a.value = !1;
96
+ }
97
+ function R(o) {
98
+ const s = new Set(t.value);
99
+ s.has(o) ? s.delete(o) : s.add(o), t.value = s;
100
+ }
101
+ async function c() {
102
+ var s, i;
103
+ const o = [...t.value];
104
+ if (!(!o.length || u.value)) {
105
+ u.value = !0;
106
+ try {
107
+ await Promise.all(
108
+ o.map(
109
+ (O) => W.saveSettings(O, {
110
+ payRate: v.payRate,
111
+ overtime: { maxHoursPerMonth: v.otCapHours },
112
+ workingHours: v.workingHours
113
+ })
114
+ )
115
+ ), C.value = o.length, (s = d.notify) == null || s.call(
116
+ d,
117
+ `Setup copied to ${o.length} outlet${o.length === 1 ? "" : "s"}`,
118
+ "success"
119
+ );
120
+ } catch (O) {
121
+ (i = d.notify) == null || i.call(
122
+ d,
123
+ O instanceof Error ? O.message : "Could not clone outlet setup",
124
+ "error"
125
+ );
126
+ } finally {
127
+ u.value = !1;
128
+ }
129
+ }
130
+ }
131
+ return {
132
+ open: a,
133
+ query: n,
134
+ selected: t,
135
+ saving: u,
136
+ done: C,
137
+ sourceLabel: y,
138
+ targets: S,
139
+ openModal: P,
140
+ close: D,
141
+ toggle: R,
142
+ confirm: c
143
+ };
144
+ }
145
+ const oe = { class: "am-head" }, le = { class: "ce-body" }, re = {
146
+ class: "ce-hint",
147
+ style: { "margin-bottom": "var(--fm-spacing-10)" }
148
+ }, ne = { class: "sch-search" }, ie = { class: "asg-list" }, ue = ["checked", "onChange"], de = { class: "asg-id" }, pe = { class: "asg-nm" }, ve = {
149
+ key: 0,
150
+ class: "asg-empty"
151
+ }, me = {
152
+ key: 1,
153
+ class: "cg-done"
154
+ }, ce = { class: "cg-st-main" }, ye = { class: "am-foot" }, fe = { class: "am-cost-preview" }, ge = { class: "am-foot-btns" }, he = /* @__PURE__ */ T({
155
+ __name: "ScheduleCloneOutletModal",
156
+ props: {
157
+ modal: {}
158
+ },
159
+ setup(r) {
160
+ return (d, a) => (p(), I(Q, {
161
+ open: r.modal.open.value,
162
+ "panel-class": "ce-modal",
163
+ "panel-style": "width: min(460px, 95vw)",
164
+ "labelled-by": "schedule-clone-title",
165
+ onClose: a[5] || (a[5] = (n) => r.modal.close())
166
+ }, {
167
+ default: k(() => [
168
+ e("div", oe, [
169
+ a[7] || (a[7] = e("div", {
170
+ id: "schedule-clone-title",
171
+ class: "am-title"
172
+ }, "Clone outlet setup", -1)),
173
+ b(x, {
174
+ hierarchy: "ghost",
175
+ size: "xs",
176
+ "icon-only": "",
177
+ class: "ce-close-x",
178
+ type: "button",
179
+ "aria-label": "Close",
180
+ onClick: a[0] || (a[0] = (n) => r.modal.close())
181
+ }, {
182
+ default: k(() => [...a[6] || (a[6] = [
183
+ e("svg", {
184
+ width: "20",
185
+ height: "20",
186
+ viewBox: "0 0 20 20",
187
+ fill: "none",
188
+ stroke: "currentColor",
189
+ "stroke-width": "1.8",
190
+ "stroke-linecap": "round",
191
+ "aria-hidden": "true"
192
+ }, [
193
+ e("path", { d: "M5.5 5.5l9 9M14.5 5.5l-9 9" })
194
+ ], -1)
195
+ ])]),
196
+ _: 1
197
+ })
198
+ ]),
199
+ e("div", le, [
200
+ r.modal.done.value === null ? (p(), m(L, { key: 0 }, [
201
+ e("div", re, [
202
+ a[8] || (a[8] = H(" Copy ", -1)),
203
+ e("b", null, h(r.modal.sourceLabel.value), 1),
204
+ a[9] || (a[9] = H("'s pay rates to: ", -1))
205
+ ]),
206
+ e("div", ne, [
207
+ a[10] || (a[10] = e("svg", {
208
+ width: "16",
209
+ height: "16",
210
+ viewBox: "0 0 16 16",
211
+ fill: "none",
212
+ "aria-hidden": "true"
213
+ }, [
214
+ e("circle", {
215
+ cx: "7",
216
+ cy: "7",
217
+ r: "4.5",
218
+ stroke: "currentColor",
219
+ "stroke-width": "1.5"
220
+ }),
221
+ e("path", {
222
+ d: "M10.5 10.5L14 14",
223
+ stroke: "currentColor",
224
+ "stroke-width": "1.5",
225
+ "stroke-linecap": "round"
226
+ })
227
+ ], -1)),
228
+ f(e("input", {
229
+ "onUpdate:modelValue": a[1] || (a[1] = (n) => r.modal.query.value = n),
230
+ type: "search",
231
+ placeholder: "Search outlets",
232
+ "aria-label": "Search outlets",
233
+ autocomplete: "off"
234
+ }, null, 512), [
235
+ [g, r.modal.query.value]
236
+ ])
237
+ ]),
238
+ e("div", ie, [
239
+ (p(!0), m(L, null, V(r.modal.targets.value, (n) => (p(), m("label", {
240
+ key: n.value,
241
+ class: "asg-row"
242
+ }, [
243
+ e("input", {
244
+ type: "checkbox",
245
+ class: "sch-checkbox",
246
+ "data-platform": "desktop",
247
+ checked: r.modal.selected.value.has(n.value),
248
+ onChange: (t) => r.modal.toggle(n.value)
249
+ }, null, 40, ue),
250
+ e("span", de, [
251
+ e("span", pe, h(n.label), 1)
252
+ ])
253
+ ]))), 128)),
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))
255
+ ]),
256
+ a[11] || (a[11] = e("div", {
257
+ class: "ce-hint",
258
+ style: { "margin-top": "var(--fm-spacing-10)" }
259
+ }, " Copies this outlet's pay rates to the outlets you tick. Their current pay rates are replaced. ", -1))
260
+ ], 64)) : (p(), m("div", me, [
261
+ a[13] || (a[13] = e("span", {
262
+ class: "cg-done-tick",
263
+ "aria-hidden": "true"
264
+ }, "✓", -1)),
265
+ e("div", ce, [
266
+ a[12] || (a[12] = e("b", null, "Pay rates copied", -1)),
267
+ e("small", null, "Sent to " + h(r.modal.done.value) + " outlet" + h(r.modal.done.value === 1 ? "" : "s"), 1)
268
+ ])
269
+ ]))
270
+ ]),
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, [
274
+ r.modal.done.value === null ? (p(), m(L, { key: 0 }, [
275
+ b(x, {
276
+ hierarchy: "secondary",
277
+ size: "sm",
278
+ class: "am-btn am-btn-sec",
279
+ type: "button",
280
+ onClick: a[2] || (a[2] = (n) => r.modal.close())
281
+ }, {
282
+ default: k(() => [...a[14] || (a[14] = [
283
+ H(" Cancel ", -1)
284
+ ])]),
285
+ _: 1
286
+ }),
287
+ b(x, {
288
+ hierarchy: "primary",
289
+ size: "sm",
290
+ class: "am-btn am-btn-primary",
291
+ type: "button",
292
+ disabled: !r.modal.selected.value.size || r.modal.saving.value,
293
+ onClick: a[3] || (a[3] = (n) => r.modal.confirm())
294
+ }, {
295
+ default: k(() => [
296
+ H(h(r.modal.saving.value ? "Copying…" : "Copy setup"), 1)
297
+ ]),
298
+ _: 1
299
+ }, 8, ["disabled"])
300
+ ], 64)) : (p(), I(x, {
301
+ key: 1,
302
+ hierarchy: "primary",
303
+ size: "sm",
304
+ class: "am-btn am-btn-primary",
305
+ type: "button",
306
+ onClick: a[4] || (a[4] = (n) => r.modal.close())
307
+ }, {
308
+ default: k(() => [...a[15] || (a[15] = [
309
+ H(" Done ", -1)
310
+ ])]),
311
+ _: 1
312
+ }))
313
+ ])
314
+ ])
315
+ ]),
316
+ _: 1
317
+ }, 8, ["open"]));
318
+ }
319
+ }), we = { class: "main" }, be = {
320
+ id: "viewSettings",
321
+ class: "view"
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 = {
323
+ key: 0,
324
+ id: "sp-payrates",
325
+ class: "sp-sec"
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 = {
327
+ key: 1,
328
+ id: "sp-working-hours",
329
+ class: "sp-sec"
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 = {
331
+ key: 2,
332
+ id: "sp-overtime",
333
+ class: "sp-sec"
334
+ }, Ke = { class: "sp-card" }, Xe = { class: "sp-row" }, Ze = { class: "sp-save-txt" }, _e = { key: 0 }, rs = /* @__PURE__ */ T({
335
+ __name: "ScheduleGeneralPage",
336
+ setup(r) {
337
+ const d = w(null);
338
+ K(d);
339
+ const a = q(), n = F(), t = te(), u = X(), C = ae(u, {
340
+ notify: (o, s) => n.open({ message: o, type: s })
341
+ }), y = w(!1);
342
+ z(async () => {
343
+ await u.resolve() && await Z(/* @__PURE__ */ new Date()), await t.load(), t.open();
344
+ });
345
+ const S = N(
346
+ () => u.options.value.length ? u.options.value : [{ value: "", label: "No outlet selected", disabled: !0 }]
347
+ );
348
+ async function P(o) {
349
+ t.dirty.value || await u.switchTo(o, /* @__PURE__ */ new Date()) && (await t.load(), t.open());
350
+ }
351
+ function D() {
352
+ t.close() && a.push({ name: G.SCHEDULE });
353
+ }
354
+ function R() {
355
+ if (!y.value) {
356
+ y.value = !0;
357
+ return;
358
+ }
359
+ y.value = !1, t.discard();
360
+ }
361
+ async function c() {
362
+ try {
363
+ await t.save(), n.open({ message: "General settings saved", type: "success" });
364
+ } catch (o) {
365
+ n.open({
366
+ message: o instanceof Error ? o.message : "Could not save general settings",
367
+ type: "error"
368
+ });
369
+ }
370
+ }
371
+ return (o, s) => (p(), m("div", {
372
+ ref_key: "rootEl",
373
+ ref: d,
374
+ class: "sch"
375
+ }, [
376
+ e("div", we, [
377
+ e("div", be, [
378
+ e("div", ke, [
379
+ b(x, {
380
+ hierarchy: "ghost",
381
+ size: "sm",
382
+ class: "sp-back",
383
+ type: "button",
384
+ onClick: D
385
+ }, {
386
+ default: k(() => [...s[12] || (s[12] = [
387
+ e("svg", {
388
+ width: "12",
389
+ height: "12",
390
+ viewBox: "0 0 16 16",
391
+ fill: "none",
392
+ "aria-hidden": "true"
393
+ }, [
394
+ e("path", {
395
+ d: "M10 3.5L5.5 8l4.5 4.5",
396
+ stroke: "currentColor",
397
+ "stroke-width": "1.7",
398
+ "stroke-linecap": "round",
399
+ "stroke-linejoin": "round"
400
+ })
401
+ ], -1),
402
+ e("span", null, "Back to schedule", -1)
403
+ ])]),
404
+ _: 1
405
+ }),
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, [
408
+ s[14] || (s[14] = e("span", { class: "outlet-bar-lbl" }, "Outlet", -1)),
409
+ b(_, {
410
+ class: "outlet-sel",
411
+ "aria-label": "Outlet being configured",
412
+ searchable: "",
413
+ disabled: l(t).dirty.value || l(t).loading.value,
414
+ title: l(t).dirty.value ? "Save or discard changes before switching outlets" : "Which outlet these pay rates apply to",
415
+ "model-value": l(u).outletId.value,
416
+ options: S.value,
417
+ "onUpdate:modelValue": P
418
+ }, null, 8, ["disabled", "title", "model-value", "options"]),
419
+ b(x, {
420
+ hierarchy: "secondary",
421
+ size: "sm",
422
+ class: "outlet-clone",
423
+ type: "button",
424
+ disabled: l(t).dirty.value || l(t).loading.value || !l(u).outletId.value,
425
+ title: l(t).dirty.value ? "Save or discard changes before cloning" : "Copy this outlet's pay rates to other outlets",
426
+ onClick: s[0] || (s[0] = (i) => l(C).openModal())
427
+ }, {
428
+ default: k(() => [...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", Ce, [
459
+ e("nav", xe, [
460
+ (p(!0), m(L, null, V(l(se), (i) => (p(), m("button", {
461
+ key: i.key,
462
+ type: "button",
463
+ class: U(["sch-tab sp-tab", { active: l(t).activeSection.value === i.key }]),
464
+ "data-active": "false",
465
+ onClick: (O) => l(t).activeSection.value = i.key
466
+ }, h(i.label), 11, Se))), 128))
467
+ ]),
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" }, [
472
+ e("div", { class: "sp-panel-title" }, "Pay rates")
473
+ ], -1)),
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" }, [
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", $e, [
481
+ s[17] || (s[17] = 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", Me, [
486
+ f(e("input", {
487
+ "onUpdate:modelValue": s[1] || (s[1] = (i) => l(t).draft.payRate.NORMAL.overtime = i),
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
+ l(t).draft.payRate.NORMAL.overtime,
498
+ void 0,
499
+ { number: !0 }
500
+ ]
501
+ ]),
502
+ s[16] || (s[16] = e("span", { class: "sp-unit" }, "×", -1))
503
+ ])
504
+ ]),
505
+ e("div", Le, [
506
+ s[19] || (s[19] = 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", Ne, [
511
+ f(e("input", {
512
+ "onUpdate:modelValue": s[2] || (s[2] = (i) => l(t).draft.payRate.REST_DAY.overtime = i),
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
+ l(t).draft.payRate.REST_DAY.overtime,
523
+ void 0,
524
+ { number: !0 }
525
+ ]
526
+ ]),
527
+ s[18] || (s[18] = e("span", { class: "sp-unit" }, "×", -1))
528
+ ])
529
+ ]),
530
+ e("div", Ee, [
531
+ s[21] || (s[21] = 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", Ae, [
536
+ f(e("input", {
537
+ "onUpdate:modelValue": s[3] || (s[3] = (i) => l(t).draft.payRate.PUBLIC_HOLIDAY.overtime = i),
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
+ l(t).draft.payRate.PUBLIC_HOLIDAY.overtime,
548
+ void 0,
549
+ { number: !0 }
550
+ ]
551
+ ]),
552
+ s[20] || (s[20] = e("span", { class: "sp-unit" }, "×", -1))
553
+ ])
554
+ ])
555
+ ]),
556
+ e("div", Ie, [
557
+ s[27] || (s[27] = 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", Ue, [
562
+ s[24] || (s[24] = 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", Te, [
567
+ f(e("input", {
568
+ "onUpdate:modelValue": s[4] || (s[4] = (i) => l(t).draft.payRate.REST_DAY.regular = i),
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
+ l(t).draft.payRate.REST_DAY.regular,
579
+ void 0,
580
+ { number: !0 }
581
+ ]
582
+ ]),
583
+ s[23] || (s[23] = e("span", { class: "sp-unit" }, "×", -1))
584
+ ])
585
+ ]),
586
+ e("div", Ve, [
587
+ s[26] || (s[26] = 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", We, [
592
+ f(e("input", {
593
+ "onUpdate:modelValue": s[5] || (s[5] = (i) => l(t).draft.payRate.PUBLIC_HOLIDAY.regular = i),
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
+ l(t).draft.payRate.PUBLIC_HOLIDAY.regular,
604
+ void 0,
605
+ { number: !0 }
606
+ ]
607
+ ]),
608
+ s[25] || (s[25] = e("span", { class: "sp-unit" }, "×", -1))
609
+ ])
610
+ ])
611
+ ])
612
+ ])) : l(t).activeSection.value === "workingHours" ? (p(), m("section", Be, [
613
+ s[37] || (s[37] = e("div", { class: "sp-sec-head" }, [
614
+ e("div", { class: "sp-panel-title" }, "Working hours")
615
+ ], -1)),
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" }, [
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", Ye, [
623
+ s[31] || (s[31] = e("div", { class: "sp-row-main" }, [
624
+ e("div", { class: "sp-row-label" }, "Min hours per day")
625
+ ], -1)),
626
+ e("div", qe, [
627
+ f(e("input", {
628
+ "onUpdate:modelValue": s[6] || (s[6] = (i) => l(t).draft.workingHours.minHoursPerDay = i),
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
+ l(t).draft.workingHours.minHoursPerDay,
640
+ void 0,
641
+ { number: !0 }
642
+ ]
643
+ ]),
644
+ s[30] || (s[30] = e("span", { class: "sp-unit" }, "hours / day", -1))
645
+ ])
646
+ ]),
647
+ e("div", Fe, [
648
+ s[33] || (s[33] = e("div", { class: "sp-row-main" }, [
649
+ e("div", { class: "sp-row-label" }, "Max hours per day")
650
+ ], -1)),
651
+ e("div", Ge, [
652
+ f(e("input", {
653
+ "onUpdate:modelValue": s[7] || (s[7] = (i) => l(t).draft.workingHours.maxHoursPerDay = i),
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
+ l(t).draft.workingHours.maxHoursPerDay,
665
+ void 0,
666
+ { number: !0 }
667
+ ]
668
+ ]),
669
+ s[32] || (s[32] = e("span", { class: "sp-unit" }, "hours / day", -1))
670
+ ])
671
+ ]),
672
+ e("div", je, [
673
+ s[35] || (s[35] = e("div", { class: "sp-row-main" }, [
674
+ e("div", { class: "sp-row-label" }, "Max hours per week")
675
+ ], -1)),
676
+ e("div", Je, [
677
+ f(e("input", {
678
+ "onUpdate:modelValue": s[8] || (s[8] = (i) => l(t).draft.workingHours.maxHoursPerWeek = i),
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
+ l(t).draft.workingHours.maxHoursPerWeek,
690
+ void 0,
691
+ { number: !0 }
692
+ ]
693
+ ]),
694
+ s[34] || (s[34] = e("span", { class: "sp-unit" }, "hours / week", -1))
695
+ ])
696
+ ])
697
+ ])
698
+ ])) : l(t).activeSection.value === "overtime" ? (p(), m("section", Qe, [
699
+ s[41] || (s[41] = e("div", { class: "sp-sec-head" }, [
700
+ e("div", { class: "sp-panel-title" }, "Overtime")
701
+ ], -1)),
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" }, [
705
+ e("div", { class: "sp-card-title" }, "Maximum OT Hours"),
706
+ e("div", { class: "sp-card-note" }, "Enforced")
707
+ ], -1)),
708
+ e("div", Xe, [
709
+ s[39] || (s[39] = 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] = (i) => l(t).draft.otCapHours = i),
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
+ l(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: l(t).dirty.value, arming: y.value }])
737
+ }, [
738
+ e("div", Ze, [
739
+ H(h(y.value ? "Discard unsaved changes?" : "Unsaved changes") + " ", 1),
740
+ y.value ? A("", !0) : (p(), m("span", _e, "— save or discard before leaving."))
741
+ ]),
742
+ b(x, {
743
+ hierarchy: "secondary",
744
+ size: "sm",
745
+ class: "am-btn am-btn-sec",
746
+ type: "button",
747
+ onClick: s[10] || (s[10] = (i) => R())
748
+ }, {
749
+ default: k(() => [
750
+ H(h(y.value ? "Confirm discard" : "Discard"), 1)
751
+ ]),
752
+ _: 1
753
+ }),
754
+ b(x, {
755
+ hierarchy: "primary",
756
+ size: "sm",
757
+ class: "am-btn am-btn-primary",
758
+ type: "button",
759
+ onClick: s[11] || (s[11] = (i) => c())
760
+ }, {
761
+ default: k(() => [...s[43] || (s[43] = [
762
+ H(" Save changes ", -1)
763
+ ])]),
764
+ _: 1
765
+ })
766
+ ], 2)
767
+ ])
768
+ ])
769
+ ]),
770
+ b(he, { modal: l(C) }, null, 8, ["modal"])
771
+ ], 512));
772
+ }
773
+ });
774
+ export {
775
+ rs as default
776
+ };