@feedmepos/mf-hrm-portal 2.3.1 → 2.3.2-dev.10

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 (121) hide show
  1. package/dist/{ApprovalCodeList-CcvVEriB.js → ApprovalCodeList-RKU5B8SO.js} +14 -15
  2. package/dist/{AuditLogList-C61-SnWG.js → AuditLogList-DuDCMjGR.js} +796 -720
  3. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-pL2zRc67.js +459 -0
  4. package/dist/EmployeeList-nrYsS5uz.js +896 -0
  5. package/dist/FormSection.vue_vue_type_script_setup_true_lang-7S2w36aY.js +90 -0
  6. package/dist/{GrantUserList-1ErIV7b7.js → GrantUserList-BSjeC4MC.js} +15 -16
  7. package/dist/{Main-R0qyd8Ea.js → Main-CpuHaXU6.js} +5 -5
  8. package/dist/Main-DbdoVLCE.js +101 -0
  9. package/dist/{Main-CD8OS1rM.js → Main-DtmCBbTR.js} +1005 -999
  10. package/dist/MyPosProfile-CsTCfGNT.js +360 -0
  11. package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-TXPEqa46.js +126 -0
  12. package/dist/{PermissionSetList-ig3oxdhh.js → PermissionSetList-B1c-uGZO.js} +80 -80
  13. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Toq6qrLx.js +4208 -0
  14. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-D6Z9z_Yt.js +1831 -0
  15. package/dist/RoleForm.vue_vue_type_script_setup_true_lang-TWTVo_9Y.js +547 -0
  16. package/dist/RoleList-CwaGNsFy.js +265 -0
  17. package/dist/{ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Dg7S6nFO.js → ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-C2ekVXdR.js} +1 -1
  18. package/dist/{ScheduleGeneralPage-QYijA95u.js → ScheduleGeneralPage-BVtXmxtp.js} +2 -2
  19. package/dist/{ScheduleModal.vue_vue_type_script_setup_true_lang-Bnyqna_E.js → ScheduleModal.vue_vue_type_script_setup_true_lang-DdsQ8v-5.js} +187 -186
  20. package/dist/{SchedulePage-BrBZmuMj.js → SchedulePage-3qksmT2I.js} +193 -205
  21. package/dist/{SchedulePositionPage-NCvNg8v5.js → SchedulePositionPage-DAU20KPZ.js} +3 -3
  22. package/dist/{SelectFilter-r-QOCO99.js → SelectFilter-BpzBwBmQ.js} +2 -3
  23. package/dist/TeamMemberList-Bdpm40i3.js +2087 -0
  24. package/dist/TimesheetList-CL_eJp2h.js +437 -0
  25. package/dist/{app-DKHtjxyC.js → app-DEZT4wdV.js} +7789 -3967
  26. package/dist/app.js +3 -3
  27. package/dist/{approval-code-BIpLingm.js → approval-code-BZTz5OXK.js} +4 -4
  28. package/dist/{dayjs.min-CNNMpacl.js → dayjs.min-B55I-uhI.js} +21 -21
  29. package/dist/employee-C6z5i6O4.js +172 -0
  30. package/dist/{grant-user-uZmvD_bw.js → grant-user-B2rYztyf.js} +2 -2
  31. package/dist/{iteration-DkcNkScw.js → index-Bfdseotz.js} +698 -726
  32. package/dist/iteration-CcXrOMQe.js +30 -0
  33. package/dist/{lodash-g-62RoFP.js → lodash-B8bqa6a9.js} +1 -1
  34. package/dist/member-grant-BIpKkuu8.js +54 -0
  35. package/dist/restaurant-ejyX2jEG.js +52 -0
  36. package/dist/role-C_t3DDlG.js +98 -0
  37. package/dist/rule-Ccopk8R_.js +843 -0
  38. package/dist/src/api/audit-log/index.d.ts +2 -0
  39. package/dist/src/api/employee/index.d.ts +1 -2
  40. package/dist/src/api/my-pos-profile/index.d.ts +3 -0
  41. package/dist/src/api/sso-provider/index.d.ts +5 -0
  42. package/dist/src/api/staff-invite/index.d.ts +16 -0
  43. package/dist/src/api/timesheet/index.d.ts +1 -1
  44. package/dist/src/components/CollapsibleWrapper.vue.d.ts +11 -3
  45. package/dist/src/components/form/SegmentedTabs.vue.d.ts +23 -0
  46. package/dist/src/composables/useMenuAccess.d.ts +56 -0
  47. package/dist/src/composables/useSsoProviders.d.ts +19 -0
  48. package/dist/src/composables/useStaffInviteProviders.d.ts +8 -0
  49. package/dist/src/helpers/member-grant.d.ts +36 -0
  50. package/dist/src/helpers/my-pos-profile.d.ts +37 -0
  51. package/dist/src/helpers/permission-set.d.ts +1 -102
  52. package/dist/src/helpers/pos-assignment-rows.d.ts +28 -0
  53. package/dist/src/helpers/rule.d.ts +2 -2
  54. package/dist/src/helpers/staff-invite.d.ts +54 -0
  55. package/dist/src/helpers/string.d.ts +10 -1
  56. package/dist/src/router/menu-access-guard.d.ts +17 -0
  57. package/dist/src/router/shared.d.ts +3 -1
  58. package/dist/src/stores/approval-code.d.ts +1 -1
  59. package/dist/src/stores/employee.d.ts +3 -9
  60. package/dist/src/stores/grant-user.d.ts +1 -1
  61. package/dist/src/stores/permission-assignment.d.ts +2 -2
  62. package/dist/src/stores/permission-set.d.ts +2 -2
  63. package/dist/src/stores/restaurant.d.ts +70 -10
  64. package/dist/src/stores/role.d.ts +2 -2
  65. package/dist/src/stores/team.d.ts +31 -1
  66. package/dist/src/stores/timesheet.d.ts +68 -53
  67. package/dist/src/types/my-pos-profile.d.ts +24 -0
  68. package/dist/src/types/sso-provider.d.ts +10 -0
  69. package/dist/src/types/staff-invite.d.ts +100 -0
  70. package/dist/src/types/team.d.ts +17 -1
  71. package/dist/src/types/timesheet.d.ts +3 -0
  72. package/dist/src/views/audit-log/locales/index.d.ts +40 -0
  73. package/dist/src/views/audit-log/useTraceIdDeepLink.d.ts +19 -0
  74. package/dist/src/views/hr/locales/index.d.ts +24 -4
  75. package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
  76. package/dist/src/views/my-pos-profile/MyPosProfile.vue.d.ts +2 -0
  77. package/dist/src/views/my-pos-profile/components/PasscodeChangedDialog.vue.d.ts +4 -0
  78. package/dist/src/views/my-pos-profile/locales/index.d.ts +236 -0
  79. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +1 -1
  80. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1 -1
  81. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +1 -1
  82. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +1 -1
  83. package/dist/src/views/team/components/BasePermission.vue.d.ts +11 -0
  84. package/dist/src/views/team/components/ConditionPermission.vue.d.ts +11 -0
  85. package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +51 -0
  86. package/dist/src/views/team/{member/MemberInfo.vue.d.ts → components/MemberStatusBadge.vue.d.ts} +2 -2
  87. package/dist/src/views/team/components/PortalPermissionEditor.vue.d.ts +21 -0
  88. package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +44 -0
  89. package/dist/src/views/team/components/PosRolePermission.vue.d.ts +11 -0
  90. package/dist/src/views/team/locales/index.d.ts +716 -0
  91. package/dist/src/views/team/member/AddMemberForm.vue.d.ts +48 -3
  92. package/dist/src/views/team/member/ExistingMemberNotice.vue.d.ts +11 -0
  93. package/dist/src/views/team/member/MemberDetailsCard.vue.d.ts +35 -0
  94. package/dist/src/views/team/member/MemberHeaderCard.vue.d.ts +19 -0
  95. package/dist/src/views/team/member/TeamMemberList.vue.d.ts +1 -0
  96. package/dist/string-DZQ1uNjn.js +22 -0
  97. package/dist/style.css +1 -1
  98. package/dist/timesheet-CZHcebqS.js +76 -0
  99. package/dist/tsconfig.app.tsbuildinfo +1 -1
  100. package/dist/{useAppStore-Bp0PwbAN.js → useAppStore-DfqsbhT2.js} +1 -1
  101. package/dist/{useLoading-sgL8DRUz.js → useLoading-CQnX5WjI.js} +1 -1
  102. package/dist/useMessage-_ywT_N9X.js +17 -0
  103. package/dist/{useReportPermissions-CcIHwTRI.js → useReportPermissions-kTjftFk7.js} +13 -13
  104. package/package.json +4 -4
  105. package/dist/ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BZ-ZDviW.js +0 -438
  106. package/dist/EmployeeList-Cucr2mxn.js +0 -776
  107. package/dist/FormItem.vue_vue_type_script_setup_true_lang-4XV2qPxn.js +0 -45
  108. package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
  109. package/dist/Main-B-F_cdM_.js +0 -96
  110. package/dist/PasscodePinField.vue_vue_type_script_setup_true_lang-CqG0v0Sz.js +0 -243
  111. package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ClG4YhnF.js +0 -4167
  112. package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DaAx79pC.js +0 -35
  113. package/dist/RoleList-BqR_Vf8H.js +0 -740
  114. package/dist/TeamMemberList-B6ZnfKV0.js +0 -1154
  115. package/dist/TimesheetList-BvsUk6kd.js +0 -402
  116. package/dist/TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-D3--3EhR.js +0 -58
  117. package/dist/employee-H2J0xRqJ.js +0 -209
  118. package/dist/restaurant-CHpkjUPy.js +0 -1880
  119. package/dist/role-CkxDtfst.js +0 -92
  120. package/dist/rule-BWvSqhBk.js +0 -783
  121. package/dist/string-VNuQNweN.js +0 -15
