kaafil-react-uikit 0.12.0 → 0.13.0
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/CHANGELOG.md +62 -0
- package/dist/admin/index.cjs +363 -381
- package/dist/admin/index.cjs.map +1 -1
- package/dist/admin/index.js +6 -24
- package/dist/admin/index.js.map +1 -1
- package/dist/chunk-5QFW5GL4.cjs +24 -0
- package/dist/chunk-5QFW5GL4.cjs.map +1 -0
- package/dist/{chunk-5ORJRFXZ.cjs → chunk-64AFXHOF.cjs} +6 -4
- package/dist/chunk-64AFXHOF.cjs.map +1 -0
- package/dist/{chunk-YJJ4DI42.js → chunk-AKJLIH5A.js} +6 -4
- package/dist/chunk-AKJLIH5A.js.map +1 -0
- package/dist/{chunk-ZKLX6YRT.js → chunk-BT2ZX3JY.js} +5 -5
- package/dist/{chunk-ZKLX6YRT.js.map → chunk-BT2ZX3JY.js.map} +1 -1
- package/dist/{chunk-U6IE2UYL.js → chunk-CJLQ2Z4Q.js} +3 -3
- package/dist/{chunk-U6IE2UYL.js.map → chunk-CJLQ2Z4Q.js.map} +1 -1
- package/dist/{chunk-F2ENMVT7.js → chunk-DXDSCQLC.js} +3 -3
- package/dist/{chunk-F2ENMVT7.js.map → chunk-DXDSCQLC.js.map} +1 -1
- package/dist/{chunk-ARXY3ZA7.cjs → chunk-GD5UU4G6.cjs} +85 -85
- package/dist/{chunk-ARXY3ZA7.cjs.map → chunk-GD5UU4G6.cjs.map} +1 -1
- package/dist/{chunk-RCWSMWQD.js → chunk-IAKK2CKB.js} +3 -3
- package/dist/{chunk-RCWSMWQD.js.map → chunk-IAKK2CKB.js.map} +1 -1
- package/dist/chunk-JOUTGBUJ.js +22 -0
- package/dist/chunk-JOUTGBUJ.js.map +1 -0
- package/dist/{chunk-KJSQLVBR.cjs → chunk-JY2C4S3J.cjs} +55 -55
- package/dist/{chunk-KJSQLVBR.cjs.map → chunk-JY2C4S3J.cjs.map} +1 -1
- package/dist/chunk-KFOCETDW.cjs +12 -0
- package/dist/{chunk-YKBA4WQJ.cjs.map → chunk-KFOCETDW.cjs.map} +1 -1
- package/dist/{chunk-T5JYKERY.cjs → chunk-LSOV3FJL.cjs} +12 -12
- package/dist/{chunk-T5JYKERY.cjs.map → chunk-LSOV3FJL.cjs.map} +1 -1
- package/dist/{chunk-XGPX7TYV.js → chunk-LW2YB7VC.js} +3 -3
- package/dist/{chunk-XGPX7TYV.js.map → chunk-LW2YB7VC.js.map} +1 -1
- package/dist/{chunk-6QSHORU3.cjs → chunk-MLVS5KS6.cjs} +17 -17
- package/dist/{chunk-6QSHORU3.cjs.map → chunk-MLVS5KS6.cjs.map} +1 -1
- package/dist/{chunk-XWU5MCY3.cjs → chunk-TCVXLZ4H.cjs} +9 -9
- package/dist/{chunk-XWU5MCY3.cjs.map → chunk-TCVXLZ4H.cjs.map} +1 -1
- package/dist/{chunk-LJO2FGFD.js → chunk-TFFHYZMZ.js} +5 -5
- package/dist/{chunk-LJO2FGFD.js.map → chunk-TFFHYZMZ.js.map} +1 -1
- package/dist/{chunk-VHBGE4BY.cjs → chunk-XNZU6ZLX.cjs} +4 -4
- package/dist/{chunk-VHBGE4BY.cjs.map → chunk-XNZU6ZLX.cjs.map} +1 -1
- package/dist/{chunk-LOLQNRIK.js → chunk-YSJXNKCU.js} +3 -3
- package/dist/{chunk-LOLQNRIK.js.map → chunk-YSJXNKCU.js.map} +1 -1
- package/dist/core/index.cjs +107 -107
- package/dist/core/index.js +10 -10
- package/dist/manager/index.cjs +273 -298
- package/dist/manager/index.cjs.map +1 -1
- package/dist/manager/index.d.cts +46 -2
- package/dist/manager/index.d.ts +46 -2
- package/dist/manager/index.js +21 -46
- package/dist/manager/index.js.map +1 -1
- package/dist/traveller/index.cjs +35 -35
- package/dist/traveller/index.js +5 -5
- package/package.json +14 -14
- package/dist/chunk-5ORJRFXZ.cjs.map +0 -1
- package/dist/chunk-YJJ4DI42.js.map +0 -1
- package/dist/chunk-YKBA4WQJ.cjs +0 -12
package/dist/manager/index.cjs
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
3
|
+
var chunkTCVXLZ4H_cjs = require('../chunk-TCVXLZ4H.cjs');
|
|
4
|
+
var chunk5QFW5GL4_cjs = require('../chunk-5QFW5GL4.cjs');
|
|
5
|
+
var chunkGD5UU4G6_cjs = require('../chunk-GD5UU4G6.cjs');
|
|
6
|
+
var chunkKFOCETDW_cjs = require('../chunk-KFOCETDW.cjs');
|
|
7
|
+
var chunkLSOV3FJL_cjs = require('../chunk-LSOV3FJL.cjs');
|
|
8
|
+
var chunk64AFXHOF_cjs = require('../chunk-64AFXHOF.cjs');
|
|
8
9
|
var react = require('react');
|
|
9
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
11
|
|
|
@@ -180,7 +181,7 @@ function CloseIcon(props) {
|
|
|
180
181
|
}
|
|
181
182
|
var PHASES = ["PRE_DEPARTURE", "IN_TRIP", "POST_TRIP"];
|
|
182
183
|
function AddItemSheet({ open, sections, onSubmit, onClose }) {
|
|
183
|
-
const { t } =
|
|
184
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
184
185
|
const [sectionId, setSectionId] = react.useState(sections[0]?.id ?? "NEW");
|
|
185
186
|
const [newSectionTitle, setNewSectionTitle] = react.useState("");
|
|
186
187
|
const [newSectionPhase, setNewSectionPhase] = react.useState("PRE_DEPARTURE");
|
|
@@ -346,7 +347,7 @@ function AddItemSheet({ open, sections, onSubmit, onClose }) {
|
|
|
346
347
|
}
|
|
347
348
|
var GATES = ["NONE", "PRE_TO_ACTIVE", "ACTIVE_TO_CLOSED_OUT"];
|
|
348
349
|
function EditItemSheet({ item, onSubmit, onClose }) {
|
|
349
|
-
const { t } =
|
|
350
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
350
351
|
const [title, setTitle] = react.useState("");
|
|
351
352
|
const [subLine, setSubLine] = react.useState("");
|
|
352
353
|
const [isMandatory, setIsMandatory] = react.useState(false);
|
|
@@ -492,7 +493,7 @@ function ItemRow({
|
|
|
492
493
|
onEdit,
|
|
493
494
|
onDelete
|
|
494
495
|
}) {
|
|
495
|
-
const { t } =
|
|
496
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
496
497
|
const isComplete = item.status === "COMPLETE";
|
|
497
498
|
const due = dueDayLabelKey(item.dayOffset);
|
|
498
499
|
function onKeyDown(event) {
|
|
@@ -558,7 +559,7 @@ function ItemRow({
|
|
|
558
559
|
);
|
|
559
560
|
}
|
|
560
561
|
function ProgressCard({ title, subtitle, progress }) {
|
|
561
|
-
const { t } =
|
|
562
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
562
563
|
const percent = overallPercent(progress);
|
|
563
564
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist__progress-card", children: [
|
|
564
565
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-checklist__progress-title", children: title }) : null,
|
|
@@ -585,7 +586,7 @@ function PullTemplateSheet({
|
|
|
585
586
|
onSubmit,
|
|
586
587
|
onClose
|
|
587
588
|
}) {
|
|
588
|
-
const { t } =
|
|
589
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
589
590
|
const [templates, setTemplates] = react.useState(void 0);
|
|
590
591
|
const [loadFailed, setLoadFailed] = react.useState(false);
|
|
591
592
|
const [selectedId, setSelectedId] = react.useState(void 0);
|
|
@@ -760,7 +761,7 @@ function SectionCard({
|
|
|
760
761
|
onDeleteItem,
|
|
761
762
|
ItemRowComponent
|
|
762
763
|
}) {
|
|
763
|
-
const { t } =
|
|
764
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
764
765
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist__section", children: [
|
|
765
766
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist__section-header", children: [
|
|
766
767
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -788,7 +789,7 @@ function SectionCard({
|
|
|
788
789
|
] });
|
|
789
790
|
}
|
|
790
791
|
function ManagerChecklistSection(props) {
|
|
791
|
-
const session =
|
|
792
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
792
793
|
if (session.status !== "authenticated") {
|
|
793
794
|
return null;
|
|
794
795
|
}
|
|
@@ -799,10 +800,10 @@ function ReadyManagerChecklistSection({
|
|
|
799
800
|
components,
|
|
800
801
|
style
|
|
801
802
|
}) {
|
|
802
|
-
const { t } =
|
|
803
|
-
const checklist =
|
|
804
|
-
const managers =
|
|
805
|
-
const managerMe =
|
|
803
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
804
|
+
const checklist = chunkGD5UU4G6_cjs.useChecklists(tripRef);
|
|
805
|
+
const managers = chunkGD5UU4G6_cjs.useManagers(tripRef);
|
|
806
|
+
const managerMe = chunkTCVXLZ4H_cjs.useManagerMe();
|
|
806
807
|
const ProgressCardUI = components?.ProgressCard ?? ProgressCard;
|
|
807
808
|
const SectionCardUI = components?.SectionCard ?? SectionCard;
|
|
808
809
|
const ItemRowUI = components?.ItemRow ?? ItemRow;
|
|
@@ -814,7 +815,7 @@ function ReadyManagerChecklistSection({
|
|
|
814
815
|
/* @__PURE__ */ new Map()
|
|
815
816
|
);
|
|
816
817
|
if (checklist.status === "loading") {
|
|
817
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist__skeleton", style:
|
|
818
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
818
819
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-checklist__skeleton-block" }),
|
|
819
820
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-checklist__skeleton-line" }),
|
|
820
821
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-checklist__skeleton-line kf-manager-checklist__skeleton-line--short" })
|
|
@@ -844,7 +845,7 @@ function ReadyManagerChecklistSection({
|
|
|
844
845
|
});
|
|
845
846
|
}
|
|
846
847
|
};
|
|
847
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist", style:
|
|
848
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-checklist", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
848
849
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
849
850
|
ProgressCardUI,
|
|
850
851
|
{
|
|
@@ -1073,7 +1074,7 @@ function LockIcon(props) {
|
|
|
1073
1074
|
);
|
|
1074
1075
|
}
|
|
1075
1076
|
function BlockerRow({ blocker, onAction }) {
|
|
1076
|
-
const { t } =
|
|
1077
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1077
1078
|
const Icon = blocker.severity === "hard" ? WarningIcon : InfoIcon;
|
|
1078
1079
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__blocker-row", "data-severity": blocker.severity, children: [
|
|
1079
1080
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-closeout__blocker-icon", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": "true" }) }),
|
|
@@ -1102,7 +1103,7 @@ function HandoverNoteEditor({
|
|
|
1102
1103
|
disabled,
|
|
1103
1104
|
onSave
|
|
1104
1105
|
}) {
|
|
1105
|
-
const { t } =
|
|
1106
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1106
1107
|
const [draft, setDraft] = react.useState(note ?? "");
|
|
1107
1108
|
const [savedLabel, setSavedLabel] = react.useState(false);
|
|
1108
1109
|
react.useEffect(() => {
|
|
@@ -1179,7 +1180,7 @@ function LockConfirmSheet({
|
|
|
1179
1180
|
onConfirm,
|
|
1180
1181
|
onClose
|
|
1181
1182
|
}) {
|
|
1182
|
-
const { t } =
|
|
1183
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1183
1184
|
react.useEffect(() => {
|
|
1184
1185
|
if (!open) {
|
|
1185
1186
|
return;
|
|
@@ -1254,7 +1255,7 @@ var PERFORMED_BY_LABEL_KEY = {
|
|
|
1254
1255
|
SYSTEM: "chrome.managerTrip.closeout.performedBy.system"
|
|
1255
1256
|
};
|
|
1256
1257
|
function LockedSummary({ aggregate }) {
|
|
1257
|
-
const { t } =
|
|
1258
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1258
1259
|
const performedByLabel = aggregate.performedByKind !== null ? t(
|
|
1259
1260
|
PERFORMED_BY_LABEL_KEY[aggregate.performedByKind] ?? "chrome.managerTrip.closeout.performedBy.system"
|
|
1260
1261
|
) : void 0;
|
|
@@ -1275,7 +1276,7 @@ function stageLabelKey(stage) {
|
|
|
1275
1276
|
return stage !== null ? STAGE_LABEL_KEY[stage] ?? "chrome.managerTrip.closeout.stage.notReturned" : "chrome.managerTrip.closeout.stage.notReturned";
|
|
1276
1277
|
}
|
|
1277
1278
|
function StageStrip({ aggregate }) {
|
|
1278
|
-
const { t } =
|
|
1279
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1279
1280
|
const { financialSummary } = aggregate;
|
|
1280
1281
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__stage", children: [
|
|
1281
1282
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-closeout__stage-badge", "data-stage": aggregate.stage ?? "none", children: t(stageLabelKey(aggregate.stage)) }),
|
|
@@ -1314,7 +1315,7 @@ function StageStrip({ aggregate }) {
|
|
|
1314
1315
|
] });
|
|
1315
1316
|
}
|
|
1316
1317
|
function UnlockRequestForm({ tripRef, onSubmit }) {
|
|
1317
|
-
const { t } =
|
|
1318
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1318
1319
|
const [reason, setReason] = react.useState("");
|
|
1319
1320
|
const [submitting, setSubmitting] = react.useState(false);
|
|
1320
1321
|
const [submitted, setSubmitted] = react.useState(false);
|
|
@@ -1353,7 +1354,7 @@ function UnlockRequestForm({ tripRef, onSubmit }) {
|
|
|
1353
1354
|
] });
|
|
1354
1355
|
}
|
|
1355
1356
|
function ManagerCloseoutSection(props) {
|
|
1356
|
-
const session =
|
|
1357
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
1357
1358
|
if (session.status !== "authenticated") {
|
|
1358
1359
|
return null;
|
|
1359
1360
|
}
|
|
@@ -1366,13 +1367,13 @@ function ReadyManagerCloseoutSection({
|
|
|
1366
1367
|
components,
|
|
1367
1368
|
style
|
|
1368
1369
|
}) {
|
|
1369
|
-
const { t } =
|
|
1370
|
-
const closeout =
|
|
1370
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1371
|
+
const closeout = chunkGD5UU4G6_cjs.useCloseout(tripRef);
|
|
1371
1372
|
const BlockerRowUI = components?.BlockerRow ?? BlockerRow;
|
|
1372
1373
|
const [lockSheetOpen, setLockSheetOpen] = react.useState(false);
|
|
1373
1374
|
const [lockPending, setLockPending] = react.useState(false);
|
|
1374
1375
|
if (closeout.status === "loading") {
|
|
1375
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__skeleton", style:
|
|
1376
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
1376
1377
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout__skeleton-line" }),
|
|
1377
1378
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout__skeleton-line" }),
|
|
1378
1379
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout__skeleton-line kf-manager-closeout__skeleton-line--short" })
|
|
@@ -1382,17 +1383,17 @@ function ReadyManagerCloseoutSection({
|
|
|
1382
1383
|
return null;
|
|
1383
1384
|
}
|
|
1384
1385
|
if (!closeout.loaded || closeout.aggregate === void 0) {
|
|
1385
|
-
return closeout.lastFetchFailed ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__skeleton", style:
|
|
1386
|
+
return closeout.lastFetchFailed ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
1386
1387
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout__skeleton-line" }),
|
|
1387
1388
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout__skeleton-line" })
|
|
1388
1389
|
] });
|
|
1389
1390
|
}
|
|
1390
1391
|
const { aggregate } = closeout;
|
|
1391
1392
|
if (aggregate.stage === null) {
|
|
1392
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout", style:
|
|
1393
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout", style: chunk64AFXHOF_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-closeout__not-returned", children: t("chrome.managerTrip.closeout.notReturnedYet") }) });
|
|
1393
1394
|
}
|
|
1394
1395
|
if (aggregate.lockedAt !== null) {
|
|
1395
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout", style:
|
|
1396
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
1396
1397
|
/* @__PURE__ */ jsxRuntime.jsx(LockedSummary, { aggregate }),
|
|
1397
1398
|
/* @__PURE__ */ jsxRuntime.jsx(UnlockRequestForm, { tripRef, onSubmit: onSubmitUnlockRequest })
|
|
1398
1399
|
] });
|
|
@@ -1408,7 +1409,7 @@ function ReadyManagerCloseoutSection({
|
|
|
1408
1409
|
setLockPending(false);
|
|
1409
1410
|
}
|
|
1410
1411
|
}
|
|
1411
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout", style:
|
|
1412
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
1412
1413
|
/* @__PURE__ */ jsxRuntime.jsx(StageStrip, { aggregate }),
|
|
1413
1414
|
rankedBlockers.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-closeout__all-clear", children: [
|
|
1414
1415
|
/* @__PURE__ */ jsxRuntime.jsx(CheckIcon2, { "aria-hidden": "true" }),
|
|
@@ -1632,7 +1633,7 @@ var PURPOSE_LABEL_KEY = {
|
|
|
1632
1633
|
trip_document: "chrome.managerTrip.documents.bucket.tripDocument"
|
|
1633
1634
|
};
|
|
1634
1635
|
function DocumentBucketTile({ purpose, count, onOpen }) {
|
|
1635
|
-
const { t } =
|
|
1636
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1636
1637
|
const Icon = PURPOSE_ICON[purpose];
|
|
1637
1638
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1638
1639
|
"button",
|
|
@@ -1668,7 +1669,7 @@ function formatFileSize(sizeBytes) {
|
|
|
1668
1669
|
}
|
|
1669
1670
|
var FILE_DATE_FORMATTER = new Intl.DateTimeFormat("en-GB", { day: "numeric", month: "short" });
|
|
1670
1671
|
function DocumentBucketGrid({ items, onOpen }) {
|
|
1671
|
-
const { t } =
|
|
1672
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1672
1673
|
const [activePurpose, setActivePurpose] = react.useState(void 0);
|
|
1673
1674
|
const buckets = react.useMemo(() => {
|
|
1674
1675
|
return PURPOSE_ORDER.map((purpose) => ({
|
|
@@ -1737,7 +1738,7 @@ async function shareFile(file) {
|
|
|
1737
1738
|
await navigator.clipboard.writeText(file.url);
|
|
1738
1739
|
}
|
|
1739
1740
|
function DocumentViewerSheet({ file, onClose }) {
|
|
1740
|
-
const { t } =
|
|
1741
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1741
1742
|
react.useEffect(() => {
|
|
1742
1743
|
if (file === void 0) {
|
|
1743
1744
|
return;
|
|
@@ -1821,15 +1822,15 @@ function DocumentViewerSheet({ file, onClose }) {
|
|
|
1821
1822
|
) });
|
|
1822
1823
|
}
|
|
1823
1824
|
function ManagerDocumentsSection(props) {
|
|
1824
|
-
const session =
|
|
1825
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
1825
1826
|
if (session.status !== "authenticated") {
|
|
1826
1827
|
return null;
|
|
1827
1828
|
}
|
|
1828
1829
|
return /* @__PURE__ */ jsxRuntime.jsx(ReadyManagerDocumentsSection, { ...props });
|
|
1829
1830
|
}
|
|
1830
1831
|
function ReadyManagerDocumentsSection({ tripRef, style }) {
|
|
1831
|
-
const { t } =
|
|
1832
|
-
const files =
|
|
1832
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1833
|
+
const files = chunkGD5UU4G6_cjs.useFiles({ tripRef });
|
|
1833
1834
|
const [state, setState] = react.useState({ status: "loading" });
|
|
1834
1835
|
const [viewerFile, setViewerFile] = react.useState(void 0);
|
|
1835
1836
|
react.useEffect(() => {
|
|
@@ -1853,7 +1854,7 @@ function ReadyManagerDocumentsSection({ tripRef, style }) {
|
|
|
1853
1854
|
setViewerFile(view);
|
|
1854
1855
|
}
|
|
1855
1856
|
if (state.status === "loading") {
|
|
1856
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-documents__skeleton", style:
|
|
1857
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-documents__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
1857
1858
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-documents__skeleton-tile" }),
|
|
1858
1859
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-documents__skeleton-tile" })
|
|
1859
1860
|
] });
|
|
@@ -1861,7 +1862,7 @@ function ReadyManagerDocumentsSection({ tripRef, style }) {
|
|
|
1861
1862
|
if (state.status === "error") {
|
|
1862
1863
|
return null;
|
|
1863
1864
|
}
|
|
1864
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-documents", style:
|
|
1865
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-documents", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
1865
1866
|
state.items.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-documents__empty", children: t("chrome.managerTrip.documents.empty") }) : /* @__PURE__ */ jsxRuntime.jsx(DocumentBucketGrid, { items: state.items, onOpen: (fileId) => void handleOpen(fileId) }),
|
|
1866
1867
|
/* @__PURE__ */ jsxRuntime.jsx(DocumentViewerSheet, { file: viewerFile, onClose: () => setViewerFile(void 0) })
|
|
1867
1868
|
] });
|
|
@@ -1926,7 +1927,7 @@ function collectionReferenceRequired(mode) {
|
|
|
1926
1927
|
return mode !== "CASH";
|
|
1927
1928
|
}
|
|
1928
1929
|
function BalanceSummaryStrip({ rows, ownManagerId }) {
|
|
1929
|
-
const { t } =
|
|
1930
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1930
1931
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger__summary", children: [
|
|
1931
1932
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-float-ledger__eyebrow", children: t("chrome.managerTrip.floatLedger.summaryEyebrow") }),
|
|
1932
1933
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-float-ledger__summary-list", children: rows.map((row) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger__summary-row", children: [
|
|
@@ -1990,7 +1991,7 @@ var MOVEMENT_LABEL_KEY = {
|
|
|
1990
1991
|
EXPENSE: "chrome.managerTrip.floatLedger.type.expense"
|
|
1991
1992
|
};
|
|
1992
1993
|
function LedgerRow({ movement }) {
|
|
1993
|
-
const { t } =
|
|
1994
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
1994
1995
|
const isIn = movement.direction === "IN";
|
|
1995
1996
|
const Icon = isIn ? ArrowInIcon : ArrowOutIcon;
|
|
1996
1997
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger__row", children: [
|
|
@@ -2014,7 +2015,7 @@ function LedgerRow({ movement }) {
|
|
|
2014
2015
|
] });
|
|
2015
2016
|
}
|
|
2016
2017
|
function ManagerFloatLedgerSection(props) {
|
|
2017
|
-
const session =
|
|
2018
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
2018
2019
|
if (session.status !== "authenticated") {
|
|
2019
2020
|
return null;
|
|
2020
2021
|
}
|
|
@@ -2024,10 +2025,10 @@ function ReadyManagerFloatLedgerSection({
|
|
|
2024
2025
|
tripRef,
|
|
2025
2026
|
style
|
|
2026
2027
|
}) {
|
|
2027
|
-
const { t } =
|
|
2028
|
-
const float =
|
|
2028
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2029
|
+
const float = chunkGD5UU4G6_cjs.useFloat(tripRef);
|
|
2029
2030
|
if (float.status === "loading") {
|
|
2030
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger__skeleton", style:
|
|
2031
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
2031
2032
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-float-ledger__skeleton-block" }),
|
|
2032
2033
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-float-ledger__skeleton-line" }),
|
|
2033
2034
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-float-ledger__skeleton-line kf-manager-float-ledger__skeleton-line--short" })
|
|
@@ -2041,7 +2042,7 @@ function ReadyManagerFloatLedgerSection({
|
|
|
2041
2042
|
const sortedMovements = [...movements].sort(
|
|
2042
2043
|
(a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()
|
|
2043
2044
|
);
|
|
2044
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger", style:
|
|
2045
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-float-ledger", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
2045
2046
|
summary.rows.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(BalanceSummaryStrip, { rows: summary.rows, ownManagerId: ownManagerId ?? "" }) : null,
|
|
2046
2047
|
sortedMovements.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-float-ledger__empty", children: t("chrome.managerTrip.floatLedger.empty") }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-float-ledger__list", children: sortedMovements.map((movement) => /* @__PURE__ */ jsxRuntime.jsx(LedgerRow, { movement }, movement.id)) })
|
|
2047
2048
|
] });
|
|
@@ -2125,7 +2126,7 @@ function PersonIcon(props) {
|
|
|
2125
2126
|
);
|
|
2126
2127
|
}
|
|
2127
2128
|
function ConflictNotice({ onRefresh }) {
|
|
2128
|
-
const { t } =
|
|
2129
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2129
2130
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms__conflict", children: [
|
|
2130
2131
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon2, {}),
|
|
2131
2132
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -2186,7 +2187,7 @@ function SelectFieldEditor({
|
|
|
2186
2187
|
required,
|
|
2187
2188
|
onChange
|
|
2188
2189
|
}) {
|
|
2189
|
-
const { t } =
|
|
2190
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2190
2191
|
const [open, setOpen] = react.useState(false);
|
|
2191
2192
|
const rootRef = react.useRef(null);
|
|
2192
2193
|
const selected = options.find((option) => option.value === value);
|
|
@@ -2289,7 +2290,7 @@ var fallback = {
|
|
|
2289
2290
|
editor: ({ field, t }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-forms__field-unsupported", children: t("chrome.managerTrip.forms.fieldUnsupported").replace("{label}", field.label) }),
|
|
2290
2291
|
preview: PlainPreview
|
|
2291
2292
|
};
|
|
2292
|
-
var fieldRegistry =
|
|
2293
|
+
var fieldRegistry = chunk64AFXHOF_cjs.createRegistry({ fallback });
|
|
2293
2294
|
fieldRegistry.register("HEADING", {
|
|
2294
2295
|
editor: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-manager-forms__field-heading", children: field.label }),
|
|
2295
2296
|
preview: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-manager-forms__field-heading", children: field.label })
|
|
@@ -2577,7 +2578,7 @@ fieldRegistry.register("MULTISELECT", {
|
|
|
2577
2578
|
},
|
|
2578
2579
|
preview: ({ value }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-forms__field-preview", children: Array.isArray(value) ? value.join(", ") : "" })
|
|
2579
2580
|
});
|
|
2580
|
-
fieldRegistry.register(
|
|
2581
|
+
fieldRegistry.register(chunkGD5UU4G6_cjs.FORM_FIELD_KIND_SINGLE_BOOLEAN, {
|
|
2581
2582
|
editor: ({ field, value, onChange }) => /* @__PURE__ */ jsxRuntime.jsx(ToggleSwitch, { checked: value === true, label: field.label, onChange }),
|
|
2582
2583
|
preview: ({ value, t }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-forms__field-preview", children: value === true ? t("chrome.managerTrip.forms.field.yes") : t("chrome.managerTrip.forms.field.no") })
|
|
2583
2584
|
});
|
|
@@ -2605,7 +2606,7 @@ function FormFillRenderer({
|
|
|
2605
2606
|
onRefreshAfterConflict,
|
|
2606
2607
|
onBack
|
|
2607
2608
|
}) {
|
|
2608
|
-
const { t } =
|
|
2609
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2609
2610
|
const [answers, setAnswers] = react.useState(() => {
|
|
2610
2611
|
const initial = {};
|
|
2611
2612
|
for (const answer of existingResponse?.answers ?? []) {
|
|
@@ -2649,7 +2650,7 @@ function FormFillRenderer({
|
|
|
2649
2650
|
(fieldsBySection.get(section.id) ?? []).map((field) => {
|
|
2650
2651
|
const handler = fieldRegistry.resolve(field.kind);
|
|
2651
2652
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms__fill-field", children: [
|
|
2652
|
-
field.kind !== "HEADING" && field.kind !== "INFO_BLOCK" && field.kind !==
|
|
2653
|
+
field.kind !== "HEADING" && field.kind !== "INFO_BLOCK" && field.kind !== chunkGD5UU4G6_cjs.FORM_FIELD_KIND_SINGLE_BOOLEAN && field.kind !== "CONSENT" ? /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "kf-manager-forms__fill-field-label", htmlFor: field.id, children: [
|
|
2653
2654
|
field.label,
|
|
2654
2655
|
field.required ? " *" : ""
|
|
2655
2656
|
] }) : null,
|
|
@@ -2691,7 +2692,7 @@ function FillHeader({
|
|
|
2691
2692
|
title,
|
|
2692
2693
|
onBack
|
|
2693
2694
|
}) {
|
|
2694
|
-
const { t } =
|
|
2695
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2695
2696
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms__fill-header", children: [
|
|
2696
2697
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2697
2698
|
"button",
|
|
@@ -2745,7 +2746,7 @@ function FormResponsesList({
|
|
|
2745
2746
|
onSelectResponse,
|
|
2746
2747
|
onBack
|
|
2747
2748
|
}) {
|
|
2748
|
-
const { t } =
|
|
2749
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2749
2750
|
const sorted = responses.slice().sort(
|
|
2750
2751
|
(a, b) => (b.submittedAt ?? b.lastSavedAt ?? "").localeCompare(a.submittedAt ?? a.lastSavedAt ?? "")
|
|
2751
2752
|
);
|
|
@@ -2851,7 +2852,7 @@ var STATUS_LABEL_KEY = {
|
|
|
2851
2852
|
ARCHIVED: "chrome.managerTrip.forms.statusArchived"
|
|
2852
2853
|
};
|
|
2853
2854
|
function FormRow({ row, now, travellerScoped, onSelect }) {
|
|
2854
|
-
const { t } =
|
|
2855
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2855
2856
|
const { form, response } = row;
|
|
2856
2857
|
const state = fillStateOf(form);
|
|
2857
2858
|
const due = dueCopyFor(form, now);
|
|
@@ -2889,7 +2890,7 @@ function TripFormsPanel({
|
|
|
2889
2890
|
travellerScoped,
|
|
2890
2891
|
onSelectForm
|
|
2891
2892
|
}) {
|
|
2892
|
-
const { t } =
|
|
2893
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2893
2894
|
if (rows.length === 0) {
|
|
2894
2895
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms__empty", children: [
|
|
2895
2896
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-forms__empty-title", children: t("chrome.managerTrip.forms.emptyTitle") }),
|
|
@@ -2942,7 +2943,7 @@ function TripFormsPanel({
|
|
|
2942
2943
|
] });
|
|
2943
2944
|
}
|
|
2944
2945
|
function ManagerFormsSection(props) {
|
|
2945
|
-
const session =
|
|
2946
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
2946
2947
|
if (session.status !== "authenticated") {
|
|
2947
2948
|
return null;
|
|
2948
2949
|
}
|
|
@@ -2956,10 +2957,10 @@ function ReadyManagerFormsSection({
|
|
|
2956
2957
|
components,
|
|
2957
2958
|
style
|
|
2958
2959
|
}) {
|
|
2959
|
-
const { t } =
|
|
2960
|
-
const forms =
|
|
2961
|
-
const conflicts =
|
|
2962
|
-
const parties =
|
|
2960
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
2961
|
+
const forms = chunkGD5UU4G6_cjs.useForms(tripRef);
|
|
2962
|
+
const conflicts = chunkTCVXLZ4H_cjs.useConflicts(tripRef);
|
|
2963
|
+
const parties = chunkGD5UU4G6_cjs.useParties(tripRef);
|
|
2963
2964
|
const TripFormsPanelUI = components?.TripFormsPanel ?? TripFormsPanel;
|
|
2964
2965
|
const FormFillRendererUI = components?.FormFillRenderer ?? FormFillRenderer;
|
|
2965
2966
|
const [travellerRows, setTravellerRows] = react.useState([]);
|
|
@@ -3079,7 +3080,7 @@ function ReadyManagerFormsSection({
|
|
|
3079
3080
|
};
|
|
3080
3081
|
}, [ready, browsingFormId, viewingResponse]);
|
|
3081
3082
|
if (forms.status === "loading") {
|
|
3082
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms__skeleton", style:
|
|
3083
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
3083
3084
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-forms__skeleton-line" }),
|
|
3084
3085
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-forms__skeleton-line" }),
|
|
3085
3086
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-forms__skeleton-line kf-manager-forms__skeleton-line--short" })
|
|
@@ -3133,7 +3134,7 @@ function ReadyManagerFormsSection({
|
|
|
3133
3134
|
setPending(false);
|
|
3134
3135
|
}
|
|
3135
3136
|
}
|
|
3136
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms", style:
|
|
3137
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-forms", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
3137
3138
|
browsingForm !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3138
3139
|
FormResponsesList,
|
|
3139
3140
|
{
|
|
@@ -3432,7 +3433,7 @@ function AddItemSheet2({
|
|
|
3432
3433
|
onDelete,
|
|
3433
3434
|
onClose
|
|
3434
3435
|
}) {
|
|
3435
|
-
const { t } =
|
|
3436
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
3436
3437
|
const [type, setType] = react.useState("OTHER");
|
|
3437
3438
|
const [title, setTitle] = react.useState("");
|
|
3438
3439
|
const [description, setDescription] = react.useState("");
|
|
@@ -3729,7 +3730,7 @@ function ChangeLogSheet({
|
|
|
3729
3730
|
onLoad,
|
|
3730
3731
|
onClose
|
|
3731
3732
|
}) {
|
|
3732
|
-
const { t } =
|
|
3733
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
3733
3734
|
react.useEffect(() => {
|
|
3734
3735
|
if (open) {
|
|
3735
3736
|
onLoad();
|
|
@@ -3792,7 +3793,7 @@ function DayStrip({ days, selectedDayIndex, onSelect }) {
|
|
|
3792
3793
|
)) });
|
|
3793
3794
|
}
|
|
3794
3795
|
function EditDaySheet({ open, day, onPatch, onClose }) {
|
|
3795
|
-
const { t } =
|
|
3796
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
3796
3797
|
const [cardTitle, setCardTitle] = react.useState("");
|
|
3797
3798
|
const [summaryLine, setSummaryLine] = react.useState("");
|
|
3798
3799
|
const [pending, setPending] = react.useState(false);
|
|
@@ -3890,7 +3891,7 @@ function ItemCard({
|
|
|
3890
3891
|
onMoveDown,
|
|
3891
3892
|
onEdit
|
|
3892
3893
|
}) {
|
|
3893
|
-
const { t } =
|
|
3894
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
3894
3895
|
const timeRange = formatTimeRange(item.startTime, item.endTime);
|
|
3895
3896
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-itinerary__item-card", children: [
|
|
3896
3897
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-itinerary__item-reorder", children: [
|
|
@@ -3940,7 +3941,7 @@ function ItemCard({
|
|
|
3940
3941
|
] });
|
|
3941
3942
|
}
|
|
3942
3943
|
function ManagerItinerarySection(props) {
|
|
3943
|
-
const session =
|
|
3944
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
3944
3945
|
if (session.status !== "authenticated") {
|
|
3945
3946
|
return null;
|
|
3946
3947
|
}
|
|
@@ -3952,9 +3953,9 @@ function ReadyManagerItinerarySection({
|
|
|
3952
3953
|
components,
|
|
3953
3954
|
style
|
|
3954
3955
|
}) {
|
|
3955
|
-
const { t } =
|
|
3956
|
-
const itinerary =
|
|
3957
|
-
const vendors =
|
|
3956
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
3957
|
+
const itinerary = chunkGD5UU4G6_cjs.useItinerary(tripRef);
|
|
3958
|
+
const vendors = chunkGD5UU4G6_cjs.useVendors(tripRef, "");
|
|
3958
3959
|
const DayStripComponent = components?.DayStrip ?? DayStrip;
|
|
3959
3960
|
const ItemCardComponent = components?.ItemCard ?? ItemCard;
|
|
3960
3961
|
const [selectedDayIndex, setSelectedDayIndex] = react.useState(void 0);
|
|
@@ -3962,7 +3963,7 @@ function ReadyManagerItinerarySection({
|
|
|
3962
3963
|
const [editDayOpen, setEditDayOpen] = react.useState(false);
|
|
3963
3964
|
const [changeLogOpen, setChangeLogOpen] = react.useState(false);
|
|
3964
3965
|
if (itinerary.status === "loading") {
|
|
3965
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-itinerary__skeleton", style:
|
|
3966
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-itinerary__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
3966
3967
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-itinerary__skeleton-block" }),
|
|
3967
3968
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-itinerary__skeleton-line" }),
|
|
3968
3969
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-itinerary__skeleton-line kf-manager-itinerary__skeleton-line--short" })
|
|
@@ -3974,7 +3975,7 @@ function ReadyManagerItinerarySection({
|
|
|
3974
3975
|
const days = sortedDays(itinerary.days);
|
|
3975
3976
|
const resolvedEmptyView = emptyView !== void 0 ? typeof emptyView === "function" ? emptyView() : emptyView : null;
|
|
3976
3977
|
if (days.length === 0) {
|
|
3977
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-itinerary", style:
|
|
3978
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-itinerary", style: chunk64AFXHOF_cjs.tokenStyle(style), children: resolvedEmptyView ?? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-itinerary__card kf-manager-itinerary__empty", children: t("chrome.managerTrip.itinerary.noDays") }) });
|
|
3978
3979
|
}
|
|
3979
3980
|
const resolvedDayIndex = selectedDayIndex ?? resolveInitialDayIndex(days, itinerary.initialDayIso);
|
|
3980
3981
|
const activeDay = days.find((day) => day.dayIndex === resolvedDayIndex) ?? days[0];
|
|
@@ -3990,7 +3991,7 @@ function ReadyManagerItinerarySection({
|
|
|
3990
3991
|
}
|
|
3991
3992
|
await itinerary.reorderItem({ itemId: item.id, index: index + direction });
|
|
3992
3993
|
};
|
|
3993
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-itinerary", style:
|
|
3994
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-itinerary", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
3994
3995
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3995
3996
|
DayStripComponent,
|
|
3996
3997
|
{
|
|
@@ -4119,28 +4120,12 @@ var RECOGNIZED_BOOKING_STATUS = /* @__PURE__ */ new Set([
|
|
|
4119
4120
|
function normalizeBookingStatus(raw) {
|
|
4120
4121
|
return RECOGNIZED_BOOKING_STATUS.has(raw) ? raw : "TENTATIVE";
|
|
4121
4122
|
}
|
|
4122
|
-
function normalizeDiet(raw) {
|
|
4123
|
-
if (raw === null) {
|
|
4124
|
-
return null;
|
|
4125
|
-
}
|
|
4126
|
-
const upper = raw.trim().toUpperCase();
|
|
4127
|
-
if (upper === "V" || upper === "VEG" || upper === "VEGETARIAN") {
|
|
4128
|
-
return "V";
|
|
4129
|
-
}
|
|
4130
|
-
if (upper === "NV" || upper === "NON-VEG" || upper === "NONVEG" || upper === "NON_VEG") {
|
|
4131
|
-
return "NV";
|
|
4132
|
-
}
|
|
4133
|
-
if (upper === "J" || upper === "JAIN") {
|
|
4134
|
-
return "J";
|
|
4135
|
-
}
|
|
4136
|
-
return null;
|
|
4137
|
-
}
|
|
4138
4123
|
function toManifestTravellers(roster) {
|
|
4139
4124
|
return roster.map((row) => ({
|
|
4140
4125
|
travellerId: row.traveller.travellerId,
|
|
4141
4126
|
fullName: row.traveller.fullName,
|
|
4142
4127
|
bookingStatus: normalizeBookingStatus(row.bookingStatus),
|
|
4143
|
-
diet: normalizeDiet(row.dietary),
|
|
4128
|
+
diet: chunk5QFW5GL4_cjs.normalizeDiet(row.dietary),
|
|
4144
4129
|
groupId: row.partyId,
|
|
4145
4130
|
dueMinor: row.balance?.dueMinor ?? 0,
|
|
4146
4131
|
currency: row.balance?.currency ?? "INR"
|
|
@@ -4230,7 +4215,7 @@ function TripBookingGroupCard({
|
|
|
4230
4215
|
onCollect,
|
|
4231
4216
|
onOpenTraveller
|
|
4232
4217
|
}) {
|
|
4233
|
-
const { t } =
|
|
4218
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4234
4219
|
const title = group.label ?? t(KIND_LABEL_KEY[group.kind]);
|
|
4235
4220
|
const visibleMembers = group.members.slice(0, VISIBLE_MEMBER_COUNT);
|
|
4236
4221
|
const overflowCount = group.members.length - visibleMembers.length;
|
|
@@ -4359,11 +4344,12 @@ function CloseIcon5(props) {
|
|
|
4359
4344
|
}
|
|
4360
4345
|
);
|
|
4361
4346
|
}
|
|
4362
|
-
var DIET_OPTIONS = ["V", "NV", "J"];
|
|
4347
|
+
var DIET_OPTIONS = ["V", "NV", "J", "OTHER"];
|
|
4363
4348
|
var DIET_LABEL_KEY = {
|
|
4364
4349
|
V: "chrome.managerTrip.manifest.traveller.diet.v",
|
|
4365
4350
|
NV: "chrome.managerTrip.manifest.traveller.diet.nv",
|
|
4366
|
-
J: "chrome.managerTrip.manifest.traveller.diet.j"
|
|
4351
|
+
J: "chrome.managerTrip.manifest.traveller.diet.j",
|
|
4352
|
+
OTHER: "chrome.managerTrip.manifest.traveller.diet.other"
|
|
4367
4353
|
};
|
|
4368
4354
|
var BALANCE_OPTIONS = ["due", "settled"];
|
|
4369
4355
|
var BALANCE_LABEL_KEY = {
|
|
@@ -4380,7 +4366,7 @@ function TripManifestFilterSheet({
|
|
|
4380
4366
|
onApply,
|
|
4381
4367
|
onClose
|
|
4382
4368
|
}) {
|
|
4383
|
-
const { t } =
|
|
4369
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4384
4370
|
react.useEffect(() => {
|
|
4385
4371
|
if (!open) {
|
|
4386
4372
|
return;
|
|
@@ -4488,7 +4474,7 @@ function TripManifestSearchRow({
|
|
|
4488
4474
|
filters,
|
|
4489
4475
|
onOpenFilters
|
|
4490
4476
|
}) {
|
|
4491
|
-
const { t } =
|
|
4477
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4492
4478
|
const activeCount = activeManifestFilterCount(filters);
|
|
4493
4479
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest__search-row", children: [
|
|
4494
4480
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest__search-field", children: [
|
|
@@ -4521,7 +4507,7 @@ function TripManifestSearchRow({
|
|
|
4521
4507
|
] });
|
|
4522
4508
|
}
|
|
4523
4509
|
function TripManifestStats({ stats }) {
|
|
4524
|
-
const { t } =
|
|
4510
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4525
4511
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest__stats", children: [
|
|
4526
4512
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest__stat-cell", children: [
|
|
4527
4513
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-manifest__stat-label", children: t("chrome.managerTrip.manifest.stats.confirmed") }),
|
|
@@ -4552,7 +4538,8 @@ function TripManifestStats({ stats }) {
|
|
|
4552
4538
|
var DIET_LABEL_KEY2 = {
|
|
4553
4539
|
V: "chrome.managerTrip.manifest.traveller.diet.v",
|
|
4554
4540
|
NV: "chrome.managerTrip.manifest.traveller.diet.nv",
|
|
4555
|
-
J: "chrome.managerTrip.manifest.traveller.diet.j"
|
|
4541
|
+
J: "chrome.managerTrip.manifest.traveller.diet.j",
|
|
4542
|
+
OTHER: "chrome.managerTrip.manifest.traveller.diet.other"
|
|
4556
4543
|
};
|
|
4557
4544
|
var STATUS_LABEL_KEY3 = {
|
|
4558
4545
|
TENTATIVE: "chrome.managerTrip.manifest.traveller.status.tentative",
|
|
@@ -4569,7 +4556,7 @@ function initials2(fullName) {
|
|
|
4569
4556
|
return `${parts[0]?.[0] ?? ""}${parts[parts.length - 1]?.[0] ?? ""}`.toUpperCase();
|
|
4570
4557
|
}
|
|
4571
4558
|
function TripTravellerRow({ traveller, onOpen }) {
|
|
4572
|
-
const { t } =
|
|
4559
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4573
4560
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4574
4561
|
"button",
|
|
4575
4562
|
{
|
|
@@ -4596,7 +4583,7 @@ function TripTravellerRow({ traveller, onOpen }) {
|
|
|
4596
4583
|
);
|
|
4597
4584
|
}
|
|
4598
4585
|
function ManagerManifestSection(props) {
|
|
4599
|
-
const session =
|
|
4586
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
4600
4587
|
if (session.status !== "authenticated") {
|
|
4601
4588
|
return null;
|
|
4602
4589
|
}
|
|
@@ -4610,11 +4597,11 @@ function ReadyManagerManifestSection({
|
|
|
4610
4597
|
components,
|
|
4611
4598
|
style
|
|
4612
4599
|
}) {
|
|
4613
|
-
const { t } =
|
|
4600
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4614
4601
|
const Stats = components?.Stats ?? TripManifestStats;
|
|
4615
4602
|
const BookingGroupCard = components?.BookingGroupCard ?? TripBookingGroupCard;
|
|
4616
4603
|
const TravellerRow = components?.TravellerRow ?? TripTravellerRow;
|
|
4617
|
-
const parties =
|
|
4604
|
+
const parties = chunkGD5UU4G6_cjs.useParties(tripRef);
|
|
4618
4605
|
const [query, setQuery] = react.useState("");
|
|
4619
4606
|
const [filters, setFilters] = react.useState(EMPTY_MANIFEST_FILTERS);
|
|
4620
4607
|
const [filterSheetOpen, setFilterSheetOpen] = react.useState(false);
|
|
@@ -4636,7 +4623,8 @@ function ReadyManagerManifestSection({
|
|
|
4636
4623
|
diet: {
|
|
4637
4624
|
V: travellers.filter((row) => row.diet === "V").length,
|
|
4638
4625
|
NV: travellers.filter((row) => row.diet === "NV").length,
|
|
4639
|
-
J: travellers.filter((row) => row.diet === "J").length
|
|
4626
|
+
J: travellers.filter((row) => row.diet === "J").length,
|
|
4627
|
+
OTHER: travellers.filter((row) => row.diet === "OTHER").length
|
|
4640
4628
|
},
|
|
4641
4629
|
balance: {
|
|
4642
4630
|
due: travellers.filter((row) => row.dueMinor > 0).length,
|
|
@@ -4646,7 +4634,7 @@ function ReadyManagerManifestSection({
|
|
|
4646
4634
|
[travellers]
|
|
4647
4635
|
);
|
|
4648
4636
|
if (parties.status === "loading") {
|
|
4649
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest__skeleton", style:
|
|
4637
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
4650
4638
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-manifest__skeleton-block" }),
|
|
4651
4639
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-manifest__skeleton-line" }),
|
|
4652
4640
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-manifest__skeleton-line kf-manager-manifest__skeleton-line--short" })
|
|
@@ -4654,7 +4642,7 @@ function ReadyManagerManifestSection({
|
|
|
4654
4642
|
}
|
|
4655
4643
|
if (parties.status === "error") {
|
|
4656
4644
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4657
|
-
|
|
4645
|
+
chunkLSOV3FJL_cjs.OfflineFallbackScreen,
|
|
4658
4646
|
{
|
|
4659
4647
|
tripRef,
|
|
4660
4648
|
onRetry: () => void parties.retry(),
|
|
@@ -4664,7 +4652,7 @@ function ReadyManagerManifestSection({
|
|
|
4664
4652
|
}
|
|
4665
4653
|
if (!parties.tripRoster.loaded && parties.tripRoster.lastFetchFailed) {
|
|
4666
4654
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
4667
|
-
|
|
4655
|
+
chunkLSOV3FJL_cjs.OfflineFallbackScreen,
|
|
4668
4656
|
{
|
|
4669
4657
|
tripRef,
|
|
4670
4658
|
onRetry: () => void parties.tripRoster.refresh(),
|
|
@@ -4674,7 +4662,7 @@ function ReadyManagerManifestSection({
|
|
|
4674
4662
|
}
|
|
4675
4663
|
const noMatches = filteredTravellers.length === 0;
|
|
4676
4664
|
const resolvedEmptyView = emptyView !== void 0 ? typeof emptyView === "function" ? emptyView() : emptyView : null;
|
|
4677
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest", style:
|
|
4665
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-manifest", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
4678
4666
|
/* @__PURE__ */ jsxRuntime.jsx(Stats, { stats }),
|
|
4679
4667
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4680
4668
|
TripManifestSearchRow,
|
|
@@ -4808,7 +4796,7 @@ function initials3(fullName) {
|
|
|
4808
4796
|
return `${parts[0]?.[0] ?? ""}${parts[parts.length - 1]?.[0] ?? ""}`.toUpperCase();
|
|
4809
4797
|
}
|
|
4810
4798
|
function ProfileHeader({ fullName }) {
|
|
4811
|
-
const { t } =
|
|
4799
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4812
4800
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me__profile-card", children: [
|
|
4813
4801
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-me__avatar", "aria-hidden": "true", children: initials3(fullName) }),
|
|
4814
4802
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me__profile-body", children: [
|
|
@@ -4831,7 +4819,7 @@ var STATUS_LABEL_KEY4 = {
|
|
|
4831
4819
|
CANCELLED: "chrome.managerMe.trips.status.cancelled"
|
|
4832
4820
|
};
|
|
4833
4821
|
function RecentTrips({ trips, onOpenTrip }) {
|
|
4834
|
-
const { t } =
|
|
4822
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4835
4823
|
if (trips.length === 0) {
|
|
4836
4824
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerMe.trips.eyebrow"), children: [
|
|
4837
4825
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-me__eyebrow", children: t("chrome.managerMe.trips.eyebrow") }),
|
|
@@ -4871,7 +4859,7 @@ function RecentTrips({ trips, onOpenTrip }) {
|
|
|
4871
4859
|
] });
|
|
4872
4860
|
}
|
|
4873
4861
|
function StatsStrip({ trips }) {
|
|
4874
|
-
const { t } =
|
|
4862
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4875
4863
|
const leading = trips.filter((trip) => trip.isLead).length;
|
|
4876
4864
|
const coManaging = trips.length - leading;
|
|
4877
4865
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me__stat-grid", children: [
|
|
@@ -4890,7 +4878,7 @@ function StatsStrip({ trips }) {
|
|
|
4890
4878
|
] });
|
|
4891
4879
|
}
|
|
4892
4880
|
function SyncStatus({ status }) {
|
|
4893
|
-
const { t } =
|
|
4881
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4894
4882
|
const Icon = status.isOnline ? WifiOnIcon : WifiOffIcon;
|
|
4895
4883
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerMe.sync.eyebrow"), children: [
|
|
4896
4884
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-me__eyebrow", children: t("chrome.managerMe.sync.eyebrow") }),
|
|
@@ -4908,18 +4896,18 @@ function SyncStatus({ status }) {
|
|
|
4908
4896
|
] });
|
|
4909
4897
|
}
|
|
4910
4898
|
function ManagerMeSection(props) {
|
|
4911
|
-
const session =
|
|
4899
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
4912
4900
|
if (session.status !== "authenticated") {
|
|
4913
4901
|
return null;
|
|
4914
4902
|
}
|
|
4915
4903
|
return /* @__PURE__ */ jsxRuntime.jsx(ReadyManagerMeSection, { ...props });
|
|
4916
4904
|
}
|
|
4917
4905
|
function ReadyManagerMeSection({ onOpenTrip, onSignOut, style }) {
|
|
4918
|
-
const { t } =
|
|
4919
|
-
const managerMe =
|
|
4920
|
-
const outboxStatus =
|
|
4906
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
4907
|
+
const managerMe = chunkTCVXLZ4H_cjs.useManagerMe();
|
|
4908
|
+
const outboxStatus = chunk64AFXHOF_cjs.useOutboxStatus();
|
|
4921
4909
|
if (managerMe.status === "loading") {
|
|
4922
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me__skeleton", style:
|
|
4910
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
4923
4911
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-me__skeleton-block" }),
|
|
4924
4912
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-me__skeleton-line" }),
|
|
4925
4913
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-me__skeleton-line kf-manager-me__skeleton-line--short" })
|
|
@@ -4928,7 +4916,7 @@ function ReadyManagerMeSection({ onOpenTrip, onSignOut, style }) {
|
|
|
4928
4916
|
if (managerMe.status === "error") {
|
|
4929
4917
|
return null;
|
|
4930
4918
|
}
|
|
4931
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me", style:
|
|
4919
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-me", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
4932
4920
|
/* @__PURE__ */ jsxRuntime.jsx(ProfileHeader, { fullName: managerMe.manager.fullName }),
|
|
4933
4921
|
/* @__PURE__ */ jsxRuntime.jsx(StatsStrip, { trips: managerMe.trips }),
|
|
4934
4922
|
/* @__PURE__ */ jsxRuntime.jsx(RecentTrips, { trips: managerMe.trips, onOpenTrip }),
|
|
@@ -4972,7 +4960,7 @@ function ManagerFab({
|
|
|
4972
4960
|
"aria-label": label,
|
|
4973
4961
|
"data-tone": tone,
|
|
4974
4962
|
className: "kf-manager-fab kf-press--fab",
|
|
4975
|
-
style:
|
|
4963
|
+
style: chunk64AFXHOF_cjs.tokenStyle(style),
|
|
4976
4964
|
children: icon ?? /* @__PURE__ */ jsxRuntime.jsx(PlusIcon3, {})
|
|
4977
4965
|
}
|
|
4978
4966
|
);
|
|
@@ -5042,7 +5030,7 @@ function FloatMovementSheet({
|
|
|
5042
5030
|
onAdjust,
|
|
5043
5031
|
onClose
|
|
5044
5032
|
}) {
|
|
5045
|
-
const { t } =
|
|
5033
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5046
5034
|
const [kind, setKind] = react.useState("RETURN");
|
|
5047
5035
|
const [amount, setAmount] = react.useState("");
|
|
5048
5036
|
const [direction, setDirection] = react.useState("OUT");
|
|
@@ -5196,8 +5184,8 @@ function LogExpenseSheet({
|
|
|
5196
5184
|
onSubmit,
|
|
5197
5185
|
onClose
|
|
5198
5186
|
}) {
|
|
5199
|
-
const { t } =
|
|
5200
|
-
const files =
|
|
5187
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5188
|
+
const files = chunkGD5UU4G6_cjs.useFiles({ tripRef });
|
|
5201
5189
|
const receiptInputId = react.useId();
|
|
5202
5190
|
const [amount, setAmount] = react.useState("");
|
|
5203
5191
|
const [category, setCategory] = react.useState("MISC");
|
|
@@ -5422,7 +5410,7 @@ function RecordCollectionSheet({
|
|
|
5422
5410
|
onSubmit,
|
|
5423
5411
|
onClose
|
|
5424
5412
|
}) {
|
|
5425
|
-
const { t } =
|
|
5413
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5426
5414
|
const outstandingByTravellerId = new Map(
|
|
5427
5415
|
balancesDue.map((row) => [row.travellerId, row])
|
|
5428
5416
|
);
|
|
@@ -5644,7 +5632,7 @@ function AddMoneyMenuSheet({
|
|
|
5644
5632
|
onMoveFloat,
|
|
5645
5633
|
onClose
|
|
5646
5634
|
}) {
|
|
5647
|
-
const { t } =
|
|
5635
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5648
5636
|
if (!open) {
|
|
5649
5637
|
return null;
|
|
5650
5638
|
}
|
|
@@ -5749,7 +5737,7 @@ function BalancesDueSection({
|
|
|
5749
5737
|
onSelect,
|
|
5750
5738
|
onSeeAll
|
|
5751
5739
|
}) {
|
|
5752
|
-
const { t } =
|
|
5740
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5753
5741
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerTrip.money.balancesDue.ariaLabel"), children: [
|
|
5754
5742
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "kf-manager-money__eyebrow-row", children: [
|
|
5755
5743
|
t("chrome.managerTrip.money.balancesDue.eyebrow"),
|
|
@@ -5780,7 +5768,7 @@ function ExpenseDetailSheet({
|
|
|
5780
5768
|
onWithdrawClaim,
|
|
5781
5769
|
onClose
|
|
5782
5770
|
}) {
|
|
5783
|
-
const { t } =
|
|
5771
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5784
5772
|
const [pending, setPending] = react.useState(false);
|
|
5785
5773
|
const [confirmingVoid, setConfirmingVoid] = react.useState(false);
|
|
5786
5774
|
const [voidReason, setVoidReason] = react.useState("");
|
|
@@ -5926,7 +5914,7 @@ function ExpenseDetailSheet({
|
|
|
5926
5914
|
) });
|
|
5927
5915
|
}
|
|
5928
5916
|
function MoneyStats({ float, spend, collect, reimbursable }) {
|
|
5929
|
-
const { t } =
|
|
5917
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5930
5918
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-money__stats", children: [
|
|
5931
5919
|
float !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-money__stat-cell", children: [
|
|
5932
5920
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-money__stat-label", children: t("chrome.managerTrip.money.stat.float") }),
|
|
@@ -5963,7 +5951,7 @@ function RecentExpensesSection({
|
|
|
5963
5951
|
expenses,
|
|
5964
5952
|
onSelect
|
|
5965
5953
|
}) {
|
|
5966
|
-
const { t } =
|
|
5954
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5967
5955
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerTrip.money.recentExpenses.ariaLabel"), children: [
|
|
5968
5956
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow", children: t("chrome.managerTrip.money.recentExpenses.eyebrow") }),
|
|
5969
5957
|
expenses.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-money__card kf-manager-money__empty", children: t("chrome.managerTrip.money.recentExpenses.empty") }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-money__list", children: expenses.slice(0, 5).map((expense) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -5989,7 +5977,7 @@ function RecentExpensesSection({
|
|
|
5989
5977
|
] });
|
|
5990
5978
|
}
|
|
5991
5979
|
function ManagerMoneySection(props) {
|
|
5992
|
-
const session =
|
|
5980
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
5993
5981
|
if (session.status !== "authenticated") {
|
|
5994
5982
|
return null;
|
|
5995
5983
|
}
|
|
@@ -6001,11 +5989,11 @@ function ReadyManagerMoneySection({
|
|
|
6001
5989
|
components,
|
|
6002
5990
|
style
|
|
6003
5991
|
}) {
|
|
6004
|
-
const { t } =
|
|
6005
|
-
const float =
|
|
6006
|
-
const expenses =
|
|
6007
|
-
const collections =
|
|
6008
|
-
const parties =
|
|
5992
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
5993
|
+
const float = chunkGD5UU4G6_cjs.useFloat(tripRef);
|
|
5994
|
+
const expenses = chunkGD5UU4G6_cjs.useExpenses(tripRef);
|
|
5995
|
+
const collections = chunkGD5UU4G6_cjs.useCollections(tripRef);
|
|
5996
|
+
const parties = chunkGD5UU4G6_cjs.useParties(tripRef);
|
|
6009
5997
|
const StatsComponent = components?.Stats ?? MoneyStats;
|
|
6010
5998
|
const RecentExpensesComponent = components?.RecentExpenses ?? RecentExpensesSection;
|
|
6011
5999
|
const BalancesDueComponent = components?.BalancesDue ?? BalancesDueSection;
|
|
@@ -6016,7 +6004,7 @@ function ReadyManagerMoneySection({
|
|
|
6016
6004
|
const [expenseDetail, setExpenseDetail] = react.useState(void 0);
|
|
6017
6005
|
const [showingAllBalances, setShowingAllBalances] = react.useState(false);
|
|
6018
6006
|
if (float.status === "loading" && expenses.status === "loading" && collections.status === "loading") {
|
|
6019
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-money__skeleton", style:
|
|
6007
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-money__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
6020
6008
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-money__skeleton-block" }),
|
|
6021
6009
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-money__skeleton-line" }),
|
|
6022
6010
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-money__skeleton-line kf-manager-money__skeleton-line--short" })
|
|
@@ -6034,7 +6022,7 @@ function ReadyManagerMoneySection({
|
|
|
6034
6022
|
const canLogExpense = expensesReady !== void 0;
|
|
6035
6023
|
const canRecordCollection = collectionsReady !== void 0 && rosterRows.length > 0;
|
|
6036
6024
|
const canMoveFloat = floatReady !== void 0 && floatRow !== void 0;
|
|
6037
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-money", style:
|
|
6025
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-money", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
6038
6026
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6039
6027
|
StatsComponent,
|
|
6040
6028
|
{
|
|
@@ -6259,7 +6247,7 @@ function NotificationRow({ notification, onSelect }) {
|
|
|
6259
6247
|
);
|
|
6260
6248
|
}
|
|
6261
6249
|
function ManagerNotificationsSection(props) {
|
|
6262
|
-
const session =
|
|
6250
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
6263
6251
|
if (session.status !== "authenticated") {
|
|
6264
6252
|
return null;
|
|
6265
6253
|
}
|
|
@@ -6269,10 +6257,10 @@ function ReadyManagerNotificationsSection({
|
|
|
6269
6257
|
onSelectNotification,
|
|
6270
6258
|
style
|
|
6271
6259
|
}) {
|
|
6272
|
-
const { t } =
|
|
6273
|
-
const notifications =
|
|
6260
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6261
|
+
const notifications = chunkTCVXLZ4H_cjs.useNotifications();
|
|
6274
6262
|
if (notifications.status === "loading") {
|
|
6275
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-notifications__skeleton", style:
|
|
6263
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-notifications__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
6276
6264
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-notifications__skeleton-line" }),
|
|
6277
6265
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-notifications__skeleton-line" }),
|
|
6278
6266
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-notifications__skeleton-line kf-manager-notifications__skeleton-line--short" })
|
|
@@ -6288,7 +6276,7 @@ function ReadyManagerNotificationsSection({
|
|
|
6288
6276
|
}
|
|
6289
6277
|
onSelectNotification({ notificationId: notification.id, tripId: notification.tripId });
|
|
6290
6278
|
}
|
|
6291
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-notifications", style:
|
|
6279
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-notifications", style: chunk64AFXHOF_cjs.tokenStyle(style), children: rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-notifications__empty", children: [
|
|
6292
6280
|
/* @__PURE__ */ jsxRuntime.jsx(InboxIcon, { className: "kf-manager-notifications__empty-icon" }),
|
|
6293
6281
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-notifications__empty-title", children: t("chrome.managerNotifications.emptyTitle") }),
|
|
6294
6282
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-notifications__empty-body", children: t("chrome.managerNotifications.emptyBody") })
|
|
@@ -6421,7 +6409,7 @@ var TONE_ICON = {
|
|
|
6421
6409
|
info: () => /* @__PURE__ */ jsxRuntime.jsx(CalendarIcon, {})
|
|
6422
6410
|
};
|
|
6423
6411
|
function NowBanners({ banners }) {
|
|
6424
|
-
const { t } =
|
|
6412
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6425
6413
|
if (banners.length === 0) {
|
|
6426
6414
|
return null;
|
|
6427
6415
|
}
|
|
@@ -6437,7 +6425,7 @@ function NowBanners({ banners }) {
|
|
|
6437
6425
|
] }, banner.id)) });
|
|
6438
6426
|
}
|
|
6439
6427
|
function NowChecklist({ items }) {
|
|
6440
|
-
const { t } =
|
|
6428
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6441
6429
|
if (items.length === 0) {
|
|
6442
6430
|
return null;
|
|
6443
6431
|
}
|
|
@@ -6462,7 +6450,7 @@ function initials4(fullName) {
|
|
|
6462
6450
|
return `${first[0] ?? ""}${last[0] ?? ""}`.toUpperCase();
|
|
6463
6451
|
}
|
|
6464
6452
|
function NowCoManager({ coManager }) {
|
|
6465
|
-
const { t } =
|
|
6453
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6466
6454
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerNow.coManager.ariaLabel"), children: [
|
|
6467
6455
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-now__eyebrow-row", children: t("chrome.managerNow.coManager.eyebrow") }),
|
|
6468
6456
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now__co-manager-card", children: [
|
|
@@ -6505,7 +6493,7 @@ function NowHero({
|
|
|
6505
6493
|
progressPct,
|
|
6506
6494
|
onNavigateModule
|
|
6507
6495
|
}) {
|
|
6508
|
-
const { t } =
|
|
6496
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6509
6497
|
const progress = Math.max(0, Math.min(100, progressPct));
|
|
6510
6498
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-manager-now__hero", "aria-label": t("chrome.managerNow.hero.ariaLabel"), children: [
|
|
6511
6499
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now__hero-top", children: [
|
|
@@ -6564,7 +6552,7 @@ function formatTimeOfDay(isoDateTime, timezone) {
|
|
|
6564
6552
|
return formatter.format(new Date(isoDateTime));
|
|
6565
6553
|
}
|
|
6566
6554
|
function NowTimeline({ items, timezone }) {
|
|
6567
|
-
const { t } =
|
|
6555
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6568
6556
|
const showTime = items.some((item) => item.startTime !== null || item.timeState === "now");
|
|
6569
6557
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerNow.timeline.ariaLabel"), children: [
|
|
6570
6558
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-now__eyebrow-row", children: t("chrome.managerNow.timeline.eyebrow") }),
|
|
@@ -6579,7 +6567,7 @@ function NowTimeline({ items, timezone }) {
|
|
|
6579
6567
|
] });
|
|
6580
6568
|
}
|
|
6581
6569
|
function NowTotals({ spend, collections }) {
|
|
6582
|
-
const { t } =
|
|
6570
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6583
6571
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerNow.totals.ariaLabel"), children: [
|
|
6584
6572
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-eyebrow kf-manager-now__eyebrow-row", children: t("chrome.managerNow.totals.eyebrow") }),
|
|
6585
6573
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now__totals-grid", children: [
|
|
@@ -6632,7 +6620,7 @@ function NowTripSummary({
|
|
|
6632
6620
|
floatOutstandingMinor,
|
|
6633
6621
|
onViewCloseout
|
|
6634
6622
|
}) {
|
|
6635
|
-
const { t } =
|
|
6623
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6636
6624
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerNow.closeout.ariaLabel"), children: [
|
|
6637
6625
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now__eyebrow-row", children: [
|
|
6638
6626
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow", children: t("chrome.managerNow.closeout.eyebrow") }),
|
|
@@ -6697,7 +6685,7 @@ function occupancyTone(fillCount, capacity) {
|
|
|
6697
6685
|
return "neutral";
|
|
6698
6686
|
}
|
|
6699
6687
|
function NowVehicleCards({ vehicles }) {
|
|
6700
|
-
const { t } =
|
|
6688
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6701
6689
|
if (vehicles.length === 0) {
|
|
6702
6690
|
return null;
|
|
6703
6691
|
}
|
|
@@ -6738,7 +6726,7 @@ function QuickActionsSheet({
|
|
|
6738
6726
|
onCollectPayment,
|
|
6739
6727
|
onManageFloat
|
|
6740
6728
|
}) {
|
|
6741
|
-
const { t } =
|
|
6729
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6742
6730
|
react.useEffect(() => {
|
|
6743
6731
|
if (!open) {
|
|
6744
6732
|
return;
|
|
@@ -6840,7 +6828,7 @@ function sumTodayCollections(collections, serverTime, timezone, currency) {
|
|
|
6840
6828
|
return { totalMinor, currency, count };
|
|
6841
6829
|
}
|
|
6842
6830
|
function ManagerNowSection(props) {
|
|
6843
|
-
const session =
|
|
6831
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
6844
6832
|
if (session.status !== "authenticated") {
|
|
6845
6833
|
return null;
|
|
6846
6834
|
}
|
|
@@ -6877,17 +6865,17 @@ function ReadyManagerNowSection({
|
|
|
6877
6865
|
idleView,
|
|
6878
6866
|
style
|
|
6879
6867
|
}) {
|
|
6880
|
-
const { t } =
|
|
6868
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
6881
6869
|
const [sheetOpen, setSheetOpen] = react.useState(false);
|
|
6882
6870
|
const [activeMoneySheet, setActiveMoneySheet] = react.useState(void 0);
|
|
6883
|
-
const managerMe =
|
|
6884
|
-
const today =
|
|
6885
|
-
const expenses =
|
|
6886
|
-
const collections =
|
|
6887
|
-
const float =
|
|
6888
|
-
const parties =
|
|
6889
|
-
const managers =
|
|
6890
|
-
const closeout =
|
|
6871
|
+
const managerMe = chunkTCVXLZ4H_cjs.useManagerMe();
|
|
6872
|
+
const today = chunkGD5UU4G6_cjs.useManagerToday(tripRef);
|
|
6873
|
+
const expenses = chunkGD5UU4G6_cjs.useExpenses(tripRef);
|
|
6874
|
+
const collections = chunkGD5UU4G6_cjs.useCollections(tripRef);
|
|
6875
|
+
const float = chunkGD5UU4G6_cjs.useFloat(tripRef);
|
|
6876
|
+
const parties = chunkGD5UU4G6_cjs.useParties(tripRef);
|
|
6877
|
+
const managers = chunkGD5UU4G6_cjs.useManagers(tripRef);
|
|
6878
|
+
const closeout = chunkGD5UU4G6_cjs.useCloseout(tripRef);
|
|
6891
6879
|
if (today.status === "loading" || managerMe.status === "loading") {
|
|
6892
6880
|
return /* @__PURE__ */ jsxRuntime.jsx(ManagerNowSkeleton, { style });
|
|
6893
6881
|
}
|
|
@@ -6907,7 +6895,7 @@ function ReadyManagerNowSection({
|
|
|
6907
6895
|
if (idleView !== void 0) {
|
|
6908
6896
|
return typeof idleView === "function" ? idleView(idleReading) : idleView;
|
|
6909
6897
|
}
|
|
6910
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now", style:
|
|
6898
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
6911
6899
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6912
6900
|
NowHero,
|
|
6913
6901
|
{
|
|
@@ -6965,7 +6953,7 @@ function ReadyManagerNowSection({
|
|
|
6965
6953
|
const canLogExpense = expensesReady !== void 0;
|
|
6966
6954
|
const canCollectPayment = collectionsReady !== void 0 && rosterRows.length > 0;
|
|
6967
6955
|
const canManageFloat = floatReady !== void 0 && floatRow !== void 0;
|
|
6968
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now", style:
|
|
6956
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
6969
6957
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6970
6958
|
NowHero,
|
|
6971
6959
|
{
|
|
@@ -7071,14 +7059,14 @@ function ReadyManagerNowSection({
|
|
|
7071
7059
|
function ManagerNowSkeleton({
|
|
7072
7060
|
style
|
|
7073
7061
|
}) {
|
|
7074
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now__skeleton", style:
|
|
7062
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-now__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
7075
7063
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-now__skeleton-block" }),
|
|
7076
7064
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-now__skeleton-line" }),
|
|
7077
7065
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-now__skeleton-line kf-manager-now__skeleton-line--short" })
|
|
7078
7066
|
] });
|
|
7079
7067
|
}
|
|
7080
7068
|
function ChecklistPreview({ checklist }) {
|
|
7081
|
-
const { t } =
|
|
7069
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7082
7070
|
if (checklist === null) {
|
|
7083
7071
|
return null;
|
|
7084
7072
|
}
|
|
@@ -7144,7 +7132,7 @@ function initials5(fullName) {
|
|
|
7144
7132
|
return `${parts[0]?.[0] ?? ""}${parts[parts.length - 1]?.[0] ?? ""}`.toUpperCase();
|
|
7145
7133
|
}
|
|
7146
7134
|
function CoManagerCard({ managers }) {
|
|
7147
|
-
const { t } =
|
|
7135
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7148
7136
|
const coManager = managers.length > 1 ? managers.find((row) => !row.isLead) ?? managers[1] : void 0;
|
|
7149
7137
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerTrip.overview.coManager.eyebrow"), children: [
|
|
7150
7138
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-overview__eyebrow", children: t("chrome.managerTrip.overview.coManager.eyebrow") }),
|
|
@@ -7173,7 +7161,7 @@ function formatOverviewTime(iso) {
|
|
|
7173
7161
|
return TIME_FORMATTER2.format(new Date(iso));
|
|
7174
7162
|
}
|
|
7175
7163
|
function ItineraryPreview({ itinerary }) {
|
|
7176
|
-
const { t } =
|
|
7164
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7177
7165
|
if (itinerary === null) {
|
|
7178
7166
|
return null;
|
|
7179
7167
|
}
|
|
@@ -7206,7 +7194,7 @@ function ItineraryPreview({ itinerary }) {
|
|
|
7206
7194
|
);
|
|
7207
7195
|
}
|
|
7208
7196
|
function PickupsSummary({ pickups }) {
|
|
7209
|
-
const { t } =
|
|
7197
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7210
7198
|
if (pickups === null) {
|
|
7211
7199
|
return null;
|
|
7212
7200
|
}
|
|
@@ -7234,7 +7222,7 @@ function PickupsSummary({ pickups }) {
|
|
|
7234
7222
|
);
|
|
7235
7223
|
}
|
|
7236
7224
|
function RoomingSummary({ rooming }) {
|
|
7237
|
-
const { t } =
|
|
7225
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7238
7226
|
if (rooming === null) {
|
|
7239
7227
|
return null;
|
|
7240
7228
|
}
|
|
@@ -7286,7 +7274,7 @@ function occupancyTone2(fillCount, capacity) {
|
|
|
7286
7274
|
return "neutral";
|
|
7287
7275
|
}
|
|
7288
7276
|
function TransportSummary({ transport }) {
|
|
7289
|
-
const { t } =
|
|
7277
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7290
7278
|
if (transport === null) {
|
|
7291
7279
|
return null;
|
|
7292
7280
|
}
|
|
@@ -7336,27 +7324,27 @@ var TREK_PHASE_LABEL_KEY = {
|
|
|
7336
7324
|
closing: "chrome.managerTrip.overview.trekPhase.closing"
|
|
7337
7325
|
};
|
|
7338
7326
|
function ManagerOverviewSection(props) {
|
|
7339
|
-
const session =
|
|
7327
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
7340
7328
|
if (session.status !== "authenticated") {
|
|
7341
7329
|
return null;
|
|
7342
7330
|
}
|
|
7343
7331
|
return /* @__PURE__ */ jsxRuntime.jsx(ReadyManagerOverviewSection, { ...props });
|
|
7344
7332
|
}
|
|
7345
7333
|
function ReadyManagerOverviewSection({ tripRef, style }) {
|
|
7346
|
-
const { t } =
|
|
7347
|
-
const today =
|
|
7348
|
-
const managers =
|
|
7334
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7335
|
+
const today = chunkGD5UU4G6_cjs.useManagerToday(tripRef);
|
|
7336
|
+
const managers = chunkGD5UU4G6_cjs.useManagers(tripRef);
|
|
7349
7337
|
if (today.status === "loading") {
|
|
7350
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-overview__skeleton", style:
|
|
7338
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-overview__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
7351
7339
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-overview__skeleton-line" }),
|
|
7352
7340
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-overview__skeleton-line" }),
|
|
7353
7341
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-overview__skeleton-line kf-manager-overview__skeleton-line--short" })
|
|
7354
7342
|
] });
|
|
7355
7343
|
}
|
|
7356
7344
|
if (today.status === "error" || today.kind === "idle") {
|
|
7357
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-overview", style:
|
|
7345
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-overview", style: chunk64AFXHOF_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-overview__idle", children: t("chrome.managerTrip.overview.title") }) });
|
|
7358
7346
|
}
|
|
7359
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-overview", style:
|
|
7347
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-overview", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
7360
7348
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-overview__header", children: [
|
|
7361
7349
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-overview__phase-badge", children: t(PHASE_LABEL_KEY4[today.phase] ?? "chrome.managerTrip.overview.phase.preDeparture") }),
|
|
7362
7350
|
today.kind === "trek" && today.trekPhase !== null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-overview__phase-badge", "data-tone": "accent", children: t(
|
|
@@ -7490,7 +7478,7 @@ function CloseStopSheet({
|
|
|
7490
7478
|
onClose,
|
|
7491
7479
|
onCancel
|
|
7492
7480
|
}) {
|
|
7493
|
-
const { t } =
|
|
7481
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7494
7482
|
const { stop, travellers } = stopRow;
|
|
7495
7483
|
const pendingTravellers = travellers.filter((row) => row.status === "PENDING");
|
|
7496
7484
|
const isShort = stop.boardedCount < stop.expectedCount;
|
|
@@ -7670,7 +7658,7 @@ function StopSegmentedSwitcher({
|
|
|
7670
7658
|
activeStopId,
|
|
7671
7659
|
onSelect
|
|
7672
7660
|
}) {
|
|
7673
|
-
const { t } =
|
|
7661
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7674
7662
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-pickups__segmented", role: "tablist", children: stops.map(({ stop }) => {
|
|
7675
7663
|
const done = stop.rollup === "closed";
|
|
7676
7664
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -7701,7 +7689,7 @@ function CorrectBoardStatusControl({
|
|
|
7701
7689
|
disabled,
|
|
7702
7690
|
onCorrect
|
|
7703
7691
|
}) {
|
|
7704
|
-
const { t } =
|
|
7692
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7705
7693
|
const [open, setOpen] = react.useState(false);
|
|
7706
7694
|
if (currentStatus === "PENDING") {
|
|
7707
7695
|
return null;
|
|
@@ -7776,7 +7764,7 @@ function TravellerBoardRow({
|
|
|
7776
7764
|
onBoard,
|
|
7777
7765
|
onCorrect
|
|
7778
7766
|
}) {
|
|
7779
|
-
const { t } =
|
|
7767
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7780
7768
|
const isPending = traveller.status === "PENDING";
|
|
7781
7769
|
function onKeyDown(event) {
|
|
7782
7770
|
if ((event.key === "Enter" || event.key === " ") && isPending && !stopClosed) {
|
|
@@ -7858,7 +7846,7 @@ function BoardingView({
|
|
|
7858
7846
|
onCloseStop,
|
|
7859
7847
|
onBack
|
|
7860
7848
|
}) {
|
|
7861
|
-
const { t } =
|
|
7849
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7862
7850
|
const [closeSheetOpen, setCloseSheetOpen] = react.useState(false);
|
|
7863
7851
|
const activeStopRow = manifest.stops.find((row) => row.stop.id === activeStopId) ?? manifest.stops[0];
|
|
7864
7852
|
if (activeStopRow === void 0) {
|
|
@@ -7959,7 +7947,7 @@ function patchManifestTraveller(manifest, stopId, travellerId, status, boardedAt
|
|
|
7959
7947
|
};
|
|
7960
7948
|
}
|
|
7961
7949
|
function StopRow({ stop, onSelect }) {
|
|
7962
|
-
const { t } =
|
|
7950
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7963
7951
|
const percent = boardedPercent(stop);
|
|
7964
7952
|
return /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", className: "kf-manager-pickups__row kf-press", onClick: onSelect, children: [
|
|
7965
7953
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-manager-pickups__row-copy", children: [
|
|
@@ -7989,7 +7977,7 @@ function StopList({
|
|
|
7989
7977
|
onKindChange,
|
|
7990
7978
|
onSelectStop
|
|
7991
7979
|
}) {
|
|
7992
|
-
const { t } =
|
|
7980
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
7993
7981
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-pickups", children: [
|
|
7994
7982
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-pickups__title", children: t("chrome.managerTrip.tab.pickups") }),
|
|
7995
7983
|
hasDropStops ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-pickups__chips", children: [
|
|
@@ -8021,7 +8009,7 @@ function StopList({
|
|
|
8021
8009
|
] });
|
|
8022
8010
|
}
|
|
8023
8011
|
function ManagerPickupsSection(props) {
|
|
8024
|
-
const session =
|
|
8012
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
8025
8013
|
if (session.status !== "authenticated") {
|
|
8026
8014
|
return null;
|
|
8027
8015
|
}
|
|
@@ -8033,7 +8021,7 @@ function ReadyManagerPickupsSection({
|
|
|
8033
8021
|
components,
|
|
8034
8022
|
style
|
|
8035
8023
|
}) {
|
|
8036
|
-
const pickups =
|
|
8024
|
+
const pickups = chunkGD5UU4G6_cjs.usePickups(tripRef);
|
|
8037
8025
|
const StopListUI = components?.StopList ?? StopList;
|
|
8038
8026
|
const BoardingViewUI = components?.BoardingView ?? BoardingView;
|
|
8039
8027
|
const [kind, setKind] = react.useState("PICKUP");
|
|
@@ -8057,7 +8045,7 @@ function ReadyManagerPickupsSection({
|
|
|
8057
8045
|
cancelled = true;
|
|
8058
8046
|
};
|
|
8059
8047
|
}, [ready, selectedStopId, kind]);
|
|
8060
|
-
|
|
8048
|
+
chunk64AFXHOF_cjs.useOfflineEvent("sync.drained", () => {
|
|
8061
8049
|
if (pickups.status !== "ready" || selectedStopId === void 0) {
|
|
8062
8050
|
return;
|
|
8063
8051
|
}
|
|
@@ -8065,7 +8053,7 @@ function ReadyManagerPickupsSection({
|
|
|
8065
8053
|
void pickups.refreshLive();
|
|
8066
8054
|
});
|
|
8067
8055
|
if (pickups.status === "loading") {
|
|
8068
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-pickups__skeleton", style:
|
|
8056
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-pickups__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
8069
8057
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-pickups__skeleton-line" }),
|
|
8070
8058
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-pickups__skeleton-line" }),
|
|
8071
8059
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-pickups__skeleton-line kf-manager-pickups__skeleton-line--short" })
|
|
@@ -8144,12 +8132,12 @@ function ReadyManagerPickupsSection({
|
|
|
8144
8132
|
}
|
|
8145
8133
|
if (selectedStopId !== void 0) {
|
|
8146
8134
|
if (manifest === void 0) {
|
|
8147
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-pickups__skeleton", style:
|
|
8135
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-pickups__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
8148
8136
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-pickups__skeleton-line" }),
|
|
8149
8137
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-pickups__skeleton-line" })
|
|
8150
8138
|
] });
|
|
8151
8139
|
}
|
|
8152
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { style:
|
|
8140
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { style: chunk64AFXHOF_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8153
8141
|
BoardingViewUI,
|
|
8154
8142
|
{
|
|
8155
8143
|
manifest,
|
|
@@ -8165,7 +8153,7 @@ function ReadyManagerPickupsSection({
|
|
|
8165
8153
|
}
|
|
8166
8154
|
) });
|
|
8167
8155
|
}
|
|
8168
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { style:
|
|
8156
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { style: chunk64AFXHOF_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8169
8157
|
StopListUI,
|
|
8170
8158
|
{
|
|
8171
8159
|
stops: rankedStops,
|
|
@@ -8302,7 +8290,7 @@ function AddRoomSheet({
|
|
|
8302
8290
|
onPatch,
|
|
8303
8291
|
onDelete
|
|
8304
8292
|
}) {
|
|
8305
|
-
const { t } =
|
|
8293
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
8306
8294
|
const [code, setCode] = react.useState("");
|
|
8307
8295
|
const [capacity, setCapacity] = react.useState("2");
|
|
8308
8296
|
const [roomType, setRoomType] = react.useState(void 0);
|
|
@@ -8509,7 +8497,7 @@ function AssignBedSheet({
|
|
|
8509
8497
|
onOpenTraveller,
|
|
8510
8498
|
onClose
|
|
8511
8499
|
}) {
|
|
8512
|
-
const { t } =
|
|
8500
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
8513
8501
|
const [pending, setPending] = react.useState(false);
|
|
8514
8502
|
react.useEffect(() => {
|
|
8515
8503
|
if (!open) {
|
|
@@ -8719,7 +8707,7 @@ function AutoAssignSheet({
|
|
|
8719
8707
|
onApplied,
|
|
8720
8708
|
onClose
|
|
8721
8709
|
}) {
|
|
8722
|
-
const { t } =
|
|
8710
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
8723
8711
|
const [reassignAll, setReassignAll] = react.useState(false);
|
|
8724
8712
|
const [preview, setPreview] = react.useState(void 0);
|
|
8725
8713
|
const [loading, setLoading] = react.useState(false);
|
|
@@ -8876,7 +8864,7 @@ var STATUS_LABEL_KEY5 = {
|
|
|
8876
8864
|
FULL: "chrome.managerTrip.rooming.room.status.full"
|
|
8877
8865
|
};
|
|
8878
8866
|
function RoomCard({ room, onSelectBed, onEditRoom }) {
|
|
8879
|
-
const { t } =
|
|
8867
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
8880
8868
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__room-card", children: [
|
|
8881
8869
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
8882
8870
|
"button",
|
|
@@ -8915,7 +8903,7 @@ function RoomCard({ room, onSelectBed, onEditRoom }) {
|
|
|
8915
8903
|
] });
|
|
8916
8904
|
}
|
|
8917
8905
|
function RoomingStats({ roomCount, beds, unassignedCount }) {
|
|
8918
|
-
const { t } =
|
|
8906
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
8919
8907
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__stats", children: [
|
|
8920
8908
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__stat-cell", children: [
|
|
8921
8909
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-rooming__stat-label", children: t("chrome.managerTrip.rooming.stats.rooms") }),
|
|
@@ -8953,7 +8941,7 @@ function StayWindowChips({
|
|
|
8953
8941
|
onAddWindow,
|
|
8954
8942
|
onEditWindow
|
|
8955
8943
|
}) {
|
|
8956
|
-
const { t } =
|
|
8944
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
8957
8945
|
const activeWindow = stayWindows.find((window) => window.id === activeStayWindowId);
|
|
8958
8946
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__window-block", children: [
|
|
8959
8947
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -9021,7 +9009,7 @@ function StayWindowSheet({
|
|
|
9021
9009
|
onPatch,
|
|
9022
9010
|
onDelete
|
|
9023
9011
|
}) {
|
|
9024
|
-
const { t } =
|
|
9012
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9025
9013
|
const [label, setLabel] = react.useState("");
|
|
9026
9014
|
const [startDate, setStartDate] = react.useState("");
|
|
9027
9015
|
const [endDate, setEndDate] = react.useState("");
|
|
@@ -9205,7 +9193,7 @@ function UnassignedPoolSection({
|
|
|
9205
9193
|
loaded,
|
|
9206
9194
|
onSelectTraveller
|
|
9207
9195
|
}) {
|
|
9208
|
-
const { t } =
|
|
9196
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9209
9197
|
if (loaded && travellers.length === 0) {
|
|
9210
9198
|
return null;
|
|
9211
9199
|
}
|
|
@@ -9223,7 +9211,6 @@ function UnassignedPoolSection({
|
|
|
9223
9211
|
children: [
|
|
9224
9212
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-rooming__pool-avatar", children: traveller.glyph }),
|
|
9225
9213
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-rooming__pool-name", children: traveller.fullName }),
|
|
9226
|
-
traveller.dietary !== null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-rooming__pill", "data-tone": "soft", children: traveller.dietary }) : null,
|
|
9227
9214
|
traveller.medicalFlag ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-rooming__pill", "data-tone": "warn", children: t("chrome.managerTrip.rooming.pool.medical") }) : null
|
|
9228
9215
|
]
|
|
9229
9216
|
},
|
|
@@ -9232,7 +9219,7 @@ function UnassignedPoolSection({
|
|
|
9232
9219
|
] });
|
|
9233
9220
|
}
|
|
9234
9221
|
function ManagerRoomingSection(props) {
|
|
9235
|
-
const session =
|
|
9222
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
9236
9223
|
if (session.status !== "authenticated") {
|
|
9237
9224
|
return null;
|
|
9238
9225
|
}
|
|
@@ -9245,8 +9232,8 @@ function ReadyManagerRoomingSection({
|
|
|
9245
9232
|
components,
|
|
9246
9233
|
style
|
|
9247
9234
|
}) {
|
|
9248
|
-
const { t } =
|
|
9249
|
-
const rooming =
|
|
9235
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9236
|
+
const rooming = chunkGD5UU4G6_cjs.useRooming(tripRef);
|
|
9250
9237
|
const Stats = components?.Stats ?? RoomingStats;
|
|
9251
9238
|
const RoomCardComponent = components?.RoomCard ?? RoomCard;
|
|
9252
9239
|
const UnassignedPool = components?.UnassignedPool ?? UnassignedPoolSection;
|
|
@@ -9282,7 +9269,7 @@ function ReadyManagerRoomingSection({
|
|
|
9282
9269
|
void refreshPool(activeStayWindowId);
|
|
9283
9270
|
}, [refreshPool, activeStayWindowId]);
|
|
9284
9271
|
if (rooming.status === "loading") {
|
|
9285
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__skeleton", style:
|
|
9272
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
9286
9273
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-rooming__skeleton-block" }),
|
|
9287
9274
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-rooming__skeleton-line" }),
|
|
9288
9275
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-rooming__skeleton-line kf-manager-rooming__skeleton-line--short" })
|
|
@@ -9306,7 +9293,7 @@ function ReadyManagerRoomingSection({
|
|
|
9306
9293
|
}
|
|
9307
9294
|
}
|
|
9308
9295
|
const resolvedEmptyView = emptyView !== void 0 ? typeof emptyView === "function" ? emptyView() : emptyView : null;
|
|
9309
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming", style:
|
|
9296
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
9310
9297
|
sortedWindows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-rooming__card kf-manager-rooming__empty", children: [
|
|
9311
9298
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: t("chrome.managerTrip.rooming.noWindows") }),
|
|
9312
9299
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -9542,7 +9529,7 @@ function initials7(fullName) {
|
|
|
9542
9529
|
return `${parts[0]?.[0] ?? ""}${parts[parts.length - 1]?.[0] ?? ""}`.toUpperCase();
|
|
9543
9530
|
}
|
|
9544
9531
|
function RosterRow({ row, onOpen }) {
|
|
9545
|
-
const { t } =
|
|
9532
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9546
9533
|
const { traveller } = row;
|
|
9547
9534
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-roster__row", children: [
|
|
9548
9535
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -9573,7 +9560,7 @@ function RosterRow({ row, onOpen }) {
|
|
|
9573
9560
|
] });
|
|
9574
9561
|
}
|
|
9575
9562
|
function RosterSearch({ query, onQueryChange }) {
|
|
9576
|
-
const { t } =
|
|
9563
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9577
9564
|
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "kf-manager-roster__search", children: [
|
|
9578
9565
|
/* @__PURE__ */ jsxRuntime.jsx(SearchIcon2, { "aria-hidden": "true" }),
|
|
9579
9566
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9589,7 +9576,7 @@ function RosterSearch({ query, onQueryChange }) {
|
|
|
9589
9576
|
] });
|
|
9590
9577
|
}
|
|
9591
9578
|
function ManagerRosterSection(props) {
|
|
9592
|
-
const session =
|
|
9579
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
9593
9580
|
if (session.status !== "authenticated") {
|
|
9594
9581
|
return null;
|
|
9595
9582
|
}
|
|
@@ -9600,8 +9587,8 @@ function ReadyManagerRosterSection({
|
|
|
9600
9587
|
onOpenTraveller,
|
|
9601
9588
|
style
|
|
9602
9589
|
}) {
|
|
9603
|
-
const { t } =
|
|
9604
|
-
const parties =
|
|
9590
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9591
|
+
const parties = chunkGD5UU4G6_cjs.useParties(tripRef);
|
|
9605
9592
|
const [query, setQuery] = react.useState("");
|
|
9606
9593
|
const rows = react.useMemo(
|
|
9607
9594
|
() => parties.status === "ready" ? parties.tripRoster.rows : [],
|
|
@@ -9617,7 +9604,7 @@ function ReadyManagerRosterSection({
|
|
|
9617
9604
|
);
|
|
9618
9605
|
}, [rows, query]);
|
|
9619
9606
|
if (parties.status === "loading") {
|
|
9620
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-roster__skeleton", style:
|
|
9607
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-roster__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
9621
9608
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-roster__skeleton-line" }),
|
|
9622
9609
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-roster__skeleton-line" }),
|
|
9623
9610
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-roster__skeleton-line kf-manager-roster__skeleton-line--short" })
|
|
@@ -9626,7 +9613,7 @@ function ReadyManagerRosterSection({
|
|
|
9626
9613
|
if (parties.status === "error") {
|
|
9627
9614
|
return null;
|
|
9628
9615
|
}
|
|
9629
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-roster", style:
|
|
9616
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-roster", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
9630
9617
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-roster__count", children: t("chrome.managerTrip.roster.count").replace("{count}", String(rows.length)) }),
|
|
9631
9618
|
/* @__PURE__ */ jsxRuntime.jsx(RosterSearch, { query, onQueryChange: setQuery }),
|
|
9632
9619
|
rows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-roster__empty", children: t("chrome.managerTrip.roster.empty") }) : filteredRows.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-roster__empty", children: t("chrome.managerTrip.roster.noMatches") }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-roster__list", children: filteredRows.map((row) => /* @__PURE__ */ jsxRuntime.jsx(RosterRow, { row, onOpen: onOpenTraveller }, row.traveller.travellerId)) })
|
|
@@ -9761,7 +9748,7 @@ function ConflictResolverSheet({
|
|
|
9761
9748
|
onResolve,
|
|
9762
9749
|
onClose
|
|
9763
9750
|
}) {
|
|
9764
|
-
const { t } =
|
|
9751
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9765
9752
|
const [fieldIndex, setFieldIndex] = react.useState(0);
|
|
9766
9753
|
const [pending, setPending] = react.useState(false);
|
|
9767
9754
|
react.useEffect(() => {
|
|
@@ -9896,7 +9883,7 @@ function formatSyncCenterDate(iso) {
|
|
|
9896
9883
|
return iso === void 0 ? void 0 : SYNC_CENTER_DATE_FORMATTER.format(new Date(iso));
|
|
9897
9884
|
}
|
|
9898
9885
|
function OutboxRow({ op, isConflict, label, onSelect }) {
|
|
9899
|
-
const { t } =
|
|
9886
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9900
9887
|
const statusLabel = isConflict ? t("chrome.managerSyncCenter.status.conflict") : op.status === "parked" ? t("chrome.managerSyncCenter.status.parked") : op.status === "inflight" ? t("chrome.managerSyncCenter.status.inflight") : t("chrome.managerSyncCenter.status.pending");
|
|
9901
9888
|
const interactive = isConflict;
|
|
9902
9889
|
const Row = interactive ? "button" : "div";
|
|
@@ -9947,9 +9934,9 @@ function ManagerSyncCenterSection({
|
|
|
9947
9934
|
onResolved,
|
|
9948
9935
|
style
|
|
9949
9936
|
}) {
|
|
9950
|
-
const { t } =
|
|
9951
|
-
const engine =
|
|
9952
|
-
const { conflicts, resolve } =
|
|
9937
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
9938
|
+
const engine = chunkKFOCETDW_cjs.useOfflineEngine();
|
|
9939
|
+
const { conflicts, resolve } = chunkTCVXLZ4H_cjs.useConflicts(tripRef);
|
|
9953
9940
|
const [openConflict, setOpenConflict] = react.useState(void 0);
|
|
9954
9941
|
const ops = engine.outbox.all().filter((op) => op.tripRef === tripRef);
|
|
9955
9942
|
const conflictOpIds = new Set(conflicts.map((conflict) => conflict.opId));
|
|
@@ -9963,7 +9950,7 @@ function ManagerSyncCenterSection({
|
|
|
9963
9950
|
await resolve(opId, choice);
|
|
9964
9951
|
onResolved?.(opId, choice);
|
|
9965
9952
|
}
|
|
9966
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-sync-center", style:
|
|
9953
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-sync-center", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
9967
9954
|
ops.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-sync-center__empty", children: [
|
|
9968
9955
|
/* @__PURE__ */ jsxRuntime.jsx(InboxIcon2, { className: "kf-manager-sync-center__empty-icon", "aria-hidden": "true" }),
|
|
9969
9956
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-sync-center__empty-title", children: t("chrome.managerSyncCenter.emptyTitle") })
|
|
@@ -9989,30 +9976,17 @@ function ManagerSyncCenterSection({
|
|
|
9989
9976
|
}
|
|
9990
9977
|
|
|
9991
9978
|
// src/manager/composite/office/ManagerTravellerProfileSection/internal/deriveTravellerProfile.ts
|
|
9992
|
-
function normalizeDiet2(raw) {
|
|
9993
|
-
if (raw === null) {
|
|
9994
|
-
return null;
|
|
9995
|
-
}
|
|
9996
|
-
const upper = raw.trim().toUpperCase();
|
|
9997
|
-
if (upper === "V" || upper === "VEG" || upper === "VEGETARIAN") {
|
|
9998
|
-
return "V";
|
|
9999
|
-
}
|
|
10000
|
-
if (upper === "NV" || upper === "NON-VEG" || upper === "NONVEG" || upper === "NON_VEG") {
|
|
10001
|
-
return "NV";
|
|
10002
|
-
}
|
|
10003
|
-
if (upper === "J" || upper === "JAIN") {
|
|
10004
|
-
return "J";
|
|
10005
|
-
}
|
|
10006
|
-
return null;
|
|
10007
|
-
}
|
|
10008
9979
|
function deriveDietaryRows(dietary, mealPreference, dietaryReqs, allergies, medicalFlag, medicalNotes) {
|
|
10009
9980
|
const rows = [];
|
|
10010
|
-
const diet =
|
|
9981
|
+
const diet = chunk5QFW5GL4_cjs.normalizeDiet(dietary);
|
|
10011
9982
|
if (mealPreference !== null || diet !== null) {
|
|
10012
9983
|
rows.push({
|
|
10013
9984
|
key: "meal",
|
|
10014
9985
|
labelKey: "chrome.managerTraveller.dietary.meal",
|
|
10015
|
-
|
|
9986
|
+
// The RAW string when the CRM sent no separate meal preference. The bucket
|
|
9987
|
+
// is a badge and necessarily lossy — `"Vegetarian, no nuts"` buckets as
|
|
9988
|
+
// `V` — so dropping the text left the nut allergy on screen NOWHERE.
|
|
9989
|
+
value: mealPreference ?? dietary ?? "",
|
|
10016
9990
|
diet,
|
|
10017
9991
|
isAlert: false
|
|
10018
9992
|
});
|
|
@@ -10184,7 +10158,7 @@ function LogPaymentSheet({
|
|
|
10184
10158
|
onClose,
|
|
10185
10159
|
onSubmit
|
|
10186
10160
|
}) {
|
|
10187
|
-
const { t } =
|
|
10161
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10188
10162
|
const [amount, setAmount] = react.useState("");
|
|
10189
10163
|
const [mode, setMode] = react.useState("CASH");
|
|
10190
10164
|
const [reference, setReference] = react.useState("");
|
|
@@ -10322,7 +10296,7 @@ function LogPaymentSheet({
|
|
|
10322
10296
|
) });
|
|
10323
10297
|
}
|
|
10324
10298
|
function TravellerContactRow({ fullName, phone }) {
|
|
10325
|
-
const { t } =
|
|
10299
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10326
10300
|
if (phone === null) {
|
|
10327
10301
|
return null;
|
|
10328
10302
|
}
|
|
@@ -10358,10 +10332,11 @@ function TravellerContactRow({ fullName, phone }) {
|
|
|
10358
10332
|
var DIET_LABEL_KEY3 = {
|
|
10359
10333
|
V: "chrome.managerTraveller.dietary.diet.v",
|
|
10360
10334
|
NV: "chrome.managerTraveller.dietary.diet.nv",
|
|
10361
|
-
J: "chrome.managerTraveller.dietary.diet.j"
|
|
10335
|
+
J: "chrome.managerTraveller.dietary.diet.j",
|
|
10336
|
+
OTHER: "chrome.managerTraveller.dietary.diet.other"
|
|
10362
10337
|
};
|
|
10363
10338
|
function TravellerDietaryCard({ rows }) {
|
|
10364
|
-
const { t } =
|
|
10339
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10365
10340
|
if (rows.length === 0) {
|
|
10366
10341
|
return null;
|
|
10367
10342
|
}
|
|
@@ -10391,7 +10366,7 @@ function TravellerEmergencyCard({
|
|
|
10391
10366
|
relation,
|
|
10392
10367
|
phone
|
|
10393
10368
|
}) {
|
|
10394
|
-
const { t } =
|
|
10369
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10395
10370
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerTraveller.emergency.ariaLabel"), children: [
|
|
10396
10371
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-traveller__eyebrow-row", children: t("chrome.managerTraveller.emergency.eyebrow") }),
|
|
10397
10372
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-traveller__card kf-manager-traveller__emergency-row", children: [
|
|
@@ -10436,7 +10411,7 @@ var DATE_FORMATTER5 = new Intl.DateTimeFormat("en-GB", {
|
|
|
10436
10411
|
minute: "2-digit"
|
|
10437
10412
|
});
|
|
10438
10413
|
function TravellerNotesSection({ notes, onAddNote }) {
|
|
10439
|
-
const { t } =
|
|
10414
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10440
10415
|
const [composing, setComposing] = react.useState(false);
|
|
10441
10416
|
const [draft, setDraft] = react.useState("");
|
|
10442
10417
|
const [submitting, setSubmitting] = react.useState(false);
|
|
@@ -10523,7 +10498,7 @@ function TravellerPaymentCard({
|
|
|
10523
10498
|
canLogPayment,
|
|
10524
10499
|
onLogPayment
|
|
10525
10500
|
}) {
|
|
10526
|
-
const { t } =
|
|
10501
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10527
10502
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { "aria-label": t("chrome.managerTraveller.payment.ariaLabel"), children: [
|
|
10528
10503
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-traveller__eyebrow-row", children: t("chrome.managerTraveller.payment.eyebrow") }),
|
|
10529
10504
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-traveller__card", children: [
|
|
@@ -10552,7 +10527,7 @@ function TravellerPaymentCard({
|
|
|
10552
10527
|
] });
|
|
10553
10528
|
}
|
|
10554
10529
|
function TravellerRoomSeatCard({ room, seat }) {
|
|
10555
|
-
const { t } =
|
|
10530
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10556
10531
|
if (room === null && seat === null) {
|
|
10557
10532
|
return null;
|
|
10558
10533
|
}
|
|
@@ -10574,7 +10549,7 @@ function TravellerRoomSeatCard({ room, seat }) {
|
|
|
10574
10549
|
] });
|
|
10575
10550
|
}
|
|
10576
10551
|
function ManagerTravellerProfileSection(props) {
|
|
10577
|
-
const session =
|
|
10552
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
10578
10553
|
if (session.status !== "authenticated") {
|
|
10579
10554
|
return null;
|
|
10580
10555
|
}
|
|
@@ -10586,10 +10561,10 @@ function ReadyManagerTravellerProfileSection({
|
|
|
10586
10561
|
components,
|
|
10587
10562
|
style
|
|
10588
10563
|
}) {
|
|
10589
|
-
const { t } =
|
|
10590
|
-
const profile =
|
|
10591
|
-
const parties =
|
|
10592
|
-
const collections =
|
|
10564
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10565
|
+
const profile = chunkGD5UU4G6_cjs.useTravellerProfile(tripRef, travellerRef);
|
|
10566
|
+
const parties = chunkGD5UU4G6_cjs.useParties(tripRef);
|
|
10567
|
+
const collections = chunkGD5UU4G6_cjs.useCollections(tripRef);
|
|
10593
10568
|
const [sheetOpen, setSheetOpen] = react.useState(false);
|
|
10594
10569
|
const partyLabel = react.useMemo(() => {
|
|
10595
10570
|
if (profile.read === void 0 || profile.read.partyId === null) {
|
|
@@ -10601,7 +10576,7 @@ function ReadyManagerTravellerProfileSection({
|
|
|
10601
10576
|
return parties.list.rows.find((row) => row.id === profile.read?.partyId)?.label ?? null;
|
|
10602
10577
|
}, [profile.read, parties]);
|
|
10603
10578
|
if (profile.read === void 0) {
|
|
10604
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-traveller__skeleton", style:
|
|
10579
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-traveller__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
10605
10580
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-traveller__skeleton-avatar" }),
|
|
10606
10581
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-traveller__skeleton-line" }),
|
|
10607
10582
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-traveller__skeleton-line kf-manager-traveller__skeleton-line--short" })
|
|
@@ -10624,7 +10599,7 @@ function ReadyManagerTravellerProfileSection({
|
|
|
10624
10599
|
read.profile.medicalNotes
|
|
10625
10600
|
);
|
|
10626
10601
|
const canLogPayment = collections.status === "ready";
|
|
10627
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-traveller", style:
|
|
10602
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-traveller", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
10628
10603
|
/* @__PURE__ */ jsxRuntime.jsx(TravellerHero, { fullName: read.fullName, partyLabel }),
|
|
10629
10604
|
/* @__PURE__ */ jsxRuntime.jsx(TravellerContactRow, { fullName: read.fullName, phone: read.phone }),
|
|
10630
10605
|
/* @__PURE__ */ jsxRuntime.jsx(DietaryCard, { rows: dietaryRows }),
|
|
@@ -10963,7 +10938,7 @@ function AddVehicleSheet({
|
|
|
10963
10938
|
onPatch,
|
|
10964
10939
|
onDelete
|
|
10965
10940
|
}) {
|
|
10966
|
-
const { t } =
|
|
10941
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
10967
10942
|
const [regNo, setRegNo] = react.useState("");
|
|
10968
10943
|
const [label, setLabel] = react.useState("");
|
|
10969
10944
|
const [type, setType] = react.useState("BUS");
|
|
@@ -11315,7 +11290,7 @@ function AssignSeatSheet({
|
|
|
11315
11290
|
onOpenTraveller,
|
|
11316
11291
|
onClose
|
|
11317
11292
|
}) {
|
|
11318
|
-
const { t } =
|
|
11293
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
11319
11294
|
const [pending, setPending] = react.useState(false);
|
|
11320
11295
|
const [customLabel, setCustomLabel] = react.useState("");
|
|
11321
11296
|
const [editingSeatLabel, setEditingSeatLabel] = react.useState(false);
|
|
@@ -11557,7 +11532,7 @@ function AutoAssignSheet2({
|
|
|
11557
11532
|
onApplied,
|
|
11558
11533
|
onClose
|
|
11559
11534
|
}) {
|
|
11560
|
-
const { t } =
|
|
11535
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
11561
11536
|
const [reassignAll, setReassignAll] = react.useState(false);
|
|
11562
11537
|
const [preview, setPreview] = react.useState(void 0);
|
|
11563
11538
|
const [loading, setLoading] = react.useState(false);
|
|
@@ -11714,7 +11689,7 @@ function SetOwnerSheet({
|
|
|
11714
11689
|
onSetOwner,
|
|
11715
11690
|
onRemoveOwner
|
|
11716
11691
|
}) {
|
|
11717
|
-
const { t } =
|
|
11692
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
11718
11693
|
react.useEffect(() => {
|
|
11719
11694
|
if (!open) {
|
|
11720
11695
|
return;
|
|
@@ -11782,7 +11757,7 @@ function UnassignedPoolSection2({
|
|
|
11782
11757
|
loaded,
|
|
11783
11758
|
onSelectTraveller
|
|
11784
11759
|
}) {
|
|
11785
|
-
const { t } =
|
|
11760
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
11786
11761
|
if (loaded && travellers.length === 0) {
|
|
11787
11762
|
return null;
|
|
11788
11763
|
}
|
|
@@ -11818,7 +11793,7 @@ function VehicleCard({
|
|
|
11818
11793
|
onEditOwner,
|
|
11819
11794
|
onViewRoster
|
|
11820
11795
|
}) {
|
|
11821
|
-
const { t } =
|
|
11796
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
11822
11797
|
const totalOccupantCount = allOccupantsOfVehicle(vehicle).length;
|
|
11823
11798
|
const dayCoverage = dayCoverageLabel(vehicle.days);
|
|
11824
11799
|
const dayLabel = dayCoverage === "ALL_DAYS" ? t("chrome.managerTrip.vehicles.card.allDays") : t("chrome.managerTrip.vehicles.card.dayCoverage").replace("{days}", dayCoverage);
|
|
@@ -11968,7 +11943,7 @@ function VehicleRosterSheet({
|
|
|
11968
11943
|
onSelectOccupant,
|
|
11969
11944
|
onClose
|
|
11970
11945
|
}) {
|
|
11971
|
-
const { t } =
|
|
11946
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
11972
11947
|
react.useEffect(() => {
|
|
11973
11948
|
if (!open) {
|
|
11974
11949
|
return;
|
|
@@ -12047,7 +12022,7 @@ function VehicleStats({
|
|
|
12047
12022
|
capacity,
|
|
12048
12023
|
unassignedCount
|
|
12049
12024
|
}) {
|
|
12050
|
-
const { t } =
|
|
12025
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12051
12026
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vehicles__stats", children: [
|
|
12052
12027
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vehicles__stat-cell", children: [
|
|
12053
12028
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-vehicles__stat-label", children: t("chrome.managerTrip.vehicles.stats.vehicles") }),
|
|
@@ -12075,7 +12050,7 @@ function VehicleStats({
|
|
|
12075
12050
|
] });
|
|
12076
12051
|
}
|
|
12077
12052
|
function ManagerVehiclesSection(props) {
|
|
12078
|
-
const session =
|
|
12053
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
12079
12054
|
if (session.status !== "authenticated") {
|
|
12080
12055
|
return null;
|
|
12081
12056
|
}
|
|
@@ -12088,9 +12063,9 @@ function ReadyManagerVehiclesSection({
|
|
|
12088
12063
|
components,
|
|
12089
12064
|
style
|
|
12090
12065
|
}) {
|
|
12091
|
-
const { t } =
|
|
12092
|
-
const seating =
|
|
12093
|
-
const managers =
|
|
12066
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12067
|
+
const seating = chunkGD5UU4G6_cjs.useSeating(tripRef);
|
|
12068
|
+
const managers = chunkGD5UU4G6_cjs.useManagers(tripRef);
|
|
12094
12069
|
const Stats = components?.Stats ?? VehicleStats;
|
|
12095
12070
|
const VehicleCardComponent = components?.VehicleCard ?? VehicleCard;
|
|
12096
12071
|
const UnassignedPool = components?.UnassignedPool ?? UnassignedPoolSection2;
|
|
@@ -12138,7 +12113,7 @@ function ReadyManagerVehiclesSection({
|
|
|
12138
12113
|
return map;
|
|
12139
12114
|
}, [managerRoster]);
|
|
12140
12115
|
if (seating.status === "loading") {
|
|
12141
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vehicles__skeleton", style:
|
|
12116
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vehicles__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
12142
12117
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-vehicles__skeleton-block" }),
|
|
12143
12118
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-vehicles__skeleton-line" }),
|
|
12144
12119
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-vehicles__skeleton-line kf-manager-vehicles__skeleton-line--short" })
|
|
@@ -12151,7 +12126,7 @@ function ReadyManagerVehiclesSection({
|
|
|
12151
12126
|
const unassignedCount = seating.unassignedPool.travellers.length;
|
|
12152
12127
|
const travellerNames = travellerNameMap(seating.unassignedPool.travellers, liveVehicles);
|
|
12153
12128
|
const resolvedEmptyView = emptyView !== void 0 ? typeof emptyView === "function" ? emptyView() : emptyView : null;
|
|
12154
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vehicles", style:
|
|
12129
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vehicles", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
12155
12130
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12156
12131
|
Stats,
|
|
12157
12132
|
{
|
|
@@ -12330,7 +12305,7 @@ function VendorDetailSheet({
|
|
|
12330
12305
|
vehicles,
|
|
12331
12306
|
onClose
|
|
12332
12307
|
}) {
|
|
12333
|
-
const { t } =
|
|
12308
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12334
12309
|
react.useEffect(() => {
|
|
12335
12310
|
if (vendor === void 0) {
|
|
12336
12311
|
return;
|
|
@@ -12535,7 +12510,7 @@ function VendorListSection({
|
|
|
12535
12510
|
onVendorSelect,
|
|
12536
12511
|
emptyView
|
|
12537
12512
|
}) {
|
|
12538
|
-
const { t } =
|
|
12513
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12539
12514
|
if (vendors.length === 0) {
|
|
12540
12515
|
if (emptyView !== void 0) {
|
|
12541
12516
|
return typeof emptyView === "function" ? emptyView() : emptyView;
|
|
@@ -12593,7 +12568,7 @@ function isLiveVehicle2(row) {
|
|
|
12593
12568
|
return !("_tombstone" in row);
|
|
12594
12569
|
}
|
|
12595
12570
|
function ManagerVendorsSection(props) {
|
|
12596
|
-
const session =
|
|
12571
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
12597
12572
|
if (session.status !== "authenticated") {
|
|
12598
12573
|
return null;
|
|
12599
12574
|
}
|
|
@@ -12607,13 +12582,13 @@ function ReadyManagerVendorsSection({
|
|
|
12607
12582
|
components,
|
|
12608
12583
|
style
|
|
12609
12584
|
}) {
|
|
12610
|
-
const vendors =
|
|
12611
|
-
const expenses =
|
|
12612
|
-
const seating =
|
|
12585
|
+
const vendors = chunkGD5UU4G6_cjs.useVendors(tripRef, "");
|
|
12586
|
+
const expenses = chunkGD5UU4G6_cjs.useExpenses(tripRef);
|
|
12587
|
+
const seating = chunkGD5UU4G6_cjs.useSeating(tripRef);
|
|
12613
12588
|
const [selectedVendorId, setSelectedVendorId] = react.useState(void 0);
|
|
12614
12589
|
const VendorListUI = components?.VendorListUI ?? VendorListSection;
|
|
12615
12590
|
if (vendors.status === "loading") {
|
|
12616
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vendors__skeleton", style:
|
|
12591
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vendors__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
12617
12592
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-vendors__skeleton-line" }),
|
|
12618
12593
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-vendors__skeleton-line" }),
|
|
12619
12594
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-vendors__skeleton-line kf-manager-vendors__skeleton-line--short" })
|
|
@@ -12632,7 +12607,7 @@ function ReadyManagerVendorsSection({
|
|
|
12632
12607
|
description: row.description
|
|
12633
12608
|
})) : void 0;
|
|
12634
12609
|
const detailVehicles = seating.status === "ready" && selectedVendor !== void 0 ? seating.vehicles.filter(isLiveVehicle2).filter((row) => row.vendorId === selectedVendor.id).map((row) => ({ id: row.id, regNo: row.regNo, label: row.label })) : void 0;
|
|
12635
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vendors", style:
|
|
12610
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-vendors", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
12636
12611
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12637
12612
|
VendorListUI,
|
|
12638
12613
|
{
|
|
@@ -12707,7 +12682,7 @@ function TripChipTabs({
|
|
|
12707
12682
|
onSelect,
|
|
12708
12683
|
counts
|
|
12709
12684
|
}) {
|
|
12710
|
-
const { t } =
|
|
12685
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12711
12686
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12712
12687
|
"div",
|
|
12713
12688
|
{
|
|
@@ -12763,7 +12738,7 @@ function TripHero({
|
|
|
12763
12738
|
endDate,
|
|
12764
12739
|
region
|
|
12765
12740
|
}) {
|
|
12766
|
-
const { t } =
|
|
12741
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12767
12742
|
const sub = [formatDateRange2(startDate, endDate), region].filter(Boolean).join(" \xB7 ");
|
|
12768
12743
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-manager-trip__hero", "aria-label": t("chrome.managerTrip.hero.ariaLabel"), children: [
|
|
12769
12744
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-trip__hero-body", children: [
|
|
@@ -12793,7 +12768,7 @@ var TAB_LABEL_KEY2 = {
|
|
|
12793
12768
|
documents: "chrome.managerTrip.tab.documents"
|
|
12794
12769
|
};
|
|
12795
12770
|
function TripTabPlaceholder({ tabKey }) {
|
|
12796
|
-
const { t } =
|
|
12771
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
12797
12772
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-trip__card kf-manager-trip__placeholder", children: t("chrome.managerTrip.placeholder.notBuilt").replace("{tab}", t(TAB_LABEL_KEY2[tabKey])) });
|
|
12798
12773
|
}
|
|
12799
12774
|
var BLOCKER_ACTION_TAB = {
|
|
@@ -12809,7 +12784,7 @@ var BLOCKER_ACTION_TAB = {
|
|
|
12809
12784
|
open_past_itinerary: "itinerary"
|
|
12810
12785
|
};
|
|
12811
12786
|
function ManagerTripSection(props) {
|
|
12812
|
-
const session =
|
|
12787
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
12813
12788
|
if (session.status !== "authenticated") {
|
|
12814
12789
|
return null;
|
|
12815
12790
|
}
|
|
@@ -12827,7 +12802,7 @@ function ReadyManagerTripSection({
|
|
|
12827
12802
|
panels,
|
|
12828
12803
|
style
|
|
12829
12804
|
}) {
|
|
12830
|
-
const managerMe =
|
|
12805
|
+
const managerMe = chunkTCVXLZ4H_cjs.useManagerMe();
|
|
12831
12806
|
const [internalActiveTab, setInternalActiveTab] = react.useState("manifest");
|
|
12832
12807
|
if (managerMe.status === "loading") {
|
|
12833
12808
|
return /* @__PURE__ */ jsxRuntime.jsx(ManagerTripSkeleton, { style });
|
|
@@ -12891,7 +12866,7 @@ function ReadyManagerTripSection({
|
|
|
12891
12866
|
}
|
|
12892
12867
|
)
|
|
12893
12868
|
};
|
|
12894
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-trip", style:
|
|
12869
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-trip", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
12895
12870
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
12896
12871
|
TripHero,
|
|
12897
12872
|
{
|
|
@@ -12910,7 +12885,7 @@ function ReadyManagerTripSection({
|
|
|
12910
12885
|
function ManagerTripSkeleton({
|
|
12911
12886
|
style
|
|
12912
12887
|
}) {
|
|
12913
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-trip__skeleton", style:
|
|
12888
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-trip__skeleton", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
12914
12889
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-trip__skeleton-block" }),
|
|
12915
12890
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-trip__skeleton-line" }),
|
|
12916
12891
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-trip__skeleton-line kf-manager-trip__skeleton-line--short" })
|
|
@@ -13076,7 +13051,7 @@ function ManagerShellHeader(props) {
|
|
|
13076
13051
|
"header",
|
|
13077
13052
|
{
|
|
13078
13053
|
className: "kf-manager-shell__header kf-manager-shell__header--back",
|
|
13079
|
-
style:
|
|
13054
|
+
style: chunk64AFXHOF_cjs.tokenStyle(props.style),
|
|
13080
13055
|
children: [
|
|
13081
13056
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
13082
13057
|
"button",
|
|
@@ -13102,7 +13077,7 @@ function ManagerShellHeader(props) {
|
|
|
13102
13077
|
"header",
|
|
13103
13078
|
{
|
|
13104
13079
|
className: "kf-manager-shell__header kf-manager-shell__header--page",
|
|
13105
|
-
style:
|
|
13080
|
+
style: chunk64AFXHOF_cjs.tokenStyle(style),
|
|
13106
13081
|
children: [
|
|
13107
13082
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-shell__header-titles", children: [
|
|
13108
13083
|
eyebrow !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-shell__header-eyebrow kf-eyebrow", children: eyebrow }) : null,
|
|
@@ -13147,7 +13122,7 @@ function ManagerShellTabBar({
|
|
|
13147
13122
|
{
|
|
13148
13123
|
"aria-label": "Manager navigation",
|
|
13149
13124
|
className: "kf-manager-shell__tab-bar",
|
|
13150
|
-
style:
|
|
13125
|
+
style: chunk64AFXHOF_cjs.tokenStyle(void 0, { "--kf-manager-shell-tab-count": tabs.length }),
|
|
13151
13126
|
children: tabs.map((tab) => {
|
|
13152
13127
|
const active = tab.key === activeTabKey;
|
|
13153
13128
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -13179,7 +13154,7 @@ function ManagerShell({
|
|
|
13179
13154
|
fab,
|
|
13180
13155
|
style
|
|
13181
13156
|
}) {
|
|
13182
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-shell", style:
|
|
13157
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-shell", style: chunk64AFXHOF_cjs.tokenStyle(style), children: [
|
|
13183
13158
|
header !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(ManagerShellHeader, { ...header }) : null,
|
|
13184
13159
|
/* @__PURE__ */ jsxRuntime.jsx("main", { className: "kf-manager-shell__main", children }),
|
|
13185
13160
|
fab,
|
|
@@ -13279,7 +13254,7 @@ function SyncStatusBadge({
|
|
|
13279
13254
|
parked,
|
|
13280
13255
|
onOpenSyncCenter
|
|
13281
13256
|
}) {
|
|
13282
|
-
const { t } =
|
|
13257
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
13283
13258
|
const Icon = isOnline ? WifiOnIcon2 : WifiOffIcon2;
|
|
13284
13259
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-app__sync-badge", "data-online": isOnline, children: [
|
|
13285
13260
|
/* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": "true" }),
|
|
@@ -13312,14 +13287,14 @@ var STATUS_LABEL_KEY7 = {
|
|
|
13312
13287
|
CANCELLED: "chrome.managerApp.tripList.status.cancelled"
|
|
13313
13288
|
};
|
|
13314
13289
|
function TripListRow({ trip, onSelect, style }) {
|
|
13315
|
-
const { t } =
|
|
13290
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
13316
13291
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
13317
13292
|
"button",
|
|
13318
13293
|
{
|
|
13319
13294
|
type: "button",
|
|
13320
13295
|
className: "kf-manager-app__trip-row kf-press",
|
|
13321
13296
|
onClick: () => onSelect(trip.tripRef),
|
|
13322
|
-
style:
|
|
13297
|
+
style: chunk64AFXHOF_cjs.tokenStyle(style),
|
|
13323
13298
|
children: [
|
|
13324
13299
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-manager-app__trip-tag", "data-event-type": trip.eventType }),
|
|
13325
13300
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-manager-app__trip-body", children: [
|
|
@@ -13353,7 +13328,7 @@ function TripListScreen({
|
|
|
13353
13328
|
onSelect,
|
|
13354
13329
|
TripListItemComponent
|
|
13355
13330
|
}) {
|
|
13356
|
-
const { t } =
|
|
13331
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
13357
13332
|
const ordered = [...trips].sort(byUrgency);
|
|
13358
13333
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-app__trip-list", children: [
|
|
13359
13334
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-eyebrow kf-manager-app__trip-list-eyebrow", children: t("chrome.managerApp.tripList.eyebrow") }),
|
|
@@ -13361,7 +13336,7 @@ function TripListScreen({
|
|
|
13361
13336
|
] });
|
|
13362
13337
|
}
|
|
13363
13338
|
function KaafilManagerApp(props) {
|
|
13364
|
-
const session =
|
|
13339
|
+
const session = chunk64AFXHOF_cjs.useSession();
|
|
13365
13340
|
if (session.status !== "authenticated") {
|
|
13366
13341
|
return null;
|
|
13367
13342
|
}
|
|
@@ -13396,12 +13371,12 @@ function ReadyKaafilManagerApp(props) {
|
|
|
13396
13371
|
components,
|
|
13397
13372
|
style
|
|
13398
13373
|
} = props;
|
|
13399
|
-
const { t } =
|
|
13400
|
-
const { appName } =
|
|
13374
|
+
const { t } = chunk64AFXHOF_cjs.useKaafilChrome();
|
|
13375
|
+
const { appName } = chunk64AFXHOF_cjs.useKaafilBrand();
|
|
13401
13376
|
const surfaceTitle = appName !== void 0 && appName.trim().length > 0 ? appName : t("chrome.managerApp.title");
|
|
13402
|
-
const managerMe =
|
|
13403
|
-
const notifications =
|
|
13404
|
-
const outboxStatus =
|
|
13377
|
+
const managerMe = chunkTCVXLZ4H_cjs.useManagerMe();
|
|
13378
|
+
const notifications = chunkTCVXLZ4H_cjs.useNotifications();
|
|
13379
|
+
const outboxStatus = chunk64AFXHOF_cjs.useOutboxStatus();
|
|
13405
13380
|
const [internalTripRef, setInternalTripRef] = react.useState(initialTripRef);
|
|
13406
13381
|
const [internalTab, setInternalTab] = react.useState("now");
|
|
13407
13382
|
const [tripTabKey, setTripTabKey] = react.useState(initialTripTabKey);
|
|
@@ -13678,23 +13653,23 @@ function ReadyKaafilManagerApp(props) {
|
|
|
13678
13653
|
|
|
13679
13654
|
Object.defineProperty(exports, "BootErrorScreen", {
|
|
13680
13655
|
enumerable: true,
|
|
13681
|
-
get: function () { return
|
|
13656
|
+
get: function () { return chunkLSOV3FJL_cjs.BootErrorScreen; }
|
|
13682
13657
|
});
|
|
13683
13658
|
Object.defineProperty(exports, "LockedTripScreen", {
|
|
13684
13659
|
enumerable: true,
|
|
13685
|
-
get: function () { return
|
|
13660
|
+
get: function () { return chunkLSOV3FJL_cjs.LockedTripScreen; }
|
|
13686
13661
|
});
|
|
13687
13662
|
Object.defineProperty(exports, "NotFoundScreen", {
|
|
13688
13663
|
enumerable: true,
|
|
13689
|
-
get: function () { return
|
|
13664
|
+
get: function () { return chunkLSOV3FJL_cjs.NotFoundScreen; }
|
|
13690
13665
|
});
|
|
13691
13666
|
Object.defineProperty(exports, "OfflineFallbackScreen", {
|
|
13692
13667
|
enumerable: true,
|
|
13693
|
-
get: function () { return
|
|
13668
|
+
get: function () { return chunkLSOV3FJL_cjs.OfflineFallbackScreen; }
|
|
13694
13669
|
});
|
|
13695
13670
|
Object.defineProperty(exports, "SessionExpiredScreen", {
|
|
13696
13671
|
enumerable: true,
|
|
13697
|
-
get: function () { return
|
|
13672
|
+
get: function () { return chunkLSOV3FJL_cjs.SessionExpiredScreen; }
|
|
13698
13673
|
});
|
|
13699
13674
|
exports.KaafilManagerApp = KaafilManagerApp;
|
|
13700
13675
|
exports.ManagerChecklistSection = ManagerChecklistSection;
|