@feedmepos/mf-hrm-portal 2.2.5-dev.6 → 2.2.5-dev.8

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 (83) hide show
  1. package/dist/{ApprovalCodeList-CtCpcbAC.js → ApprovalCodeList-BzL73nqc.js} +2 -2
  2. package/dist/{AuditLogList-BYOvk3l4.js → AuditLogList-BEZoHLsX.js} +3 -3
  3. package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-DS4_vkTG.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-DDrP7ywR.js} +2 -2
  4. package/dist/{EmployeeList-B_sTjkdO.js → EmployeeList-s4FYw1ZF.js} +5 -5
  5. package/dist/{GrantUserList-_nRUyHYM.js → GrantUserList-Ci_ElhHZ.js} +3 -3
  6. package/dist/{Main-CloHiemF.js → Main-BojQuzZI.js} +5 -5
  7. package/dist/{Main-DoLU6s-8.js → Main-CKr3RGvf.js} +2 -2
  8. package/dist/{Main-DqY2oGAM.js → Main-N1CNGDAy.js} +9 -9
  9. package/dist/{PermissionSetList-uL-0fN9H.js → PermissionSetList-DLknSOzA.js} +5 -5
  10. package/dist/{PortalPermissionEditor.vue_vue_type_script_setup_true_lang-dCgJ2s08.js → PortalPermissionEditor.vue_vue_type_script_setup_true_lang-DK2Bx8Aw.js} +1066 -1066
  11. package/dist/{RoleList-CwrDYFXz.js → RoleList-Cm7_q5l9.js} +7 -7
  12. package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-DrJ1vA88.js +426 -0
  13. package/dist/ScheduleButton.vue_vue_type_script_setup_true_lang-DX5JR7bi.js +600 -0
  14. package/dist/ScheduleGeneralPage-CmR4BZAp.js +323 -0
  15. package/dist/SchedulePage-CN3ZsQ9E.js +13905 -0
  16. package/dist/SchedulePositionPage-Bv3zraaF.js +293 -0
  17. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-Buu8NEQf.js +221 -0
  18. package/dist/{TeamMemberList-qyKCeSsW.js → TeamMemberList-D2OfkfJP.js} +6 -6
  19. package/dist/{TimesheetList-D1EJG90Z.js → TimesheetList-DEdLpYuM.js} +4 -4
  20. package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Car-HXjq.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-BfMkNvCz.js} +1 -1
  21. package/dist/{app-By1O6mq8.js → app-Dmmpy4k-.js} +127 -127
  22. package/dist/app.js +1 -1
  23. package/dist/{dayjs.min-_ZoZF_Ra.js → dayjs.min-DcfKURXN.js} +1 -1
  24. package/dist/{employee-BC7QM1dX.js → employee-D3ZpYH4j.js} +3 -3
  25. package/dist/{index-u10uXqFM.js → index-BxkisKEs.js} +1 -1
  26. package/dist/{index-CHf8MAN1.js → index-D-VlxJu9.js} +1 -1
  27. package/dist/{lodash-BsAtPIfh.js → lodash-p40sRkqQ.js} +1 -1
  28. package/dist/{role-PShfEEXE.js → role-CM1urkJZ.js} +1 -1
  29. package/dist/{rule-RU8uWecT.js → rule-BPApyMJY.js} +2 -2
  30. package/dist/src/api/schedule/index.d.ts +0 -3
  31. package/dist/src/views/scheduling/ScheduleGeneralPage.vue.d.ts +1 -2
  32. package/dist/src/views/scheduling/SchedulePage.vue.d.ts +1 -2
  33. package/dist/src/views/scheduling/SchedulePositionPage.vue.d.ts +1 -2
  34. package/dist/src/views/scheduling/components/ScheduleAddEmployeeModal.vue.d.ts +5 -1
  35. package/dist/src/views/scheduling/components/ScheduleAddEmployeePositionsSection.vue.d.ts +5 -1
  36. package/dist/src/views/scheduling/components/ScheduleAddPositionModal.vue.d.ts +6 -0
  37. package/dist/src/views/scheduling/components/ScheduleButton.vue.d.ts +23 -0
  38. package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +1 -1
  39. package/dist/src/views/scheduling/components/ScheduleEmployeeMenu.vue.d.ts +6 -0
  40. package/dist/src/views/scheduling/components/ScheduleLeaveEditModal.vue.d.ts +4 -2
  41. package/dist/src/views/scheduling/components/ScheduleOnboardingWizard.vue.d.ts +3 -0
  42. package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +14 -0
  43. package/dist/src/views/scheduling/components/ScheduleShiftHeadcountEditor.vue.d.ts +5 -1
  44. package/dist/src/views/scheduling/components/ScheduleShiftPopover.vue.d.ts +2 -0
  45. package/dist/src/views/scheduling/components/ScheduleStaffRail.vue.d.ts +4 -2
  46. package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +4 -2
  47. package/dist/src/views/scheduling/components/ScheduleTopbar.vue.d.ts +2 -4
  48. package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +1 -0
  49. package/dist/src/views/scheduling/composables/schedule-popover-position.d.ts +16 -0
  50. package/dist/src/views/scheduling/composables/useCollapsedList.d.ts +9 -0
  51. package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +1 -0
  52. package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +14 -7
  53. package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +11 -2
  54. package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +8 -0
  55. package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +11 -0
  56. package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +0 -5
  57. package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +5 -3
  58. package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +7 -1
  59. package/dist/src/views/scheduling/composables/useScheduleEmployeeMenu.d.ts +35 -0
  60. package/dist/src/views/scheduling/composables/useScheduleLeave.d.ts +53 -3
  61. package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +1181 -55
  62. package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +50 -0
  63. package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -0
  64. package/dist/src/views/scheduling/composables/useScheduleRangeCalendar.d.ts +10 -1
  65. package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +6 -0
  66. package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +5 -5
  67. package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +6 -0
  68. package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +7 -0
  69. package/dist/src/views/scheduling/composables/useScheduleTimePicker.d.ts +6 -1
  70. package/dist/src/views/scheduling/composables/useScheduleViewportFit.d.ts +9 -0
  71. package/dist/src/views/scheduling/data.d.ts +6 -1
  72. package/dist/src/views/scheduling/schedule-store.d.ts +11 -1
  73. package/dist/src/views/scheduling/types.d.ts +9 -1
  74. package/dist/style.css +1 -1
  75. package/dist/tsconfig.app.tsbuildinfo +1 -1
  76. package/dist/{useReportPermissions-Bu-l3ebR.js → useReportPermissions-5EhPvVT9.js} +3 -3
  77. package/package.json +1 -1
  78. package/dist/ScheduleGeneralPage-CgQOHHb8.js +0 -242
  79. package/dist/SchedulePage-C7q1IL70.js +0 -10761
  80. package/dist/SchedulePositionPage-Dys7X035.js +0 -220
  81. package/dist/ScheduleSelect.vue_vue_type_script_setup_true_lang-Cm2VWp8s.js +0 -201
  82. package/dist/useScheduleOutlet-BOmEn1hr.js +0 -546
  83. package/dist/useSchedulePositions-upgaNffa.js +0 -103
