@feedmepos/mf-hrm-portal 2.3.2-dev.3 → 2.3.2-dev.4

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 (99) hide show
  1. package/dist/{ApprovalCodeList-D3U4nvlF.js → ApprovalCodeList-BPTnWcra.js} +14 -15
  2. package/dist/{AuditLogList-qGCW7tf0.js → AuditLogList-CvEF4bit.js} +12 -12
  3. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CPX0sv64.js +459 -0
  4. package/dist/EmployeeList-CANPsrQY.js +896 -0
  5. package/dist/FormSection.vue_vue_type_script_setup_true_lang-mdfK9rtZ.js +90 -0
  6. package/dist/{GrantUserList-C71pal0N.js → GrantUserList-DPj_6Wsg.js} +15 -16
  7. package/dist/{Main-CCdTWngg.js → Main-BWRMirTY.js} +11 -11
  8. package/dist/{Main-BWJPyEU1.js → Main-Cob4hcf-.js} +5 -5
  9. package/dist/Main-DXcSgkhR.js +101 -0
  10. package/dist/MyPosProfile-Bp7-pATz.js +301 -0
  11. package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-TXPEqa46.js +126 -0
  12. package/dist/{PermissionSetList-BS-oBunI.js → PermissionSetList-DvAW1q0c.js} +45 -46
  13. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DmbI5vgH.js +4243 -0
  14. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-C8hcooKP.js +1831 -0
  15. package/dist/RoleForm.vue_vue_type_script_setup_true_lang-Bq8-aBSv.js +547 -0
  16. package/dist/RoleList-DsrHgU4s.js +274 -0
  17. package/dist/{ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BXihM4sl.js → ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CRR18xmB.js} +1 -1
  18. package/dist/{ScheduleGeneralPage-DpNvWNGs.js → ScheduleGeneralPage-C_Kj9wmp.js} +2 -2
  19. package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-DIYLOF9N.js → ScheduleModal.vue_vue_type_script_setup_true_lang-3oQ6lE86.js} +187 -186
  20. package/dist/{SchedulePage-QW-cYvu2.js → SchedulePage-9dFXxWwZ.js} +13 -13
  21. package/dist/{SchedulePositionPage-BtFfVo2N.js → SchedulePositionPage-Dea5X8Sa.js} +3 -3
  22. package/dist/{SelectFilter-BXeVKgHN.js → SelectFilter-Dr9lB6Ta.js} +1 -1
  23. package/dist/TeamMemberList-Bu9QNP9W.js +2086 -0
  24. package/dist/{TimesheetList-D-bESKe5.js → TimesheetList-B98l028z.js} +9 -9
  25. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-D0zAVqCa.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-DIQ7kjG8.js} +3 -3
  26. package/dist/{app-D-MUq9Ab.js → app-BHQJX4L4.js} +6398 -3459
  27. package/dist/app.js +3 -3
  28. package/dist/{approval-code-BXUiojPH.js → approval-code-w0rZJeYU.js} +1 -1
  29. package/dist/{dayjs.min-BZ1pM-6M.js → dayjs.min-C4H4diN8.js} +34 -34
  30. package/dist/{employee-HQEU8fjb.js → employee-BEwUmdt6.js} +48 -47
  31. package/dist/{grant-user-CBJ3gEgW.js → grant-user-DdxPMH5_.js} +1 -1
  32. package/dist/{iteration-ogxW2-Tv.js → iteration-DBHifssn.js} +1 -1
  33. package/dist/{lodash-Def4gaas.js → lodash-DqZsWm-0.js} +1 -1
  34. package/dist/member-grant-DOigVnBR.js +55 -0
  35. package/dist/restaurant-2xCb2x26.js +51 -0
  36. package/dist/{role-JDoDFVd9.js → role-C8STcmLJ.js} +5 -4
  37. package/dist/{rule-DPtqlnz-.js → rule-BkL34-Ma.js} +105 -100
  38. package/dist/src/api/my-pos-profile/index.d.ts +5 -0
  39. package/dist/src/api/sso-provider/index.d.ts +5 -0
  40. package/dist/src/api/staff-invite/index.d.ts +16 -0
  41. package/dist/src/components/CollapsibleWrapper.vue.d.ts +11 -3
  42. package/dist/src/components/form/SegmentedTabs.vue.d.ts +23 -0
  43. package/dist/src/composables/useMenuAccess.d.ts +56 -0
  44. package/dist/src/composables/useSsoProviders.d.ts +19 -0
  45. package/dist/src/composables/useStaffInviteProviders.d.ts +8 -0
  46. package/dist/src/helpers/member-grant.d.ts +36 -0
  47. package/dist/src/helpers/my-pos-profile.d.ts +37 -0
  48. package/dist/src/helpers/pos-assignment-rows.d.ts +28 -0
  49. package/dist/src/helpers/staff-invite.d.ts +54 -0
  50. package/dist/src/helpers/string.d.ts +10 -1
  51. package/dist/src/router/menu-access-guard.d.ts +17 -0
  52. package/dist/src/router/shared.d.ts +3 -1
  53. package/dist/src/stores/restaurant.d.ts +7 -7
  54. package/dist/src/stores/team.d.ts +30 -0
  55. package/dist/src/types/my-pos-profile.d.ts +25 -0
  56. package/dist/src/types/sso-provider.d.ts +10 -0
  57. package/dist/src/types/staff-invite.d.ts +100 -0
  58. package/dist/src/types/team.d.ts +17 -1
  59. package/dist/src/views/hr/locales/index.d.ts +20 -0
  60. package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
  61. package/dist/src/views/my-pos-profile/MyPosProfile.vue.d.ts +2 -0
  62. package/dist/src/views/my-pos-profile/components/PasscodeChangedDialog.vue.d.ts +4 -0
  63. package/dist/src/views/my-pos-profile/locales/index.d.ts +200 -0
  64. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +1 -1
  65. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1 -1
  66. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +1 -1
  67. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +1 -1
  68. package/dist/src/views/team/components/BasePermission.vue.d.ts +11 -0
  69. package/dist/src/views/team/components/ConditionPermission.vue.d.ts +11 -0
  70. package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +51 -0
  71. package/dist/src/views/team/{member/MemberInfo.vue.d.ts → components/MemberStatusBadge.vue.d.ts} +2 -2
  72. package/dist/src/views/team/components/PortalPermissionEditor.vue.d.ts +21 -0
  73. package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +44 -0
  74. package/dist/src/views/team/components/PosRolePermission.vue.d.ts +11 -0
  75. package/dist/src/views/team/locales/index.d.ts +716 -0
  76. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +48 -3
  77. package/dist/src/views/team/member/ExistingMemberNotice.vue.d.ts +11 -0
  78. package/dist/src/views/team/member/MemberDetailsCard.vue.d.ts +35 -0
  79. package/dist/src/views/team/member/MemberHeaderCard.vue.d.ts +19 -0
  80. package/dist/src/views/team/member/TeamMemberList.vue.d.ts +1 -0
  81. package/dist/string-DZQ1uNjn.js +22 -0
  82. package/dist/style.css +1 -1
  83. package/dist/tsconfig.app.tsbuildinfo +1 -1
  84. package/dist/{useAppStore-DZCdxlCd.js → useAppStore-BUmFt2dT.js} +1 -1
  85. package/dist/{useLoading-Nygx2zn8.js → useLoading-oHRj4RgU.js} +1 -1
  86. package/dist/{useReportPermissions-CxV7Dz1B.js → useReportPermissions-CpcyfEuV.js} +5 -5
  87. package/package.json +1 -1
  88. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-B0VcRYUg.js +0 -438
  89. package/dist/EmployeeList-Bd73xDCX.js +0 -776
  90. package/dist/FormItem.vue_vue_type_script_setup_true_lang-cLEnrtC6.js +0 -45
  91. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
  92. package/dist/Main-DGf0bQvy.js +0 -96
  93. package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-CqG0v0Sz.js +0 -243
  94. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CkOAT-oX.js +0 -4167
  95. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js +0 -35
  96. package/dist/RoleList-B_7UnVNb.js +0 -740
  97. package/dist/TeamMemberList-DoisBYnk.js +0 -1154
  98. package/dist/restaurant-D2mfKHaH.js +0 -1880
  99. package/dist/string-VNuQNweN.js +0 -15