@@ -0,0 +1,100 @@
1
+ import type { FdoPermissionRule } from '@feedmepos/core/entity';
2
+ import type { IFdtoPermissionPosUser } from '@/types/team';
3
+ /** Wire contract: account-service-zus-lark-sso/part-b-contract.md §2.2. */
4
+ export type StaffInviteMatch = 'mobile' | 'email';
5
+ export type StaffInviteWarning = 'not_in_org' | 'dm_unavailable' | 'dm_failed';
6
+ export declare const STAFF_INVITE_ERROR_CODES: readonly ["provider_unavailable", "key_mismatch", "key_required", "invalid_key", "invalid_contact", "already_member", "ambiguous_account", "invite_exists", "not_pending"];
7
+ export type StaffInviteErrorCode = (typeof STAFF_INVITE_ERROR_CODES)[number];
8
+ export type StaffInvitePosUser = IFdtoPermissionPosUser | null;
9
+ export type StaffInviteDmStatus = 'sent' | 'not_in_org' | 'unsupported' | 'failed';
10
+ export interface IFdtoStaffInviteProvider {
11
+ slug: string;
12
+ label: string;
13
+ type: string;
14
+ inviteMatch: StaffInviteMatch;
15
+ }
16
+ export interface IFdtoStaffInviteGrant {
17
+ permissions: FdoPermissionRule[];
18
+ customPermissions: FdoPermissionRule[];
19
+ permissionSetIds: string[];
20
+ posUser: StaffInvitePosUser;
21
+ }
22
+ export interface IFdtoStaffInvite {
23
+ _id: string;
24
+ businessId: string;
25
+ provider: string;
26
+ match: StaffInviteMatch;
27
+ mobile?: string;
28
+ email?: string;
29
+ /** The other way to reach them; never matched on. */
30
+ contact?: {
31
+ mobile?: string;
32
+ email?: string;
33
+ };
34
+ displayName?: string;
35
+ employeeId?: string | null;
36
+ grant: IFdtoStaffInviteGrant;
37
+ status: 'pending' | 'claiming' | 'claimed' | 'revoked';
38
+ createdBy: string;
39
+ createdAt: string;
40
+ updatedAt: string;
41
+ claimedBy?: string;
42
+ claimedAt?: string;
43
+ claimOutcome?: 'granted' | 'already_member' | 'granted_without_pos';
44
+ posConflict?: {
45
+ restaurantId: string;
46
+ reason: 'passcode_taken';
47
+ }[];
48
+ dm?: {
49
+ status: StaffInviteDmStatus;
50
+ at: string;
51
+ };
52
+ revokedBy?: string;
53
+ revokedAt?: string;
54
+ }
55
+ export interface IFdtoCreateStaffInviteReq {
56
+ provider: string;
57
+ /** The sign-in key; the other of mobile/email is contact only. */
58
+ match: StaffInviteMatch;
59
+ mobile?: string;
60
+ email?: string;
61
+ displayName: string;
62
+ employeeId?: string;
63
+ permissions: FdoPermissionRule[];
64
+ customPermissions: FdoPermissionRule[];
65
+ permissionSetIds?: string[];
66
+ posUser?: StaffInvitePosUser;
67
+ }
68
+ /** The key is fixed: only the mobile/email that isn't the key applies ('' clears it). */
69
+ export type IFdtoUpdateStaffInviteReq = Omit<IFdtoCreateStaffInviteReq, 'provider' | 'match'>;
70
+ /** Who already answers to a sign-in key: a member, or an open invite. */
71
+ export type IFdtoStaffInviteLookup = {
72
+ kind: 'member';
73
+ id: string;
74
+ name: string;
75
+ restaurantCount: number;
76
+ isOwner: boolean;
77
+ } | {
78
+ kind: 'invite';
79
+ id: string;
80
+ name: string;
81
+ restaurantCount: number;
82
+ invite: IFdtoStaffInvite;
83
+ };
84
+ export type IFdtoCreateStaffInviteRes = {
85
+ result: 'added';
86
+ uid: string;
87
+ portalUserId: string;
88
+ warnings: StaffInviteWarning[];
89
+ } | {
90
+ result: 'invited';
91
+ invite: IFdtoStaffInvite;
92
+ warnings: StaffInviteWarning[];
93
+ };
94
+ export interface IFdtoResendStaffInviteRes {
95
+ dm: {
96
+ status: StaffInviteDmStatus;
97
+ at: string;
98
+ };
99
+ warnings: StaffInviteWarning[];
100
+ }
@@ -19,7 +19,12 @@ export interface IFdtoPortalUser extends IPermissionUser {
19
19
  phoneNumber: string;
20
20
  email: string;
21
21
  posUser?: IFdtoPermissionPosUser;
22
+ employeeId?: string | null;
23
+ loginMethod: TeamMemberLoginMethod;
24
+ status: TeamMemberStatus;
22
25
  }
