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

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 (134) hide show
  1. package/dist/{ApprovalCodeList-cG0zmQVJ.js → ApprovalCodeList-CJaNPHZC.js} +2 -2
  2. package/dist/{AuditLogList-BTifJhO1.js → AuditLogList-CHA98ZqW.js} +3 -3
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-qr5TwLTK.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C7rvthEI.js} +2 -2
  4. package/dist/{EmployeeList-DzcMtxJ3.js → EmployeeList-CVmMKt71.js} +4 -4
  5. package/dist/{GrantUserList-D5b7tJ8Y.js → GrantUserList-MYjgt5-F.js} +3 -3
  6. package/dist/{Main-DkLBemi7.js → Main-BgB9lD4K.js} +9 -9
  7. package/dist/{Main-DFwdAWqn.js → Main-C0cnqQ3B.js} +5 -5
  8. package/dist/{Main-B2r59IOW.js → Main-hlcHtrsc.js} +2 -2
  9. package/dist/{PermissionSetList-B80hrfMW.js → PermissionSetList-5f1WIaVa.js} +5 -5
  10. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DjNcJQM9.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CFoTAGIX.js} +823 -823
  11. package/dist/{RoleList-DHO4JRKF.js → RoleList-DNR4miXr.js} +7 -7
  12. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B4VUyKW3.js +470 -0
  13. package/dist/{ScheduleGeneralPage-WlBM8bxV.js → ScheduleGeneralPage-Cd5AlY4z.js} +273 -236
  14. package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-Cf0l2MRg.js +2188 -0
  15. package/dist/SchedulePage-C8m0-m3l.js +18257 -0
  16. package/dist/{SchedulePositionPage-C0hrO11d.js → SchedulePositionPage-DyRckyUx.js} +67 -66
  17. package/dist/{TeamMemberList-CgFWLRBM.js → TeamMemberList-mw5OveZG.js} +6 -6
  18. package/dist/{TimesheetList-Dp40G-0I.js → TimesheetList-BzXarZbM.js} +5 -5
  19. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BFjrMhUG.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dq5i4poN.js} +2 -2
  20. package/dist/{app-CmBSTvaI.js → app-DSsdRLHg.js} +657 -577
  21. package/dist/app.js +1 -1
  22. package/dist/{dayjs.min-CfL2DQ3d.js → dayjs.min-B6xBXQtU.js} +1 -1
  23. package/dist/{employee-DQcHjoij.js → employee-hMhzuqk1.js} +28 -27
  24. package/dist/{iteration-BlavheWG.js → iteration-B34AvpNC.js} +1 -1
  25. package/dist/{lodash-QerqayrJ.js → lodash-1Vyuy7Mu.js} +1 -1
  26. package/dist/{role-RM2YLO7n.js → role-DKOrgO6f.js} +1 -1
  27. package/dist/{rule-DjlvYIuP.js → rule-CBzQ3GeV.js} +2 -2
  28. package/dist/src/api/schedule/index.d.ts +5 -1
  29. package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
  30. package/dist/src/types/employee.d.ts +1 -0
  31. package/dist/src/types/schedule.d.ts +1 -1
  32. package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +28 -0
  33. package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +19 -0
  34. package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +38 -0
  35. package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +24 -0
  36. package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +38 -0
  37. package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +25 -0
  38. package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
  39. package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +39 -0
  40. package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
  41. package/dist/src/views/scheduling/components/{ScheduleOnboardingComplete.vue.d.ts → ScheduleCompletionDialog.vue.d.ts} +8 -3
  42. package/dist/src/views/scheduling/components/{ScheduleOpenShiftCardMenu.vue.d.ts → ScheduleContextMenu.vue.d.ts} +10 -3
  43. package/dist/src/views/scheduling/components/{SchedulePdfPreview.vue.d.ts → ScheduleExportPreview.vue.d.ts} +1 -0
  44. package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +10 -0
  45. package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
  46. package/dist/src/views/scheduling/components/{ScheduleTourAllSet.vue.d.ts → ScheduleOnboardingClosedDayConfirm.vue.d.ts} +2 -2
  47. package/dist/src/views/scheduling/components/{ScheduleEmployeeMenu.vue.d.ts → ScheduleOnboardingDemandDays.vue.d.ts} +2 -2
  48. package/dist/src/views/scheduling/components/{ScheduleExportDoneDialog.vue.d.ts → ScheduleOnboardingDemandFooter.vue.d.ts} +2 -2
  49. package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
  50. package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
  51. package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
  52. package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
  53. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
  54. package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
  55. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +7 -1
  56. package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
  57. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -2
  58. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -4
  59. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +2 -2
  60. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +3 -3
  61. package/dist/src/views/scheduling/composables/onboarding-types.d.ts +1 -1
  62. package/dist/src/views/scheduling/composables/remyPrompt.d.ts +13 -0
  63. package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +1 -1
  64. package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +7 -1
  65. package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +7 -0
  66. package/dist/src/views/scheduling/composables/schedule-cost.d.ts +19 -0
  67. package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +11 -0
  68. package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
  69. package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
  70. package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +1 -4
  71. package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +10 -0
  72. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +14 -13
  73. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +3 -1
  74. package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
  75. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +18 -2
  76. package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +3 -1
  77. package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +6 -1
  78. package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +1 -1
  79. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +4 -19
  80. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +13 -2
  81. package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +11 -0
  82. package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
  83. package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +26 -0
  84. package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
  85. package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
  86. package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +9 -0
  87. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +6 -3
  88. package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +25 -0
  89. package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +18 -0
  90. package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +19 -11
  91. package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +3 -6
  92. package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
  93. package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
  94. package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +187 -0
  95. package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
  96. package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
  97. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +64 -487
  98. package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
  99. package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
  100. package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +18 -0
  101. package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
  102. package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +10 -3
  103. package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
  104. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +3 -1
  105. package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +3 -1
  106. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +7 -1
  107. package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
  108. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +6 -0
  109. package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +2 -24
  110. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +6 -1
  111. package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +62 -0
  112. package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
  113. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +10 -5
  114. package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +4 -1
  115. package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +6 -4
  116. package/dist/src/views/scheduling/country-rules/index.d.ts +24 -0
  117. package/dist/src/views/scheduling/data.d.ts +11 -6
  118. package/dist/src/views/scheduling/locales/index.d.ts +80 -0
  119. package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
  120. package/dist/src/views/scheduling/schedule-state.d.ts +32 -8
  121. package/dist/src/views/scheduling/schedule-store.d.ts +4 -1
  122. package/dist/src/views/scheduling/types.d.ts +5 -0
  123. package/dist/style.css +1 -1
  124. package/dist/tsconfig.app.tsbuildinfo +1 -1
  125. package/dist/{useReportPermissions-Bl6Br79r.js → useReportPermissions-B2ev0j4w.js} +3 -3
  126. package/package.json +2 -1
  127. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B-XtB64L.js +0 -452
  128. package/dist/SchedulePage-Nm0krGVU.js +0 -17056
  129. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-DTDXir_7.js +0 -1150
  130. package/dist/src/components/layout/AppSidebar.vue.d.ts +0 -2
  131. package/dist/src/components/layout/withShell.d.ts +0 -14
  132. package/dist/src/views/scheduling/components/ScheduleShiftCardMenu.vue.d.ts +0 -12
  133. package/dist/src/views/scheduling/composables/useScheduleStaffRail.d.ts +0 -17
  134. package/dist/src/views/scheduling/composables/useScheduleTopbar.d.ts +0 -10
