@feedmepos/mf-hrm-portal 2.3.0 → 2.3.1-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ApprovalCodeList-DwubNElp.js → ApprovalCodeList-CDU3yUHy.js} +7 -7
- package/dist/AuditLogList-BU11Q5sF.js +1950 -0
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-CmLLNcB4.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BjHwyaXu.js} +2 -2
- package/dist/{EmployeeList-DEAJPx9F.js → EmployeeList-BqzXg3uA.js} +8 -8
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-OAvd6eHM.js → FormItem.vue_vue_type_script_setup_true_lang-Clh43Y-8.js} +1 -1
- package/dist/{GrantUserList-Dx4jF2qJ.js → GrantUserList-Cw8RkFqf.js} +8 -8
- package/dist/{Main-BirWXk7o.js → Main-BxcRbcce.js} +5 -5
- package/dist/{Main-CL5JYCPg.js → Main-CL-ysWRu.js} +8 -8
- package/dist/{Main-C2PBSCte.js → Main-Dlar77Zq.js} +11 -11
- package/dist/{PermissionSetList-BtYcqPiO.js → PermissionSetList-_8aBzGy7.js} +7 -7
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BXw4aX39.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CNgtAtYH.js} +1292 -1292
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DaAx79pC.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js} +1 -1
- package/dist/{RoleList-YS_LBfoJ.js → RoleList-C3n_zOB3.js} +9 -9
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-CnrbCggg.js +544 -0
- package/dist/ScheduleGeneralPage-DGHKW_ww.js +811 -0
- package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-CnKzVz3I.js → ScheduleModal.vue_vue_type_script_setup_true_lang-AfTAGsh1.js} +933 -834
- package/dist/SchedulePage-UzDPRldO.js +19458 -0
- package/dist/SchedulePositionPage-RHETW36P.js +282 -0
- package/dist/{SelectFilter-Dh3eY1hV.js → SelectFilter-CeBV_Kug.js} +1 -1
- package/dist/{TeamMemberList-Bv6_2bzs.js → TeamMemberList-B-qR7VS3.js} +11 -11
- package/dist/{TimesheetList-B3BmpH0I.js → TimesheetList-BqRIZBt1.js} +8 -8
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-C4rbnZh1.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-oIBUAjtv.js} +3 -3
- package/dist/{app-CyS8c8dx.js → app-DFL6Nv_p.js} +10360 -3848
- package/dist/app.js +1 -1
- package/dist/{approval-code-BIpLingm.js → approval-code-BXUiojPH.js} +1 -1
- package/dist/{dayjs.min-BRlEc3-d.js → dayjs.min-CH-gVmsz.js} +1 -1
- package/dist/{employee-CcdjLOLQ.js → employee-3xpIjR6i.js} +4 -4
- package/dist/{grant-user-uZmvD_bw.js → grant-user-CBJ3gEgW.js} +1 -1
- package/dist/{iteration-CL1RDmws.js → iteration-D6wutq5U.js} +1 -1
- package/dist/{lodash-C00ieagp.js → lodash-D5kU1nPN.js} +1 -1
- package/dist/{restaurant-CHpkjUPy.js → restaurant-D2mfKHaH.js} +2 -2
- package/dist/{role-DtatkKp9.js → role-B7nu6hH1.js} +2 -2
- package/dist/{rule-DJJMpkoG.js → rule-CMd6SL3n.js} +3 -3
- package/dist/src/api/audit-log/index.d.ts +4 -0
- package/dist/src/views/audit-log/constants.d.ts +9 -30
- package/dist/src/views/audit-log/locales/index.d.ts +236 -0
- package/dist/src/views/audit-log/pos-row.d.ts +27 -0
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +0 -2
- package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +5 -3
- package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +2 -0
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +1 -1
- package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +10 -0
- package/dist/src/views/scheduling/composables/schedule-cost.d.ts +5 -0
- package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -0
- package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +1 -1
- package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +4 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +2 -1
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +5 -5
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +2 -0
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +5 -5
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +9 -12
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +7 -6
- package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +12 -0
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +1 -1
- package/dist/src/views/scheduling/country-rules/index.d.ts +5 -1
- package/dist/src/views/scheduling/locales/index.d.ts +6272 -0
- package/dist/src/views/scheduling/schedule-store.d.ts +3 -0
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-Bp0PwbAN.js → useAppStore-DZCdxlCd.js} +1 -1
- package/dist/{useLoading-sgL8DRUz.js → useLoading-Nygx2zn8.js} +1 -1
- package/dist/{useReportPermissions-DI-xg3OX.js → useReportPermissions-BcxIKxlF.js} +3 -3
- package/package.json +1 -1
- package/dist/AuditLogList-CTeMbyHL.js +0 -1778
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-BorKuXxL.js +0 -530
- package/dist/ScheduleGeneralPage-C1p2mivt.js +0 -780
- package/dist/SchedulePage-BP7x7JAl.js +0 -19485
- package/dist/SchedulePositionPage-BogOQZVW.js +0 -262
package/dist/app.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineStore as C } from "pinia";
|
|
2
2
|
import { ref as l } from "vue";
|
|
3
|
-
import { g as p, b as s } from "./restaurant-
|
|
3
|
+
import { g as p, b as s } from "./restaurant-D2mfKHaH.js";
|
|
4
4
|
const n = {
|
|
5
5
|
async getApprovalCodes() {
|
|
6
6
|
return p(await s("approval-codes").get(""));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { d as g } from "./dayjs.min-
|
|
1
|
+
import { d as g } from "./dayjs.min-CH-gVmsz.js";
|
|
2
2
|
import { defineStore as $, storeToRefs as x } from "pinia";
|
|
3
3
|
import { ref as y } from "vue";
|
|
4
|
-
import { s as E } from "./iteration-
|
|
5
|
-
import { b as l, g as m, u as I } from "./restaurant-
|
|
4
|
+
import { s as E } from "./iteration-D6wutq5U.js";
|
|
5
|
+
import { b as l, g as m, u as I } from "./restaurant-D2mfKHaH.js";
|
|
6
6
|
import { i as v } from "./utils-BZkjJbju.js";
|
|
7
|
-
import { u as P } from "./role-
|
|
7
|
+
import { u as P } from "./role-B7nu6hH1.js";
|
|
8
8
|
const o = {
|
|
9
9
|
async readEmployees() {
|
|
10
10
|
return m(await l().get("/pos-users"));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineStore as f } from "pinia";
|
|
2
2
|
import { ref as u } from "vue";
|
|
3
|
-
import { g as s, a as v, b as o } from "./restaurant-
|
|
3
|
+
import { g as s, a as v, b as o } from "./restaurant-D2mfKHaH.js";
|
|
4
4
|
const c = {
|
|
5
5
|
async getGrantUsers() {
|
|
6
6
|
return s(await o("grant").get(""));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as B } from "./app-
|
|
1
|
+
import { f as B } from "./app-DFL6Nv_p.js";
|
|
2
2
|
var ma = {}, Zt = {}, l = {}, ji = {}, Ei = {}, Ii = {}, Dn = {};
|
|
3
3
|
(function(e) {
|
|
4
4
|
Object.defineProperty(e, "__esModule", { value: !0 }), e.getParsedType = e.ZodParsedType = e.util = void 0;
|
|
@@ -1819,9 +1819,9 @@ const wt = (e) => (t) => {
|
|
|
1819
1819
|
throw new Error("Invalid business");
|
|
1820
1820
|
}, Ar = () => {
|
|
1821
1821
|
var o;
|
|
1822
|
-
const t = (o = re().currentCountry.value) == null ? void 0 : o.toLowerCase(), r = "
|
|
1822
|
+
const t = (o = re().currentCountry.value) == null ? void 0 : o.toLowerCase(), r = "feedmeapidev.com", s = !t || t === "my" ? `https://query-engine.${r}` : `https://query-engine.${t}.${r}`;
|
|
1823
1823
|
return wt(s)("");
|
|
1824
|
-
}, Tr = () => wt("https://account.
|
|
1824
|
+
}, Tr = () => wt("https://account.feedmedev.cc/api")(""), Cr = () => We("user/bypass/validate/");
|
|
1825
1825
|
function tr(e) {
|
|
1826
1826
|
return e.data;
|
|
1827
1827
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineStore as x, storeToRefs as b } from "pinia";
|
|
2
2
|
import { ref as w } from "vue";
|
|
3
3
|
import { useCoreStore as B } from "@feedmepos/mf-common";
|
|
4
|
-
import { s as v } from "./iteration-
|
|
5
|
-
import { g as f, b as p, u as I } from "./restaurant-
|
|
4
|
+
import { s as v } from "./iteration-D6wutq5U.js";
|
|
5
|
+
import { g as f, b as p, u as I } from "./restaurant-D2mfKHaH.js";
|
|
6
6
|
const R = {
|
|
7
7
|
async readRoles() {
|
|
8
8
|
return f(await p().get("/pos-roles"));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as W, c as q, e as y } from "./iteration-
|
|
2
|
-
import { h as O, c as V, d as _, v as F, n as h, O as ee, D as M } from "./app-
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-D6wutq5U.js";
|
|
2
|
+
import { h as O, c as V, d as _, v as F, n as h, O as ee, D as M } from "./app-DFL6Nv_p.js";
|
|
3
3
|
import { s as se } from "./utils-BZkjJbju.js";
|
|
4
|
-
import { g, b as v, q as x, u as te } from "./restaurant-
|
|
4
|
+
import { g, b as v, q as x, u as te } from "./restaurant-D2mfKHaH.js";
|
|
5
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
6
6
|
import { ref as S, computed as T } from "vue";
|
|
7
7
|
import { useCoreStore as X } from "@feedmepos/mf-common";
|
|
@@ -12,6 +12,8 @@ declare const AuditLogAPI: {
|
|
|
12
12
|
search?: string;
|
|
13
13
|
searchUserIds?: string[];
|
|
14
14
|
searchSubjects?: string[];
|
|
15
|
+
sources?: string[];
|
|
16
|
+
restaurantIds?: string[];
|
|
15
17
|
}): Promise<number>;
|
|
16
18
|
read(params?: {
|
|
17
19
|
limit?: number;
|
|
@@ -27,6 +29,8 @@ declare const AuditLogAPI: {
|
|
|
27
29
|
search?: string;
|
|
28
30
|
searchUserIds?: string[];
|
|
29
31
|
searchSubjects?: string[];
|
|
32
|
+
sources?: string[];
|
|
33
|
+
restaurantIds?: string[];
|
|
30
34
|
}): Promise<AuditLogEntry[]>;
|
|
31
35
|
/**
|
|
32
36
|
* FeedMe-admin options for the User filter. `actors` is the named admin list (internal
|
|
@@ -1,30 +1,9 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly key: "report";
|
|
11
|
-
readonly label: "Report";
|
|
12
|
-
readonly subjectPrefixes: readonly ["business::report", "report"];
|
|
13
|
-
}, {
|
|
14
|
-
readonly key: "hrm";
|
|
15
|
-
readonly label: "HRM";
|
|
16
|
-
readonly subjectPrefixes: readonly ["business::hrm", "hrm"];
|
|
17
|
-
}, {
|
|
18
|
-
readonly key: "payment";
|
|
19
|
-
readonly label: "Payment";
|
|
20
|
-
readonly subjectPrefixes: readonly ["business::payment", "payment"];
|
|
21
|
-
}, {
|
|
22
|
-
readonly key: "menu";
|
|
23
|
-
readonly label: "Menu";
|
|
24
|
-
readonly subjectPrefixes: readonly ["business::menu", "menu"];
|
|
25
|
-
}, {
|
|
26
|
-
readonly key: "crm";
|
|
27
|
-
readonly label: "CRM";
|
|
28
|
-
readonly subjectPrefixes: readonly ["business::crm", "crm"];
|
|
29
|
-
}];
|
|
30
|
-
export type AuditLogModuleTab = (typeof AUDIT_LOG_MODULE_TABS)[number];
|
|
1
|
+
export interface AuditLogModuleTab {
|
|
2
|
+
key: 'all' | 'inventory' | 'report' | 'hrm' | 'payment' | 'menu' | 'crm' | 'pos';
|
|
3
|
+
label: string;
|
|
4
|
+
/** Portal modules filter by subject namespace. */
|
|
5
|
+
subjectPrefixes: string[];
|
|
6
|
+
/** Row origins the tab selects; the POS tab filters by origin instead of subject. */
|
|
7
|
+
sources?: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare const AUDIT_LOG_MODULE_TABS: readonly AuditLogModuleTab[];
|
|
@@ -36,6 +36,8 @@ export declare const i18nMessages: {
|
|
|
36
36
|
selected_status_prefix: string;
|
|
37
37
|
outcome_placeholder: string;
|
|
38
38
|
selected_outcome_prefix: string;
|
|
39
|
+
restaurant_placeholder: string;
|
|
40
|
+
selected_restaurant_prefix: string;
|
|
39
41
|
};
|
|
40
42
|
action: {
|
|
41
43
|
manage: string;
|
|
@@ -52,6 +54,7 @@ export declare const i18nMessages: {
|
|
|
52
54
|
payment: string;
|
|
53
55
|
menu: string;
|
|
54
56
|
crm: string;
|
|
57
|
+
pos: string;
|
|
55
58
|
other: string;
|
|
56
59
|
more: string;
|
|
57
60
|
};
|
|
@@ -62,6 +65,28 @@ export declare const i18nMessages: {
|
|
|
62
65
|
action: string;
|
|
63
66
|
operation: string;
|
|
64
67
|
outcome: string;
|
|
68
|
+
restaurant: string;
|
|
69
|
+
device: string;
|
|
70
|
+
approver: string;
|
|
71
|
+
};
|
|
72
|
+
pos: {
|
|
73
|
+
unverified: string;
|
|
74
|
+
approverInline: string;
|
|
75
|
+
viaCode: string;
|
|
76
|
+
details: {
|
|
77
|
+
eventKey: string;
|
|
78
|
+
appVersion: string;
|
|
79
|
+
clock: string;
|
|
80
|
+
clamped: string;
|
|
81
|
+
params: string;
|
|
82
|
+
};
|
|
83
|
+
device: {
|
|
84
|
+
posV7: string;
|
|
85
|
+
};
|
|
86
|
+
mode: {
|
|
87
|
+
main: string;
|
|
88
|
+
sub: string;
|
|
89
|
+
};
|
|
65
90
|
};
|
|
66
91
|
outcome: {
|
|
67
92
|
success: string;
|
|
@@ -189,6 +214,40 @@ export declare const i18nMessages: {
|
|
|
189
214
|
"approval-code": {
|
|
190
215
|
create: string;
|
|
191
216
|
revoke: string;
|
|
217
|
+
use: string;
|
|
218
|
+
};
|
|
219
|
+
counter: {
|
|
220
|
+
open: string;
|
|
221
|
+
close: string;
|
|
222
|
+
};
|
|
223
|
+
counterRecord: {
|
|
224
|
+
manage: string;
|
|
225
|
+
};
|
|
226
|
+
order: {
|
|
227
|
+
void: string;
|
|
228
|
+
discount: string;
|
|
229
|
+
urgent: string;
|
|
230
|
+
resend: string;
|
|
231
|
+
changePrice: string;
|
|
232
|
+
changePaymentType: string;
|
|
233
|
+
payment: string;
|
|
234
|
+
claimDeposit: string;
|
|
235
|
+
waiveServiceCharge: string;
|
|
236
|
+
update: string;
|
|
237
|
+
};
|
|
238
|
+
refund: {
|
|
239
|
+
create: string;
|
|
240
|
+
manage: string;
|
|
241
|
+
};
|
|
242
|
+
drawer: {
|
|
243
|
+
open: string;
|
|
244
|
+
manage: string;
|
|
245
|
+
};
|
|
246
|
+
paymentType: {
|
|
247
|
+
manage: string;
|
|
248
|
+
};
|
|
249
|
+
report: {
|
|
250
|
+
read: string;
|
|
192
251
|
};
|
|
193
252
|
"portal-user": {
|
|
194
253
|
list: string;
|
|
@@ -324,6 +383,8 @@ export declare const i18nMessages: {
|
|
|
324
383
|
selected_status_prefix: string;
|
|
325
384
|
outcome_placeholder: string;
|
|
326
385
|
selected_outcome_prefix: string;
|
|
386
|
+
restaurant_placeholder: string;
|
|
387
|
+
selected_restaurant_prefix: string;
|
|
327
388
|
};
|
|
328
389
|
action: {
|
|
329
390
|
manage: string;
|
|
@@ -340,6 +401,7 @@ export declare const i18nMessages: {
|
|
|
340
401
|
payment: string;
|
|
341
402
|
menu: string;
|
|
342
403
|
crm: string;
|
|
404
|
+
pos: string;
|
|
343
405
|
other: string;
|
|
344
406
|
more: string;
|
|
345
407
|
};
|
|
@@ -350,6 +412,28 @@ export declare const i18nMessages: {
|
|
|
350
412
|
action: string;
|
|
351
413
|
operation: string;
|
|
352
414
|
outcome: string;
|
|
415
|
+
restaurant: string;
|
|
416
|
+
device: string;
|
|
417
|
+
approver: string;
|
|
418
|
+
};
|
|
419
|
+
pos: {
|
|
420
|
+
unverified: string;
|
|
421
|
+
approverInline: string;
|
|
422
|
+
viaCode: string;
|
|
423
|
+
details: {
|
|
424
|
+
eventKey: string;
|
|
425
|
+
appVersion: string;
|
|
426
|
+
clock: string;
|
|
427
|
+
clamped: string;
|
|
428
|
+
params: string;
|
|
429
|
+
};
|
|
430
|
+
device: {
|
|
431
|
+
posV7: string;
|
|
432
|
+
};
|
|
433
|
+
mode: {
|
|
434
|
+
main: string;
|
|
435
|
+
sub: string;
|
|
436
|
+
};
|
|
353
437
|
};
|
|
354
438
|
outcome: {
|
|
355
439
|
success: string;
|
|
@@ -478,6 +562,40 @@ export declare const i18nMessages: {
|
|
|
478
562
|
"approval-code": {
|
|
479
563
|
create: string;
|
|
480
564
|
revoke: string;
|
|
565
|
+
use: string;
|
|
566
|
+
};
|
|
567
|
+
counter: {
|
|
568
|
+
open: string;
|
|
569
|
+
close: string;
|
|
570
|
+
};
|
|
571
|
+
counterRecord: {
|
|
572
|
+
manage: string;
|
|
573
|
+
};
|
|
574
|
+
order: {
|
|
575
|
+
void: string;
|
|
576
|
+
discount: string;
|
|
577
|
+
urgent: string;
|
|
578
|
+
resend: string;
|
|
579
|
+
changePrice: string;
|
|
580
|
+
changePaymentType: string;
|
|
581
|
+
payment: string;
|
|
582
|
+
claimDeposit: string;
|
|
583
|
+
waiveServiceCharge: string;
|
|
584
|
+
update: string;
|
|
585
|
+
};
|
|
586
|
+
refund: {
|
|
587
|
+
create: string;
|
|
588
|
+
manage: string;
|
|
589
|
+
};
|
|
590
|
+
drawer: {
|
|
591
|
+
open: string;
|
|
592
|
+
manage: string;
|
|
593
|
+
};
|
|
594
|
+
paymentType: {
|
|
595
|
+
manage: string;
|
|
596
|
+
};
|
|
597
|
+
report: {
|
|
598
|
+
read: string;
|
|
481
599
|
};
|
|
482
600
|
"portal-user": {
|
|
483
601
|
list: string;
|
|
@@ -613,6 +731,8 @@ export declare const i18nMessages: {
|
|
|
613
731
|
selected_status_prefix: string;
|
|
614
732
|
outcome_placeholder: string;
|
|
615
733
|
selected_outcome_prefix: string;
|
|
734
|
+
restaurant_placeholder: string;
|
|
735
|
+
selected_restaurant_prefix: string;
|
|
616
736
|
};
|
|
617
737
|
action: {
|
|
618
738
|
manage: string;
|
|
@@ -629,6 +749,7 @@ export declare const i18nMessages: {
|
|
|
629
749
|
payment: string;
|
|
630
750
|
menu: string;
|
|
631
751
|
crm: string;
|
|
752
|
+
pos: string;
|
|
632
753
|
other: string;
|
|
633
754
|
more: string;
|
|
634
755
|
};
|
|
@@ -639,6 +760,28 @@ export declare const i18nMessages: {
|
|
|
639
760
|
action: string;
|
|
640
761
|
operation: string;
|
|
641
762
|
outcome: string;
|
|
763
|
+
restaurant: string;
|
|
764
|
+
device: string;
|
|
765
|
+
approver: string;
|
|
766
|
+
};
|
|
767
|
+
pos: {
|
|
768
|
+
unverified: string;
|
|
769
|
+
approverInline: string;
|
|
770
|
+
viaCode: string;
|
|
771
|
+
details: {
|
|
772
|
+
eventKey: string;
|
|
773
|
+
appVersion: string;
|
|
774
|
+
clock: string;
|
|
775
|
+
clamped: string;
|
|
776
|
+
params: string;
|
|
777
|
+
};
|
|
778
|
+
device: {
|
|
779
|
+
posV7: string;
|
|
780
|
+
};
|
|
781
|
+
mode: {
|
|
782
|
+
main: string;
|
|
783
|
+
sub: string;
|
|
784
|
+
};
|
|
642
785
|
};
|
|
643
786
|
outcome: {
|
|
644
787
|
success: string;
|
|
@@ -767,6 +910,40 @@ export declare const i18nMessages: {
|
|
|
767
910
|
"approval-code": {
|
|
768
911
|
create: string;
|
|
769
912
|
revoke: string;
|
|
913
|
+
use: string;
|
|
914
|
+
};
|
|
915
|
+
counter: {
|
|
916
|
+
open: string;
|
|
917
|
+
close: string;
|
|
918
|
+
};
|
|
919
|
+
counterRecord: {
|
|
920
|
+
manage: string;
|
|
921
|
+
};
|
|
922
|
+
order: {
|
|
923
|
+
void: string;
|
|
924
|
+
discount: string;
|
|
925
|
+
urgent: string;
|
|
926
|
+
resend: string;
|
|
927
|
+
changePrice: string;
|
|
928
|
+
changePaymentType: string;
|
|
929
|
+
payment: string;
|
|
930
|
+
claimDeposit: string;
|
|
931
|
+
waiveServiceCharge: string;
|
|
932
|
+
update: string;
|
|
933
|
+
};
|
|
934
|
+
refund: {
|
|
935
|
+
create: string;
|
|
936
|
+
manage: string;
|
|
937
|
+
};
|
|
938
|
+
drawer: {
|
|
939
|
+
open: string;
|
|
940
|
+
manage: string;
|
|
941
|
+
};
|
|
942
|
+
paymentType: {
|
|
943
|
+
manage: string;
|
|
944
|
+
};
|
|
945
|
+
report: {
|
|
946
|
+
read: string;
|
|
770
947
|
};
|
|
771
948
|
"portal-user": {
|
|
772
949
|
list: string;
|
|
@@ -902,6 +1079,8 @@ export declare const i18nMessages: {
|
|
|
902
1079
|
selected_status_prefix: string;
|
|
903
1080
|
outcome_placeholder: string;
|
|
904
1081
|
selected_outcome_prefix: string;
|
|
1082
|
+
restaurant_placeholder: string;
|
|
1083
|
+
selected_restaurant_prefix: string;
|
|
905
1084
|
};
|
|
906
1085
|
action: {
|
|
907
1086
|
manage: string;
|
|
@@ -918,6 +1097,7 @@ export declare const i18nMessages: {
|
|
|
918
1097
|
payment: string;
|
|
919
1098
|
menu: string;
|
|
920
1099
|
crm: string;
|
|
1100
|
+
pos: string;
|
|
921
1101
|
other: string;
|
|
922
1102
|
more: string;
|
|
923
1103
|
};
|
|
@@ -928,6 +1108,28 @@ export declare const i18nMessages: {
|
|
|
928
1108
|
action: string;
|
|
929
1109
|
operation: string;
|
|
930
1110
|
outcome: string;
|
|
1111
|
+
restaurant: string;
|
|
1112
|
+
device: string;
|
|
1113
|
+
approver: string;
|
|
1114
|
+
};
|
|
1115
|
+
pos: {
|
|
1116
|
+
unverified: string;
|
|
1117
|
+
approverInline: string;
|
|
1118
|
+
viaCode: string;
|
|
1119
|
+
details: {
|
|
1120
|
+
eventKey: string;
|
|
1121
|
+
appVersion: string;
|
|
1122
|
+
clock: string;
|
|
1123
|
+
clamped: string;
|
|
1124
|
+
params: string;
|
|
1125
|
+
};
|
|
1126
|
+
device: {
|
|
1127
|
+
posV7: string;
|
|
1128
|
+
};
|
|
1129
|
+
mode: {
|
|
1130
|
+
main: string;
|
|
1131
|
+
sub: string;
|
|
1132
|
+
};
|
|
931
1133
|
};
|
|
932
1134
|
outcome: {
|
|
933
1135
|
success: string;
|
|
@@ -1056,6 +1258,40 @@ export declare const i18nMessages: {
|
|
|
1056
1258
|
"approval-code": {
|
|
1057
1259
|
create: string;
|
|
1058
1260
|
revoke: string;
|
|
1261
|
+
use: string;
|
|
1262
|
+
};
|
|
1263
|
+
counter: {
|
|
1264
|
+
open: string;
|
|
1265
|
+
close: string;
|
|
1266
|
+
};
|
|
1267
|
+
counterRecord: {
|
|
1268
|
+
manage: string;
|
|
1269
|
+
};
|
|
1270
|
+
order: {
|
|
1271
|
+
void: string;
|
|
1272
|
+
discount: string;
|
|
1273
|
+
urgent: string;
|
|
1274
|
+
resend: string;
|
|
1275
|
+
changePrice: string;
|
|
1276
|
+
changePaymentType: string;
|
|
1277
|
+
payment: string;
|
|
1278
|
+
claimDeposit: string;
|
|
1279
|
+
waiveServiceCharge: string;
|
|
1280
|
+
update: string;
|
|
1281
|
+
};
|
|
1282
|
+
refund: {
|
|
1283
|
+
create: string;
|
|
1284
|
+
manage: string;
|
|
1285
|
+
};
|
|
1286
|
+
drawer: {
|
|
1287
|
+
open: string;
|
|
1288
|
+
manage: string;
|
|
1289
|
+
};
|
|
1290
|
+
paymentType: {
|
|
1291
|
+
manage: string;
|
|
1292
|
+
};
|
|
1293
|
+
report: {
|
|
1294
|
+
read: string;
|
|
1059
1295
|
};
|
|
1060
1296
|
"portal-user": {
|
|
1061
1297
|
list: string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AuditLogEntry } from '@/types/audit-log';
|
|
2
|
+
export declare const POS_SOURCES: readonly ["pos-v8", "hrm-validate"];
|
|
3
|
+
type T = (key: string, params?: Record<string, unknown>) => string;
|
|
4
|
+
export declare function isPosEntry(entry: AuditLogEntry): boolean;
|
|
5
|
+
export declare function posDeviceLabel(entry: AuditLogEntry, t: T): string;
|
|
6
|
+
/** The executor: actorName/userId, marked when the writer could not find the id among the restaurant's employees. */
|
|
7
|
+
export declare function posActorLabel(entry: AuditLogEntry, t: T): string;
|
|
8
|
+
/** The passcode holder; '-' on session checks, which have no approver. For an
|
|
9
|
+
* approval-code row the approver is the portal user who issued the code and
|
|
10
|
+
* may not have been present, so the label says so. Any hrm-validate row with no
|
|
11
|
+
* approver name/id — a legacy code without a grantor, regardless of whether
|
|
12
|
+
* approverKnown is false or simply unset — still reads as an approval-code use,
|
|
13
|
+
* so the viaCode marker renders alone instead of falling through to '-'. */
|
|
14
|
+
export declare function posApproverLabel(entry: AuditLogEntry, t: T): string;
|
|
15
|
+
/** " · approver: Mei" for portal tabs, which have no Approver column; empty when the row has no approver. */
|
|
16
|
+
export declare function posApproverSuffix(entry: AuditLogEntry, t: T): string;
|
|
17
|
+
export interface UserFilter {
|
|
18
|
+
userIds: string[];
|
|
19
|
+
feedmeAdminActors: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Splits the User filter selection into real user ids and the "FeedMe Admin"
|
|
23
|
+
* catch-all flag. The POS tab hides the User control, so it never filters by
|
|
24
|
+
* user: a selection left over from another tab must not apply there unseen.
|
|
25
|
+
*/
|
|
26
|
+
export declare function resolveUserFilter(selected: readonly string[] | undefined, isPosTab: boolean, feedmeAdminValue: string): UserFilter;
|
|
27
|
+
export {};
|
|
@@ -27,9 +27,7 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
27
27
|
}>, {
|
|
28
28
|
icon: boolean;
|
|
29
29
|
loading: boolean;
|
|
30
|
-
confirmLabel: string;
|
|
31
30
|
messageClass: string;
|
|
32
|
-
cancelLabel: string;
|
|
33
31
|
tone: "primary" | "danger";
|
|
34
32
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
35
33
|
export default _default;
|
|
@@ -9,6 +9,8 @@ export declare function dateOfProposal(weekKey: string, dayIdx: number): string;
|
|
|
9
9
|
export declare function proposalsFromResult(proposals: FdtoScheduleAutoScheduleProposal[], weekKey: string, dateKeyOf: (dayIdx: number) => string | null, nextId: () => number, holds: (empId: number) => boolean): Proposal[];
|
|
10
10
|
/** The apply body for the accepted proposals, each re-dated from its own week and day. */
|
|
11
11
|
export declare function applyRequestOf(proposals: Proposal[], allowOvertime: boolean, status?: FdtoScheduleAutoScheduleApplyReq['status']): FdtoScheduleAutoScheduleApplyReq;
|
|
12
|
+
/** The `t` from `useI18n()`, passed into these pure helpers so they stay free of Vue setup. */
|
|
13
|
+
export type TranslateFn = (key: string, params?: Record<string, unknown>) => string;
|
|
12
14
|
export interface ClassifiedExplanation {
|
|
13
15
|
kind: 'reject' | 'ai' | 'plain';
|
|
14
16
|
text: string;
|
|
@@ -21,13 +23,13 @@ export declare function classifyExplanation(line: string): ClassifiedExplanation
|
|
|
21
23
|
* (0 < status < 500). A network failure (0) or a server error (5xx) is not. */
|
|
22
24
|
export declare function isClientRefusal(error: unknown): error is ApiError;
|
|
23
25
|
/** A client-error refusal shows its own message; a network failure or 5xx shows the generic one. */
|
|
24
|
-
export declare function generateErrorMessage(error: unknown): string;
|
|
26
|
+
export declare function generateErrorMessage(error: unknown, t: TranslateFn): string;
|
|
25
27
|
/** The result shown when "fill gaps" is off: nothing proposed, one explanation. */
|
|
26
28
|
export declare function fillGapsOffResult(week: {
|
|
27
29
|
from: string;
|
|
28
30
|
to: string;
|
|
29
|
-
}, objective: FdtoScheduleAutoScheduleObjective, allowOvertime: boolean): FdtoScheduleAutoScheduleResult;
|
|
31
|
+
}, objective: FdtoScheduleAutoScheduleObjective, allowOvertime: boolean, t: TranslateFn): FdtoScheduleAutoScheduleResult;
|
|
30
32
|
/** The snackbar shown once a run finishes, whether it went to the server or (fill gaps off) was
|
|
31
33
|
* answered locally. `wallMs` is measured client-side around the request — it is what the manager
|
|
32
34
|
* actually waited, not just the server's own `timing.totalMs`. */
|
|
33
|
-
export declare function generateDoneMessage(result: FdtoScheduleAutoScheduleResult, wallMs: number): string;
|
|
35
|
+
export declare function generateDoneMessage(result: FdtoScheduleAutoScheduleResult, wallMs: number, t: TranslateFn): string;
|
|
@@ -3,3 +3,5 @@ export declare const ONBOARDING_STEPS: ScheduleOnboardingStep[];
|
|
|
3
3
|
export declare const SKIPPABLE_ONBOARDING_STEPS: ScheduleOnboardingStep[];
|
|
4
4
|
export declare const COMMON_POSITION_SUGGESTIONS: string[];
|
|
5
5
|
export declare const ANY_POSITION_KEY = "__any__";
|
|
6
|
+
/** i18n key for a Monday-first weekday index's short name (WEEKDAYS in ../data stays English). */
|
|
7
|
+
export declare function weekdayKey(dayIdx: number): string;
|
|
@@ -79,4 +79,4 @@ export declare function availabilityPayload(form: ScheduleAddEmployeeForm): Arra
|
|
|
79
79
|
/** The EmployeeProfile fields `createExisting` and `updateExisting` both send — everything but
|
|
80
80
|
* `employeeId`, which only the create path has (an update targets one already known from the
|
|
81
81
|
* URL). Shared here so the two payloads cannot silently drift apart. */
|
|
82
|
-
export declare function toEmployeeProfileFields(form: ScheduleAddEmployeeForm, name: string, payAmountNumber: number): FdtoScheduleUpdateEmployeeProfileReq;
|
|
82
|
+
export declare function toEmployeeProfileFields(form: ScheduleAddEmployeeForm, name: string, payAmountNumber: number, t: (key: string) => string): FdtoScheduleUpdateEmployeeProfileReq;
|
|
@@ -5,3 +5,13 @@ export declare function mostRecentMonday(from: Date): Date;
|
|
|
5
5
|
export declare function weekDates(offset: number, from?: Date): Date[];
|
|
6
6
|
export declare function weeksBetween(a: Date, b: Date): number;
|
|
7
7
|
export declare function todayWeekdayIdx(): number;
|
|
8
|
+
/** Monday-first weekday ids, matching the board's `dayIdx` (0 = Mon .. 6 = Sun). */
|
|
9
|
+
export declare const WEEKDAY_IDS: readonly ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
|
|
10
|
+
/** i18n key of a weekday's short name ("Mon" / "จ."). */
|
|
11
|
+
export declare function weekdayShortKey(dayIdx: number): string;
|
|
12
|
+
/** i18n key of a weekday's full name ("Monday" / "วันจันทร์"). */
|
|
13
|
+
export declare function weekdayLongKey(dayIdx: number): string;
|
|
14
|
+
/** BCP 47 tag for `Intl`/`toLocale*String` from the active i18n locale. English keeps the
|
|
15
|
+
* board's existing format (`enFallback`); Thai stays on the Gregorian calendar so years line up
|
|
16
|
+
* with ISO dates shown elsewhere instead of switching to the Buddhist era. */
|
|
17
|
+
export declare function intlLocale(locale: string | undefined, enFallback?: string): string;
|
|
@@ -17,3 +17,8 @@ export declare function costOfSlots(employee: Employee, slots: Array<{
|
|
|
17
17
|
slot: WorkSlot;
|
|
18
18
|
multiplier: number;
|
|
19
19
|
}>): ScheduleCostBreakdown;
|
|
20
|
+
/** The slice of vue-i18n's `t` the format helpers below need, so pure modules can take it as a
|
|
21
|
+
* parameter instead of calling `useI18n()` themselves. */
|
|
22
|
+
export type ScheduleTranslate = (key: string, named?: Record<string, unknown>) => string;
|
|
23
|
+
/** "7h 30m" / "7 ชม. 30 น." — hours rendered as whole hours plus leftover minutes. */
|
|
24
|
+
export declare function formatHoursMinutes(hours: number, t: ScheduleTranslate): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type ComputedRef } from 'vue';
|
|
2
|
+
interface CurrencyFormat {
|
|
3
|
+
label: string;
|
|
4
|
+
/** Where the label sits next to the number: "RM 3" vs "3 บาท" — how each market reads it. */
|
|
5
|
+
position: 'before' | 'after';
|
|
6
|
+
}
|
|
7
|
+
export declare function currencyFormatFor(country: string | null | undefined): CurrencyFormat;
|
|
8
|
+
export declare function currencyLabelFor(country: string | null | undefined): string;
|
|
9
|
+
/** Adds the label to an already-formatted number, on the side that market reads it. */
|
|
10
|
+
export declare function withCurrency(value: string, format: CurrencyFormat): string;
|
|
11
|
+
export interface ScheduleCurrency {
|
|
12
|
+
/** "RM" / "บาท", from the current business country (not the UI language). */
|
|
13
|
+
currency: ComputedRef<string>;
|
|
14
|
+
/** True when the label goes after the number (บาท), so input adornments flip sides. */
|
|
15
|
+
currencyAfter: ComputedRef<boolean>;
|
|
16
|
+
/** "RM 1,234" / "1,234 บาท" — rounded to whole units unless `fractionDigits` is given. */
|
|
17
|
+
formatMoney: (amount: number, fractionDigits?: number) => string;
|
|
18
|
+
/** Adds the currency label to a number that is already formatted. */
|
|
19
|
+
withCurrency: (value: string | number) => string;
|
|
20
|
+
}
|
|
21
|
+
export declare function useScheduleCurrency(): ScheduleCurrency;
|
|
22
|
+
export {};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import type { FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff } from '@/types/schedule';
|
|
2
|
+
import type { LeaveSlot } from '../types';
|
|
3
|
+
/** The i18n key naming a leave slot's type, for display — `LeaveSlot.reason` stays English
|
|
4
|
+
* (other code matches on it). */
|
|
5
|
+
export declare function timeOffLabelKey(slot: Pick<LeaveSlot, 'type' | 'leaveType'>): string;
|
|
2
6
|
/** The create requests that keep the rest of a multi-day record alive once `date` is carved out
|
|
3
7
|
* of it. Single-day records leave nothing behind. The contract requires a same-day request to
|
|
4
8
|
* have matching parts, so a one-day remainder takes the part from its outer edge. */
|
|
@@ -15,8 +15,9 @@ export interface QuickPickCandidate {
|
|
|
15
15
|
covers: string;
|
|
16
16
|
title: string;
|
|
17
17
|
}
|
|
18
|
+
export type QuickPickTranslate = (key: string, named?: Record<string, unknown>) => string;
|
|
18
19
|
/** Up to 3 shifts for one employee on one day, built the way the auto-schedule planner builds
|
|
19
20
|
* them: one per (short run, position the person can fill), padded to their daily minimum,
|
|
20
21
|
* capped at their maximum, kept inside their availability window and clear of their existing
|
|
21
22
|
* shifts. Rest-gap and weekly-cap checks are left to the shift editor's own warnings. */
|
|
22
|
-
export declare function buildQuickPicks(emp: Employee, dayIdx: number, segments: CoverageSegment[], axis: ScheduleCoverageAxis, rules: QuickPickRules, qualifiedFor: (emp: Employee, position: string) => boolean): QuickPickCandidate[];
|
|
23
|
+
export declare function buildQuickPicks(emp: Employee, dayIdx: number, segments: CoverageSegment[], axis: ScheduleCoverageAxis, rules: QuickPickRules, qualifiedFor: (emp: Employee, position: string) => boolean, t?: QuickPickTranslate): QuickPickCandidate[];
|