26
+ export type TeamMemberStatus = 'active' | 'invited';
27
+ export type TeamMemberLoginMethod = 'sso' | 'feedme';
23
28
  export interface IFdtoPortalUserPage {
24
29
  items: IFdtoPortalUser[];
25
30
  total: number;
@@ -34,10 +39,16 @@ export interface IFdtoPermissionPosUserRole {
34
39
  restaurantId: string;
35
40
  roleId: string;
36
41
  }
42
+ /** On a member edit `passcode` is sent only when the admin changed it; absent keeps the stored one. */
43
+ export type IFdtoUpdatePermissionPosUser = Omit<IFdtoPermissionPosUser, 'passcode'> & {
44
+ passcode?: string;
45
+ };
37
46
  export interface IFdtoUpdatePortalUserReq {
47
+ /** Absent keeps the stored one; '' clears it. */
48
+ employeeId?: string;
38
49
  /** @deprecated use customPermissions instead */
39
50
  permissions?: FdoPermissionRule[];
40
- posUser?: IFdtoPermissionPosUser | null;
51
+ posUser?: IFdtoUpdatePermissionPosUser | null;
41
52
  permissionSetIds?: string[];
42
53
  customPermissions?: FdoPermissionRule[];
43
54
  }
@@ -49,6 +60,7 @@ export interface IFdtoCreatePortalUserReq {
49
60
  permissionSetIds?: string[];
50
61
  customPermissions: FdoPermissionRule[];
51
62
  name?: string;
63
+ employeeId?: string;
52
64
  posUser?: IFdtoPermissionPosUser | null;
53
65
  }
54
66
  export interface FTeamMember {
@@ -60,6 +72,8 @@ export interface FTeamMember {
60
72
  managableRestaurantIds: string[] | null;
61
73
  permissions: FdoPermissionRule[];
62
74
  permissionLabels: string[];
75
+ status: TeamMemberStatus;
76
+ loginMethod: TeamMemberLoginMethod;
63
77
  doc: IFdtoPortalUser;
64
78
  }
65
79
  export interface IReadTeamMembersPageReq {
@@ -69,6 +83,8 @@ export interface IReadTeamMembersPageReq {
69
83
  restaurantIds?: string[];
70
84
  permissionSubjects?: string[];
71
85
  permissionSetIds?: string[];
86
+ statuses?: TeamMemberStatus[];
87
+ loginMethods?: TeamMemberLoginMethod[];
72
88
  }
73
89
  export interface IFdtoTeamMemberPage {
74
90
  items: FTeamMember[];
@@ -1,5 +1,8 @@
1
1
  import type { FdoTimesheet } from '@feedmepos/core/entity';
2
2
  export interface IFdtoTimesheet extends FdoTimesheet {
3
+ user: FdoTimesheet['user'] & {
4
+ code?: string;
5
+ };
3
6
  restaurantId: string;
4
7
  restaurantName: string;
5
8
  }
@@ -130,7 +130,14 @@ export declare const i18nMessages: {
130
130
  requestPath: string;
131
131
  traceId: string;
132
132
  };
133
+ deepLink: {
134
+ notFound: string;
135
+ loadFailed: string;
136
+ };
133
137
  detail: {
138
+ copyLink: string;
139
+ linkCopied: string;
140
+ linkCopyFailed: string;
134
141
  header: string;
135
142
  date: string;
136
143
  timestamp: string;
@@ -257,6 +264,9 @@ export declare const i18nMessages: {
257
264
  update: string;
258
265
  delete: string;
259
266
  "generate-passcode": string;
267
+ invite: string;
268
+ "invite-update": string;
269
+ "invite-revoke": string;
260
270
  };
261
271
  "pos-user": {
262
272
  list: string;
@@ -477,7 +487,14 @@ export declare const i18nMessages: {
477
487
  requestPath: string;
478
488
  traceId: string;
479
489
  };
490
+ deepLink: {
491
+ notFound: string;
492
+ loadFailed: string;
493
+ };
480
494
  detail: {
495
+ copyLink: string;
496
+ linkCopied: string;
497
+ linkCopyFailed: string;
481
498
  header: string;
482
499
  date: string;
483
500
  timestamp: string;
@@ -605,6 +622,9 @@ export declare const i18nMessages: {
605
622
  update: string;
606
623
  delete: string;
607
624
  "generate-passcode": string;
625
+ invite: string;
626
+ "invite-update": string;
627
+ "invite-revoke": string;
608
628
  };
609
629
  "pos-user": {
610
630
  list: string;
@@ -825,7 +845,14 @@ export declare const i18nMessages: {
825
845
  requestPath: string;
826
846
  traceId: string;
827
847
  };
848
+ deepLink: {
849
+ notFound: string;
850
+ loadFailed: string;
851
+ };
828
852
  detail: {
853
+ copyLink: string;
854
+ linkCopied: string;
855
+ linkCopyFailed: string;
829
856
  header: string;
830
857
  date: string;
831
858
  timestamp: string;
@@ -953,6 +980,9 @@ export declare const i18nMessages: {
953
980
  update: string;
954
981
  delete: string;
955
982
  "generate-passcode": string;
983
+ invite: string;
984
+ "invite-update": string;
985
+ "invite-revoke": string;
956
986
  };
957
987
  "pos-user": {
958
988
  list: string;
@@ -1173,7 +1203,14 @@ export declare const i18nMessages: {
1173
1203
  requestPath: string;
1174
1204
  traceId: string;
1175
1205
  };
1206
+ deepLink: {
1207
+ notFound: string;
1208
+ loadFailed: string;
1209
+ };
1176
1210
  detail: {
1211
+ copyLink: string;
1212
+ linkCopied: string;
1213
+ linkCopyFailed: string;
1177
1214
  header: string;
1178
1215
  date: string;
1179
1216
  timestamp: string;
@@ -1301,6 +1338,9 @@ export declare const i18nMessages: {
1301
1338
  update: string;
1302
1339
  delete: string;
1303
1340
  "generate-passcode": string;
1341
+ invite: string;
1342
+ "invite-update": string;
1343
+ "invite-revoke": string;
1304
1344
  };
1305
1345
  "pos-user": {
1306
1346
  list: string;
@@ -0,0 +1,19 @@
1
+ import { type Ref } from 'vue';
2
+ import type { AuditLogEntry } from '@/types/audit-log';
3
+ interface Options {
4
+ logs: Ref<AuditLogEntry[]>;
5
+ selectedLog: Ref<AuditLogEntry | null>;
6
+ isSheetOpen: Ref<boolean>;
7
+ /** Current business id; the lookup waits until this is available. */
8
+ businessId: () => string | undefined;
9
+ }
10
+ /**
11
+ * Keeps the open request-log side sheet in sync with `?traceId=` in the URL, so a log can
12
+ * be shared as a link (and survives reload / back / forward).
13
+ */
14
+ export declare function useTraceIdDeepLink({ logs, selectedLog, isSheetOpen, businessId }: Options): {
15
+ onSheetOpened: (row: AuditLogEntry) => void;
16
+ onSheetClosed: () => void;
17
+ copyLink: () => Promise<void>;
18
+ };
19
+ export {};
@@ -134,7 +134,7 @@ export declare const i18nMessages: {
134
134
  deposit: string;
135
135
  delivery: string;
136
136
  counterRecord: string;
137
- restaurantSetting: string;
137
+ setting: string;
138
138
  display: string;
139
139
  printer: string;
140
140
  table: string;
@@ -160,6 +160,11 @@ export declare const i18nMessages: {
160
160
  "report:timesheet": string;
161
161
  "report:counterPayment": string;
162
162
  };
163
+ addTitle: string;
164
+ permissionsSubtitle: string;
165
+ namePlaceholder: string;
166
+ permissionAllowed: string;
167
+ permissionsAllowed: string;
163
168
  };
164
169
  noData: {
165
170
  title: string;
@@ -342,7 +347,7 @@ export declare const i18nMessages: {
342
347
  deposit: string;
343
348
  delivery: string;
344
349
  counterRecord: string;
345
- restaurantSetting: string;
350
+ setting: string;
346
351
  display: string;
347
352
  printer: string;
348
353
  table: string;
@@ -368,6 +373,11 @@ export declare const i18nMessages: {
368
373
  "report:timesheet": string;
369
374
  "report:counterPayment": string;
370
375
  };
376
+ addTitle: string;
377
+ permissionsSubtitle: string;
378
+ namePlaceholder: string;
379
+ permissionAllowed: string;
380
+ permissionsAllowed: string;
371
381
  };
372
382
  noData: {
373
383
  title: string;
@@ -550,7 +560,7 @@ export declare const i18nMessages: {
550
560
  deposit: string;
551
561
  delivery: string;
552
562
  counterRecord: string;
553
- restaurantSetting: string;
563
+ setting: string;
554
564
  display: string;
555
565
  printer: string;
556
566
  table: string;
@@ -576,6 +586,11 @@ export declare const i18nMessages: {
576
586
  "report:timesheet": string;
577
587
  "report:counterPayment": string;
578
588
  };
589
+ addTitle: string;
590
+ permissionsSubtitle: string;
591
+ namePlaceholder: string;
592
+ permissionAllowed: string;
593
+ permissionsAllowed: string;
579
594
  };
580
595
  noData: {
581
596
  title: string;
@@ -757,7 +772,7 @@ export declare const i18nMessages: {
757
772
  deposit: string;
758
773
  delivery: string;
759
774
  counterRecord: string;
760
- restaurantSetting: string;
775
+ setting: string;
761
776
  display: string;
762
777
  printer: string;
763
778
  table: string;
@@ -783,6 +798,11 @@ export declare const i18nMessages: {
783
798
  "report:timesheet": string;
784
799
  "report:counterPayment": string;
785
800
  };
801
+ addTitle: string;
802
+ permissionsSubtitle: string;
803
+ namePlaceholder: string;
804
+ permissionAllowed: string;
805
+ permissionsAllowed: string;
786
806
  };
787
807
  noData: {
788
808
  title: string;
@@ -1,17 +1,44 @@
1
+ import { type PropType } from 'vue';
1
2
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
3
  id: {
3
4
  type: StringConstructor;
4
5
  default: undefined;
5
6
  };
7
+ /** Outlets ticked when creating a role (the member sheet passes the row's outlets). */
8
+ restaurantIds: {
9
+ type: PropType<string[]>;
10
+ default: () => never[];
11
+ };
12
+ /** Opened over another sheet: a back arrow returns to it. */
13
+ showBack: {
14
+ type: BooleanConstructor;
15
+ default: boolean;
16
+ };
6
17
  }>, {
7
18
  show: import("vue").Ref<boolean, boolean>;
8
19
  trigger: () => void;
9
- }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
20
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
21
+ created: (roleId: string) => any;
22
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
10
23
  id: {
11
24
  type: StringConstructor;
12
25
  default: undefined;
13
26
  };
14
- }>> & Readonly<{}>, {
27
+ /** Outlets ticked when creating a role (the member sheet passes the row's outlets). */
28
+ restaurantIds: {
29
+ type: PropType<string[]>;
30
+ default: () => never[];
31
+ };
32
+ /** Opened over another sheet: a back arrow returns to it. */
33
+ showBack: {
34
+ type: BooleanConstructor;
35
+ default: boolean;
36
+ };
37
+ }>> & Readonly<{
38
+ onCreated?: ((roleId: string) => any) | undefined;
39
+ }>, {
15
40
  id: string;
41
+ restaurantIds: string[];
42
+ showBack: boolean;
16
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
17
44
  export default _default;
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: import("vue").DefineComponent<{}, {
2
+ open: (code: string, as?: "changed" | "generated") => void;
3
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ export default _default;
@@ -0,0 +1,236 @@
1
+ import * as enUS from './en-US.json';
2
+ export type AppMessagesSchema = typeof enUS;
3
+ export declare const i18nMessages: {
4
+ 'en-US': {
5
+ myPosProfile: {
6
+ title: string;
7
+ subtitle: string;
8
+ table: {
9
+ columns: {
10
+ name: string;
11
+ contact: string;
12
+ restaurant: string;
13
+ role: string;
14
+ };
15
+ };
16
+ passcode: {
17
+ title: string;
18
+ updated: string;
19
+ updatedJustNow: string;
20
+ show: string;
21
+ hide: string;
22
+ change: string;
23
+ empty: string;
24
+ emptyHint: string;
25
+ generate: string;
26
+ };
27
+ change: {
28
+ title: string;
29
+ message: string;
30
+ failed: string;
31
+ exhausted: string;
32
+ inProgress: string;
33
+ incomplete: string;
34
+ };
35
+ generate: {
36
+ failed: string;
37
+ };
38
+ changed: {
39
+ title: string;
40
+ message: string;
41
+ done: string;
42
+ };
43
+ generated: {
44
+ title: string;
45
+ message: string;
46
+ };
47
+ manageAccount: {
48
+ message: string;
49
+ link: string;
50
+ failed: string;
51
+ };
52
+ noPosUser: {
53
+ title: string;
54
+ description: string;
55
+ };
56
+ loadFailed: string;
57
+ shared: {
58
+ message: string;
59
+ };
60
+ };
61
+ };
62
+ 'zh-CN': {
63
+ myPosProfile: {
64
+ title: string;
65
+ subtitle: string;
66
+ table: {
67
+ columns: {
68
+ name: string;
69
+ contact: string;
70
+ restaurant: string;
71
+ role: string;
72
+ };
73
+ };
74
+ passcode: {
75
+ title: string;
76
+ updated: string;
77
+ updatedJustNow: string;
78
+ show: string;
79
+ hide: string;
80
+ change: string;
81
+ empty: string;
82
+ emptyHint: string;
83
+ generate: string;
84
+ };
85
+ change: {
86
+ title: string;
87
+ message: string;
88
+ failed: string;
89
+ exhausted: string;
90
+ inProgress: string;
91
+ incomplete: string;
92
+ };
93
+ generate: {
94
+ failed: string;
95
+ };
96
+ changed: {
97
+ title: string;
98
+ message: string;
99
+ done: string;
100
+ };
101
+ generated: {
102
+ title: string;
103
+ message: string;
104
+ };
105
+ manageAccount: {
106
+ message: string;
107
+ link: string;
108
+ failed: string;
109
+ };
110
+ noPosUser: {
111
+ title: string;
112
+ description: string;
113
+ };
114
+ loadFailed: string;
115
+ shared: {
116
+ message: string;
117
+ };
118
+ };
119
+ };
120
+ 'th-TH': {
121
+ myPosProfile: {
122
+ title: string;
123
+ subtitle: string;
124
+ table: {
125
+ columns: {
126
+ name: string;
127
+ contact: string;
128
+ restaurant: string;
129
+ role: string;
130
+ };
131
+ };
132
+ passcode: {
133
+ title: string;
134
+ updated: string;
135
+ updatedJustNow: string;
136
+ show: string;
137
+ hide: string;
138
+ change: string;
139
+ empty: string;
140
+ emptyHint: string;
141
+ generate: string;
142
+ };
143
+ change: {
144
+ title: string;
145
+ message: string;
146
+ failed: string;
147
+ exhausted: string;
148
+ inProgress: string;
149
+ incomplete: string;
150
+ };
151
+ generate: {
152
+ failed: string;
153
+ };
154
+ changed: {
155
+ title: string;
156
+ message: string;
157
+ done: string;
158
+ };
159
+ generated: {
160
+ title: string;
161
+ message: string;
162
+ };
163
+ manageAccount: {
164
+ message: string;
165
+ link: string;
166
+ failed: string;
167
+ };
168
+ noPosUser: {
169
+ title: string;
170
+ description: string;
171
+ };
172
+ loadFailed: string;
173
+ shared: {
174
+ message: string;
175
+ };
176
+ };
177
+ };
178
+ 'zh-Hant': {
179
+ myPosProfile: {
180
+ title: string;
181
+ subtitle: string;
182
+ table: {
183
+ columns: {
184
+ name: string;
185
+ contact: string;
186
+ restaurant: string;
187
+ role: string;
188
+ };
189
+ };
190
+ passcode: {
191
+ title: string;
192
+ updated: string;
193
+ updatedJustNow: string;
194
+ show: string;
195
+ hide: string;
196
+ change: string;
197
+ empty: string;
198
+ emptyHint: string;
199
+ generate: string;
200
+ };
201
+ change: {
202
+ title: string;
203
+ message: string;
204
+ failed: string;
205
+ exhausted: string;
206
+ inProgress: string;
207
+ incomplete: string;
208
+ };
209
+ generate: {
210
+ failed: string;
211
+ };
212
+ changed: {
213
+ title: string;
214
+ message: string;
215
+ done: string;
216
+ };
217
+ generated: {
218
+ title: string;
219
+ message: string;
220
+ };
221
+ manageAccount: {
222
+ message: string;
223
+ link: string;
224
+ failed: string;
225
+ };
226
+ noPosUser: {
227
+ title: string;
228
+ description: string;
229
+ };
230
+ loadFailed: string;
231
+ shared: {
232
+ message: string;
233
+ };
234
+ };
235
+ };
236
+ };
@@ -21,7 +21,7 @@ export interface ScheduleOnboardingAvailabilityOptions {
21
21
  }
22
22
  export declare function useScheduleOnboardingAvailability(options: ScheduleOnboardingAvailabilityOptions): {
23
23
  avail: Record<number, AvailRow>;
24
- avTab: import("vue").Ref<"full" | "part", "full" | "part">;
24
+ avTab: import("vue").Ref<"part" | "full", "part" | "full">;
25
25
  avPicked: Record<number, boolean>;
26
26
  avVary: Record<number, boolean>;
27
27
  avBulkOpen: import("vue").Ref<boolean, boolean>;
@@ -726,7 +726,7 @@ export declare function useScheduleOnboardingWizard(board: ScheduleBoardApi, add
726
726
  reviewRows: import("vue").ComputedRef<ReviewRow[]>;
727
727
  goTo: (target: ScheduleOnboardingStep) => void;
728
728
  avail: Record<number, import("./onboarding-types").AvailRow>;
729
- avTab: import("vue").Ref<"full" | "part", "full" | "part">;
729
+ avTab: import("vue").Ref<"part" | "full", "part" | "full">;
730
730
  avPicked: Record<number, boolean>;
731
731
  avBulkOpen: import("vue").Ref<boolean, boolean>;
732
732
  avBulk: {
@@ -28,7 +28,7 @@ export declare function useScheduleShiftDraft(): {
28
28
  positionId: import("vue").Ref<string | undefined, string | undefined>;
29
29
  required: import("vue").Ref<number, number>;
30
30
  sen: import("vue").Ref<"" | "senior" | "junior", "" | "senior" | "junior">;
31
- empType: import("vue").Ref<"" | "full" | "part", "" | "full" | "part">;
31
+ empType: import("vue").Ref<"" | "part" | "full", "" | "part" | "full">;
32
32
  roles: import("vue").Ref<{
33
33
  position: string;
34
34
  count: number;