package/dist/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { h as e, i as r, r as o } from "./app-By1O6mq8.js";
1
+ import { h as e, i as r, r as o } from "./app-Dmmpy4k-.js";
2
2
  export {
3
3
  e as FmApp,
4
4
  r as i18nMessages,
@@ -1,4 +1,4 @@
1
- import { g as Q, f as K } from "./app-By1O6mq8.js";
1
+ import { g as Q, f as K } from "./app-Dmmpy4k-.js";
2
2
  var E = { exports: {} };
3
3
  (function(V, X) {
4
4
  (function(W, k) {
@@ -1,10 +1,10 @@
1
- import { d as w } from "./dayjs.min-_ZoZF_Ra.js";
1
+ import { d as w } from "./dayjs.min-DcfKURXN.js";
2
2
  import { defineStore as D, storeToRefs as U } from "pinia";
3
3
  import { ref as u } from "vue";
4
- import { E as r } from "./index-CHf8MAN1.js";
4
+ import { E as r } from "./index-D-VlxJu9.js";
5
5
  import { s as y } from "./iteration-CcXrOMQe.js";
6
6
  import { i as g } from "./utils-BZkjJbju.js";
7
- import { u as I } from "./role-PShfEEXE.js";
7
+ import { u as I } from "./role-CM1urkJZ.js";
8
8
  import { u as f } from "./restaurant-BTpBmfBV.js";
9
9
  async function T(a) {
10
10
  const i = I().roles.value, { restaurants: c } = f(), p = new Map(
@@ -1,4 +1,4 @@
1
- import { f as B } from "./app-By1O6mq8.js";
1
+ import { f as B } from "./app-Dmmpy4k-.js";
2
2
  var _a = {}, Zt = {}, s = {}, ji = {}, Ei = {}, Ii = {}, Dn = {};
3
3
  (function(e) {
4
4
  Object.defineProperty(e, "__esModule", { value: !0 }), e.getParsedType = e.ZodParsedType = e.util = void 0;
@@ -1,4 +1,4 @@
1
- import "./index-u10uXqFM.js";
1
+ import "./index-BxkisKEs.js";
2
2
  import { b as a, g as t } from "./restaurant-BTpBmfBV.js";
3
3
  const u = {
4
4
  async readEmployees() {
@@ -1,4 +1,4 @@
1
- import { f as jt } from "./app-By1O6mq8.js";
1
+ import { f as jt } from "./app-Dmmpy4k-.js";
2
2
  var Jr = { exports: {} };
3
3
  /**
4
4
  * @license
@@ -1,7 +1,7 @@
1
1
  import { defineStore as x, storeToRefs as b } from "pinia";
2
2
  import { ref as w } from "vue";
3
3
  import { useCoreStore as B } from "@feedmepos/mf-common";
4
- import "./index-u10uXqFM.js";
4
+ import "./index-BxkisKEs.js";
5
5
  import { g as f, b as p, u as I } from "./restaurant-BTpBmfBV.js";
6
6
  import { s as v } from "./iteration-CcXrOMQe.js";
7
7
  const R = {
@@ -1,5 +1,5 @@
1
- import { e as y } from "./index-u10uXqFM.js";
2
- import { e as O, b as W, c as _, v as F, n as h, O as q, D as M } from "./app-By1O6mq8.js";
1
+ import { e as y } from "./index-BxkisKEs.js";
2
+ import { e as O, b as W, c as _, v as F, n as h, O as q, D as M } from "./app-Dmmpy4k-.js";
3
3
  import { s as V, c as ee } from "./iteration-CcXrOMQe.js";
4
4
  import { s as se } from "./utils-BZkjJbju.js";
5
5
  import { g, b as v, q as x, u as te } from "./restaurant-BTpBmfBV.js";
@@ -37,8 +37,5 @@ declare const ScheduleAPI: {
37
37
  /** Flips a batch of assignments to one status in a single request — e.g. Publish sending
38
38
  * every DRAFT shift on the board to PUBLISHED at once. */
39
39
  bulkUpdateAssignmentStatus(restaurantId: string, req: FdtoScheduleBulkUpdateAssignmentStatusReq): Promise<FdtoScheduleAssignment[]>;
40
- devResetOutlet(restaurantId: string): Promise<{
41
- removed: number;
42
- }>;
43
40
  };
44
41
  export default ScheduleAPI;
@@ -1,4 +1,3 @@
1
- import './scheduling-tokens.css';
2
- import './scheduling.css';
1
+ import './index.css';
3
2
  declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
3
  export default _default;
@@ -1,4 +1,3 @@
1
- import './scheduling-tokens.css';
2
- import './scheduling.css';
1
+ import './index.css';
3
2
  declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
3
  export default _default;
@@ -1,4 +1,3 @@
1
- import './scheduling-tokens.css';
2
- import './scheduling.css';
1
+ import './index.css';
3
2
  declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
3
  export default _default;
@@ -2,5 +2,9 @@ import type { useScheduleAddEmployee } from '../composables/useScheduleAddEmploy
2
2
  type __VLS_Props = {
3
3
  wizard: ReturnType<typeof useScheduleAddEmployee>;
4
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>;
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ newPosition: (target: "primary" | "secondary") => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onNewPosition?: ((target: "primary" | "secondary") => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
10
  export default _default;
@@ -2,5 +2,9 @@ import type { useScheduleAddEmployee } from '../composables/useScheduleAddEmploy
2
2
  type __VLS_Props = {
3
3
  wizard: ReturnType<typeof useScheduleAddEmployee>;
4
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>;
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ newPosition: (target: "primary" | "secondary") => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onNewPosition?: ((target: "primary" | "secondary") => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
10
  export default _default;
@@ -0,0 +1,6 @@
1
+ import type { SchedulePositionModalApi } from '../composables/useSchedulePositionModal';
2
+ type __VLS_Props = {
3
+ modal: SchedulePositionModalApi;
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,23 @@
1
+ export type ScheduleButtonHierarchy = 'primary' | 'secondary' | 'ghost' | 'danger' | 'danger-secondary' | 'danger-ghost';
2
+ export type ScheduleButtonSize = 'xs' | 'sm' | 'md' | 'lg';
3
+ type __VLS_Props = {
4
+ hierarchy?: ScheduleButtonHierarchy;
5
+ size?: ScheduleButtonSize;
6
+ iconOnly?: boolean;
7
+ };
8
+ declare var __VLS_1: {};
9
+ type __VLS_Slots = {} & {
10
+ default?: (props: typeof __VLS_1) => any;
11
+ };
12
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
13
+ size: ScheduleButtonSize;
14
+ hierarchy: ScheduleButtonHierarchy;
15
+ iconOnly: boolean;
16
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
18
+ export default _default;
19
+ type __VLS_WithSlots<T, S> = T & {
20
+ new (): {
21
+ $slots: S;
22
+ };
23
+ };
@@ -16,9 +16,9 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
16
16
  onClose?: (() => any) | undefined;
17
17
  onConfirm?: (() => any) | undefined;
18
18
  }>, {
19
+ tone: "primary" | "danger";
19
20
  messageClass: string;
20
21
  confirmLabel: string;
21
22
  cancelLabel: string;
22
- tone: "primary" | "danger";
23
23
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
24
  export default _default;
@@ -0,0 +1,6 @@
1
+ import type { ScheduleEmployeeMenuApi } from '../composables/useScheduleEmployeeMenu';
2
+ type __VLS_Props = {
3
+ menu: ScheduleEmployeeMenuApi;
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;
@@ -1,6 +1,8 @@
1
- import type { useScheduleLeave } from '../composables/useScheduleLeave';
1
+ import type { ScheduleLeaveApi } from '../composables/useScheduleLeave';
2
+ import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
2
3
  type __VLS_Props = {
3
- leave: ReturnType<typeof useScheduleLeave>;
4
+ leave: ScheduleLeaveApi;
5
+ timePicker: ScheduleTimePickerApi;
4
6
  };
5
7
  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
8
  export default _default;
@@ -1,6 +1,9 @@
1
1
  import type { ScheduleOnboardingWizardApi } from '../composables/useScheduleOnboardingWizard';
2
+ import { type ScheduleTimePickerApi } from '../composables/useScheduleTimePicker';
2
3
  type __VLS_Props = {
3
4
  wizard: ScheduleOnboardingWizardApi;
5
+ outletName: string;
6
+ timePicker: ScheduleTimePickerApi;
4
7
  };
5
8
  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
9
  export default _default;
@@ -7,17 +7,31 @@ export interface ScheduleSelectOption {
7
7
  label: string;
8
8
  disabled?: boolean;
9
9
  group?: string;
10
+ /** Second line under the label. Any option carrying one switches the menu to the rich
11
+ * layout (bold name, muted hint, tick on the right), as V6.2's outlet menu does. */
12
+ hint?: string;
13
+ /** A command rather than a choice ("+ Add a new position…"): drawn in the brand colour, as
14
+ * V6.2 draws it, so it stops reading as one more thing the field could be set to. */
15
+ command?: boolean;
10
16
  }
11
17
  declare const _default: import("vue").DefineComponent<{
12
18
  modelValue: string;
13
19
  options: ScheduleSelectOption[];
14
20
  disabled?: boolean;
21
+ /** Heading over the menu. Also switches to the rich layout. */
22
+ menuTitle?: string;
23
+ /** A filter box at the top of the menu, for lists long enough to hunt through (outlets). */
24
+ searchable?: boolean;
15
25
  }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
26
  "update:modelValue": (value: string) => any;
17
27
  }, string, import("vue").PublicProps, Readonly<{
18
28
  modelValue: string;
19
29
  options: ScheduleSelectOption[];
20
30
  disabled?: boolean;
31
+ /** Heading over the menu. Also switches to the rich layout. */
32
+ menuTitle?: string;
33
+ /** A filter box at the top of the menu, for lists long enough to hunt through (outlets). */
34
+ searchable?: boolean;
21
35
  }> & Readonly<{
22
36
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
23
37
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -2,5 +2,9 @@ import type { ScheduleShiftPopoverApi } from '../composables/useScheduleShiftPop
2
2
  type __VLS_Props = {
3
3
  popover: ScheduleShiftPopoverApi;
4
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>;
5
+ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ newPosition: (assign: (name: string) => void) => any;
7
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onNewPosition?: ((assign: (name: string) => void) => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
10
  export default _default;
@@ -7,8 +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;
10
11
  swap: (empId: number, dayIdx: number) => any;
11
12
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onNewPosition?: ((assign: (name: string) => void) => any) | undefined;
12
14
  onSwap?: ((empId: number, dayIdx: number) => any) | undefined;
13
15
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
16
  export default _default;
@@ -5,12 +5,14 @@ type __VLS_Props = {
5
5
  dragDrop: ScheduleAreaDragDropApi;
6
6
  };
7
7
  declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ openEmployee: (empId: number) => any;
9
+ openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
8
10
  addEmployee: () => any;
9
11
  jumpToOpen: () => any;
10
- openEmployee: (empId: number) => any;
11
12
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onOpenEmployee?: ((empId: number) => any) | undefined;
14
+ onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
12
15
  onAddEmployee?: (() => any) | undefined;
13
16
  onJumpToOpen?: (() => any) | undefined;
14
- onOpenEmployee?: ((empId: number) => any) | undefined;
15
17
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
18
  export default _default;
@@ -25,7 +25,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
25
25
  segLeave: () => any;
26
26
  segClick: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
27
27
  segFocus: (dayIdx: number, from: number, to: number, anchor: HTMLElement) => any;
28
- openEmployeeMenu: (empId: number) => any;
28
+ openEmployee: (empId: number) => any;
29
+ openEmployeeMenu: (empId: number, anchor: HTMLElement) => any;
29
30
  dragShiftStart: (empId: number, dayIdx: number, ev: DragEvent) => any;
30
31
  dropOnCell: (empId: number, dayIdx: number, ev: DragEvent) => any;
31
32
  openCardMenu: (empId: number, dayIdx: number, anchor: HTMLElement) => any;
@@ -44,7 +45,8 @@ declare const _default: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {
44
45
  onSegLeave?: (() => any) | undefined;
45
46
  onSegClick?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
46
47
  onSegFocus?: ((dayIdx: number, from: number, to: number, anchor: HTMLElement) => any) | undefined;
47
- onOpenEmployeeMenu?: ((empId: number) => any) | undefined;
48
+ onOpenEmployee?: ((empId: number) => any) | undefined;
49
+ onOpenEmployeeMenu?: ((empId: number, anchor: HTMLElement) => any) | undefined;
48
50
  onDragShiftStart?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
49
51
  onDropOnCell?: ((empId: number, dayIdx: number, ev: DragEvent) => any) | undefined;
50
52
  onOpenCardMenu?: ((empId: number, dayIdx: number, anchor: HTMLElement) => any) | undefined;
@@ -11,12 +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
- "dev-reset": () => any;
15
- "sched-status-click": () => any;
14
+ "sch-status-click": () => any;
16
15
  "clear-shifts": () => any;
17
16
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
18
- "onDev-reset"?: (() => any) | undefined;
19
- "onSched-status-click"?: (() => any) | undefined;
17
+ "onSch-status-click"?: (() => any) | undefined;
20
18
  "onClear-shifts"?: (() => any) | undefined;
21
19
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
20
  export default _default;
@@ -11,6 +11,7 @@ export interface ScheduleAddEmployeeForm {
11
11
  payBasis: 'hourly' | 'monthly';
12
12
  payAmount: string;
13
13
  maxHours: string;
14
+ minHours: string;
14
15
  otAfterDaily: string;
15
16
  maxOtHours: string;
16
17
  /** For a part-timer: days they CAN work. For a full-timer: days they're OFF — the
@@ -0,0 +1,16 @@
1
+ export interface ScheduleAnchorRect {
2
+ left: number;
3
+ right: number;
4
+ top: number;
5
+ bottom: number;
6
+ }
7
+ /** Measures the element a popover was opened from. Takes the rect while the anchor is still on
8
+ * screen; a hidden or detached element measures 0×0 and counts as "no anchor". */
9
+ export declare function anchorRectOf(el: Element | null | undefined): ScheduleAnchorRect | null;
10
+ /** Port of HRM V6.2 placePopover(): below the anchor by preference (6px gap), flipped above when
11
+ * there is no room, clamped to the viewport on both edges. Uses the popover's rendered size, so
12
+ * call it once the element is in the DOM. */
13
+ export declare function placePopover(el: HTMLElement, anchor: ScheduleAnchorRect | null): {
14
+ left: number;
15
+ top: number;
16
+ };
@@ -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
+ };
@@ -19,6 +19,7 @@ export declare function useScheduleAddEmployee(board: ScheduleBoardApi): {
19
19
  payBasis: "hourly" | "monthly";
20
20
  payAmount: string;
21
21
  maxHours: string;
22
+ minHours: string;
22
23
  otAfterDaily: string;
23
24
  maxOtHours: string;
24
25
  availDays: boolean[];
@@ -1,16 +1,15 @@
1
1
  import type { ScheduleBoardApi } from './useScheduleBoard';
2
2
  import type { ScheduleDemandApi } from './useScheduleDemand';
3
+ import { type ScheduleAnchorRect } from './schedule-popover-position';
3
4
  export interface ScheduleAddPickState {
4
5
  open: boolean;
5
6
  empId: number | null;
6
7
  dayIdx: number | null;
8
+ /** Measured rect of the cell the popup opened from; the popup component places itself from it
9
+ * once rendered (V6.2 placePopover), writing the result to `left`/`top`. */
10
+ anchor: ScheduleAnchorRect | null;
7
11
  left: number;
8
- /** Only one of `top`/`bottom` is live at a time, picked by `openAbove` — anchoring from the
9
- * bottom when flipped up lets the box grow with its own content (the query input plus
10
- * however many pick-list rows there are) instead of a height guessed in JS. */
11
12
  top: number;
12
- bottom: number;
13
- openAbove: boolean;
14
13
  }
15
14
  export interface ScheduleAddPickLeaveOption {
16
15
  reason: string;
@@ -21,6 +20,8 @@ export interface ScheduleAddPickSuggestion {
21
20
  end: string;
22
21
  short: number;
23
22
  label: string;
23
+ /** "Covers 16:00–22:00 demand" — the demand this offer answers, shown under the label. */
24
+ covers: string;
24
25
  title: string;
25
26
  }
26
27
  /** The "+ Add" quick-pick popover on an employee's empty cell — ported from the mockup's
@@ -35,15 +36,21 @@ export interface ScheduleAddPickSuggestion {
35
36
  export declare function useScheduleAddPick(board: ScheduleBoardApi, demand: ScheduleDemandApi, handlers: {
36
37
  onCommitted: (message: string) => void;
37
38
  onOpenFullEditor: (empId: number, dayIdx: number) => void;
39
+ /** The leave editor, on this cell. `reason` is the row's own type, or null for the plain "Leave" row. */
40
+ onOpenLeave: (empId: number, dayIdx: number, reason: string | null) => void;
38
41
  }): {
39
42
  state: {
40
43
  open: boolean;
41
44
  empId: number | null;
42
45
  dayIdx: number | null;
46
+ anchor: {
47
+ left: number;
48
+ right: number;
49
+ top: number;
50
+ bottom: number;
51
+ } | null;
43
52
  left: number;
44
53
  top: number;
45
- bottom: number;
46
- openAbove: boolean;
47
54
  };
48
55
  query: import("vue").Ref<string, string>;
49
56
  parsedRange: import("vue").ComputedRef<{
@@ -51,6 +51,11 @@ export interface ScheduleAssignGroup {
51
51
  export interface ScheduleAssignSlot {
52
52
  key: string;
53
53
  position: string;
54
+ /** One requirement of a demand gap: shows whether the people scheduled fulfil it (progress bar),
55
+ * and can be picked to assign people as that position. */
56
+ tracker?: boolean;
57
+ /** 0–100, for a tracker's progress bar. */
58
+ pct?: number;
54
59
  start: string;
55
60
  end: string;
56
61
  chip: string;
@@ -98,14 +103,18 @@ export declare function useScheduleAssign(board: ScheduleBoardApi, demand: Sched
98
103
  breakMins?: number | undefined;
99
104
  } | null>;
100
105
  title: import("vue").ComputedRef<string>;
101
- sub: import("vue").ComputedRef<string>;
106
+ subParts: import("vue").ComputedRef<{
107
+ position: string;
108
+ range: string;
109
+ duration: string;
110
+ } | null>;
102
111
  footLead: import("vue").ComputedRef<string>;
103
112
  footRest: import("vue").ComputedRef<string>;
104
113
  groups: import("vue").ComputedRef<ScheduleAssignGroup[]>;
105
114
  shiftSlots: import("vue").ComputedRef<ScheduleAssignSlot[]>;
106
115
  switchTo: (slot: ScheduleAssignSlot) => void;
107
116
  openFor: (openShiftId: number) => void;
108
- openForGap: (dayIdx: number, position: string, start: string, end: string, required: number, scheduled: number, gapFrom: number, gapTo: number) => void;
117
+ openForGap: (dayIdx: number, _position: string, start: string, end: string, required: number, scheduled: number, gapFrom: number, gapTo: number) => void;
109
118
  close: () => void;
110
119
  fillOpenShift: (openShiftId: number, empId: number) => void;
111
120
  armAssign: (empId: number) => void;
@@ -7,6 +7,11 @@ export interface ScheduleAutoScheduleOptions {
7
7
  fillGaps: boolean;
8
8
  objective: FdtoScheduleAutoScheduleObjective;
9
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;
10
15
  }
11
16
  /** Backend-powered draft generation and local proposal review. Generation never writes;
12
17
  * accepted proposals use the board's existing assignment persistence path. */
@@ -17,6 +22,9 @@ export declare function useScheduleAutoSchedule(board: ScheduleBoardApi, demand:
17
22
  fillGaps: boolean;
18
23
  objective: FdtoScheduleAutoScheduleObjective;
19
24
  allowOvertime: boolean;
25
+ respectAvailability: boolean;
26
+ followPatterns: boolean;
27
+ costEfficient: boolean;
20
28
  };
21
29
  generating: import("vue").Ref<boolean, boolean>;
22
30
  generateError: import("vue").Ref<string | null, string | null>;
@@ -56,6 +56,8 @@ export declare function useScheduleBoard(handlers?: {
56
56
  reason: string;
57
57
  half?: boolean | undefined;
58
58
  halfPart?: "AM" | "PM" | undefined;
59
+ from?: string | undefined;
60
+ to?: string | undefined;
59
61
  appliedOn?: string | undefined;
60
62
  note?: string | undefined;
61
63
  cert?: {
@@ -98,6 +100,7 @@ export declare function useScheduleBoard(handlers?: {
98
100
  payAmount?: number | undefined;
99
101
  maxHours?: number | undefined;
100
102
  maxOtHours?: number | undefined;
103
+ minHours?: number | undefined;
101
104
  otAfterDaily?: number | undefined;
102
105
  preferences?: string[] | undefined;
103
106
  seniority?: "senior" | "junior" | "" | undefined;
@@ -139,6 +142,8 @@ export declare function useScheduleBoard(handlers?: {
139
142
  reason: string;
140
143
  half?: boolean | undefined;
141
144
  halfPart?: "AM" | "PM" | undefined;
145
+ from?: string | undefined;
146
+ to?: string | undefined;
142
147
  appliedOn?: string | undefined;
143
148
  note?: string | undefined;
144
149
  cert?: {
@@ -181,6 +186,7 @@ export declare function useScheduleBoard(handlers?: {
181
186
  payAmount?: number | undefined;
182
187
  maxHours?: number | undefined;
183
188
  maxOtHours?: number | undefined;
189
+ minHours?: number | undefined;
184
190
  otAfterDaily?: number | undefined;
185
191
  preferences?: string[] | undefined;
186
192
  seniority?: "senior" | "junior" | "" | undefined;
@@ -228,6 +234,7 @@ export declare function useScheduleBoard(handlers?: {
228
234
  end: string;
229
235
  breakMins?: number | undefined;
230
236
  }[]>;
237
+ highlightEmpId: import("vue").Ref<number | null, number | null>;
231
238
  rangeStart: import("vue").Ref<Date, Date>;
232
239
  weekOffset: import("vue").ComputedRef<number>;
233
240
  peekWeek: (offset: number) => import("./schedule-week-cache").WeekBucket;
@@ -283,6 +290,8 @@ export declare function useScheduleBoard(handlers?: {
283
290
  reason: string;
284
291
  half?: boolean | undefined;
285
292
  halfPart?: "AM" | "PM" | undefined;
293
+ from?: string | undefined;
294
+ to?: string | undefined;
286
295
  appliedOn?: string | undefined;
287
296
  note?: string | undefined;
288
297
  cert?: {
@@ -342,6 +351,8 @@ export declare function useScheduleBoard(handlers?: {
342
351
  reason: string;
343
352
  half?: boolean | undefined;
344
353
  halfPart?: "AM" | "PM" | undefined;
354
+ from?: string | undefined;
355
+ to?: string | undefined;
345
356
  appliedOn?: string | undefined;
346
357
  note?: string | undefined;
347
358
  cert?: {
@@ -41,11 +41,6 @@ export interface ScheduleHourCell {
41
41
  title: string;
42
42
  n: number;
43
43
  }
44
- /** The day's hourly timeline (rows with shift bars placed by time), replacing the multi-day
45
- * grid for the one day Daily view is looking at. Ported from the mockup's
46
- * renderDayTimeline() + renderHourFooter() — the `else` (area) branch groups rows by position
47
- * instead of by employee, reusing the same axis/bar/lane geometry. Auto-Schedule proposal
48
- * review isn't carried over here; it stays week-view-only for now. */
49
44
  export declare function useScheduleDayTimeline(board: ScheduleBoardApi, roster: ScheduleRosterApi, areaBoard: ScheduleAreaBoardApi, handlers: {
50
45
  onAddShift: (empId: number, dayIdx: number) => void;
51
46
  onEditShift: (empId: number, dayIdx: number) => void;
@@ -8,8 +8,7 @@ export declare function spanOf(start: string, end: string): [number, number];
8
8
  /** 12-hour clock for prose — the sheet and the popovers read as sentences, and "16:00" in the
9
9
  * middle of one does not. */
10
10
  export declare function t12(hhmm: string): string;
11
- /** The terse form the timeline's two end labels use — "8a", "10:30p". At 8.5px there is room
12
- * for the hour and not for the meridiem spelled out. */
11
+ /** The timeline's two end labels — "8am", "10:30pm", meridiem spelled out. */
13
12
  export declare function minToShort(m: number): string;
14
13
  export declare function rangeText(from: number, to: number): string;
15
14
  export declare function roleTotalOf(p: DemandPeriod): number;
@@ -41,8 +40,11 @@ export declare function useScheduleDemand(board: ScheduleBoardApi): {
41
40
  setWeekdayDemand: (weekday: number, periods: DemandPeriod[]) => void;
42
41
  coverageAxis: (dayIdx: number) => ScheduleCoverageAxis;
43
42
  coverageSegments: (dayIdx: number) => CoverageSegment[];
44
- coverageImpact: (dayIdx: number, empId: number, slot: DaySlot) => {
43
+ coverageImpact: (dayIdx: number, empId: number | null, slot: DaySlot) => {
45
44
  when: string;
45
+ pctBefore: number;
46
+ pctAfter: number;
47
+ stillShort: number;
46
48
  before: {
47
49
  required: number;
48
50
  scheduled: number;
@@ -9,6 +9,9 @@ export interface ScheduleDemandSheetOptions {
9
9
  onToast?: (message: string) => void;
10
10
  /** Positions the breakdown can name — the same list the shift editor offers. */
11
11
  positionOptions: () => string[];
12
+ /** Called instead of a toast when "+ Position breakdown" is pressed and there is no position
13
+ * to name yet — the page opens its Add Position popup for that period. */
14
+ onNeedPosition?: (periodIdx: number, roleIdx: number) => void;
12
15
  }
13
16
  /** The demand sheet — editing happens on a DRAFT, so Save is a real commit and closing is a
14
17
  * real cancel. The sheet also carries the recurrence choice, because "every Tuesday" is a
@@ -41,7 +44,7 @@ export declare function useScheduleDemandSheet(board: ScheduleBoardApi, demand:
41
44
  sub: string;
42
45
  } | {
43
46
  on: boolean;
44
- key: "weekday";
47
+ key: "every";
45
48
  label: string;
46
49
  sub: string;
47
50
  } | {
@@ -70,6 +73,8 @@ export declare function useScheduleDemandSheet(board: ScheduleBoardApi, demand:
70
73
  removePeriod: (i: number) => void;
71
74
  setHeads: (i: number, value: number | string) => void;
72
75
  addRole: (i: number) => void;
76
+ addRoleNamed: (i: number, position: string) => void;
77
+ requestNewPosition: (i: number, k: number) => void;
73
78
  removeRole: (i: number, k: number) => void;
74
79
  setRoleCount: (i: number, k: number, value: number | string) => void;
75
80
  setRolePosition: (i: number, k: number, position: string) => void;
@@ -78,6 +83,7 @@ export declare function useScheduleDemandSheet(board: ScheduleBoardApi, demand:
78
83
  when: string;
79
84
  required: number;
80
85
  scheduled: number;
86
+ varies: boolean;
81
87
  pct: number;
82
88
  tone: "short" | "part" | "met" | "over";
83
89
  note: string;