@@ -0,0 +1,274 @@
1
+ import { computed as g, defineComponent as se, ref as U, onMounted as te, resolveComponent as x, createElementBlock as $, openBlock as h, Fragment as A, createBlock as R, createElementVNode as r, createVNode as m, unref as a, withCtx as b, h as u, renderList as ne, toDisplayString as p, createTextVNode as T, resolveDynamicComponent as z, withModifiers as re, nextTick as K } from "vue";
2
+ import { e as d } from "./iteration-DBHifssn.js";
3
+ import { useI18n as ae } from "@feedmepos/mf-common";
4
+ import { useDialog as le, useSnackbar as ie, useBreakpoints as ce, components as D, FmButtonColorThemeVariant as me } from "@feedmepos/ui-library";
5
+ import { _ as ue } from "./app-BHQJX4L4.js";
6
+ import { _ as W } from "./ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js";
7
+ import { _ as de } from "./TableEmptyState.vue_vue_type_script_setup_true_lang-IfAZmWr0.js";
8
+ import { f as w, r as pe, h as fe } from "./rule-BkL34-Ma.js";
9
+ import { u as j } from "./restaurant-2xCb2x26.js";
10
+ import { u as _e } from "./role-C8STcmLJ.js";
11
+ import { u as he } from "./useReportPermissions-CpcyfEuV.js";
12
+ import { _ as ve } from "./RoleForm.vue_vue_type_script_setup_true_lang-Bq8-aBSv.js";
13
+ function ge() {
14
+ const B = j();
15
+ return g(() => {
16
+ const s = {};
17
+ return B.restaurants.value.forEach((f) => {
18
+ s[f._id] = f;
19
+ }), s;
20
+ });
21
+ }
22
+ const ye = {
23
+ class: "space-y-8"
24
+ }, Ce = {
25
+ class: "flex justify-end xs:px-16"
26
+ }, xe = {
27
+ class: "flex flex-col h-full overflow-auto"
28
+ }, Re = {
29
+ class: "pb-64 sm:hidden md:hidden lg:hidden"
30
+ }, be = {
31
+ class: "space-y-4"
32
+ }, we = {
33
+ class: "fm-typo-en-body-lg-600"
34
+ }, Fe = {
35
+ class: "text-fm-color-typo-secondary"
36
+ }, Ee = {
37
+ class: "line-clamp-2"
38
+ }, Le = {
39
+ class: "font-bold"
40
+ }, ke = {
41
+ class: "flex items-start gap-4"
42
+ }, Se = {
43
+ class: "line-clamp-2"
44
+ }, Ue = {
45
+ class: "font-bold"
46
+ }, Te = {
47
+ class: "flex items-start gap-4"
48
+ }, Be = {
49
+ class: "line-clamp-2"
50
+ }, Me = {
51
+ class: "font-bold"
52
+ }, Ge = /* @__PURE__ */ se({
53
+ __name: "RoleList",
54
+ setup(B, {
55
+ expose: M
56
+ }) {
57
+ const {
58
+ t: s
59
+ } = ae(), {
60
+ allReportPermissions: f
61
+ } = he(), G = j(), q = g(() => G.restaurants.value), I = g(() => q.value.map((e) => e._id));
62
+ function F(e, o) {
63
+ const n = o === d.F_RULE_SUBJECT.enum.report ? f.value : void 0, t = w(e, o, n);
64
+ return ["-", "All"].includes(t) ? () => null : () => u(D.FmTooltip, {
65
+ "z-index": "999",
66
+ placement: "top",
67
+ class: "ml-2"
68
+ }, {
69
+ content: () => u("div", [s("hr.role.tooltip.labels.permission"), ...e.filter((i) => i.subject === o).map((i) => u("div", ["- ", pe(i).label]))]),
70
+ default: () => u(D.FmIcon, {
71
+ name: "info",
72
+ color: me.NeutralGray400
73
+ })
74
+ });
75
+ }
76
+ function J(e, o) {
77
+ const n = o === d.F_RULE_SUBJECT.enum.report ? f.value : void 0, t = w(e, o, n);
78
+ return () => t === "All" ? t : u("div", {
79
+ class: "flex items-center"
80
+ }, [t, F(e, o)()]);
81
+ }
82
+ function N(e) {
83
+ return [{
84
+ label: s("hr.role.form.update"),
85
+ onClick: () => E(e)
86
+ }, {
87
+ label: s("hr.role.remove.title"),
88
+ onClick: () => Z(e),
89
+ itemClass: "text-fm-color-typo-error",
90
+ disabled: fe(e.permissions)
91
+ }];
92
+ }
93
+ const H = ({
94
+ role: e,
95
+ className: o = ""
96
+ }) => m("div", {
97
+ class: o,
98
+ onClick: (n) => {
99
+ n.stopPropagation();
100
+ }
101
+ }, [m(W, {
102
+ items: N(e)
103
+ }, null)]), O = [{
104
+ accessorKey: "name",
105
+ header: () => s("hr.role.columns.name"),
106
+ enableSorting: !1
107
+ }, {
108
+ accessorKey: "operation",
109
+ header: () => s("hr.role.columns.operation"),
110
+ cell: (e) => u(J(e.row.original.permissions, d.F_RULE_SUBJECT.enum.order)),
111
+ enableSorting: !1
112
+ }, {
113
+ accessorKey: "report",
114
+ header: () => s("hr.role.columns.report"),
115
+ cell: (e) => u(J(e.row.original.permissions, d.F_RULE_SUBJECT.enum.report)),
116
+ enableSorting: !1
117
+ }, {
118
+ accessorKey: "restaurants",
119
+ header: () => s("hr.role.columns.restaurants"),
120
+ cell: (e) => e.row.original.restaurants.map((o, n) => {
121
+ const t = o.code, i = `${t ? t + " - " : ""}${o.name}`;
122
+ return u("div", (n ? `
123
+ ` : "") + i);
124
+ }),
125
+ enableSorting: !1
126
+ }, {
127
+ id: "action",
128
+ size: 52,
129
+ meta: {
130
+ cellClass: "pl-16",
131
+ headerContentClass: "-mx-16"
132
+ },
133
+ cell: (e) => H({
134
+ role: e.row.original,
135
+ className: "flex w-full items-center justify-end"
136
+ })
137
+ }], E = async (e) => {
138
+ var o;
139
+ C.value = e._id, await K(), (o = S.value) == null || o.trigger();
140
+ }, _ = _e(), Q = ge(), X = g(() => {
141
+ const e = _.roles.value || [];
142
+ return (I.value.length === 0 ? e : e.filter((n) => n.restaurants.some((t) => I.value.includes(t.id)))).map((n) => {
143
+ const t = n.restaurants.map((i) => {
144
+ const c = Q.value[i.id];
145
+ return {
146
+ ...i,
147
+ // Prefer live data from restaurantMap so names populate reactively
148
+ // even when restaurants loaded after roles.
149
+ name: (c == null ? void 0 : c.profile.name) || i.name,
150
+ code: c == null ? void 0 : c.profile.code
151
+ };
152
+ });
153
+ return {
154
+ ...n,
155
+ restaurants: t
156
+ };
157
+ });
158
+ }), y = g(() => {
159
+ var o;
160
+ return (o = X.value) == null ? void 0 : o.filter((n) => {
161
+ const t = k.value.toLowerCase(), i = n.name.toLowerCase().includes(t), l = (n.restaurants || []).some((v) => {
162
+ var V;
163
+ return v.name.toLowerCase().includes(t) || ((V = v.code) == null ? void 0 : V.toLowerCase().includes(t));
164
+ });
165
+ return i || l;
166
+ });
167
+ }), P = le(), L = ie(), {
168
+ breakpoints: Y
169
+ } = ce(), Z = (e) => {
170
+ P.open({
171
+ title: s("hr.role.remove.title"),
172
+ message: s("hr.role.remove.message", {
173
+ name: e.name
174
+ }),
175
+ minWidth: Y.value.lg ? 588 : 0,
176
+ primaryActions: {
177
+ text: s("common.remove"),
178
+ close: !1,
179
+ variant: "destructive"
180
+ },
181
+ secondaryActions: {
182
+ text: s("common.cancel"),
183
+ close: !0
184
+ }
185
+ }).onPrimary(async () => {
186
+ await _.deleteRole(e).then(() => L.open({
187
+ message: s("hr.role.remove.successMessage", {
188
+ name: e.name
189
+ }),
190
+ type: "success"
191
+ })).catch((o) => L.open({
192
+ message: o,
193
+ type: "error"
194
+ })), P.close();
195
+ });
196
+ }, k = U(""), S = U(), C = U(void 0);
197
+ async function ee() {
198
+ var e;
199
+ C.value = void 0, await K(), (e = S.value) == null || e.trigger();
200
+ }
201
+ async function oe() {
202
+ if (_.roles.value.length === 0)
203
+ try {
204
+ await _.readRoles();
205
+ } catch (e) {
206
+ console.error("Failed to load roles:", e), L.open({
207
+ message: e instanceof Error ? e.message : String(e),
208
+ type: "error"
209
+ });
210
+ }
211
+ }
212
+ return te(() => {
213
+ oe();
214
+ }), M({
215
+ create: ee
216
+ }), (e, o) => {
217
+ const n = x("FmSearch"), t = x("FmTable"), i = x("FmListItem"), c = x("FmList");
218
+ return h(), $(A, null, [(h(), R(ve, {
219
+ id: C.value,
220
+ key: C.value,
221
+ ref_key: "roleFormRef",
222
+ ref: S
223
+ }, null, 8, ["id"])), r("div", ye, [r("div", Ce, [m(n, {
224
+ modelValue: k.value,
225
+ "onUpdate:modelValue": o[0] || (o[0] = (l) => k.value = l),
226
+ class: "w-[320px] xs:w-full",
227
+ autofocus: "",
228
+ placeholder: a(s)("hr.role.search.placeholder") + " / " + a(s)("hr.restaurant.search.placeholder")
229
+ }, null, 8, ["modelValue", "placeholder"])]), m(ue, null, {
230
+ default: b(() => [r("div", xe, [m(de, {
231
+ "is-loading": a(_).isLoading.value,
232
+ "is-empty": y.value.length === 0,
233
+ "collapse-at": "xs",
234
+ title: a(s)("hr.role.noData.title"),
235
+ subtitle: a(s)("hr.role.noData.subtitle")
236
+ }, {
237
+ default: b(() => [m(t, {
238
+ class: "xs:hidden",
239
+ "column-defs": O,
240
+ "row-data": y.value,
241
+ "page-size": y.value.length,
242
+ loading: a(_).isLoading.value,
243
+ "pin-header-row": "",
244
+ "hide-footer": "",
245
+ "shrink-at": !1,
246
+ onRowClick: o[1] || (o[1] = (l) => E(l.original))
247
+ }, null, 8, ["row-data", "page-size", "loading"])]),
248
+ _: 1
249
+ }, 8, ["is-loading", "is-empty", "title", "subtitle"]), r("div", Re, [m(c, {
250
+ separator: ""
251
+ }, {
252
+ default: b(() => [(h(!0), $(A, null, ne(y.value, (l) => (h(), R(i, {
253
+ key: l._id,
254
+ class: "py-12 px-16 items-center justify-between",
255
+ onClick: (v) => E(l)
256
+ }, {
257
+ default: b(() => [r("div", be, [r("p", we, p(l.name), 1), r("div", Fe, [r("p", Ee, [r("span", Le, p(a(s)("hr.role.labels.restaurant")) + ":", 1), T(" " + p(l.restaurants.map((v) => v.name).join(", ")), 1)]), r("p", ke, [r("span", Se, [r("span", Ue, p(a(s)("hr.role.labels.operation")) + ":", 1), T(" " + p(a(w)(l.permissions, a(d.F_RULE_SUBJECT).enum.order)), 1)]), (h(), R(z(F(l.permissions, a(d.F_RULE_SUBJECT).enum.order))))]), r("p", Te, [r("span", Be, [r("span", Me, p(a(s)("hr.role.labels.report")) + ":", 1), T(" " + p(a(w)(l.permissions, a(d.F_RULE_SUBJECT).enum.report, a(f))), 1)]), (h(), R(z(F(l.permissions, a(d.F_RULE_SUBJECT).enum.report))))])])]), r("div", {
258
+ onClick: o[2] || (o[2] = re(() => {
259
+ }, ["stop"]))
260
+ }, [m(W, {
261
+ items: N(l)
262
+ }, null, 8, ["items"])])]),
263
+ _: 2
264
+ }, 1032, ["onClick"]))), 128))]),
265
+ _: 1
266
+ })])])]),
267
+ _: 1
268
+ })])], 64);
269
+ };
270
+ }
271
+ });
272
+ export {
273
+ Ge as default
274
+ };
@@ -1,6 +1,6 @@
1
1
  import { ref as k, watch as he, computed as z, reactive as Pe, nextTick as we, defineComponent as Ne, createBlock as ne, openBlock as b, withCtx as T, createElementVNode as i, createVNode as H, toDisplayString as v, unref as o, createElementBlock as E, withDirectives as fe, withKeys as Ce, vModelText as ye, normalizeClass as ge, createTextVNode as V, createCommentVNode as Z, Fragment as Ie, renderList as Se } from "vue";