@@ -1,6 +1,6 @@
1
- import type { ScheduleEmployeeMenuApi } from '../composables/useScheduleEmployeeMenu';
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
2
  type __VLS_Props = {
3
- menu: ScheduleEmployeeMenuApi;
3
+ wizard: ScheduleOnboardingWizardApi;
4
4
  };
5
5
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
6
  export default _default;
@@ -1,6 +1,6 @@
1
- import type { ScheduleExportApi } from '../composables/useScheduleExport';
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
2
  type __VLS_Props = {
3
- exportApi: ScheduleExportApi;
3
+ wizard: ScheduleOnboardingWizardApi;
4
4
  };
5
5
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
6
  export default _default;
@@ -0,0 +1,6 @@
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ type __VLS_Props = {
3
+ wizard: ScheduleOnboardingWizardApi;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,10 @@
1
+ type __VLS_Props = {
2
+ outletName: string;
3
+ hoursMatchProfile: boolean;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ reset: () => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onReset?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ type __VLS_Props = {
3
+ wizard: ScheduleOnboardingWizardApi;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ type __VLS_Props = {
3
+ wizard: ScheduleOnboardingWizardApi;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ type __VLS_Props = {
3
+ wizard: ScheduleOnboardingWizardApi;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ type __VLS_Props = {
3
+ wizard: ScheduleOnboardingWizardApi;
4
+ outletName: string;
5
+ };
6
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ close: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onClose?: (() => any) | undefined;
10
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ export default _default;
@@ -29,6 +29,8 @@ declare const _default: import("vue").DefineComponent<{
29
29
  menuTitle?: string;
30
30
  /** A filter box at the top of the menu, for lists long enough to hunt through (outlets). */
31
31
  searchable?: boolean;
32
+ /** Disable body teleporting for SSR or tests that want to keep the menu in the component tree. */
33
+ teleport?: boolean;
32
34
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
33
35
  toggle: (value: string) => any;
34
36
  "update:modelValue": (value: string) => any;
@@ -47,8 +49,12 @@ declare const _default: import("vue").DefineComponent<{
47
49
  menuTitle?: string;
48
50
  /** A filter box at the top of the menu, for lists long enough to hunt through (outlets). */
49
51
  searchable?: boolean;
52
+ /** Disable body teleporting for SSR or tests that want to keep the menu in the component tree. */
53
+ teleport?: boolean;
50
54
  }> & Readonly<{
51
55
  onToggle?: ((value: string) => any) | undefined;
52
56
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
53
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
57
+ }>, {
58
+ teleport: boolean;
59
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
54
60
  export default _default;
@@ -0,0 +1,12 @@
1
+ type __VLS_Props = {
2
+ open: boolean;
3
+ outletName: string;
4
+ };
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ setup: () => any;
7
+ dismiss: () => any;
8
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
9
+ onSetup?: (() => any) | undefined;
10
+ onDismiss?: (() => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ export default _default;
@@ -7,10 +7,10 @@ type __VLS_Props = {
7
7
  timePicker: ScheduleTimePickerApi;
8
8
  };
9
9
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
10
- newPosition: (assign: (name: string) => void) => any;
11
10
  swap: (empId: number, dayIdx: number) => any;
11
+ newPosition: (assign: (name: string) => void) => any;
12
12
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
- onNewPosition?: ((assign: (name: string) => void) => any) | undefined;
14
13
  onSwap?: ((empId: number, dayIdx: number) => any) | undefined;
14
+ onNewPosition?: ((assign: (name: string) => void) => any) | undefined;
15
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
16
  export default _default;
@@ -1,16 +1,16 @@
1
- import type { ScheduleStaffRailApi } from '../composables/useScheduleStaffRail';
1
+ import type { ScheduleCostRailApi } from '../composables/useScheduleCostRail';
2
2
  import type { ScheduleAreaDragDropApi } from '../composables/useScheduleAreaDragDrop';
3
3
  type __VLS_Props = {
4
- rail: ScheduleStaffRailApi;
4
+ rail: ScheduleCostRailApi;
5
5
  dragDrop: ScheduleAreaDragDropApi;
6
6
  };
7
7
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ addEmployee: () => any;
8
9
  openEmployee: (empId: number) => any;
9
10
  openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
10
- addEmployee: () => any;
11
11
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onAddEmployee?: (() => any) | undefined;
12
13
  onOpenEmployee?: ((empId: number) => any) | undefined;
13
14
  onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
14
- onAddEmployee?: (() => any) | undefined;
15
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
16
  export default _default;
@@ -15,6 +15,7 @@ type __VLS_Props = {
15
15
  proposalAt?: (empId: number, dayIdx: number) => Proposal | undefined;
16
16
  };
17
17
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
18
+ addEmployee: () => any;
18
19
  addShift: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
19
20
  editShift: (empId: number, dayIdx: number, slotIndex?: number | undefined) => any;
20
21
  editLeave: (empId: number, dayIdx: number) => any;
@@ -33,9 +34,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
33
34
  openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
34
35
  dragShiftStart: (empId: number, dayIdx: number, ev: DragEvent, slotIndex: number) => any;
35
36
  dropOnCell: (empId: number, dayIdx: number, ev: DragEvent) => any;
36
- addEmployee: () => any;
37
37
  openDemandSheet: (dayIdx: number) => any;
38
38
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
39
+ onAddEmployee?: (() => any) | undefined;
39
40
  onAddShift?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
40
41
  onEditShift?: ((empId: number, dayIdx: number, slotIndex?: number | undefined) => any) | undefined;
41
42
  onEditLeave?: ((empId: number, dayIdx: number) => any) | undefined;
@@ -54,7 +55,6 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
54
55
  onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
55
56
  onDragShiftStart?: ((empId: number, dayIdx: number, ev: DragEvent, slotIndex: number) => any) | undefined;
56
57
  onDropOnCell?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
57
- onAddEmployee?: (() => any) | undefined;
58
58
  onOpenDemandSheet?: ((dayIdx: number) => any) | undefined;
59
59
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
60
60
  export default _default;
@@ -1,5 +1,5 @@
1
1
  import type { ScheduleBoardApi } from '../composables/useScheduleBoard';
2
- import type { ScheduleTopbarApi } from '../composables/useScheduleTopbar';
2
+ import type { ScheduleTopbarApi } from '../composables/useSchedulePageOverlays';
3
3
  import type { ScheduleAutoScheduleApi } from '../composables/useScheduleAutoSchedule';
4
4
  import type { ScheduleCopyWeekApi } from '../composables/useScheduleCopyWeek';
5
5
  import type { ScheduleExportApi } from '../composables/useScheduleExport';
@@ -11,10 +11,10 @@ type __VLS_Props = {
11
11
  exportApi: ScheduleExportApi;
12
12
  };
13
13
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
14
- clear: (kind: "shifts" | "both" | "demand") => any;
14
+ clear: (kind: "shifts" | "demand" | "both") => any;
15
15
  "sch-status-click": () => any;
16
16
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
17
- onClear?: ((kind: "shifts" | "both" | "demand") => any) | undefined;
17
+ onClear?: ((kind: "shifts" | "demand" | "both") => any) | undefined;
18
18
  "onSch-status-click"?: (() => any) | undefined;
19
19
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
20
  export default _default;
@@ -1,4 +1,4 @@
1
- export type ScheduleOnboardingStep = 'hours' | 'staffing' | 'positions' | 'team' | 'availability' | 'review';
1
+ export type ScheduleOnboardingStep = 'hours' | 'staffing' | 'positions' | 'employees' | 'availability' | 'review';
2
2
  export interface ScheduleOnboardingSession {
3
3
  from: string;
4
4
  to: string;
@@ -0,0 +1,13 @@
1
+ export type RemyDemandScope = {
2
+ mode: 'day';
3
+ isoDate: string;
4
+ label: string;
5
+ } | {
6
+ mode: 'weekday';
7
+ weekday: string;
8
+ } | {
9
+ mode: 'weekdays';
10
+ };
11
+ /** The sentence prefilled into the host Remy panel. Names the outlet the way a manager knows it;
12
+ * Remy resolves it to an id itself (hrm_find_outlet), so no identifier appears in the text. */
13
+ export declare function remyDemandPrompt(outletName: string, scope: RemyDemandScope): string;
@@ -1,8 +1,8 @@
1
1
  import type { DaySlot, Employee, LeaveSlot, WorkSlot } from '../types';
2
2
  import type { FdtoScheduleSaveAssignmentReq } from '@/types/schedule';
3
+ export { isoDateKey } from './schedule-calendar';
3
4
  /** dayjs-free local-date key — matches on the browser's local Y/M/D, not UTC, so this stays
4
5
  * correct regardless of timezone. */
5
- export declare function isoDateKey(d: Date): string;
6
6
  export declare function isWorkSlot(slot: DaySlot): slot is WorkSlot;
7
7
  export declare function isLeaveSlot(slot: DaySlot): slot is LeaveSlot;
8
8
  export declare function workSlotsOf(day: DaySlot): WorkSlot[];
@@ -1,3 +1,9 @@
1
1
  import type { FdtoScheduleBreak } from '@/types/schedule';
2
- export declare function breakMinutesOf(breaks: FdtoScheduleBreak[] | undefined): number;
2
+ import type { WorkSlot } from '../types';
3
+ type BreakSource = FdtoScheduleBreak[] | Pick<WorkSlot, 'breaks' | 'breakMins'> | undefined;
4
+ export declare function breakMinutesOf(source: BreakSource): number;
5
+ /** Net paid minutes. Legacy board slots only have `breakMins`; persisted slots use the richer
6
+ * break array, so both representations pass through this function. */
7
+ export declare function paidMinutesOf(slot: Pick<WorkSlot, 'start' | 'end' | 'breaks' | 'breakMins'>, gross?: number): number;
3
8
  export declare function durationBreaksOf(minutes: number | undefined): FdtoScheduleBreak[];
9
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare const RANGE_LEN = 7;
2
+ export declare function isoDateKey(date: Date): string;
3
+ export declare function addDays(date: Date, days: number): Date;
4
+ export declare function mostRecentMonday(from: Date): Date;
5
+ export declare function weekDates(offset: number, from?: Date): Date[];
6
+ export declare function weeksBetween(a: Date, b: Date): number;
7
+ export declare function todayWeekdayIdx(): number;
@@ -0,0 +1,19 @@
1
+ import type { Employee, WorkSlot } from '../types';
2
+ export interface ScheduleCostBreakdown {
3
+ hours: number;
4
+ overtimeHours: number;
5
+ baseCost: number;
6
+ overtimeCost: number;
7
+ totalCost: number;
8
+ }
9
+ export declare function costOfSlot(slot: WorkSlot, rate: number, multiplier: number): {
10
+ hours: number;
11
+ cost: number;
12
+ };
13
+ /** Splits a sequence of paid shift minutes at the employee's contract line. This is the single
14
+ * overtime/cost calculation used by rails and exports; callers provide the applicable pay rate
15
+ * multiplier for each slot. */
16
+ export declare function costOfSlots(employee: Employee, slots: Array<{
17
+ slot: WorkSlot;
18
+ multiplier: number;
19
+ }>): ScheduleCostBreakdown;
@@ -0,0 +1,11 @@
1
+ import type { DemandPeriod } from '../types';
2
+ import { format12h as t12, formatShortMinutes as minToShort, fromMinutes as minToHHMM, spanMinutes as spanOf, toMinutes as toMin } from './schedule-time';
3
+ export { minToHHMM, minToShort, spanOf, t12, toMin };
4
+ export declare function rangeText(from: number, to: number): string;
5
+ export declare function roleTotalOf(period: DemandPeriod): number;
6
+ /** The unnamed part of a period's headcount. Derived so it cannot disagree with the total. */
7
+ export declare function anyLeftOf(period: DemandPeriod): number;
8
+ export interface ScheduleCoverageAxis {
9
+ from: number;
10
+ to: number;
11
+ }
@@ -0,0 +1,14 @@
1
+ export interface ExportShiftCell {
2
+ note: string;
3
+ shifts: {
4
+ when: string;
5
+ pos: string;
6
+ }[];
7
+ }
8
+ export declare function esc(value: string | number): string;
9
+ export declare function cellText(value: string | ExportShiftCell): string;
10
+ export declare function dayCellLines(value: ExportShiftCell): {
11
+ text: string;
12
+ kind: 'note' | 'when' | 'pos';
13
+ }[];
14
+ export declare function dayHeaderLabel(date: Date): string;
@@ -0,0 +1,8 @@
1
+ /** Shared clock arithmetic for the scheduling board. All spans are minutes from midnight;
2
+ * an end at or before the start is treated as an overnight end on the following day. */
3
+ export declare function toMinutes(value: string): number;
4
+ export declare function fromMinutes(value: number): string;
5
+ export declare function spanMinutes(start: string, end: string): [number, number];
6
+ export declare function durationMinutes(start: string, end: string): number;
7
+ export declare function format12h(value: string): string;
8
+ export declare function formatShortMinutes(value: number): string;
@@ -1,8 +1,5 @@
1
1
  import type { Employee, OpenShift } from '../types';
2
- export declare const RANGE_LEN = 7;
3
- export declare function mostRecentMonday(from: Date): Date;
4
- export declare function weekDates(offset: number): Date[];
5
- export declare function weeksBetween(a: Date, b: Date): number;
2
+ export { RANGE_LEN, mostRecentMonday, weekDates, weeksBetween } from './schedule-calendar';
6
3
  export interface WeekBucket {
7
4
  employees: Employee[];
8
5
  openShifts: OpenShift[];
@@ -0,0 +1,10 @@
1
+ import { useAppStore } from '@feedmepos/mf-remy-panel';
2
+ export interface RemyActivateOptions {
3
+ prompt?: string;
4
+ forceNewConversation?: boolean;
5
+ }
6
+ export interface RemyAppStoreApi {
7
+ store: ReturnType<typeof useAppStore>;
8
+ activate: (options: RemyActivateOptions) => Promise<void>;
9
+ }
10
+ export declare function useRemyAppStore(): RemyAppStoreApi;
@@ -1,4 +1,3 @@
1
- import type { Role } from '@/types/role';
2
1
  import type { Employee } from '../types';
3
2
  import type { ScheduleBoardApi } from './useScheduleBoard';
4
3
  import { type ScheduleAddEmployeeMode, type ScheduleAddEmployeeStep } from './schedule-add-employee-form';
@@ -6,7 +5,9 @@ export type { ScheduleAddEmployeeForm, ScheduleAddEmployeeMode, ScheduleAddEmplo
6
5
  /** Add-employee wizard: a "how do you want to add them" step, then one detail form covering
7
6
  * identity, locations, pay, scheduling caps, availability, positions and POS access — plus
8
7
  * the "select existing POS staff" side dialog the first step can hand off to. */
9
- export declare function useScheduleAddEmployee(board: ScheduleBoardApi): {
8
+ export declare function useScheduleAddEmployee(board: ScheduleBoardApi, options?: {
9
+ notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
10
+ }): {
10
11
  open: import("vue").Ref<boolean, boolean>;
11
12
  selectExistingOpen: import("vue").Ref<boolean, boolean>;
12
13
  step: import("vue").Ref<ScheduleAddEmployeeStep, ScheduleAddEmployeeStep>;
@@ -46,7 +47,7 @@ export declare function useScheduleAddEmployee(board: ScheduleBoardApi): {
46
47
  secOpen: import("vue").Ref<boolean, boolean>;
47
48
  secondaryOptions: import("vue").ComputedRef<string[]>;
48
49
  isPart: import("vue").ComputedRef<boolean>;
49
- dayLit: (i: number) => boolean;
50
+ dayLit: (index: number) => boolean;
50
51
  avLabel: import("vue").ComputedRef<"Weekly availability" | "Time off days">;
51
52
  avAllLabel: import("vue").ComputedRef<"Clear all" | "Select all" | "No days off" | "Every day off">;
52
53
  maxHoursPlaceholder: import("vue").ComputedRef<"Hours per week" | "No cap">;
@@ -81,21 +82,21 @@ export declare function useScheduleAddEmployee(board: ScheduleBoardApi): {
81
82
  next: () => void;
82
83
  back: () => void;
83
84
  toggleMulti: (which: "loc" | "sec") => void;
84
- toggleLocation: (loc: string) => void;
85
- removeLocation: (loc: string) => void;
86
- toggleSecondary: (pos: string) => void;
87
- removeSecondary: (pos: string) => void;
88
- setPrimaryPosition: (pos: string) => void;
85
+ toggleLocation: (location: string) => void;
86
+ removeLocation: (location: string) => void;
87
+ toggleSecondary: (position: string) => void;
88
+ removeSecondary: (position: string) => void;
89
+ setPrimaryPosition: (position: string) => void;
89
90
  setPayBasis: (basis: "hourly" | "monthly") => void;
90
- toggleAvailDay: (i: number) => void;
91
+ toggleAvailDay: (index: number) => void;
91
92
  availAll: () => void;
92
- setAvailHour: (i: number, field: "from" | "to", value: string) => void;
93
- copyAvailHourDown: (i: number) => void;
94
- setPasscodeDigit: (i: number, value: string) => void;
93
+ setAvailHour: (index: number, field: "from" | "to", value: string) => void;
94
+ copyAvailHourDown: (index: number) => void;
95
+ setPasscodeDigit: (index: number, value: string) => void;
95
96
  generatePasscode: () => void;
96
97
  togglePosAccess: () => void;
97
98
  setPosRole: (roleId: string) => void;
98
- posRoleOptions: import("vue").ComputedRef<Role[]>;
99
+ posRoleOptions: import("vue").ComputedRef<import("../../../types/role").Role[]>;
99
100
  create: () => Promise<boolean>;
100
101
  };
101
102
  export type ScheduleAddEmployeeApi = ReturnType<typeof useScheduleAddEmployee>;
@@ -74,7 +74,9 @@ export interface ScheduleAssignSlot {
74
74
  * any other assignment); a soft clash — the person already has a shift that day — asks first via
75
75
  * the shared clash-confirmation dialog, and approved leave is a hard block the tile itself
76
76
  * refuses rather than asking about. */
77
- export declare function useScheduleAssign(board: ScheduleBoardApi, demand: ScheduleDemandApi, clash: ScheduleClashDetectionApi): {
77
+ export declare function useScheduleAssign(board: ScheduleBoardApi, demand: ScheduleDemandApi, clash: ScheduleClashDetectionApi, options?: {
78
+ onToast?: (message: string, type?: 'success' | 'error' | 'info') => void;
79
+ }): {
78
80
  state: {
79
81
  open: boolean;
80
82
  target: {
@@ -0,0 +1,13 @@
1
+ import type { DaySlot, Employee, WorkSlot } from '../types';
2
+ export interface ScheduleAssignmentMutationOptions {
3
+ dateFor: (offset: number, dayIdx: number) => string | null;
4
+ employeeAt: (offset: number, employeeId: number) => Employee | undefined;
5
+ currentOffset: () => number;
6
+ onPersistError?: (message: string) => void;
7
+ }
8
+ export declare function useScheduleAssignmentMutations(options: ScheduleAssignmentMutationOptions): {
9
+ persistSlot: (empId: number, dayIdx: number, oldSlot: DaySlot, newSlot: WorkSlot | WorkSlot[], dateOverride?: string | null, offset?: number, restoreDaySlot?: DaySlot) => Promise<void>;
10
+ persistRemoval: (oldSlot: DaySlot) => Promise<void>;
11
+ persistMove: (toEmpId: number, dayIdx: number, slot: WorkSlot | WorkSlot[], dateOverride?: string | null) => Promise<void>;
12
+ recoverPersistFailure: (error: unknown, fallback: string) => Promise<void>;
13
+ };
@@ -22,6 +22,7 @@ export declare function useScheduleBoard(handlers?: {
22
22
  isHoliday: (dayIdx: number) => boolean;
23
23
  employees: import("vue").Ref<{
24
24
  id: number;
25
+ sourceId: string;
25
26
  name: string;
26
27
  employmentType: "FULLTIME" | "PARTTIME";
27
28
  role: string;
@@ -57,6 +58,7 @@ export declare function useScheduleBoard(handlers?: {
57
58
  breakPayType: "PAID" | "UNPAID";
58
59
  })[] | undefined;
59
60
  assignmentId?: string | undefined;
61
+ updatedAt?: string | undefined;
60
62
  splitGroupId?: string | undefined;
61
63
  } | {
62
64
  timeOff: "approved" | "pending";
@@ -104,6 +106,7 @@ export declare function useScheduleBoard(handlers?: {
104
106
  breakPayType: "PAID" | "UNPAID";
105
107
  })[] | undefined;
106
108
  assignmentId?: string | undefined;
109
+ updatedAt?: string | undefined;
107
110
  splitGroupId?: string | undefined;
108
111
  }[] | null)[];
109
112
  remarks: {
@@ -134,6 +137,7 @@ export declare function useScheduleBoard(handlers?: {
134
137
  masterUser?: boolean | undefined;
135
138
  }[], Employee[] | {
136
139
  id: number;
140
+ sourceId: string;
137
141
  name: string;
138
142
  employmentType: "FULLTIME" | "PARTTIME";
139
143
  role: string;
@@ -169,6 +173,7 @@ export declare function useScheduleBoard(handlers?: {
169
173
  breakPayType: "PAID" | "UNPAID";
170
174
  })[] | undefined;
171
175
  assignmentId?: string | undefined;
176
+ updatedAt?: string | undefined;
172
177
  splitGroupId?: string | undefined;
173
178
  } | {
174
179
  timeOff: "approved" | "pending";
@@ -216,6 +221,7 @@ export declare function useScheduleBoard(handlers?: {
216
221
  breakPayType: "PAID" | "UNPAID";
217
222
  })[] | undefined;
218
223
  assignmentId?: string | undefined;
224
+ updatedAt?: string | undefined;
219
225
  splitGroupId?: string | undefined;
220
226
  }[] | null)[];
221
227
  remarks: {
@@ -281,7 +287,6 @@ export declare function useScheduleBoard(handlers?: {
281
287
  end: string;
282
288
  breakMins?: number | undefined;
283
289
  }[]>;
284
- highlightEmpId: import("vue").Ref<number | null, number | null>;
285
290
  rangeStart: import("vue").Ref<Date, Date>;
286
291
  weekOffset: import("vue").ComputedRef<number>;
287
292
  peekWeek: (offset: number) => import("./schedule-week-cache").WeekBucket;
@@ -290,11 +295,13 @@ export declare function useScheduleBoard(handlers?: {
290
295
  dayLocked: (dayIdx: number) => boolean;
291
296
  pendingChanges: import("vue").Ref<{
292
297
  empId: number;
298
+ employeeKey: string;
293
299
  dayIdx: number;
294
300
  kind: "add" | "change" | "remove";
295
301
  label: string;
296
302
  }[], PendingChange[] | {
297
303
  empId: number;
304
+ employeeKey: string;
298
305
  dayIdx: number;
299
306
  kind: "add" | "change" | "remove";
300
307
  label: string;
@@ -304,7 +311,8 @@ export declare function useScheduleBoard(handlers?: {
304
311
  empId: number;
305
312
  dayIdx: number;
306
313
  slot: WorkSlot;
307
- }>) => Promise<void>;
314
+ }>) => Promise<boolean>;
315
+ flushAssignmentWrites: () => Promise<void>;
308
316
  recordChange: (empId: number, dayIdx: number, kind: PendingChange["kind"], label: string) => void;
309
317
  scheduleVersions: import("vue").Ref<{
310
318
  v: number;
@@ -342,6 +350,7 @@ export declare function useScheduleBoard(handlers?: {
342
350
  breakPayType: "PAID" | "UNPAID";
343
351
  })[] | undefined;
344
352
  assignmentId?: string | undefined;
353
+ updatedAt?: string | undefined;
345
354
  splitGroupId?: string | undefined;
346
355
  } | {
347
356
  timeOff: "approved" | "pending";
@@ -389,6 +398,7 @@ export declare function useScheduleBoard(handlers?: {
389
398
  breakPayType: "PAID" | "UNPAID";
390
399
  })[] | undefined;
391
400
  assignmentId?: string | undefined;
401
+ updatedAt?: string | undefined;
392
402
  splitGroupId?: string | undefined;
393
403
  }[] | null)[];
394
404
  }[];
@@ -428,6 +438,7 @@ export declare function useScheduleBoard(handlers?: {
428
438
  breakPayType: "PAID" | "UNPAID";
429
439
  })[] | undefined;
430
440
  assignmentId?: string | undefined;
441
+ updatedAt?: string | undefined;
431
442
  splitGroupId?: string | undefined;
432
443
  } | {
433
444
  timeOff: "approved" | "pending";
@@ -475,6 +486,7 @@ export declare function useScheduleBoard(handlers?: {
475
486
  breakPayType: "PAID" | "UNPAID";
476
487
  })[] | undefined;
477
488
  assignmentId?: string | undefined;
489
+ updatedAt?: string | undefined;
478
490
  splitGroupId?: string | undefined;
479
491
  }[] | null)[];
480
492
  }[];
@@ -508,6 +520,10 @@ export declare function useScheduleBoard(handlers?: {
508
520
  commitShiftAt: (offset: number, empId: number, dayIdx: number, slot: WorkSlot | WorkSlot[], replaceIndex?: number, replaceCount?: number) => void;
509
521
  removeShift: (empId: number, dayIdx: number, slotIndex?: number, count?: number) => void;
510
522
  removeShiftAt: (offset: number, empId: number, dayIdx: number, slotIndex?: number, count?: number) => void;
523
+ employeeShiftsToClear: (empId: number) => number[];
524
+ clearEmployeeShifts: (empId: number) => {
525
+ shifts: number;
526
+ };
511
527
  moveShift: (fromEmpId: number, fromDayIdx: number, toEmpId: number, toDayIdx: number, fromSlotIndex?: number, fromSlotCount?: number) => boolean;
512
528
  swapShifts: (empIdA: number, empIdB: number, dayA: number, dayB?: number, slotIndexA?: number, slotIndexB?: number, slotCountA?: number) => boolean;
513
529
  clearShiftsInRange: () => {
@@ -3,7 +3,9 @@ import type { ScheduleOutletApi } from './useScheduleOutlet';
3
3
  * not the page's draft — to one or more other outlets the manager ticks. Scoped to pay rates
4
4
  * because that is the only outlet-scoped setting this page persists; the mockup's broader
5
5
  * "rules, shifts, coverage and positions" clone lives on pages this one doesn't own. */
6
- export declare function useScheduleCloneOutletModal(outlet: ScheduleOutletApi): {
6
+ export declare function useScheduleCloneOutletModal(outlet: ScheduleOutletApi, options?: {
7
+ notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
8
+ }): {
7
9
  open: import("vue").Ref<boolean, boolean>;
8
10
  query: import("vue").Ref<string, string>;
9
11
  selected: import("vue").Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
@@ -1,4 +1,6 @@
1
+ import type { Proposal } from '../types';
1
2
  import type { ScheduleBoardApi } from './useScheduleBoard';
3
+ import type { ScheduleEmployeeLoad } from './useScheduleEmployeeIdentity';
2
4
  export declare function slotHours(start: string, end: string): number;
3
5
  export interface ScheduleDayCost {
4
6
  hours: number;
@@ -27,10 +29,13 @@ export interface ScheduleOtRisk {
27
29
  hours: number;
28
30
  contract: number;
29
31
  }
32
+ /** The staff rail consumes the same employee identity/load derivation as the area view. */
33
+ export type ScheduleRailRow = ScheduleEmployeeLoad;
30
34
  /** Weekly labour cost + monthly OT gauge for the collapsible cost rail, built off one
31
35
  * per-day breakdown so the rail's totals and the stats row's per-day figures can never
32
36
  * disagree about what a day cost. */
33
- export declare function useScheduleCostRail(board: ScheduleBoardApi): {
37
+ export declare function useScheduleCostRail(board: ScheduleBoardApi, proposalAt?: () => ((empId: number, dayIdx: number) => Proposal | undefined) | undefined): {
38
+ rows: import("vue").ComputedRef<ScheduleEmployeeLoad[]>;
34
39
  collapsed: import("vue").Ref<boolean, boolean>;
35
40
  byDay: import("vue").ComputedRef<ScheduleDayCost[]>;
36
41
  weeklyCost: import("vue").ComputedRef<number>;
@@ -7,7 +7,7 @@ export interface ScheduleDayNoteState {
7
7
  }
8
8
  export interface ScheduleDayNoteOptions {
9
9
  /** Toasts for the writes that happen on the spot — closing a day, repricing it, saving. */
10
- onToast?: (message: string) => void;
10
+ onToast?: (message: string, type?: 'info' | 'success' | 'error') => void;
11
11
  }
12
12
  /** One decimal, always: "2×" reads as a count, and 1.5 beside a bare 2 in one sentence looks
13
13
  * like two different kinds of number. Ported from the mockup's fmtRate(). */
@@ -1,24 +1,9 @@
1
1
  import type { CoverageSegment, DaySlot, DemandPeriod, Employee, Proposal } from '../types';
2
2
  import type { ScheduleBoardApi } from './useScheduleBoard';
3
- export declare function toMin(t: string): number;
4
- export declare function minToHHMM(m: number): string;
5
- /** Minutes from midnight for a start/end pair, with the end pushed past 1440 when it wraps —
6
- * so an overnight stretch stays one interval rather than two that cross zero. */
7
- export declare function spanOf(start: string, end: string): [number, number];
8
- /** 12-hour clock for prose — the sheet and the popovers read as sentences, and "16:00" in the
9
- * middle of one does not. */
10
- export declare function t12(hhmm: string): string;
11
- /** The timeline's two end labels — "8am", "10:30pm", meridiem spelled out. */
12
- export declare function minToShort(m: number): string;
13
- export declare function rangeText(from: number, to: number): string;
14
- export declare function roleTotalOf(p: DemandPeriod): number;
15
- /** The unnamed part of a period's headcount. Derived, never typed — so it cannot disagree with
16
- * the total above it. Negative means the breakdown has overrun that total. */
17
- export declare function anyLeftOf(p: DemandPeriod): number;
18
- export interface ScheduleCoverageAxis {
19
- from: number;
20
- to: number;
21
- }
3
+ import { anyLeftOf, minToHHMM, minToShort, rangeText, roleTotalOf, spanOf, t12, toMin } from './schedule-demand-domain';
4
+ import type { ScheduleCoverageAxis } from './schedule-demand-domain';
5
+ export { anyLeftOf, minToHHMM, minToShort, rangeText, roleTotalOf, spanOf, t12, toMin };
6
+ export type { ScheduleCoverageAxis } from './schedule-demand-domain';
22
7
  /** Staffing demand, and coverage read against it.
23
8
  *
24
9
  * Storage follows this board's dayNotes rather than the mockup's flat `di` index: the mockup