@feedmepos/mf-hrm-portal 2.3.2-dev → 2.3.2-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.
- package/dist/{ApprovalCodeList-xOyDG5ug.js → ApprovalCodeList-sHnINTik.js} +14 -15
- package/dist/AuditLogList-C9C2emU9.js +1950 -0
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-Cixg_icC.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-BbsPesWY.js} +2 -2
- package/dist/{EmployeeList-BG2KPvOB.js → EmployeeList-D4oy5hXz.js} +196 -208
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-Cl053Tg1.js +90 -0
- package/dist/{GrantUserList-CUkuf3VV.js → GrantUserList-LWpqhl-5.js} +15 -16
- package/dist/{Main-BcixH7R5.js → Main-BWKb-QIE.js} +11 -11
- package/dist/{Main-BSHf8gTE.js → Main-CVGiOYpC.js} +12 -11
- package/dist/{Main-Cg9SOzcz.js → Main-PBJjfzBg.js} +5 -5
- package/dist/{MyPosProfile-CN8Bj3aV.js → MyPosProfile-BQCBFMFw.js} +1 -1
- package/dist/{PermissionSetList-I3u2_qHR.js → PermissionSetList-D2qZVlF4.js} +32 -31
- package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-BBoRXQPn.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-ZSREAS1r.js} +927 -927
- package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DRGTxOMW.js +1831 -0
- package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/RoleForm.vue_vue_type_script_setup_true_lang-DFDTw0lj.js +547 -0
- package/dist/RoleList-DG0crFzW.js +274 -0
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-Cs0rhCa3.js +544 -0
- package/dist/ScheduleGeneralPage-C4J6jYtG.js +811 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-3UqO6uPu.js +2557 -0
- package/dist/SchedulePage-ICzggri0.js +19458 -0
- package/dist/SchedulePositionPage-BshUCd_C.js +282 -0
- package/dist/SelectFilter-D9T0nFvG.js +264 -0
- package/dist/TeamMemberList-C970Iqlj.js +2086 -0
- package/dist/{TimesheetList-CECFKt7H.js → TimesheetList-nxhr0EWj.js} +10 -10
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-RIyoAmeb.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BLqgALLe.js} +3 -3
- package/dist/{app-CdrnR_Pw.js → app-n6d4AmtP.js} +12373 -4651
- package/dist/app.js +1 -1
- package/dist/{approval-code-Bwvwehz9.js → approval-code-1j1OoXt1.js} +1 -1
- package/dist/{dayjs.min-BO8bcI17.js → dayjs.min-DdNivv4b.js} +26 -26
- package/dist/{employee-Dg-J9goA.js → employee-BlfleiCU.js} +40 -35
- package/dist/{grant-user-whFOaPZI.js → grant-user-BmTyexk3.js} +1 -1
- package/dist/{iteration-ZpERYj3o.js → iteration-y_jodvfN.js} +1 -1
- package/dist/{lodash-7SZBZ8VQ.js → lodash-B2eWEGH4.js} +1 -1
- package/dist/{member-grant-C46lvrh2.js → member-grant-CzZUdO_s.js} +2 -2
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/restaurant-Dl6yx37M.js +51 -0
- package/dist/{role-C6hFKOfU.js → role-DfZi7Ssk.js} +3 -3
- package/dist/{rule-BlMymDXm.js → rule-ChmhcGgA.js} +13 -13
- package/dist/src/api/audit-log/index.d.ts +4 -0
- package/dist/src/api/employee/index.d.ts +2 -2
- package/dist/src/api/restaurant/index.d.ts +2 -0
- package/dist/src/api/schedule/index.d.ts +68 -0
- package/dist/src/api/sso-provider/index.d.ts +5 -0
- package/dist/src/api/staff-invite/index.d.ts +1 -2
- package/dist/src/components/AppForm.vue.d.ts +2 -2
- package/dist/src/components/CheckboxInput.vue.d.ts +2 -2
- package/dist/src/components/layout/PortalShell.vue.d.ts +12 -0
- package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
- package/dist/src/components/layout/withScheduleShell.d.ts +10 -0
- package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
- package/dist/src/composables/useMessage.d.ts +8 -2
- package/dist/src/composables/useSsoProviders.d.ts +19 -0
- package/dist/src/composables/useStaffInviteProviders.d.ts +1 -12
- package/dist/src/helpers/pos-assignment-rows.d.ts +2 -0
- package/dist/src/helpers/staff-invite.d.ts +3 -0
- package/dist/src/router/shared.d.ts +3 -0
- package/dist/src/stores/employee.d.ts +12 -12
- package/dist/src/types/employee.d.ts +1 -0
- package/dist/src/types/schedule.d.ts +23 -0
- package/dist/src/types/sso-provider.d.ts +10 -0
- package/dist/src/views/audit-log/constants.d.ts +9 -30
- package/dist/src/views/audit-log/locales/index.d.ts +488 -0
- package/dist/src/views/audit-log/pos-row.d.ts +27 -0
- package/dist/src/views/hr/locales/index.d.ts +20 -0
- package/dist/src/views/hr/role/RoleForm.vue.d.ts +29 -2
- package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +3 -0
- package/dist/src/views/scheduling/SchedulePage.vue.d.ts +3 -0
- package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +3 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeIdentitySection.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeModeStep.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeePosAccessSection.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleAddEmployeeSchedulingSection.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddPickPopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +41 -0
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleDetailsModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleDoneArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleAutoScheduleModal.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +25 -0
- package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +31 -0
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +29 -0
- package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +34 -0
- package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +26 -0
- package/dist/src/views/scheduling/components/ScheduleBoardRails.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +38 -0
- package/dist/src/views/scheduling/components/ScheduleBoardUtilityOverlays.vue.d.ts +22 -0
- package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleChangeEmployeeModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleCloneOutletModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleCoach.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleCompletionDialog.vue.d.ts +15 -0
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +33 -0
- package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleCostRail.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleCostRailEmptyArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleDateRangePopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleDayNotePopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleDemandRow.vue.d.ts +23 -0
- package/dist/src/views/scheduling/components/ScheduleDemandSheet.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleDotsIcon.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleEmployeeDetailPanel.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleEmployeeIdentity.vue.d.ts +17 -0
- package/dist/src/views/scheduling/components/ScheduleExportPreview.vue.d.ts +7 -0
- package/dist/src/views/scheduling/components/ScheduleFilterBar.vue.d.ts +18 -0
- package/dist/src/views/scheduling/components/ScheduleGapPopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleGridHeader.vue.d.ts +18 -0
- package/dist/src/views/scheduling/components/ScheduleGridSkeleton.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +9 -0
- package/dist/src/views/scheduling/components/ScheduleModal.vue.d.ts +26 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingAssignPositionModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingClosedDayConfirm.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandDays.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandFooter.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDemandHeader.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingDoneArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingHoursProfileNotice.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingPositions.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingReview.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWelcome.vue.d.ts +11 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +9 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizardFooter.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleOnboardingWizardHeader.vue.d.ts +11 -0
- package/dist/src/views/scheduling/components/SchedulePublishModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/SchedulePublishShareArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleReviewBar.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +70 -0
- package/dist/src/views/scheduling/components/ScheduleSelectExistingEmployeeModal.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleSetupBanner.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleShiftCell.vue.d.ts +35 -0
- package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleShiftImpact.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleShiftMoreOptions.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +16 -0
- package/dist/src/views/scheduling/components/ScheduleShiftRepeatDaysRow.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleShiftSegmentsEditor.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleShiftWhoPicker.vue.d.ts +25 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +16 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +50 -0
- package/dist/src/views/scheduling/components/ScheduleStatsRow.vue.d.ts +12 -0
- package/dist/src/views/scheduling/components/ScheduleSwapShiftsModal.vue.d.ts +8 -0
- package/dist/src/views/scheduling/components/ScheduleTimePickerPopover.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +20 -0
- package/dist/src/views/scheduling/composables/auto-schedule-mapping.d.ts +35 -0
- package/dist/src/views/scheduling/composables/onboarding-constants.d.ts +7 -0
- package/dist/src/views/scheduling/composables/onboarding-hours.d.ts +7 -0
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +51 -0
- package/dist/src/views/scheduling/composables/remyPrompt.d.ts +15 -0
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +82 -0
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +63 -0
- package/dist/src/views/scheduling/composables/schedule-breaks.d.ts +9 -0
- package/dist/src/views/scheduling/composables/schedule-calendar.d.ts +17 -0
- package/dist/src/views/scheduling/composables/schedule-cost.d.ts +24 -0
- package/dist/src/views/scheduling/composables/schedule-currency.d.ts +22 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +21 -0
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +23 -0
- package/dist/src/views/scheduling/composables/schedule-employee-profile.d.ts +7 -0
- package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
- package/dist/src/views/scheduling/composables/schedule-export-matrix.d.ts +14 -0
- package/dist/src/views/scheduling/composables/schedule-leave-split.d.ts +9 -0
- package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +23 -0
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +29 -0
- package/dist/src/views/scheduling/composables/schedule-time.d.ts +8 -0
- package/dist/src/views/scheduling/composables/schedule-week-cache.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +16 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +137 -0
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +75 -0
- package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +50 -0
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleAssignmentMutations.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +301 -0
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +615 -0
- package/dist/src/views/scheduling/composables/useScheduleCellState.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleClashDetection.d.ts +28 -0
- package/dist/src/views/scheduling/composables/useScheduleCloneOutletModal.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useScheduleCoach.d.ts +80 -0
- package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +12 -0
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +60 -0
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +44 -0
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +111 -0
- package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +59 -0
- package/dist/src/views/scheduling/composables/useScheduleDemandRow.d.ts +47 -0
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +166 -0
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +55 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +24 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +49 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCompensation.d.ts +7 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeForm.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeIdentity.d.ts +50 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +38 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +32 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeProfile.d.ts +16 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useScheduleExport.d.ts +52 -0
- package/dist/src/views/scheduling/composables/useScheduleFilterBar.d.ts +14 -0
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +79 -0
- package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +60 -0
- package/dist/src/views/scheduling/composables/useScheduleLegend.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingAvailability.d.ts +58 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +45 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +231 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingFlow.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingHours.d.ts +15 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingNavigation.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingPersistence.d.ts +13 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1543 -0
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +25 -0
- package/dist/src/views/scheduling/composables/useSchedulePageActions.d.ts +18 -0
- package/dist/src/views/scheduling/composables/useSchedulePageBootstrap.d.ts +9 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellActions.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +20 -0
- package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +33 -0
- package/dist/src/views/scheduling/composables/useSchedulePageEmployeeActions.d.ts +22 -0
- package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +21 -0
- package/dist/src/views/scheduling/composables/useSchedulePdfExport.d.ts +19 -0
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +55 -0
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +35 -0
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +127 -0
- package/dist/src/views/scheduling/composables/useSchedulePublishPersistence.d.ts +11 -0
- package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +313 -0
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +40 -0
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +17 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +245 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +63 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPersistence.d.ts +17 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +255 -0
- package/dist/src/views/scheduling/composables/useScheduleStatsRow.d.ts +27 -0
- package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +49 -0
- package/dist/src/views/scheduling/composables/useScheduleTour.d.ts +95 -0
- package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
- package/dist/src/views/scheduling/country-rules/index.d.ts +33 -0
- package/dist/src/views/scheduling/data.d.ts +123 -0
- package/dist/src/views/scheduling/locales/index.d.ts +6988 -0
- package/dist/src/views/scheduling/schedule-constants.d.ts +7 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +767 -0
- package/dist/src/views/scheduling/schedule-store.d.ts +140 -0
- package/dist/src/views/scheduling/types.d.ts +381 -0
- package/dist/src/views/team/components/MemberGrantFields.vue.d.ts +2 -6
- package/dist/src/views/team/components/PortalConditionForm.vue.d.ts +2 -2
- package/dist/src/views/team/components/PosAssignmentRows.vue.d.ts +0 -2
- package/dist/src/views/team/condition-builders/ConditionBuilderForm.vue.d.ts +2 -2
- package/dist/src/views/team/member/AddMemberForm.vue.d.ts +0 -2
- package/dist/src/views/team/member/TeamMemberMasterUser.vue.d.ts +0 -2
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-CL6EEDuw.js → useAppStore-BPARQyvJ.js} +1 -1
- package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-BBjBUzGJ.js → useLoading-iPESFb6R.js} +1 -1
- package/dist/{useReportPermissions-Bg0fma6m.js → useReportPermissions-By-BoJZb.js} +5 -5
- package/package.json +5 -3
- package/dist/AuditLogList-Dd6HyFhk.js +0 -1777
- package/dist/FormItem.vue_vue_type_script_setup_true_lang-DPT2FoIc.js +0 -45
- package/dist/FormSection.vue_vue_type_script_setup_true_lang-DknXTYiK.js +0 -49
- package/dist/PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-B5QDOF0L.js +0 -1840
- package/dist/RoleList-ALmAwN0U.js +0 -739
- package/dist/SelectFilter-ATOm0hdn.js +0 -269
- package/dist/TeamMemberList-DZfEnOs1.js +0 -2097
- package/dist/restaurant-CKhT6kgj.js +0 -45
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Employee, OpenShift } from '../types';
|
|
2
|
+
export { RANGE_LEN, mostRecentMonday, weekDates, weeksBetween } from './schedule-calendar';
|
|
3
|
+
export interface WeekBucket {
|
|
4
|
+
employees: Employee[];
|
|
5
|
+
openShifts: OpenShift[];
|
|
6
|
+
}
|
|
7
|
+
/** `from` is the date the offset is relative to (the board passes the Monday it anchored on, so a
|
|
8
|
+
* tab left open past midnight keeps building the week it is showing). */
|
|
9
|
+
export declare function weekData(offset: number, from?: Date): WeekBucket;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** A long list shown as its first few entries plus "+N more", expandable in place. For chip rows
|
|
2
|
+
* that can run to a hundred items (a person rostered at every outlet), which would otherwise
|
|
3
|
+
* push the rest of the form off screen. */
|
|
4
|
+
export declare function useCollapsedList<T>(items: () => T[], limit?: number): {
|
|
5
|
+
expanded: import("vue").Ref<boolean, boolean>;
|
|
6
|
+
shown: import("vue").ComputedRef<T[]>;
|
|
7
|
+
hiddenCount: import("vue").ComputedRef<number>;
|
|
8
|
+
toggle: () => void;
|
|
9
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useAppStore } from '@feedmepos/mf-remy-panel';
|
|
2
|
+
export interface RemyActivateOptions {
|
|
3
|
+
prompt?: string;
|
|
4
|
+
forceNewConversation?: boolean;
|
|
5
|
+
fullscreen?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** HRM never bundles or mounts a Remy panel of its own — `@feedmepos/mf-remy-panel` is externalised
|
|
8
|
+
* by the shared vite preset, so inside the host portal this import resolves to the ONE panel
|
|
9
|
+
* instance the host already created. The host portal owns initialisation (with env-specific
|
|
10
|
+
* backend/license URLs) before any HRM view mounts. HRM must never call `initializeRemyChat`:
|
|
11
|
+
* it re-initialises the shared panel instance and, without arguments, points it at production. */
|
|
12
|
+
export interface RemyAppStoreApi {
|
|
13
|
+
store: ReturnType<typeof useAppStore>;
|
|
14
|
+
activate: (options: RemyActivateOptions) => Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
export declare function useRemyAppStore(): RemyAppStoreApi;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { Employee } from '../types';
|
|
2
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
3
|
+
import { type ScheduleAddEmployeeMode, type ScheduleAddEmployeeStep } from './schedule-add-employee-form';
|
|
4
|
+
export type { ScheduleAddEmployeeForm, ScheduleAddEmployeeMode, ScheduleAddEmployeeStep, } from './schedule-add-employee-form';
|
|
5
|
+
/** Add-employee wizard: a "how do you want to add them" step, then one detail form covering
|
|
6
|
+
* identity, locations, pay, scheduling caps, availability, positions and POS access — plus
|
|
7
|
+
* the "select existing POS staff" side dialog the first step can hand off to. */
|
|
8
|
+
export declare function useScheduleAddEmployee(board: ScheduleBoardApi, options?: {
|
|
9
|
+
notify?: (message: string, type?: 'success' | 'error' | 'info') => void;
|
|
10
|
+
}): {
|
|
11
|
+
open: import("vue").Ref<boolean, boolean>;
|
|
12
|
+
selectExistingOpen: import("vue").Ref<boolean, boolean>;
|
|
13
|
+
step: import("vue").Ref<ScheduleAddEmployeeStep, ScheduleAddEmployeeStep>;
|
|
14
|
+
mode: import("vue").Ref<ScheduleAddEmployeeMode, ScheduleAddEmployeeMode>;
|
|
15
|
+
form: {
|
|
16
|
+
name: string;
|
|
17
|
+
mobile: string;
|
|
18
|
+
dial: string;
|
|
19
|
+
employment: "full" | "part";
|
|
20
|
+
locations: string[];
|
|
21
|
+
payBasis: "hourly" | "monthly";
|
|
22
|
+
payAmount: string;
|
|
23
|
+
maxHours: string;
|
|
24
|
+
maxHoursPerDay: string;
|
|
25
|
+
minHours: string;
|
|
26
|
+
workingHoursEnabled: boolean;
|
|
27
|
+
overtimeEnabled: boolean;
|
|
28
|
+
maxHoursPerMonth: string;
|
|
29
|
+
availDays: boolean[];
|
|
30
|
+
availHours: {
|
|
31
|
+
from: string;
|
|
32
|
+
to: string;
|
|
33
|
+
}[];
|
|
34
|
+
preferences: string;
|
|
35
|
+
primaryPosition: string;
|
|
36
|
+
secondaryPositions: string[];
|
|
37
|
+
seniority: "" | "senior" | "junior";
|
|
38
|
+
passcode: string[];
|
|
39
|
+
masterUser: boolean;
|
|
40
|
+
masterCode: string;
|
|
41
|
+
posAccessEnabled: boolean;
|
|
42
|
+
posRoles: {
|
|
43
|
+
outlet: string;
|
|
44
|
+
roleId: string;
|
|
45
|
+
}[];
|
|
46
|
+
};
|
|
47
|
+
sectionId: import("vue").Ref<string, string>;
|
|
48
|
+
isEditing: import("vue").ComputedRef<boolean>;
|
|
49
|
+
editingEmployeeId: import("vue").Ref<number | null, number | null>;
|
|
50
|
+
locOpen: import("vue").Ref<boolean, boolean>;
|
|
51
|
+
secOpen: import("vue").Ref<boolean, boolean>;
|
|
52
|
+
secondaryOptions: import("vue").ComputedRef<string[]>;
|
|
53
|
+
isPart: import("vue").ComputedRef<boolean>;
|
|
54
|
+
dayLit: (index: number) => boolean;
|
|
55
|
+
avLabel: import("vue").ComputedRef<string>;
|
|
56
|
+
avAllLabel: import("vue").ComputedRef<string>;
|
|
57
|
+
maxHoursPlaceholder: import("vue").ComputedRef<string>;
|
|
58
|
+
minHoursPlaceholder: import("vue").ComputedRef<string>;
|
|
59
|
+
maxHoursPerDayPlaceholder: import("vue").ComputedRef<string>;
|
|
60
|
+
maxHoursPerMonthPlaceholder: import("vue").ComputedRef<string>;
|
|
61
|
+
toggleOvertime: () => void;
|
|
62
|
+
payUnit: import("vue").ComputedRef<string>;
|
|
63
|
+
effectiveRate: import("vue").ComputedRef<number>;
|
|
64
|
+
passcodeValue: import("vue").ComputedRef<string>;
|
|
65
|
+
passcodeOk: import("vue").ComputedRef<boolean>;
|
|
66
|
+
currentLocationLabel: import("vue").ComputedRef<string>;
|
|
67
|
+
locationOptions: import("vue").Reactive<string[]>;
|
|
68
|
+
isNewUser: import("vue").ComputedRef<boolean>;
|
|
69
|
+
footerHint: import("vue").ComputedRef<string>;
|
|
70
|
+
primaryRoleLabel: import("vue").ComputedRef<string>;
|
|
71
|
+
locationsSummary: import("vue").ComputedRef<string>;
|
|
72
|
+
payLine: import("vue").ComputedRef<string>;
|
|
73
|
+
nameError: import("vue").ComputedRef<boolean>;
|
|
74
|
+
passError: import("vue").ComputedRef<boolean>;
|
|
75
|
+
posRolesError: import("vue").ComputedRef<boolean>;
|
|
76
|
+
availabilityError: import("vue").ComputedRef<boolean>;
|
|
77
|
+
saving: import("vue").Ref<boolean, boolean>;
|
|
78
|
+
saveError: import("vue").Ref<string | null, string | null>;
|
|
79
|
+
deferScheduleWrites: import("vue").Ref<boolean, boolean>;
|
|
80
|
+
candidatesLoading: import("vue").Ref<boolean, boolean>;
|
|
81
|
+
candidatesError: import("vue").Ref<string | null, string | null>;
|
|
82
|
+
selectingExisting: import("vue").Ref<boolean, boolean>;
|
|
83
|
+
candidates: import("vue").Ref<{
|
|
84
|
+
employeeId: string;
|
|
85
|
+
name: string;
|
|
86
|
+
otherOutlets: string[];
|
|
87
|
+
locations: string[];
|
|
88
|
+
}[], import("../types").ExistingStaffCandidate[] | {
|
|
89
|
+
employeeId: string;
|
|
90
|
+
name: string;
|
|
91
|
+
otherOutlets: string[];
|
|
92
|
+
locations: string[];
|
|
93
|
+
}[]>;
|
|
94
|
+
candidatesTotal: import("vue").Ref<number, number>;
|
|
95
|
+
candidatesPage: import("vue").Ref<number, number>;
|
|
96
|
+
candidatesPageItemCount: import("vue").Ref<number, number>;
|
|
97
|
+
candidatesPageSize: number;
|
|
98
|
+
searchExisting: (search: string) => void;
|
|
99
|
+
goToExistingPage: (page: number, search: string) => void;
|
|
100
|
+
openWizard: (section: string) => void;
|
|
101
|
+
openEditFor: (emp: Employee) => void;
|
|
102
|
+
confirmClose: () => void;
|
|
103
|
+
close: () => void;
|
|
104
|
+
setMode: (m: ScheduleAddEmployeeMode) => void;
|
|
105
|
+
openSelectExisting: () => void;
|
|
106
|
+
closeSelectExisting: () => void;
|
|
107
|
+
pickExisting: (employeeId: string) => Promise<void>;
|
|
108
|
+
next: () => void;
|
|
109
|
+
back: () => void;
|
|
110
|
+
toggleMulti: (which: "loc" | "sec") => void;
|
|
111
|
+
toggleLocation: (location: string) => void;
|
|
112
|
+
removeLocation: (location: string) => void;
|
|
113
|
+
toggleSecondary: (position: string) => void;
|
|
114
|
+
removeSecondary: (position: string) => void;
|
|
115
|
+
setPrimaryPosition: (position: string) => void;
|
|
116
|
+
setPayBasis: (basis: "hourly" | "monthly") => void;
|
|
117
|
+
toggleAvailDay: (index: number) => void;
|
|
118
|
+
availAll: () => void;
|
|
119
|
+
setAvailHour: (index: number, field: "from" | "to", value: string) => void;
|
|
120
|
+
copyAvailHourDown: (index: number) => void;
|
|
121
|
+
setPasscodeDigit: (index: number, value: string) => void;
|
|
122
|
+
generatePasscode: () => Promise<void>;
|
|
123
|
+
isGeneratingPasscode: import("vue").Ref<boolean, boolean>;
|
|
124
|
+
togglePosAccess: () => void;
|
|
125
|
+
addPosRoleRow: () => void;
|
|
126
|
+
removePosRoleRow: (index: number) => void;
|
|
127
|
+
isCurrentOutletRow: (index: number) => boolean;
|
|
128
|
+
setPosRoleOutlet: (index: number, outlet: string) => void;
|
|
129
|
+
setPosRoleId: (index: number, roleId: string) => void;
|
|
130
|
+
posRoleOptionsFor: (outlet: string) => import("../../../types/role").Role[];
|
|
131
|
+
isPosRoleUsable: (role: import("../../../types/role").Role) => boolean;
|
|
132
|
+
setMasterUserRoleAccess: (roleIds: string[] | null | undefined) => void;
|
|
133
|
+
isPosOutletUsable: (outlet: string) => boolean;
|
|
134
|
+
posRolesHint: import("vue").ComputedRef<string>;
|
|
135
|
+
create: () => Promise<boolean>;
|
|
136
|
+
};
|
|
137
|
+
export type ScheduleAddEmployeeApi = ReturnType<typeof useScheduleAddEmployee>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
import type { ScheduleDemandApi } from './useScheduleDemand';
|
|
3
|
+
import { type QuickPickCandidate } from './schedule-quick-pick';
|
|
4
|
+
import { type ScheduleAnchorRect } from './schedule-popover-position';
|
|
5
|
+
export interface ScheduleAddPickState {
|
|
6
|
+
open: boolean;
|
|
7
|
+
empId: number | null;
|
|
8
|
+
dayIdx: number | null;
|
|
9
|
+
/** Measured rect of the cell the popup opened from; the popup component places itself from it
|
|
10
|
+
* once rendered (V6.2 placePopover), writing the result to `left`/`top`. */
|
|
11
|
+
anchor: ScheduleAnchorRect | null;
|
|
12
|
+
left: number;
|
|
13
|
+
top: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ScheduleAddPickLeaveOption {
|
|
16
|
+
reason: string;
|
|
17
|
+
/** i18n key for the row's label — `reason` itself is an id and stays English. */
|
|
18
|
+
labelKey: string;
|
|
19
|
+
swatch: string;
|
|
20
|
+
}
|
|
21
|
+
/** The "+ Add" quick-pick popover on an employee's empty cell — ported from the mockup's
|
|
22
|
+
* openAddShiftPicker()/renderAddPickList(), scoped to what this board actually has: our one
|
|
23
|
+
* active shift pattern, a fixed leave-reason list, and a demand-gap suggestion, all committed
|
|
24
|
+
* directly (no clash confirmation dialogs — this board has no such infrastructure yet, and none
|
|
25
|
+
* of its existing write paths gate on one either). Leave picks write a full-day approved leave
|
|
26
|
+
* immediately rather than opening a creation form — there's no "book a leave" authoring flow
|
|
27
|
+
* anywhere in this port yet, only the existing pending-request review modal, which assumes the
|
|
28
|
+
* leave already exists. The mockup's "On this day" (join an existing open-shift group) section is
|
|
29
|
+
* left out — it needs split-shift/group-joining machinery this board doesn't model. */
|
|
30
|
+
export declare function useScheduleAddPick(board: ScheduleBoardApi, demand: ScheduleDemandApi, handlers: {
|
|
31
|
+
onCommitted: (message: string) => void;
|
|
32
|
+
onOpenFullEditor: (empId: number, dayIdx: number, slotIndex: number) => void;
|
|
33
|
+
/** The leave editor, on this cell. `reason` is the row's own type, or null for the plain "Leave" row. */
|
|
34
|
+
onOpenLeave: (empId: number, dayIdx: number, reason: string | null) => void;
|
|
35
|
+
}): {
|
|
36
|
+
state: {
|
|
37
|
+
open: boolean;
|
|
38
|
+
empId: number | null;
|
|
39
|
+
dayIdx: number | null;
|
|
40
|
+
anchor: {
|
|
41
|
+
left: number;
|
|
42
|
+
right: number;
|
|
43
|
+
top: number;
|
|
44
|
+
bottom: number;
|
|
45
|
+
} | null;
|
|
46
|
+
left: number;
|
|
47
|
+
top: number;
|
|
48
|
+
};
|
|
49
|
+
query: import("vue").Ref<string, string>;
|
|
50
|
+
parsedRange: import("vue").ComputedRef<{
|
|
51
|
+
start: string;
|
|
52
|
+
end: string;
|
|
53
|
+
} | null>;
|
|
54
|
+
suggestions: import("vue").ComputedRef<QuickPickCandidate[]>;
|
|
55
|
+
filteredPatterns: import("vue").ComputedRef<{
|
|
56
|
+
key: string;
|
|
57
|
+
label: string;
|
|
58
|
+
start: string;
|
|
59
|
+
end: string;
|
|
60
|
+
color: string;
|
|
61
|
+
active: boolean;
|
|
62
|
+
breakMins: number;
|
|
63
|
+
}[]>;
|
|
64
|
+
filteredLeaves: import("vue").ComputedRef<ScheduleAddPickLeaveOption[]>;
|
|
65
|
+
hasResults: import("vue").ComputedRef<boolean>;
|
|
66
|
+
openFor: (empId: number, dayIdx: number, anchor: HTMLElement) => void;
|
|
67
|
+
close: () => void;
|
|
68
|
+
pickSuggested: (index: number) => void;
|
|
69
|
+
pickPattern: (key: string) => void;
|
|
70
|
+
pickTypedRange: (start: string, end: string) => void;
|
|
71
|
+
pickLeave: (reason: string) => void;
|
|
72
|
+
submitQuery: () => void;
|
|
73
|
+
openBlank: () => void;
|
|
74
|
+
};
|
|
75
|
+
export type ScheduleAddPickApi = ReturnType<typeof useScheduleAddPick>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
import type { Employee, WorkSlot } from '../types';
|
|
3
|
+
export interface ScheduleAssignedSlot {
|
|
4
|
+
emp: Employee;
|
|
5
|
+
slot: WorkSlot;
|
|
6
|
+
/** This slot's position within the employee's day — what a drag of this card has to hand
|
|
7
|
+
* `board.moveShift`/`swapShifts` to pick the right period out of a day holding more than one. */
|
|
8
|
+
slotIndex: number;
|
|
9
|
+
}
|
|
10
|
+
export interface SchedulePositionCellMeta {
|
|
11
|
+
required: number;
|
|
12
|
+
filled: number;
|
|
13
|
+
open: number;
|
|
14
|
+
short: number;
|
|
15
|
+
}
|
|
16
|
+
/** Shared by the week and day area views, so a position's colour never disagrees between them. */
|
|
17
|
+
export declare function positionSwatchClass(position: string): string;
|
|
18
|
+
/** Where shifts and employees go that name no station at all — either because the outlet
|
|
19
|
+
* hasn't named its positions yet, or because a shift deliberately names none. Rostering
|
|
20
|
+
* shouldn't be blocked on the Positions page being filled in first, so this row exists
|
|
21
|
+
* whenever there's anyone or anything to put in it (see `positionRows`). */
|
|
22
|
+
export declare const ANY_POSITION_ROW = "Any position";
|
|
23
|
+
/** Every other row is named after the position its shifts carry, so the row name and the
|
|
24
|
+
* position key are the same string. This one differs: it collects records that name nothing,
|
|
25
|
+
* so anything that queries BY position — qualifiedFor, assignedOn, a new shift's role — has to
|
|
26
|
+
* ask for '' instead, or the row would answer "nobody holds Any position". */
|
|
27
|
+
export declare function rowAsk(row: string): string;
|
|
28
|
+
/** Whether this employee can be put on `position` — ported from the mockup's qualifiedFor().
|
|
29
|
+
* Nobody having a named position yet reads as "any station", the same way an unspecialised
|
|
30
|
+
* new-account roster does in the reference: rostering shouldn't be blocked on the Positions
|
|
31
|
+
* page being filled in first. */
|
|
32
|
+
export declare function qualifiedFor(emp: Employee, position: string): boolean;
|
|
33
|
+
/** Week-by-area grouping: rows are positions (a RULES.coverage.full key), not employees.
|
|
34
|
+
* Ported from the mockup's positionRows()/renderPositionBlock() — scoped to this board's single
|
|
35
|
+
* "Unassigned" section and its existing WorkSlot/OpenShift model, so no split shifts and
|
|
36
|
+
* no locked/closed-day states (neither exists anywhere in this port yet). */
|
|
37
|
+
export declare function useScheduleAreaBoard(board: ScheduleBoardApi): {
|
|
38
|
+
positionRows: import("vue").ComputedRef<string[]>;
|
|
39
|
+
assignedOn: (dayIdx: number, position: string) => ScheduleAssignedSlot[];
|
|
40
|
+
poolFor: (position: string) => Employee[];
|
|
41
|
+
cellMeta: (dayIdx: number, position: string) => SchedulePositionCellMeta;
|
|
42
|
+
positionWeekMeta: (position: string) => {
|
|
43
|
+
required: number;
|
|
44
|
+
filled: number;
|
|
45
|
+
open: number;
|
|
46
|
+
short: number;
|
|
47
|
+
pool: number;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export type ScheduleAreaBoardApi = ReturnType<typeof useScheduleAreaBoard>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
2
|
+
/** Dragging a person from the staff rail onto a position/day cell opens a normal assigned shift. */
|
|
3
|
+
export declare function useScheduleAreaDragDrop(board: ScheduleBoardApi, handlers: {
|
|
4
|
+
onCreateShift: (empId: number, dayIdx: number, position: string) => void;
|
|
5
|
+
}): {
|
|
6
|
+
draggingEmpId: import("vue").Ref<number | null, number | null>;
|
|
7
|
+
startRailDrag: (empId: number) => void;
|
|
8
|
+
endRailDrag: () => void;
|
|
9
|
+
dropOnCell: (dayIdx: number, position: string) => void;
|
|
10
|
+
};
|
|
11
|
+
export type ScheduleAreaDragDropApi = ReturnType<typeof useScheduleAreaDragDrop>;
|
|
@@ -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
|
+
};
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import type { FdtoScheduleAutoScheduleObjective } from '@/types/schedule';
|
|
2
|
+
import type { Proposal } from '../types';
|
|
3
|
+
import type { ScheduleBoardApi } from './useScheduleBoard';
|
|
4
|
+
import type { ScheduleDemandApi } from './useScheduleDemand';
|
|
5
|
+
export type ScheduleAutoScheduleStep = 'options' | 'summary';
|
|
6
|
+
export interface ScheduleAutoScheduleOptions {
|
|
7
|
+
fillGaps: boolean;
|
|
8
|
+
objective: FdtoScheduleAutoScheduleObjective;
|
|
9
|
+
allowOvertime: boolean;
|
|
10
|
+
/** Shown as preferences in the dialog but not sent: the generator takes no input for them yet
|
|
11
|
+
* (availability and time off are always respected; patterns and cost ride on the objective). */
|
|
12
|
+
respectAvailability: boolean;
|
|
13
|
+
followPatterns: boolean;
|
|
14
|
+
costEfficient: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Backend-powered draft generation and local proposal review — the engine lives in hr-backend;
|
|
17
|
+
* this composable only maps its result onto the board and lets a manager review it. Generation
|
|
18
|
+
* never writes; accepted proposals use the board's existing assignment persistence path. */
|
|
19
|
+
export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand: ScheduleDemandApi): {
|
|
20
|
+
wizardOpen: import("vue").Ref<boolean, boolean>;
|
|
21
|
+
step: import("vue").Ref<ScheduleAutoScheduleStep, ScheduleAutoScheduleStep>;
|
|
22
|
+
options: {
|
|
23
|
+
fillGaps: boolean;
|
|
24
|
+
objective: FdtoScheduleAutoScheduleObjective;
|
|
25
|
+
allowOvertime: boolean;
|
|
26
|
+
respectAvailability: boolean;
|
|
27
|
+
followPatterns: boolean;
|
|
28
|
+
costEfficient: boolean;
|
|
29
|
+
};
|
|
30
|
+
generating: import("vue").Ref<boolean, boolean>;
|
|
31
|
+
generateError: import("vue").Ref<string | null, string | null>;
|
|
32
|
+
result: import("vue").Ref<{
|
|
33
|
+
objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
|
|
34
|
+
allowOvertime: boolean;
|
|
35
|
+
model: string | null;
|
|
36
|
+
proposals: {
|
|
37
|
+
rejectReason?: string | null | undefined | undefined;
|
|
38
|
+
date: string;
|
|
39
|
+
startTime: string;
|
|
40
|
+
endTime: string;
|
|
41
|
+
employeeId: string;
|
|
42
|
+
positionId: string | null;
|
|
43
|
+
employeeName: string;
|
|
44
|
+
position: string;
|
|
45
|
+
reason: string;
|
|
46
|
+
}[];
|
|
47
|
+
unfilledCount: number;
|
|
48
|
+
unfilledNeeds: {
|
|
49
|
+
date: string;
|
|
50
|
+
startTime: string;
|
|
51
|
+
endTime: string;
|
|
52
|
+
position: string | null;
|
|
53
|
+
short: number;
|
|
54
|
+
excluded: {
|
|
55
|
+
occupied: number;
|
|
56
|
+
notQualified: number;
|
|
57
|
+
weeklyCap: number;
|
|
58
|
+
dailyCap: number;
|
|
59
|
+
rest: number;
|
|
60
|
+
dayOff: number;
|
|
61
|
+
};
|
|
62
|
+
}[];
|
|
63
|
+
metrics: {
|
|
64
|
+
minimumCoveragePercent: number;
|
|
65
|
+
recommendedCoveragePercent: number;
|
|
66
|
+
totalHours: number;
|
|
67
|
+
estimatedLabourCost: number | null;
|
|
68
|
+
costCoveragePercent: number;
|
|
69
|
+
overtimeHours: number;
|
|
70
|
+
targetHoursVariance: number;
|
|
71
|
+
unfilledIntervals: number;
|
|
72
|
+
};
|
|
73
|
+
readiness: {
|
|
74
|
+
ready: boolean;
|
|
75
|
+
capabilities: string[];
|
|
76
|
+
issues: {
|
|
77
|
+
code: string;
|
|
78
|
+
message: string;
|
|
79
|
+
severity: "BLOCKER" | "WARNING" | "INFO";
|
|
80
|
+
}[];
|
|
81
|
+
coverage: {
|
|
82
|
+
wage: number;
|
|
83
|
+
availability: number;
|
|
84
|
+
position: number;
|
|
85
|
+
targetHours: number;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
explanations: string[];
|
|
89
|
+
solver: string;
|
|
90
|
+
week: {
|
|
91
|
+
from: string;
|
|
92
|
+
to: string;
|
|
93
|
+
};
|
|
94
|
+
timing: {
|
|
95
|
+
totalMs: number;
|
|
96
|
+
modelMs: number | null;
|
|
97
|
+
};
|
|
98
|
+
} | null, {
|
|
99
|
+
objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
|
|
100
|
+
allowOvertime: boolean;
|
|
101
|
+
model: string | null;
|
|
102
|
+
proposals: {
|
|
103
|
+
rejectReason?: string | null | undefined;
|
|
104
|
+
date: string;
|
|
105
|
+
startTime: string;
|
|
106
|
+
endTime: string;
|
|
107
|
+
employeeId: string;
|
|
108
|
+
positionId: string | null;
|
|
109
|
+
employeeName: string;
|
|
110
|
+
position: string;
|
|
111
|
+
reason: string;
|
|
112
|
+
}[];
|
|
113
|
+
unfilledCount: number;
|
|
114
|
+
unfilledNeeds: {
|
|
115
|
+
date: string;
|
|
116
|
+
startTime: string;
|
|
117
|
+
endTime: string;
|
|
118
|
+
position: string | null;
|
|
119
|
+
short: number;
|
|
120
|
+
excluded: {
|
|
121
|
+
occupied: number;
|
|
122
|
+
notQualified: number;
|
|
123
|
+
weeklyCap: number;
|
|
124
|
+
dailyCap: number;
|
|
125
|
+
rest: number;
|
|
126
|
+
dayOff: number;
|
|
127
|
+
};
|
|
128
|
+
}[];
|
|
129
|
+
metrics: {
|
|
130
|
+
minimumCoveragePercent: number;
|
|
131
|
+
recommendedCoveragePercent: number;
|
|
132
|
+
totalHours: number;
|
|
133
|
+
estimatedLabourCost: number | null;
|
|
134
|
+
costCoveragePercent: number;
|
|
135
|
+
overtimeHours: number;
|
|
136
|
+
targetHoursVariance: number;
|
|
137
|
+
unfilledIntervals: number;
|
|
138
|
+
};
|
|
139
|
+
readiness: {
|
|
140
|
+
ready: boolean;
|
|
141
|
+
capabilities: string[];
|
|
142
|
+
issues: {
|
|
143
|
+
code: string;
|
|
144
|
+
message: string;
|
|
145
|
+
severity: "BLOCKER" | "WARNING" | "INFO";
|
|
146
|
+
}[];
|
|
147
|
+
coverage: {
|
|
148
|
+
wage: number;
|
|
149
|
+
availability: number;
|
|
150
|
+
position: number;
|
|
151
|
+
targetHours: number;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
explanations: string[];
|
|
155
|
+
solver: string;
|
|
156
|
+
week: {
|
|
157
|
+
from: string;
|
|
158
|
+
to: string;
|
|
159
|
+
};
|
|
160
|
+
timing: {
|
|
161
|
+
totalMs: number;
|
|
162
|
+
modelMs: number | null;
|
|
163
|
+
};
|
|
164
|
+
} | {
|
|
165
|
+
objective: "BALANCED" | "SERVICE" | "LOWER_COST" | "STABLE_HOURS";
|
|
166
|
+
allowOvertime: boolean;
|
|
167
|
+
model: string | null;
|
|
168
|
+
proposals: {
|
|
169
|
+
rejectReason?: string | null | undefined | undefined;
|
|
170
|
+
date: string;
|
|
171
|
+
startTime: string;
|
|
172
|
+
endTime: string;
|
|
173
|
+
employeeId: string;
|
|
174
|
+
positionId: string | null;
|
|
175
|
+
employeeName: string;
|
|
176
|
+
position: string;
|
|
177
|
+
reason: string;
|
|
178
|
+
}[];
|
|
179
|
+
unfilledCount: number;
|
|
180
|
+
unfilledNeeds: {
|
|
181
|
+
date: string;
|
|
182
|
+
startTime: string;
|
|
183
|
+
endTime: string;
|
|
184
|
+
position: string | null;
|
|
185
|
+
short: number;
|
|
186
|
+
excluded: {
|
|
187
|
+
occupied: number;
|
|
188
|
+
notQualified: number;
|
|
189
|
+
weeklyCap: number;
|
|
190
|
+
dailyCap: number;
|
|
191
|
+
rest: number;
|
|
192
|
+
dayOff: number;
|
|
193
|
+
};
|
|
194
|
+
}[];
|
|
195
|
+
metrics: {
|
|
196
|
+
minimumCoveragePercent: number;
|
|
197
|
+
recommendedCoveragePercent: number;
|
|
198
|
+
totalHours: number;
|
|
199
|
+
estimatedLabourCost: number | null;
|
|
200
|
+
costCoveragePercent: number;
|
|
201
|
+
overtimeHours: number;
|
|
202
|
+
targetHoursVariance: number;
|
|
203
|
+
unfilledIntervals: number;
|
|
204
|
+
};
|
|
205
|
+
readiness: {
|
|
206
|
+
ready: boolean;
|
|
207
|
+
capabilities: string[];
|
|
208
|
+
issues: {
|
|
209
|
+
code: string;
|
|
210
|
+
message: string;
|
|
211
|
+
severity: "BLOCKER" | "WARNING" | "INFO";
|
|
212
|
+
}[];
|
|
213
|
+
coverage: {
|
|
214
|
+
wage: number;
|
|
215
|
+
availability: number;
|
|
216
|
+
position: number;
|
|
217
|
+
targetHours: number;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
explanations: string[];
|
|
221
|
+
solver: string;
|
|
222
|
+
week: {
|
|
223
|
+
from: string;
|
|
224
|
+
to: string;
|
|
225
|
+
};
|
|
226
|
+
timing: {
|
|
227
|
+
totalMs: number;
|
|
228
|
+
modelMs: number | null;
|
|
229
|
+
};
|
|
230
|
+
} | null>;
|
|
231
|
+
gapCount: import("vue").ComputedRef<number>;
|
|
232
|
+
hasDemand: import("vue").ComputedRef<boolean>;
|
|
233
|
+
noDemandOpen: import("vue").Ref<boolean, boolean>;
|
|
234
|
+
rangeLabel: import("vue").ComputedRef<string>;
|
|
235
|
+
openWizard: (fromSetup?: boolean) => void;
|
|
236
|
+
closeWizard: () => void;
|
|
237
|
+
next: () => void;
|
|
238
|
+
back: () => void;
|
|
239
|
+
generate: () => Promise<void>;
|
|
240
|
+
reviewMode: import("vue").ComputedRef<boolean>;
|
|
241
|
+
hasPendingChanges: import("vue").ComputedRef<boolean>;
|
|
242
|
+
proposals: import("vue").ComputedRef<{
|
|
243
|
+
id: number;
|
|
244
|
+
empId: number;
|
|
245
|
+
dayIdx: number;
|
|
246
|
+
start: string;
|
|
247
|
+
end: string;
|
|
248
|
+
role: string;
|
|
249
|
+
positionId?: string | null | undefined;
|
|
250
|
+
openId?: number | undefined;
|
|
251
|
+
status: "pending" | "rejected";
|
|
252
|
+
weekKey?: string | undefined;
|
|
253
|
+
reason?: string | undefined;
|
|
254
|
+
rejectReason?: string | undefined;
|
|
255
|
+
}[]>;
|
|
256
|
+
weekHasProposals: import("vue").ComputedRef<boolean>;
|
|
257
|
+
unmetCount: import("vue").Ref<number, number>;
|
|
258
|
+
acceptedCount: import("vue").ComputedRef<number>;
|
|
259
|
+
rejectedCount: import("vue").ComputedRef<number>;
|
|
260
|
+
removedCount: import("vue").ComputedRef<number>;
|
|
261
|
+
changedCount: import("vue").ComputedRef<number>;
|
|
262
|
+
unqualifiedCount: import("vue").ComputedRef<number>;
|
|
263
|
+
conflictCount: import("vue").ComputedRef<number>;
|
|
264
|
+
projectedCost: import("vue").ComputedRef<number | null>;
|
|
265
|
+
proposalAt: (empId: number, dayIdx: number) => Proposal | undefined;
|
|
266
|
+
draggingId: import("vue").Ref<number | null, number | null>;
|
|
267
|
+
moveProposal: (id: number, empId: number, dayIdx: number) => string | null;
|
|
268
|
+
toggleReject: (id: number) => void;
|
|
269
|
+
rejectAll: () => void;
|
|
270
|
+
exitReview: () => void;
|
|
271
|
+
completionOpen: import("vue").Ref<boolean, boolean>;
|
|
272
|
+
completionCount: import("vue").Ref<number, number>;
|
|
273
|
+
completionPublished: import("vue").Ref<boolean, boolean>;
|
|
274
|
+
completionFromSetup: import("vue").Ref<boolean, boolean>;
|
|
275
|
+
closeCompletion: () => void;
|
|
276
|
+
leaveReviewOpen: import("vue").Ref<boolean, boolean>;
|
|
277
|
+
confirmLeaveReview: () => void;
|
|
278
|
+
cancelLeaveReview: () => void;
|
|
279
|
+
apply: (showCompletion?: boolean, status?: "DRAFT" | "PUBLISHED") => Promise<number | null>;
|
|
280
|
+
applying: import("vue").Ref<boolean, boolean>;
|
|
281
|
+
applyRejections: import("vue").Ref<{
|
|
282
|
+
employeeName: string;
|
|
283
|
+
day: string;
|
|
284
|
+
time: string;
|
|
285
|
+
message: string;
|
|
286
|
+
}[], {
|
|
287
|
+
employeeName: string;
|
|
288
|
+
day: string;
|
|
289
|
+
time: string;
|
|
290
|
+
message: string;
|
|
291
|
+
}[] | {
|
|
292
|
+
employeeName: string;
|
|
293
|
+
day: string;
|
|
294
|
+
time: string;
|
|
295
|
+
message: string;
|
|
296
|
+
}[]>;
|
|
297
|
+
applyError: import("vue").Ref<string | null, string | null>;
|
|
298
|
+
detailsOpen: import("vue").Ref<boolean, boolean>;
|
|
299
|
+
toggleDetails: () => void;
|
|
300
|
+
};
|
|
301
|
+
export type ScheduleAutoScheduleApi = ReturnType<typeof useScheduleAutoSchedule>;
|