2
2
  import { useI18n as ie } from "@feedmepos/mf-common";
3
- import { az as oe, p as D, aD as ke, aE as se, aF as pe, y as Ee, aG as $e, K as te, e as _, ay as xe, av as W } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-DIYLOF9N.js";
3
+ import { az as oe, p as D, aD as ke, aE as se, aF as pe, y as Ee, aG as $e, K as te, e as _, ay as xe, av as W } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-3oQ6lE86.js";
4
4
  function be() {
5
5
  return oe.map((e) => ({ id: e.id, name: e.name }));
6
6
  }
@@ -2,8 +2,8 @@ import { ref as b, reactive as Y, computed as L, defineComponent as N, createBlo
2
2
  import { useRouter as K } from "vue-router";
3
3
  import { useSnackbar as j } from "@feedmepos/ui-library";
4
4
  import { useCoreStore as F, useI18n as E } from "@feedmepos/mf-common";
5
- import { R as G } from "./app-D-MUq9Ab.js";
6
- import { b as g, o as A, g as V, V as J, a1 as z, p as U, ay as Q, av as C, aA as X, aB as Z, ai as ee, ax as se } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-DIYLOF9N.js";
5
+ import { R as G } from "./app-BHQJX4L4.js";
6
+ import { b as g, o as A, g as V, V as J, a1 as z, p as U, ay as Q, av as C, aA as X, aB as Z, ai as ee, ax as se } from "./ScheduleModal.vue_vue_type_script_setup_true_lang-3oQ6lE86.js";
7
7
  const te = [
8
8
  { key: "payrates", labelKey: "scheduling.general.payRates" },
9
9
  { key: "overtime", labelKey: "scheduling.general.overtime" },