@feedmepos/mf-hrm-portal 2.3.0-dev.2 → 2.3.0-dev.21
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-CJaNPHZC.js → ApprovalCodeList-DuPmMQ8Z.js} +7 -7
- package/dist/{AuditLogList-CHA98ZqW.js → AuditLogList-BeRA_284.js} +18 -19
- package/dist/{ConditionBuilderForm.vue_vue_type_script_setup_true_lang-C7rvthEI.js → ConditionBuilderForm.vue_vue_type_script_setup_true_lang-StnBAQOk.js} +2 -2
- package/dist/{EmployeeList-CVmMKt71.js → EmployeeList-qmjsbCjj.js} +255 -266
- package/dist/{FormItem.vue_vue_type_script_setup_true_lang-CUnlKsxk.js → FormItem.vue_vue_type_script_setup_true_lang-oQJgMciC.js} +6 -6
- package/dist/{GrantUserList-MYjgt5-F.js → GrantUserList--WUK7zrV.js} +8 -8
- package/dist/{Main-hlcHtrsc.js → Main-9X2iCXoX.js} +5 -5
- package/dist/{Main-C0cnqQ3B.js → Main-BIAeEQV9.js} +8 -8
- package/dist/{Main-BgB9lD4K.js → Main-tPL_YTwT.js} +11 -11
- package/dist/{PermissionSetList-5f1WIaVa.js → PermissionSetList-ByTyQe0s.js} +19 -18
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-Bp9WwlnI.js +4167 -0
- package/dist/{PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-fe-Rdwn4.js → PortalUserSearcher.vue_vue_type_style_index_0_scoped_827dfd60_lang-DQcgZ0nF.js} +1 -1
- package/dist/ResponsiveContextMenu.vue_vue_type_script_setup_true_lang-mSJFKo7r.js +132 -0
- package/dist/{RoleList-DNR4miXr.js → RoleList-INlydQmP.js} +21 -20
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-d8KDvgNu.js +530 -0
- package/dist/ScheduleGeneralPage-DbOoP9Ez.js +776 -0
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-UowMybGr.js +2439 -0
- package/dist/SchedulePage-CjOZtRlK.js +19291 -0
- package/dist/{SchedulePositionPage-DyRckyUx.js → SchedulePositionPage-CnDqkvL9.js} +78 -80
- package/dist/{SelectFilter-CG13h83-.js → SelectFilter-BWw4B9tM.js} +1 -1
- package/dist/{TeamMemberList-mw5OveZG.js → TeamMemberList-BgYtoXht.js} +27 -27
- package/dist/{TimesheetList-BzXarZbM.js → TimesheetList-Dg0QYsWO.js} +52 -53
- package/dist/{TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-Dq5i4poN.js → TimesheetList.vue_vue_type_style_index_0_scoped_63294af2_lang-eTd4J1CB.js} +3 -3
- package/dist/{app-DSsdRLHg.js → app-CDo04LrB.js} +2891 -2474
- package/dist/app.js +1 -1
- package/dist/{approval-code-C9DmR4Md.js → approval-code-BXUiojPH.js} +1 -1
- package/dist/{dayjs.min-B6xBXQtU.js → dayjs.min-KFBmxZF3.js} +1 -1
- package/dist/{employee-hMhzuqk1.js → employee-BRaYoaOY.js} +4 -4
- package/dist/{grant-user-Bv-pJ9Wt.js → grant-user-CBJ3gEgW.js} +1 -1
- package/dist/{iteration-B34AvpNC.js → iteration-p-TjO05t.js} +1 -1
- package/dist/{lodash-1Vyuy7Mu.js → lodash-D72lpJgs.js} +1 -1
- package/dist/object-Dwyg2LgX.js +16 -0
- package/dist/{restaurant-D7PEQjPY.js → restaurant-D2mfKHaH.js} +48 -48
- package/dist/{role-DKOrgO6f.js → role-a35Vc8gC.js} +2 -2
- package/dist/{rule-CBzQ3GeV.js → rule-BRRw0K7p.js} +3 -3
- package/dist/src/api/schedule/index.d.ts +9 -1
- package/dist/src/components/layout/SchedulePromoBanner.vue.d.ts +2 -0
- package/dist/src/composables/useDiscardConfirm.d.ts +3 -1
- package/dist/src/types/schedule.d.ts +3 -4
- package/dist/src/views/audit-log/locales/index.d.ts +252 -0
- package/dist/src/views/scheduling/components/ScheduleAreaRows.vue.d.ts +4 -8
- package/dist/src/views/scheduling/components/ScheduleBoardAreaRows.vue.d.ts +1 -4
- package/dist/src/views/scheduling/components/ScheduleBoardEditOverlays.vue.d.ts +0 -2
- package/dist/src/views/scheduling/components/ScheduleBoardEmployeeRows.vue.d.ts +0 -7
- package/dist/src/views/scheduling/components/ScheduleBoardGridHeader.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleBoardInteractionOverlays.vue.d.ts +0 -6
- package/dist/src/views/scheduling/components/ScheduleBoardOnboardingOverlays.vue.d.ts +1 -0
- package/dist/src/views/scheduling/components/ScheduleBoardToolbar.vue.d.ts +0 -1
- package/dist/src/views/scheduling/components/ScheduleConfirmModal.vue.d.ts +4 -1
- package/dist/src/views/scheduling/components/ScheduleContextMenu.vue.d.ts +1 -5
- package/dist/src/views/scheduling/components/ScheduleDayTimeline.vue.d.ts +5 -0
- package/dist/src/views/scheduling/components/ScheduleLoadState.vue.d.ts +0 -1
- package/dist/src/views/scheduling/components/{ScheduleAssignEmployeePopover.vue.d.ts → ScheduleOnboardingAssignPositionModal.vue.d.ts} +2 -2
- package/dist/src/views/scheduling/components/ScheduleOnboardingSettings.vue.d.ts +6 -0
- package/dist/src/views/scheduling/components/SchedulePublishShareArt.vue.d.ts +2 -0
- package/dist/src/views/scheduling/components/ScheduleSelect.vue.d.ts +10 -0
- package/dist/src/views/scheduling/components/ScheduleStaffRows.vue.d.ts +0 -10
- package/dist/src/views/scheduling/composables/onboarding-types.d.ts +2 -1
- package/dist/src/views/scheduling/composables/remyPrompt.d.ts +4 -2
- package/dist/src/views/scheduling/composables/schedule-add-employee-form.d.ts +12 -8
- package/dist/src/views/scheduling/composables/schedule-board-helpers.d.ts +4 -0
- package/dist/src/views/scheduling/composables/schedule-day-meta.d.ts +1 -3
- package/dist/src/views/scheduling/composables/schedule-demand-domain.d.ts +13 -1
- package/dist/src/views/scheduling/composables/schedule-error.d.ts +1 -0
- package/dist/src/views/scheduling/composables/schedule-quick-pick.d.ts +22 -0
- package/dist/src/views/scheduling/composables/schedule-shift-time.d.ts +3 -0
- package/dist/src/views/scheduling/composables/useRemyAppStore.d.ts +6 -0
- package/dist/src/views/scheduling/composables/useScheduleAddEmployee.d.ts +29 -11
- package/dist/src/views/scheduling/composables/useScheduleAddPick.d.ts +3 -11
- package/dist/src/views/scheduling/composables/useScheduleAreaBoard.d.ts +0 -13
- package/dist/src/views/scheduling/composables/useScheduleAreaDragDrop.d.ts +2 -9
- package/dist/src/views/scheduling/composables/useScheduleAutoSchedule.d.ts +11 -3
- package/dist/src/views/scheduling/composables/useScheduleBoard.d.ts +86 -11
- package/dist/src/views/scheduling/composables/useScheduleCopyWeek.d.ts +3 -10
- package/dist/src/views/scheduling/composables/useScheduleCostRail.d.ts +13 -1
- package/dist/src/views/scheduling/composables/useScheduleDayNote.d.ts +0 -1
- package/dist/src/views/scheduling/composables/useScheduleDayTimeline.d.ts +16 -5
- package/dist/src/views/scheduling/composables/useScheduleDemand.d.ts +3 -5
- package/dist/src/views/scheduling/composables/useScheduleDemandSheet.d.ts +13 -3
- package/dist/src/views/scheduling/composables/useScheduleDragDrop.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAccess.d.ts +20 -7
- package/dist/src/views/scheduling/composables/useScheduleEmployeeAvailability.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleEmployeeCandidates.d.ts +5 -1
- package/dist/src/views/scheduling/composables/useScheduleEmployeePersistence.d.ts +5 -0
- package/dist/src/views/scheduling/composables/useScheduleEmployeeValidation.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleGapPopover.d.ts +2 -0
- package/dist/src/views/scheduling/composables/useScheduleOnboardingDemand.d.ts +1 -1
- package/dist/src/views/scheduling/composables/useScheduleOnboardingEmployees.d.ts +47 -3
- package/dist/src/views/scheduling/composables/useScheduleOnboardingWizard.d.ts +408 -29
- package/dist/src/views/scheduling/composables/useScheduleOutlet.d.ts +11 -8
- package/dist/src/views/scheduling/composables/useSchedulePageCellDrop.d.ts +3 -1
- package/dist/src/views/scheduling/composables/useSchedulePageClearActions.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useSchedulePageOverlays.d.ts +0 -4
- package/dist/src/views/scheduling/composables/useSchedulePositionModal.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useSchedulePositions.d.ts +7 -1
- package/dist/src/views/scheduling/composables/useSchedulePublish.d.ts +2 -0
- package/dist/src/views/scheduling/composables/useScheduleRoster.d.ts +70 -4
- package/dist/src/views/scheduling/composables/useScheduleSettings.d.ts +7 -2
- package/dist/src/views/scheduling/composables/useScheduleSetupBanner.d.ts +2 -2
- package/dist/src/views/scheduling/composables/useScheduleShiftActions.d.ts +41 -3
- package/dist/src/views/scheduling/composables/useScheduleShiftDraft.d.ts +1 -0
- package/dist/src/views/scheduling/composables/useScheduleShiftPopover.d.ts +47 -6
- package/dist/src/views/scheduling/country-rules/index.d.ts +9 -4
- package/dist/src/views/scheduling/data.d.ts +22 -1
- package/dist/src/views/scheduling/locales/index.d.ts +28 -0
- package/dist/src/views/scheduling/schedule-state.d.ts +272 -208
- package/dist/src/views/scheduling/schedule-store.d.ts +36 -11
- package/dist/src/views/scheduling/types.d.ts +30 -5
- package/dist/style.css +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{useAppStore-d_nHyK5u.js → useAppStore-DZCdxlCd.js} +1 -1
- package/dist/useDiscardConfirm-CzZSPyvh.js +28 -0
- package/dist/{useLoading-JFoghhRz.js → useLoading-Nygx2zn8.js} +1 -1
- package/dist/{useReportPermissions-B2ev0j4w.js → useReportPermissions-Ca-9DEOI.js} +3 -3
- package/package.json +1 -1
- package/dist/PortalPermissionEditor.vue_vue_type_script_setup_true_lang-CFoTAGIX.js +0 -4167
- package/dist/ScheduleAddPositionModal.vue_vue_type_script_setup_true_lang-B4VUyKW3.js +0 -470
- package/dist/ScheduleGeneralPage-Cd5AlY4z.js +0 -666
- package/dist/ScheduleModal.vue_vue_type_script_setup_true_lang-Cf0l2MRg.js +0 -2188
- package/dist/SchedulePage-C8m0-m3l.js +0 -18257
- package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
- package/dist/src/views/scheduling/components/ScheduleAllShiftsRow.vue.d.ts +0 -22
- package/dist/src/views/scheduling/components/ScheduleStackPopover.vue.d.ts +0 -14
- package/dist/src/views/scheduling/composables/useScheduleAllShiftsRow.d.ts +0 -77
- package/dist/src/views/scheduling/composables/useScheduleAssign.d.ts +0 -124
- package/dist/src/views/scheduling/composables/useScheduleOpenShiftCard.d.ts +0 -23
- package/dist/useDiscardConfirm-DPhEV6v0.js +0 -157
package/dist/app.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineStore as C } from "pinia";
|
|
2
2
|
import { ref as l } from "vue";
|
|
3
|
-
import { g as p, b as s } from "./restaurant-
|
|
3
|
+
import { g as p, b as s } from "./restaurant-D2mfKHaH.js";
|
|
4
4
|
const n = {
|
|
5
5
|
async getApprovalCodes() {
|
|
6
6
|
return p(await s("approval-codes").get(""));
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { d as g } from "./dayjs.min-
|
|
1
|
+
import { d as g } from "./dayjs.min-KFBmxZF3.js";
|
|
2
2
|
import { defineStore as $, storeToRefs as x } from "pinia";
|
|
3
3
|
import { ref as m } from "vue";
|
|
4
|
-
import { s as E } from "./iteration-
|
|
5
|
-
import { b as l, g as f, u as I } from "./restaurant-
|
|
4
|
+
import { s as E } from "./iteration-p-TjO05t.js";
|
|
5
|
+
import { b as l, g as f, u as I } from "./restaurant-D2mfKHaH.js";
|
|
6
6
|
import { i as v } from "./utils-BZkjJbju.js";
|
|
7
|
-
import { u as P } from "./role-
|
|
7
|
+
import { u as P } from "./role-a35Vc8gC.js";
|
|
8
8
|
const o = {
|
|
9
9
|
async readEmployees() {
|
|
10
10
|
return f(await l().get("/pos-users"));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineStore as f } from "pinia";
|
|
2
2
|
import { ref as u } from "vue";
|
|
3
|
-
import { g as s, a as v, b as o } from "./restaurant-
|
|
3
|
+
import { g as s, a as v, b as o } from "./restaurant-D2mfKHaH.js";
|
|
4
4
|
const c = {
|
|
5
5
|
async getGrantUsers() {
|
|
6
6
|
return s(await o("grant").get(""));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as B } from "./app-
|
|
1
|
+
import { f as B } from "./app-CDo04LrB.js";
|
|
2
2
|
var ma = {}, Zt = {}, l = {}, ji = {}, Ei = {}, Ii = {}, Dn = {};
|
|
3
3
|
(function(e) {
|
|
4
4
|
Object.defineProperty(e, "__esModule", { value: !0 }), e.getParsedType = e.ZodParsedType = e.util = void 0;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { toRaw as n } from "vue";
|
|
2
|
+
function t(r) {
|
|
3
|
+
return JSON.parse(JSON.stringify(r));
|
|
4
|
+
}
|
|
5
|
+
function o(r) {
|
|
6
|
+
if (typeof structuredClone > "u")
|
|
7
|
+
return t(r);
|
|
8
|
+
try {
|
|
9
|
+
return structuredClone(n(r));
|
|
10
|
+
} catch {
|
|
11
|
+
return t(r);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
o as c
|
|
16
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineStore as gt, storeToRefs as
|
|
1
|
+
import { defineStore as gt, storeToRefs as St } from "pinia";
|
|
2
2
|
import { ref as fe } from "vue";
|
|
3
|
-
import { useCoreStore as re, baseClientInstance as We, FeedMeAuth as
|
|
3
|
+
import { useCoreStore as re, baseClientInstance as We, FeedMeAuth as Rt } from "@feedmepos/mf-common";
|
|
4
4
|
function Ke(e, t) {
|
|
5
5
|
return function() {
|
|
6
6
|
return e.apply(t, arguments);
|
|
@@ -354,7 +354,7 @@ function ae(e, t, n) {
|
|
|
354
354
|
convertValue: l,
|
|
355
355
|
isVisitable: ye
|
|
356
356
|
});
|
|
357
|
-
function
|
|
357
|
+
function S(d, m) {
|
|
358
358
|
if (!a.isUndefined(d)) {
|
|
359
359
|
if (h.indexOf(d) !== -1)
|
|
360
360
|
throw Error("Circular reference detected in " + m.join("."));
|
|
@@ -365,13 +365,13 @@ function ae(e, t, n) {
|
|
|
365
365
|
a.isString(C) ? C.trim() : C,
|
|
366
366
|
m,
|
|
367
367
|
b
|
|
368
|
-
)) === !0 &&
|
|
368
|
+
)) === !0 && S(E, m ? m.concat(C) : [C]);
|
|
369
369
|
}), h.pop();
|
|
370
370
|
}
|
|
371
371
|
}
|
|
372
372
|
if (!a.isObject(e))
|
|
373
373
|
throw new TypeError("data must be an object");
|
|
374
|
-
return
|
|
374
|
+
return S(e), t;
|
|
375
375
|
}
|
|
376
376
|
function _e(e) {
|
|
377
377
|
const t = {
|
|
@@ -486,27 +486,27 @@ const at = {
|
|
|
486
486
|
Blob: mn
|
|
487
487
|
},
|
|
488
488
|
protocols: ["http", "https", "file", "blob", "url", "data"]
|
|
489
|
-
},
|
|
490
|
-
self instanceof WorkerGlobalScope && typeof self.importScripts == "function", En =
|
|
489
|
+
}, Se = typeof window < "u" && typeof document < "u", be = typeof navigator == "object" && navigator || void 0, bn = Se && (!be || ["ReactNative", "NativeScript", "NS"].indexOf(be.product) < 0), wn = typeof WorkerGlobalScope < "u" && // eslint-disable-next-line no-undef
|
|
490
|
+
self instanceof WorkerGlobalScope && typeof self.importScripts == "function", En = Se && window.location.href || "http://localhost", gn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
491
491
|
__proto__: null,
|
|
492
|
-
hasBrowserEnv:
|
|
492
|
+
hasBrowserEnv: Se,
|
|
493
493
|
hasStandardBrowserEnv: bn,
|
|
494
494
|
hasStandardBrowserWebWorkerEnv: wn,
|
|
495
495
|
navigator: be,
|
|
496
496
|
origin: En
|
|
497
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
497
|
+
}, Symbol.toStringTag, { value: "Module" })), R = {
|
|
498
498
|
...gn,
|
|
499
499
|
...yn
|
|
500
500
|
};
|
|
501
|
-
function
|
|
502
|
-
return ae(e, new
|
|
501
|
+
function Sn(e, t) {
|
|
502
|
+
return ae(e, new R.classes.URLSearchParams(), {
|
|
503
503
|
visitor: function(n, r, s, o) {
|
|
504
|
-
return
|
|
504
|
+
return R.isNode && a.isBuffer(n) ? (this.append(r, n.toString("base64")), !1) : o.defaultVisitor.apply(this, arguments);
|
|
505
505
|
},
|
|
506
506
|
...t
|
|
507
507
|
});
|
|
508
508
|
}
|
|
509
|
-
function
|
|
509
|
+
function Rn(e) {
|
|
510
510
|
return a.matchAll(/\w+|\[(\w*)]/g, e).map((t) => t[0] === "[]" ? "" : t[1] || t[0]);
|
|
511
511
|
}
|
|
512
512
|
function On(e) {
|
|
@@ -528,7 +528,7 @@ function ct(e) {
|
|
|
528
528
|
if (a.isFormData(e) && a.isFunction(e.entries)) {
|
|
529
529
|
const n = {};
|
|
530
530
|
return a.forEachEntry(e, (r, s) => {
|
|
531
|
-
t(
|
|
531
|
+
t(Rn(r), s, n, 0);
|
|
532
532
|
}), n;
|
|
533
533
|
}
|
|
534
534
|
return null;
|
|
@@ -559,7 +559,7 @@ const K = {
|
|
|
559
559
|
let c;
|
|
560
560
|
if (o) {
|
|
561
561
|
if (r.indexOf("application/x-www-form-urlencoded") > -1)
|
|
562
|
-
return
|
|
562
|
+
return Sn(t, this.formSerializer).toString();
|
|
563
563
|
if ((c = a.isFileList(t)) || r.indexOf("multipart/form-data") > -1) {
|
|
564
564
|
const f = this.env && this.env.FormData;
|
|
565
565
|
return ae(
|
|
@@ -596,8 +596,8 @@ const K = {
|
|
|
596
596
|
maxContentLength: -1,
|
|
597
597
|
maxBodyLength: -1,
|
|
598
598
|
env: {
|
|
599
|
-
FormData:
|
|
600
|
-
Blob:
|
|
599
|
+
FormData: R.classes.FormData,
|
|
600
|
+
Blob: R.classes.Blob
|
|
601
601
|
},
|
|
602
602
|
validateStatus: function(t) {
|
|
603
603
|
return t >= 200 && t < 300;
|
|
@@ -855,8 +855,8 @@ function _n(e, t) {
|
|
|
855
855
|
b += n[h++], h = h % e;
|
|
856
856
|
if (s = (s + 1) % e, s === o && (o = (o + 1) % e), l - i < t)
|
|
857
857
|
return;
|
|
858
|
-
const
|
|
859
|
-
return
|
|
858
|
+
const S = u && l - u;
|
|
859
|
+
return S ? Math.round(b * 1e3 / S) : void 0;
|
|
860
860
|
};
|
|
861
861
|
}
|
|
862
862
|
function Ln(e, t) {
|
|
@@ -897,10 +897,10 @@ const ne = (e, t, n = 3) => {
|
|
|
897
897
|
total: e,
|
|
898
898
|
loaded: r
|
|
899
899
|
}), t[1]];
|
|
900
|
-
}, De = (e) => (...t) => a.asap(() => e(...t)), Bn =
|
|
901
|
-
new URL(
|
|
902
|
-
|
|
903
|
-
) : () => !0, kn =
|
|
900
|
+
}, De = (e) => (...t) => a.asap(() => e(...t)), Bn = R.hasStandardBrowserEnv ? /* @__PURE__ */ ((e, t) => (n) => (n = new URL(n, R.origin), e.protocol === n.protocol && e.host === n.host && (t || e.port === n.port)))(
|
|
901
|
+
new URL(R.origin),
|
|
902
|
+
R.navigator && /(msie|trident)/i.test(R.navigator.userAgent)
|
|
903
|
+
) : () => !0, kn = R.hasStandardBrowserEnv ? (
|
|
904
904
|
// Standard browser envs support document.cookie
|
|
905
905
|
{
|
|
906
906
|
write(e, t, n, r, s, o, i) {
|
|
@@ -1011,7 +1011,7 @@ const dt = (e) => {
|
|
|
1011
1011
|
"Authorization",
|
|
1012
1012
|
"Basic " + btoa((c.username || "") + ":" + (c.password ? unescape(encodeURIComponent(c.password)) : ""))
|
|
1013
1013
|
), a.isFormData(n)) {
|
|
1014
|
-
if (
|
|
1014
|
+
if (R.hasStandardBrowserEnv || R.hasStandardBrowserWebWorkerEnv)
|
|
1015
1015
|
i.setContentType(void 0);
|
|
1016
1016
|
else if (a.isFunction(n.getHeaders)) {
|
|
1017
1017
|
const f = n.getHeaders(), l = ["content-type", "content-length"];
|
|
@@ -1020,7 +1020,7 @@ const dt = (e) => {
|
|
|
1020
1020
|
});
|
|
1021
1021
|
}
|
|
1022
1022
|
}
|
|
1023
|
-
if (
|
|
1023
|
+
if (R.hasStandardBrowserEnv && (r && a.isFunction(r) && (r = r(t)), r || r !== !1 && Bn(t.url))) {
|
|
1024
1024
|
const f = s && o && kn.read(o);
|
|
1025
1025
|
f && i.set(s, f);
|
|
1026
1026
|
}
|
|
@@ -1030,9 +1030,9 @@ const dt = (e) => {
|
|
|
1030
1030
|
const s = dt(e);
|
|
1031
1031
|
let o = s.data;
|
|
1032
1032
|
const i = T.from(s.headers).normalize();
|
|
1033
|
-
let { responseType: c, onUploadProgress: f, onDownloadProgress: l } = s, u, h, b,
|
|
1033
|
+
let { responseType: c, onUploadProgress: f, onDownloadProgress: l } = s, u, h, b, S, d;
|
|
1034
1034
|
function m() {
|
|
1035
|
-
|
|
1035
|
+
S && S(), d && d(), s.cancelToken && s.cancelToken.unsubscribe(u), s.signal && s.signal.removeEventListener("abort", u);
|
|
1036
1036
|
}
|
|
1037
1037
|
let p = new XMLHttpRequest();
|
|
1038
1038
|
p.open(s.method.toUpperCase(), s.url, !0), p.timeout = s.timeout;
|
|
@@ -1073,11 +1073,11 @@ const dt = (e) => {
|
|
|
1073
1073
|
)), p = null;
|
|
1074
1074
|
}, o === void 0 && i.setContentType(null), "setRequestHeader" in p && a.forEach(i.toJSON(), function(O, N) {
|
|
1075
1075
|
p.setRequestHeader(N, O);
|
|
1076
|
-
}), a.isUndefined(s.withCredentials) || (p.withCredentials = !!s.withCredentials), c && c !== "json" && (p.responseType = s.responseType), l && ([b, d] = ne(l, !0), p.addEventListener("progress", b)), f && p.upload && ([h,
|
|
1076
|
+
}), a.isUndefined(s.withCredentials) || (p.withCredentials = !!s.withCredentials), c && c !== "json" && (p.responseType = s.responseType), l && ([b, d] = ne(l, !0), p.addEventListener("progress", b)), f && p.upload && ([h, S] = ne(f), p.upload.addEventListener("progress", h), p.upload.addEventListener("loadend", S)), (s.cancelToken || s.signal) && (u = (g) => {
|
|
1077
1077
|
p && (r(!g || g.type ? new M(null, e, p) : g), p.abort(), p = null);
|
|
1078
1078
|
}, s.cancelToken && s.cancelToken.subscribe(u), s.signal && (s.signal.aborted ? u() : s.signal.addEventListener("abort", u)));
|
|
1079
1079
|
const C = Un(s.url);
|
|
1080
|
-
if (C &&
|
|
1080
|
+
if (C && R.protocols.indexOf(C) === -1) {
|
|
1081
1081
|
r(new y("Unsupported protocol " + C + ":", y.ERR_BAD_REQUEST, e));
|
|
1082
1082
|
return;
|
|
1083
1083
|
}
|
|
@@ -1184,7 +1184,7 @@ const dt = (e) => {
|
|
|
1184
1184
|
return !1;
|
|
1185
1185
|
const c = s && Z($e), f = s && (typeof He == "function" ? /* @__PURE__ */ ((d) => (m) => d.encode(m))(new He()) : async (d) => new Uint8Array(await new n(d).arrayBuffer())), l = o && c && Me(() => {
|
|
1186
1186
|
let d = !1;
|
|
1187
|
-
const m = new n(
|
|
1187
|
+
const m = new n(R.origin, {
|
|
1188
1188
|
body: new $e(),
|
|
1189
1189
|
method: "POST",
|
|
1190
1190
|
get duplex() {
|
|
@@ -1209,7 +1209,7 @@ const dt = (e) => {
|
|
|
1209
1209
|
if (a.isBlob(d))
|
|
1210
1210
|
return d.size;
|
|
1211
1211
|
if (a.isSpecCompliantForm(d))
|
|
1212
|
-
return (await new n(
|
|
1212
|
+
return (await new n(R.origin, {
|
|
1213
1213
|
method: "POST",
|
|
1214
1214
|
body: d
|
|
1215
1215
|
}).arrayBuffer()).byteLength;
|
|
@@ -1217,7 +1217,7 @@ const dt = (e) => {
|
|
|
1217
1217
|
return d.byteLength;
|
|
1218
1218
|
if (a.isURLSearchParams(d) && (d = d + ""), a.isString(d))
|
|
1219
1219
|
return (await f(d)).byteLength;
|
|
1220
|
-
},
|
|
1220
|
+
}, S = async (d, m) => {
|
|
1221
1221
|
const p = a.toFiniteNumber(d.getContentLength());
|
|
1222
1222
|
return p ?? b(m);
|
|
1223
1223
|
};
|
|
@@ -1243,7 +1243,7 @@ const dt = (e) => {
|
|
|
1243
1243
|
});
|
|
1244
1244
|
let Te;
|
|
1245
1245
|
try {
|
|
1246
|
-
if (B && l && p !== "get" && p !== "head" && (Te = await
|
|
1246
|
+
if (B && l && p !== "get" && p !== "head" && (Te = await S(ue, E)) !== 0) {
|
|
1247
1247
|
let L = new n(m, {
|
|
1248
1248
|
method: "POST",
|
|
1249
1249
|
body: E,
|
|
@@ -1320,14 +1320,14 @@ const dt = (e) => {
|
|
|
1320
1320
|
return l;
|
|
1321
1321
|
};
|
|
1322
1322
|
pt();
|
|
1323
|
-
const
|
|
1323
|
+
const Re = {
|
|
1324
1324
|
http: un,
|
|
1325
1325
|
xhr: qn,
|
|
1326
1326
|
fetch: {
|
|
1327
1327
|
get: pt
|
|
1328
1328
|
}
|
|
1329
1329
|
};
|
|
1330
|
-
a.forEach(
|
|
1330
|
+
a.forEach(Re, (e, t) => {
|
|
1331
1331
|
if (e) {
|
|
1332
1332
|
try {
|
|
1333
1333
|
Object.defineProperty(e, "name", { value: t });
|
|
@@ -1345,7 +1345,7 @@ function Kn(e, t) {
|
|
|
1345
1345
|
for (let i = 0; i < n; i++) {
|
|
1346
1346
|
r = e[i];
|
|
1347
1347
|
let c;
|
|
1348
|
-
if (s = r, !Wn(r) && (s =
|
|
1348
|
+
if (s = r, !Wn(r) && (s = Re[(c = String(r)).toLowerCase()], s === void 0))
|
|
1349
1349
|
throw new y(`Unknown adapter '${c}'`);
|
|
1350
1350
|
if (s && (a.isFunction(s) || (s = s.get(t))))
|
|
1351
1351
|
break;
|
|
@@ -1375,7 +1375,7 @@ const ht = {
|
|
|
1375
1375
|
* Exposes all known adapters
|
|
1376
1376
|
* @type {Object<string, Function|Object>}
|
|
1377
1377
|
*/
|
|
1378
|
-
adapters:
|
|
1378
|
+
adapters: Re
|
|
1379
1379
|
};
|
|
1380
1380
|
function he(e) {
|
|
1381
1381
|
if (e.cancelToken && e.cancelToken.throwIfRequested(), e.signal && e.signal.aborted)
|
|
@@ -1523,18 +1523,18 @@ let j = class {
|
|
|
1523
1523
|
return u;
|
|
1524
1524
|
}
|
|
1525
1525
|
b = c.length;
|
|
1526
|
-
let
|
|
1526
|
+
let S = n;
|
|
1527
1527
|
for (; h < b; ) {
|
|
1528
1528
|
const d = c[h++], m = c[h++];
|
|
1529
1529
|
try {
|
|
1530
|
-
|
|
1530
|
+
S = d(S);
|
|
1531
1531
|
} catch (p) {
|
|
1532
1532
|
m.call(this, p);
|
|
1533
1533
|
break;
|
|
1534
1534
|
}
|
|
1535
1535
|
}
|
|
1536
1536
|
try {
|
|
1537
|
-
u = ze.call(this,
|
|
1537
|
+
u = ze.call(this, S);
|
|
1538
1538
|
} catch (d) {
|
|
1539
1539
|
return Promise.reject(d);
|
|
1540
1540
|
}
|
|
@@ -1767,8 +1767,8 @@ const {
|
|
|
1767
1767
|
toFormData: wr,
|
|
1768
1768
|
AxiosHeaders: Er,
|
|
1769
1769
|
HttpStatusCode: gr,
|
|
1770
|
-
formToJSON:
|
|
1771
|
-
getAdapter:
|
|
1770
|
+
formToJSON: Sr,
|
|
1771
|
+
getAdapter: Rr,
|
|
1772
1772
|
mergeConfig: Or
|
|
1773
1773
|
} = w;
|
|
1774
1774
|
class er extends Error {
|
|
@@ -1778,7 +1778,7 @@ class er extends Error {
|
|
|
1778
1778
|
}
|
|
1779
1779
|
const wt = (e) => (t) => {
|
|
1780
1780
|
var s;
|
|
1781
|
-
const n = ((s = re().sessionUser.value) == null ? void 0 : s.token) ??
|
|
1781
|
+
const n = ((s = re().sessionUser.value) == null ? void 0 : s.token) ?? Rt.token;
|
|
1782
1782
|
if (!n) throw new Error("Invalid token");
|
|
1783
1783
|
const r = w.create({
|
|
1784
1784
|
baseURL: `${e}/${t}`,
|
|
@@ -1830,9 +1830,10 @@ const nr = {
|
|
|
1830
1830
|
return tr(await Ve().get("/hr-restaurants"));
|
|
1831
1831
|
},
|
|
1832
1832
|
async saveOperationalHours(e, t) {
|
|
1833
|
-
await Ve(
|
|
1834
|
-
|
|
1835
|
-
|
|
1833
|
+
await Ve(`restaurants/${e}/schedules`).patch(
|
|
1834
|
+
"operational-hours",
|
|
1835
|
+
{ operatingHours: t }
|
|
1836
|
+
);
|
|
1836
1837
|
}
|
|
1837
1838
|
}, rr = gt("restaurant", () => {
|
|
1838
1839
|
const { currentBusiness: e } = re(), t = fe([]), n = fe(!1), r = fe(null);
|
|
@@ -1865,12 +1866,11 @@ const nr = {
|
|
|
1865
1866
|
const e = rr();
|
|
1866
1867
|
return {
|
|
1867
1868
|
...e,
|
|
1868
|
-
...
|
|
1869
|
+
...St(e)
|
|
1869
1870
|
};
|
|
1870
1871
|
};
|
|
1871
1872
|
export {
|
|
1872
1873
|
er as A,
|
|
1873
|
-
nr as R,
|
|
1874
1874
|
Cr as a,
|
|
1875
1875
|
Ve as b,
|
|
1876
1876
|
Tr as c,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineStore as x, storeToRefs as b } from "pinia";
|
|
2
2
|
import { ref as w } from "vue";
|
|
3
3
|
import { useCoreStore as B } from "@feedmepos/mf-common";
|
|
4
|
-
import { s as v } from "./iteration-
|
|
5
|
-
import { g as f, b as p, u as I } from "./restaurant-
|
|
4
|
+
import { s as v } from "./iteration-p-TjO05t.js";
|
|
5
|
+
import { g as f, b as p, u as I } from "./restaurant-D2mfKHaH.js";
|
|
6
6
|
const R = {
|
|
7
7
|
async readRoles() {
|
|
8
8
|
return f(await p().get("/pos-roles"));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { s as W, c as q, e as y } from "./iteration-
|
|
2
|
-
import {
|
|
1
|
+
import { s as W, c as q, e as y } from "./iteration-p-TjO05t.js";
|
|
2
|
+
import { h as O, c as V, d as _, v as F, n as h, O as ee, D as M } from "./app-CDo04LrB.js";
|
|
3
3
|
import { s as se } from "./utils-BZkjJbju.js";
|
|
4
|
-
import { g, b as v, q as x, u as te } from "./restaurant-
|
|
4
|
+
import { g, b as v, q as x, u as te } from "./restaurant-D2mfKHaH.js";
|
|
5
5
|
import { defineStore as z, storeToRefs as K } from "pinia";
|
|
6
6
|
import { ref as S, computed as T } from "vue";
|
|
7
7
|
import { useCoreStore as X } from "@feedmepos/mf-common";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoSchedulePosition, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSettings, FdtoScheduleScheduleDay, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq } from '@/types/schedule';
|
|
1
|
+
import type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleResult, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBulkReplaceDemandReq, FdtoScheduleClearScheduleReq, FdtoScheduleCopyScheduleReq, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoSchedulePosition, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSettings, FdtoScheduleScheduleDay, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCompleteOnboardingReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleUpdateTimeOffStatusReq } from '@/types/schedule';
|
|
2
2
|
declare const ScheduleAPI: {
|
|
3
|
+
completeOnboarding(restaurantId: string, req: FdtoScheduleCompleteOnboardingReq): Promise<any>;
|
|
3
4
|
listEmployeeProfiles(employeeIds?: string[]): Promise<FdtoScheduleEmployee[]>;
|
|
4
5
|
listEmployeeConfigs(restaurantId: string): Promise<FdtoScheduleEmployeeConfig[]>;
|
|
5
6
|
saveEmployeeConfigs(restaurantId: string, req: FdtoScheduleSaveEmployeeConfigsReq): Promise<FdtoScheduleEmployeeConfig[]>;
|
|
@@ -17,6 +18,7 @@ declare const ScheduleAPI: {
|
|
|
17
18
|
createEmployeeProfile(_restaurantId: string, req: FdtoScheduleCreateEmployeeProfileReq): Promise<FdtoScheduleEmployee>;
|
|
18
19
|
/** Edits the employee's shared business-level scheduling profile. */
|
|
19
20
|
updateEmployeeProfile(_restaurantId: string, employeeId: string, req: FdtoScheduleUpdateEmployeeProfileReq): Promise<FdtoScheduleEmployee>;
|
|
21
|
+
validatePosAccess(req: FdtoScheduleValidatePosAccessReq): Promise<void>;
|
|
20
22
|
/** Positions are shared across the business. */
|
|
21
23
|
createPosition(req: FdtoScheduleSavePositionReq): Promise<FdtoSchedulePosition>;
|
|
22
24
|
updatePosition(id: string, req: FdtoScheduleSavePositionReq): Promise<FdtoSchedulePosition>;
|
|
@@ -34,6 +36,8 @@ declare const ScheduleAPI: {
|
|
|
34
36
|
}>;
|
|
35
37
|
/** Atomically replaces one date/weekday's flattened demand rows. */
|
|
36
38
|
replaceDemands(restaurantId: string, req: FdtoScheduleReplaceDemandReq): Promise<FdtoScheduleDemand[]>;
|
|
39
|
+
/** Atomically replaces several date/weekday demand generations. */
|
|
40
|
+
bulkReplaceDemands(restaurantId: string, req: FdtoScheduleBulkReplaceDemandReq): Promise<FdtoScheduleDemand[]>;
|
|
37
41
|
/** Replaces one date's note/holiday-mark. All three fields back to empty/false clears it. */
|
|
38
42
|
saveScheduleDay(restaurantId: string, date: string, req: FdtoScheduleSaveScheduleDayReq): Promise<FdtoScheduleScheduleDay | null>;
|
|
39
43
|
/** A one-off shift assignment. */
|
|
@@ -41,6 +45,10 @@ declare const ScheduleAPI: {
|
|
|
41
45
|
updateAssignment(restaurantId: string, id: string, req: FdtoScheduleSaveAssignmentReq): Promise<FdtoScheduleAssignment | null>;
|
|
42
46
|
/** Atomically applies assignment updates, creates, and deletes used by moves and swaps. */
|
|
43
47
|
bulkSaveAssignments(restaurantId: string, req: FdtoScheduleBulkSaveAssignmentsReq): Promise<FdtoScheduleBulkSaveAssignmentsResult>;
|
|
48
|
+
/** Replaces demand and/or assignments in one backend transaction. */
|
|
49
|
+
copySchedule(restaurantId: string, req: FdtoScheduleCopyScheduleReq): Promise<any>;
|
|
50
|
+
/** Clears demand and/or assignments in one backend transaction. */
|
|
51
|
+
clearSchedule(restaurantId: string, req: FdtoScheduleClearScheduleReq): Promise<any>;
|
|
44
52
|
/** Deletes a batch of assignments in one request — e.g. a shift split into several segments
|
|
45
53
|
* getting replaced wholesale. Deleting one assignment is just this with a single-id
|
|
46
54
|
* array. */
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
* only view-model commands that intentionally do not cross HTTP (for example
|
|
6
6
|
* replacing a period made up of several persisted demand rows).
|
|
7
7
|
*/
|
|
8
|
-
export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleRejection, FdtoScheduleAutoScheduleResult, FdtoScheduleAutoScheduleTiming, FdtoScheduleAutoScheduleUnfilledNeed, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
|
|
9
|
-
/** UI-level replacement command. The store expands these periods into flat
|
|
8
|
+
export type { FdtoScheduleAssignment, FdtoScheduleAutoScheduleApplyReq, FdtoScheduleAutoScheduleApplyResult, FdtoScheduleAutoScheduleCapabilities, FdtoScheduleAutoScheduleGenerateReq, FdtoScheduleAutoScheduleObjective, FdtoScheduleAutoSchedulePlanner, FdtoScheduleAutoScheduleProposal, FdtoScheduleAutoScheduleRejection, FdtoScheduleAutoScheduleResult, FdtoScheduleAutoScheduleTiming, FdtoScheduleAutoScheduleUnfilledNeed, FdtoScheduleBoard, FdtoScheduleBulkUpdateAssignmentStatusReq, FdtoScheduleBulkSaveAssignmentsReq, FdtoScheduleBulkSaveAssignmentsResult, FdtoScheduleBulkReplaceDemandReq, FdtoScheduleClearScheduleReq, FdtoScheduleCopyScheduleReq, FdtoScheduleCompleteOnboardingReq, FdtoScheduleBreak, FdtoScheduleCreateEmployeeProfileReq, FdtoScheduleEmployeeConfig, FdtoScheduleDayOperatingHours, FdtoScheduleDemand, FdtoScheduleEmployee, FdtoScheduleOptionalDateRange, FdtoSchedulePayRate, FdtoSchedulePosition, FdtoSchedulePositionRef, FdtoSchedulePositionSelectorReq, FdtoScheduleRestaurantProfile, FdtoScheduleSaveAssignmentReq, FdtoScheduleSaveDemandReq, FdtoScheduleReplaceDemandReq, FdtoScheduleSaveEmployeeConfigsReq, FdtoScheduleSavePositionReq, FdtoScheduleSaveScheduleDayReq, FdtoScheduleSaveSettingsReq, FdtoScheduleScheduleDay, FdtoScheduleSettings, FdtoScheduleUpdateEmployeeProfileReq, FdtoScheduleValidatePosAccessReq, FdtoScheduleCreateTimeOffReq, FdtoScheduleTimeOff, FdtoScheduleTimeOffDayPart, FdtoScheduleTimeOffQuery, FdtoScheduleTimeOffStatus, FdtoScheduleTimeOffType, FdtoScheduleUpdateTimeOffStatusReq, } from '@feedmepos/hrm-schedule-contract';
|
|
9
|
+
/** UI-level date replacement command. The store expands these periods into flat
|
|
10
10
|
* ShiftDemand rows before calling the shared HTTP contract. */
|
|
11
11
|
export interface ScheduleReplaceDemandReq {
|
|
12
|
-
date
|
|
13
|
-
dayOfWeek?: number;
|
|
12
|
+
date: string;
|
|
14
13
|
periods: Array<{
|
|
15
14
|
startTime: string;
|
|
16
15
|
endTime: string;
|