kaafil-react-uikit 0.8.0 → 0.10.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 +88 -0
- package/dist/admin/index.cjs +476 -362
- package/dist/admin/index.cjs.map +1 -1
- package/dist/admin/index.d.cts +112 -14
- package/dist/admin/index.d.ts +112 -14
- package/dist/admin/index.js +136 -22
- package/dist/admin/index.js.map +1 -1
- package/dist/{chunk-Q4B25EZO.js → chunk-2HGOHUFU.js} +3 -3
- package/dist/{chunk-Q4B25EZO.js.map → chunk-2HGOHUFU.js.map} +1 -1
- package/dist/{chunk-TDFM563X.cjs → chunk-AJEZMD64.cjs} +12 -12
- package/dist/{chunk-TDFM563X.cjs.map → chunk-AJEZMD64.cjs.map} +1 -1
- package/dist/{chunk-PQJGV3RE.cjs → chunk-APE4R2GB.cjs} +86 -86
- package/dist/chunk-APE4R2GB.cjs.map +1 -0
- package/dist/{chunk-7COMKJTM.cjs → chunk-BKDKXM3L.cjs} +11 -11
- package/dist/{chunk-7COMKJTM.cjs.map → chunk-BKDKXM3L.cjs.map} +1 -1
- package/dist/{chunk-7O3TPYK4.cjs → chunk-E6SI2S3L.cjs} +17 -17
- package/dist/{chunk-7O3TPYK4.cjs.map → chunk-E6SI2S3L.cjs.map} +1 -1
- package/dist/{chunk-YHGAFRN6.js → chunk-IDKRXLMY.js} +3 -3
- package/dist/{chunk-YHGAFRN6.js.map → chunk-IDKRXLMY.js.map} +1 -1
- package/dist/{chunk-4R7QBTNL.cjs → chunk-LYCN2BOH.cjs} +4 -4
- package/dist/{chunk-4R7QBTNL.cjs.map → chunk-LYCN2BOH.cjs.map} +1 -1
- package/dist/{chunk-57DYMIWS.js → chunk-OXCVTVBY.js} +5 -5
- package/dist/{chunk-57DYMIWS.js.map → chunk-OXCVTVBY.js.map} +1 -1
- package/dist/{chunk-ASFUY3IE.cjs → chunk-P5HF55MO.cjs} +12 -8
- package/dist/chunk-P5HF55MO.cjs.map +1 -0
- package/dist/chunk-PHVQIIOI.cjs +12 -0
- package/dist/{chunk-LBTAK5JA.cjs.map → chunk-PHVQIIOI.cjs.map} +1 -1
- package/dist/{chunk-VU5BCK2P.js → chunk-U2443I5Q.js} +6 -6
- package/dist/chunk-U2443I5Q.js.map +1 -0
- package/dist/{chunk-DYOAKTGJ.js → chunk-UMLJEBQV.js} +5 -5
- package/dist/{chunk-DYOAKTGJ.js.map → chunk-UMLJEBQV.js.map} +1 -1
- package/dist/{chunk-GKR52SVU.js → chunk-VAUGZOY6.js} +3 -3
- package/dist/{chunk-GKR52SVU.js.map → chunk-VAUGZOY6.js.map} +1 -1
- package/dist/{chunk-ZURCZQQ7.js → chunk-WMBFBZ7Q.js} +12 -8
- package/dist/chunk-WMBFBZ7Q.js.map +1 -0
- package/dist/{chunk-MP4IMAPF.cjs → chunk-X5EFVCYF.cjs} +55 -55
- package/dist/{chunk-MP4IMAPF.cjs.map → chunk-X5EFVCYF.cjs.map} +1 -1
- package/dist/{chunk-E3KOQYY2.js → chunk-ZVADVALQ.js} +5 -5
- package/dist/{chunk-E3KOQYY2.js.map → chunk-ZVADVALQ.js.map} +1 -1
- package/dist/core/index.cjs +107 -107
- package/dist/core/index.js +10 -10
- package/dist/manager/index.cjs +376 -264
- package/dist/manager/index.cjs.map +1 -1
- package/dist/manager/index.d.cts +152 -20
- package/dist/manager/index.d.ts +152 -20
- package/dist/manager/index.js +143 -31
- package/dist/manager/index.js.map +1 -1
- package/dist/offline/index.cjs +123 -0
- package/dist/offline/index.cjs.map +1 -0
- package/dist/offline/index.d.cts +177 -0
- package/dist/offline/index.d.ts +177 -0
- package/dist/offline/index.js +119 -0
- package/dist/offline/index.js.map +1 -0
- package/dist/traveller/index.cjs +35 -35
- package/dist/traveller/index.js +5 -5
- package/package.json +6 -1
- package/dist/chunk-ASFUY3IE.cjs.map +0 -1
- package/dist/chunk-LBTAK5JA.cjs +0 -12
- package/dist/chunk-PQJGV3RE.cjs.map +0 -1
- package/dist/chunk-VU5BCK2P.js.map +0 -1
- package/dist/chunk-ZURCZQQ7.js.map +0 -1
package/dist/admin/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
6
|
-
var
|
|
7
|
-
var
|
|
3
|
+
var chunkX5EFVCYF_cjs = require('../chunk-X5EFVCYF.cjs');
|
|
4
|
+
var chunkAPE4R2GB_cjs = require('../chunk-APE4R2GB.cjs');
|
|
5
|
+
require('../chunk-LYCN2BOH.cjs');
|
|
6
|
+
var chunkAJEZMD64_cjs = require('../chunk-AJEZMD64.cjs');
|
|
7
|
+
var chunkP5HF55MO_cjs = require('../chunk-P5HF55MO.cjs');
|
|
8
8
|
var react = require('react');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
10
|
|
|
@@ -109,13 +109,13 @@ function CloseIcon(props) {
|
|
|
109
109
|
);
|
|
110
110
|
}
|
|
111
111
|
function StatusPill({ tone, children, style }) {
|
|
112
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-admin-shared-patterns-pill", "data-tone": tone, style:
|
|
112
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-admin-shared-patterns-pill", "data-tone": tone, style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
113
113
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-pill-dot", "aria-hidden": "true" }),
|
|
114
114
|
children
|
|
115
115
|
] });
|
|
116
116
|
}
|
|
117
117
|
function Tag({ tone, children, style }) {
|
|
118
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-tag", "data-tone": tone, style:
|
|
118
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-tag", "data-tone": tone, style: chunkP5HF55MO_cjs.tokenStyle(style), children });
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
// src/admin/composite/office/AgencySettingsScreen/internal/fieldDisplayValue.ts
|
|
@@ -183,7 +183,7 @@ function SheetDialog({
|
|
|
183
183
|
role: "dialog",
|
|
184
184
|
"aria-modal": "true",
|
|
185
185
|
"aria-labelledby": titleId,
|
|
186
|
-
style:
|
|
186
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
187
187
|
children: [
|
|
188
188
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-sheet-header", children: [
|
|
189
189
|
eyebrow === void 0 ? null : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-admin-shared-patterns-sheet-eyebrow", children: eyebrow }),
|
|
@@ -479,7 +479,7 @@ function TriStateToggle({ entry, onChange, t }) {
|
|
|
479
479
|
function NoRender() {
|
|
480
480
|
return null;
|
|
481
481
|
}
|
|
482
|
-
var fieldKindRegistry =
|
|
482
|
+
var fieldKindRegistry = chunkP5HF55MO_cjs.createRegistry({
|
|
483
483
|
fallback: { render: NoRender }
|
|
484
484
|
});
|
|
485
485
|
fieldKindRegistry.register("toggle", {
|
|
@@ -629,11 +629,11 @@ function SectionCard({
|
|
|
629
629
|
onDismissError,
|
|
630
630
|
style
|
|
631
631
|
}) {
|
|
632
|
-
const { t } =
|
|
632
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
633
633
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
634
634
|
const setFields = section.fields.filter((field) => stored?.[field.key] !== void 0);
|
|
635
635
|
const isCustomized = setFields.length > 0;
|
|
636
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen__panel-inner", style:
|
|
636
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen__panel-inner", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
637
637
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "kf-agency-settings-screen__panel-head", children: [
|
|
638
638
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen__panel-head-copy", children: [
|
|
639
639
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "kf-agency-settings-screen__panel-eyebrow", children: [
|
|
@@ -999,14 +999,21 @@ function orderSectionsByCustomized(sections, isCustomized) {
|
|
|
999
999
|
...sections.filter((section) => !isCustomized(section))
|
|
1000
1000
|
];
|
|
1001
1001
|
}
|
|
1002
|
-
function AgencySettingsScreen({
|
|
1002
|
+
function AgencySettingsScreen(props) {
|
|
1003
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
1004
|
+
if (session.status !== "authenticated") {
|
|
1005
|
+
return null;
|
|
1006
|
+
}
|
|
1007
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyAgencySettingsScreen, { ...props });
|
|
1008
|
+
}
|
|
1009
|
+
function ReadyAgencySettingsScreen({
|
|
1003
1010
|
title,
|
|
1004
1011
|
subtitle,
|
|
1005
1012
|
components,
|
|
1006
1013
|
style
|
|
1007
1014
|
}) {
|
|
1008
|
-
const { t } =
|
|
1009
|
-
const { document: document2, loaded, lastFetchFailed, refresh, patchSettings } =
|
|
1015
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1016
|
+
const { document: document2, loaded, lastFetchFailed, refresh, patchSettings } = chunkX5EFVCYF_cjs.useAgencySettings();
|
|
1010
1017
|
const [selectedSectionId, setSelectedSectionId] = react.useState(AGENCY_SETTINGS_SECTIONS[0]?.id);
|
|
1011
1018
|
const [savingSectionId, setSavingSectionId] = react.useState(void 0);
|
|
1012
1019
|
const [sectionError, setSectionError] = react.useState(void 0);
|
|
@@ -1023,13 +1030,13 @@ function AgencySettingsScreen({
|
|
|
1023
1030
|
try {
|
|
1024
1031
|
await patchSettings({ version: document2.version, [sectionId]: patch });
|
|
1025
1032
|
} catch (error) {
|
|
1026
|
-
const kind =
|
|
1033
|
+
const kind = chunkAPE4R2GB_cjs.classifyError(error).code === "CONFLICT_VERSION" ? "conflict" : "failed";
|
|
1027
1034
|
setSectionError({ sectionId, kind });
|
|
1028
1035
|
} finally {
|
|
1029
1036
|
setSavingSectionId(void 0);
|
|
1030
1037
|
}
|
|
1031
1038
|
}
|
|
1032
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen", style:
|
|
1039
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
1033
1040
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen__heading", children: [
|
|
1034
1041
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-agency-settings-screen__eyebrow", children: t("chrome.agencySettingsScreen.eyebrow") }),
|
|
1035
1042
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "kf-agency-settings-screen__title", children: title }),
|
|
@@ -1146,7 +1153,7 @@ function summaryFor(t, selected, everyLabelKey, optionLabelKey) {
|
|
|
1146
1153
|
return selected.length === 0 ? t(everyLabelKey) : selected.map(optionLabelKey).join(", ");
|
|
1147
1154
|
}
|
|
1148
1155
|
function AutoAttachPanel({ template, saving, onSave }) {
|
|
1149
|
-
const { t } =
|
|
1156
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1150
1157
|
const titleId = react.useId();
|
|
1151
1158
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
1152
1159
|
const [draft, setDraft] = react.useState(() => draftFromTemplate(template));
|
|
@@ -1382,9 +1389,9 @@ function TemplateEditorHeader({
|
|
|
1382
1389
|
onPublish,
|
|
1383
1390
|
style
|
|
1384
1391
|
}) {
|
|
1385
|
-
const { t } =
|
|
1392
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1386
1393
|
const statusLabelKey5 = template.status === "PUBLISHED" ? "chrome.checklistTemplateEditor.status.published" : "chrome.checklistTemplateEditor.status.draft";
|
|
1387
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header", style:
|
|
1394
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
1388
1395
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header-identity", children: [
|
|
1389
1396
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header-top", children: [
|
|
1390
1397
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1453,7 +1460,7 @@ function TemplateItemEditDialog({
|
|
|
1453
1460
|
onRemove,
|
|
1454
1461
|
onClose
|
|
1455
1462
|
}) {
|
|
1456
|
-
const { t } =
|
|
1463
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1457
1464
|
const titleId = react.useId();
|
|
1458
1465
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1459
1466
|
SheetDialog,
|
|
@@ -1603,7 +1610,7 @@ function TemplateItemRow({
|
|
|
1603
1610
|
onReorder,
|
|
1604
1611
|
style
|
|
1605
1612
|
}) {
|
|
1606
|
-
const { t } =
|
|
1613
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1607
1614
|
const dayOffset = item.dayOffset.trim().length > 0 ? Number.parseInt(item.dayOffset, 10) : null;
|
|
1608
1615
|
const dayLabel = dayOffset === null ? "\u2014" : dayOffset > 0 ? `D+${dayOffset}` : `D${dayOffset}`;
|
|
1609
1616
|
return (
|
|
@@ -1631,7 +1638,7 @@ function TemplateItemRow({
|
|
|
1631
1638
|
onReorder(draggedDraftId, item.draftId);
|
|
1632
1639
|
}
|
|
1633
1640
|
},
|
|
1634
|
-
style:
|
|
1641
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
1635
1642
|
children: [
|
|
1636
1643
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__item-drag", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(DragHandleIcon, {}) }),
|
|
1637
1644
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__item-index", children: String(index + 1).padStart(2, "0") }),
|
|
@@ -1703,8 +1710,8 @@ function ChecklistTemplateEditor({
|
|
|
1703
1710
|
components,
|
|
1704
1711
|
style
|
|
1705
1712
|
}) {
|
|
1706
|
-
const { t } =
|
|
1707
|
-
const { templates, loaded, lastFetchFailed, refresh, patchTemplate, publishTemplate } =
|
|
1713
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1714
|
+
const { templates, loaded, lastFetchFailed, refresh, patchTemplate, publishTemplate } = chunkX5EFVCYF_cjs.useAgencyChecklistTemplates();
|
|
1708
1715
|
const template = templates.find((candidate) => candidate.id === templateId);
|
|
1709
1716
|
const [title, setTitle] = react.useState("");
|
|
1710
1717
|
const [items, setItems] = react.useState([]);
|
|
@@ -1821,7 +1828,7 @@ function ChecklistTemplateEditor({
|
|
|
1821
1828
|
}
|
|
1822
1829
|
};
|
|
1823
1830
|
if (lastFetchFailed && !loaded) {
|
|
1824
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style:
|
|
1831
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__status-block", role: "alert", children: [
|
|
1825
1832
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon2, { className: "kf-checklist-template-editor__status-icon kf-checklist-template-editor__status-icon--danger" }),
|
|
1826
1833
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-checklist-template-editor__status-title", children: t("chrome.checklistTemplateEditor.errorTitle") }),
|
|
1827
1834
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1836,20 +1843,20 @@ function ChecklistTemplateEditor({
|
|
|
1836
1843
|
] }) });
|
|
1837
1844
|
}
|
|
1838
1845
|
if (!loaded) {
|
|
1839
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style:
|
|
1846
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__skeleton", "aria-hidden": "true", children: [
|
|
1840
1847
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__skeleton-block" }),
|
|
1841
1848
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__skeleton-block" }),
|
|
1842
1849
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__skeleton-block" })
|
|
1843
1850
|
] }) });
|
|
1844
1851
|
}
|
|
1845
1852
|
if (template === void 0) {
|
|
1846
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style:
|
|
1853
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__status-block", children: [
|
|
1847
1854
|
/* @__PURE__ */ jsxRuntime.jsx(EmptyStateIcon2, { className: "kf-checklist-template-editor__status-icon" }),
|
|
1848
1855
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-checklist-template-editor__status-title", children: t("chrome.checklistTemplateEditor.notFoundTitle") })
|
|
1849
1856
|
] }) });
|
|
1850
1857
|
}
|
|
1851
1858
|
const editingItem = items.find((item) => item.draftId === editingDraftId);
|
|
1852
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor", style:
|
|
1859
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
1853
1860
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1854
1861
|
TemplateEditorHeader2,
|
|
1855
1862
|
{
|
|
@@ -1952,7 +1959,7 @@ var AUDIENCE_HINT_KEY = {
|
|
|
1952
1959
|
EXTERNAL: "chrome.checklistTemplateLibrary.audience.externalHint"
|
|
1953
1960
|
};
|
|
1954
1961
|
function CreateTemplateSheet({ onSubmit, onClose }) {
|
|
1955
|
-
const { t } =
|
|
1962
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
1956
1963
|
const titleId = react.useId();
|
|
1957
1964
|
const [locale, setLocale] = react.useState("en");
|
|
1958
1965
|
const [title, setTitle] = react.useState("");
|
|
@@ -2069,7 +2076,7 @@ function DeleteTemplateConfirmSheet({
|
|
|
2069
2076
|
onConfirm,
|
|
2070
2077
|
onClose
|
|
2071
2078
|
}) {
|
|
2072
|
-
const { t } =
|
|
2079
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
2073
2080
|
const titleId = react.useId();
|
|
2074
2081
|
if (template === void 0) {
|
|
2075
2082
|
return null;
|
|
@@ -2188,7 +2195,7 @@ function TemplateRow({
|
|
|
2188
2195
|
onDelete,
|
|
2189
2196
|
style
|
|
2190
2197
|
}) {
|
|
2191
|
-
const { t } =
|
|
2198
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
2192
2199
|
const statusLabelKey5 = template.status === "PUBLISHED" ? "chrome.checklistTemplateLibrary.status.published" : "chrome.checklistTemplateLibrary.status.draft";
|
|
2193
2200
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2194
2201
|
"tr",
|
|
@@ -2197,7 +2204,7 @@ function TemplateRow({
|
|
|
2197
2204
|
className: "kf-checklist-template-library__table-row",
|
|
2198
2205
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
2199
2206
|
"data-selected": selected === true ? "true" : void 0,
|
|
2200
|
-
style:
|
|
2207
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
2201
2208
|
children: [
|
|
2202
2209
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2203
2210
|
"td",
|
|
@@ -2287,7 +2294,7 @@ function TemplateLibrarySkeleton() {
|
|
|
2287
2294
|
] }, rowIndex)) }) }) });
|
|
2288
2295
|
}
|
|
2289
2296
|
function CardHeading({ count }) {
|
|
2290
|
-
const { t } =
|
|
2297
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
2291
2298
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-checklist-template-library__card-title", children: t(
|
|
2292
2299
|
count === 1 ? "chrome.checklistTemplateLibrary.countLabelOne" : "chrome.checklistTemplateLibrary.countLabel"
|
|
2293
2300
|
).replace("{count}", String(count)) });
|
|
@@ -2303,8 +2310,8 @@ function ChecklistTemplateLibrary({
|
|
|
2303
2310
|
components,
|
|
2304
2311
|
style
|
|
2305
2312
|
}) {
|
|
2306
|
-
const { t } =
|
|
2307
|
-
const { templates, loaded, lastFetchFailed, refresh, createTemplate, removeTemplate } =
|
|
2313
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
2314
|
+
const { templates, loaded, lastFetchFailed, refresh, createTemplate, removeTemplate } = chunkX5EFVCYF_cjs.useAgencyChecklistTemplates();
|
|
2308
2315
|
const isControlled = controlledCreating !== void 0 && onCreatingChange !== void 0;
|
|
2309
2316
|
const [internalCreating, setInternalCreating] = react.useState(false);
|
|
2310
2317
|
const creating = isControlled ? controlledCreating : internalCreating;
|
|
@@ -2340,7 +2347,7 @@ function ChecklistTemplateLibrary({
|
|
|
2340
2347
|
]
|
|
2341
2348
|
}
|
|
2342
2349
|
);
|
|
2343
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library", style:
|
|
2350
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
2344
2351
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library__heading", children: [
|
|
2345
2352
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library__heading-copy", children: [
|
|
2346
2353
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-checklist-template-library__title", children: title }),
|
|
@@ -2635,8 +2642,8 @@ function BuilderHeader({
|
|
|
2635
2642
|
pending,
|
|
2636
2643
|
style
|
|
2637
2644
|
}) {
|
|
2638
|
-
const { t } =
|
|
2639
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header", style:
|
|
2645
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
2646
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
2640
2647
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header-identity", children: [
|
|
2641
2648
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header-top", children: [
|
|
2642
2649
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2832,7 +2839,7 @@ var fallback = {
|
|
|
2832
2839
|
preview: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-form-builder__preview-unsupported", children: field.label }),
|
|
2833
2840
|
configFields: NoConfigFields
|
|
2834
2841
|
};
|
|
2835
|
-
var fieldRegistry =
|
|
2842
|
+
var fieldRegistry = chunkP5HF55MO_cjs.createRegistry({ fallback });
|
|
2836
2843
|
fieldRegistry.register("HEADING", {
|
|
2837
2844
|
preview: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-form-builder__preview-heading", children: field.label }),
|
|
2838
2845
|
configFields: NoConfigFields
|
|
@@ -3304,7 +3311,7 @@ fieldRegistry.register("ADDRESS", {
|
|
|
3304
3311
|
}
|
|
3305
3312
|
});
|
|
3306
3313
|
function FieldEditDialog(props) {
|
|
3307
|
-
const { t } =
|
|
3314
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
3308
3315
|
const titleId = react.useId();
|
|
3309
3316
|
const { bindings, saving, onClose } = props;
|
|
3310
3317
|
const isEdit = props.mode === "edit";
|
|
@@ -3541,7 +3548,7 @@ function FieldEditDialog(props) {
|
|
|
3541
3548
|
);
|
|
3542
3549
|
}
|
|
3543
3550
|
function LivePreviewPane({ title, sections, fields }) {
|
|
3544
|
-
const { t } =
|
|
3551
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
3545
3552
|
const [frame, setFrame] = react.useState("desktop");
|
|
3546
3553
|
const [answers, setAnswers] = react.useState({});
|
|
3547
3554
|
function setAnswer(fieldId, value) {
|
|
@@ -3630,7 +3637,7 @@ function FieldRow({
|
|
|
3630
3637
|
onDragEnd,
|
|
3631
3638
|
style
|
|
3632
3639
|
}) {
|
|
3633
|
-
const { t } =
|
|
3640
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
3634
3641
|
const hasHelp = field.helpText !== null && field.helpText.length > 0;
|
|
3635
3642
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3636
3643
|
"li",
|
|
@@ -3638,7 +3645,7 @@ function FieldRow({
|
|
|
3638
3645
|
className: "kf-form-builder__field-row",
|
|
3639
3646
|
"data-dragging": dragging ? "true" : void 0,
|
|
3640
3647
|
"data-drag-over": dragOver ? "true" : void 0,
|
|
3641
|
-
style:
|
|
3648
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
3642
3649
|
onDragOver: (event) => {
|
|
3643
3650
|
event.preventDefault();
|
|
3644
3651
|
onDragOverRow();
|
|
@@ -3700,7 +3707,7 @@ function SectionBlock({
|
|
|
3700
3707
|
onOpenField,
|
|
3701
3708
|
onReorderField
|
|
3702
3709
|
}) {
|
|
3703
|
-
const { t } =
|
|
3710
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
3704
3711
|
const [title, setTitle] = react.useState(section.title ?? "");
|
|
3705
3712
|
const [draggedFieldId, setDraggedFieldId] = react.useState(void 0);
|
|
3706
3713
|
const [dragOverFieldId, setDragOverFieldId] = react.useState(void 0);
|
|
@@ -3834,7 +3841,7 @@ function draftFromForm(form) {
|
|
|
3834
3841
|
};
|
|
3835
3842
|
}
|
|
3836
3843
|
function TargetingSummary({ form }) {
|
|
3837
|
-
const { t } =
|
|
3844
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
3838
3845
|
const anchorLabel = (anchor) => t(`chrome.formBuilder.summary.anchor.${anchor}`);
|
|
3839
3846
|
const eventTypes = form.appliesToEventTypes.length === 0 ? t("chrome.formBuilder.summary.everyEventType") : form.appliesToEventTypes.map((type) => t(`chrome.formBuilder.targeting.eventType.${type}`)).join(" \xB7 ");
|
|
3840
3847
|
const tripModes = form.appliesToTripModes.length === 0 ? t("chrome.formBuilder.summary.everyTripMode") : form.appliesToTripModes.map((mode) => t(`chrome.formBuilder.targeting.tripMode.${mode}`)).join(" \xB7 ");
|
|
@@ -3895,7 +3902,7 @@ function TargetingSummary({ form }) {
|
|
|
3895
3902
|
] }, cell.key)) });
|
|
3896
3903
|
}
|
|
3897
3904
|
function TargetingPanel({ form, saving, onSave }) {
|
|
3898
|
-
const { t } =
|
|
3905
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
3899
3906
|
const [editing, setEditing] = react.useState(false);
|
|
3900
3907
|
const [submitted, setSubmitted] = react.useState(false);
|
|
3901
3908
|
const [draft, setDraft] = react.useState(() => draftFromForm(form));
|
|
@@ -4191,7 +4198,7 @@ function buildReorderSections(sections, fieldsBySection) {
|
|
|
4191
4198
|
}));
|
|
4192
4199
|
}
|
|
4193
4200
|
function FormBuilder({ formId, onBack, components, style }) {
|
|
4194
|
-
const { t } =
|
|
4201
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
4195
4202
|
const {
|
|
4196
4203
|
getForm,
|
|
4197
4204
|
patchForm,
|
|
@@ -4209,7 +4216,7 @@ function FormBuilder({ formId, onBack, components, style }) {
|
|
|
4209
4216
|
deleteField,
|
|
4210
4217
|
reorderForm,
|
|
4211
4218
|
listBindings
|
|
4212
|
-
} =
|
|
4219
|
+
} = chunkX5EFVCYF_cjs.useAgencyForms();
|
|
4213
4220
|
const [form, setForm] = react.useState(void 0);
|
|
4214
4221
|
const [loadFailed, setLoadFailed] = react.useState(false);
|
|
4215
4222
|
const [bindings, setBindings] = react.useState([]);
|
|
@@ -4420,7 +4427,7 @@ function FormBuilder({ formId, onBack, components, style }) {
|
|
|
4420
4427
|
}
|
|
4421
4428
|
}
|
|
4422
4429
|
if (loadFailed && form === void 0) {
|
|
4423
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style:
|
|
4430
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__status-block", role: "alert", children: [
|
|
4424
4431
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon4, { className: "kf-form-builder__status-icon kf-form-builder__status-icon--danger" }),
|
|
4425
4432
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-form-builder__status-title", children: t("chrome.formBuilder.errorTitle") }),
|
|
4426
4433
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4435,13 +4442,13 @@ function FormBuilder({ formId, onBack, components, style }) {
|
|
|
4435
4442
|
] }) });
|
|
4436
4443
|
}
|
|
4437
4444
|
if (form === void 0) {
|
|
4438
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style:
|
|
4445
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__skeleton", "aria-hidden": "true", children: [
|
|
4439
4446
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-form-builder__skeleton-block" }),
|
|
4440
4447
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-form-builder__skeleton-block" }),
|
|
4441
4448
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-form-builder__skeleton-block" })
|
|
4442
4449
|
] }) });
|
|
4443
4450
|
}
|
|
4444
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder", style:
|
|
4451
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
4445
4452
|
onBack !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", onClick: onBack, className: "kf-form-builder__back-link", children: [
|
|
4446
4453
|
/* @__PURE__ */ jsxRuntime.jsx(BackIcon, {}),
|
|
4447
4454
|
t("chrome.formBuilder.backToLibrary")
|
|
@@ -4595,7 +4602,7 @@ var AUDIENCE_LABEL_KEY2 = {
|
|
|
4595
4602
|
MANAGER: "chrome.formsLibrary.audience.manager"
|
|
4596
4603
|
};
|
|
4597
4604
|
function CreateFormSheet({ onSubmit, onClose }) {
|
|
4598
|
-
const { t } =
|
|
4605
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
4599
4606
|
const titleId = react.useId();
|
|
4600
4607
|
const [locale, setLocale] = react.useState("en");
|
|
4601
4608
|
const [title, setTitle] = react.useState("");
|
|
@@ -4623,7 +4630,7 @@ function CreateFormSheet({ onSubmit, onClose }) {
|
|
|
4623
4630
|
});
|
|
4624
4631
|
onClose();
|
|
4625
4632
|
} catch (error) {
|
|
4626
|
-
setErrorCode(
|
|
4633
|
+
setErrorCode(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
4627
4634
|
} finally {
|
|
4628
4635
|
setPending(false);
|
|
4629
4636
|
}
|
|
@@ -4811,7 +4818,7 @@ function formatDate2(iso) {
|
|
|
4811
4818
|
});
|
|
4812
4819
|
}
|
|
4813
4820
|
function FormRow({ form, selected, onSelect, style }) {
|
|
4814
|
-
const { t } =
|
|
4821
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
4815
4822
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4816
4823
|
"tr",
|
|
4817
4824
|
{
|
|
@@ -4819,7 +4826,7 @@ function FormRow({ form, selected, onSelect, style }) {
|
|
|
4819
4826
|
className: "kf-forms-library__table-row",
|
|
4820
4827
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
4821
4828
|
"data-selected": selected === true ? "true" : void 0,
|
|
4822
|
-
style:
|
|
4829
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
4823
4830
|
children: [
|
|
4824
4831
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4825
4832
|
"td",
|
|
@@ -4875,7 +4882,7 @@ function FormsLibrarySkeleton() {
|
|
|
4875
4882
|
] }, rowIndex)) }) }) });
|
|
4876
4883
|
}
|
|
4877
4884
|
function CardHeading2({ count }) {
|
|
4878
|
-
const { t } =
|
|
4885
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
4879
4886
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-forms-library__card-title", children: t(
|
|
4880
4887
|
count === 1 ? "chrome.formsLibrary.countLabelOne" : "chrome.formsLibrary.countLabel"
|
|
4881
4888
|
).replace("{count}", String(count)) });
|
|
@@ -4890,7 +4897,7 @@ function StatusFilterBar({
|
|
|
4890
4897
|
active,
|
|
4891
4898
|
onChange
|
|
4892
4899
|
}) {
|
|
4893
|
-
const { t } =
|
|
4900
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
4894
4901
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-forms-library__filter-bar", children: [
|
|
4895
4902
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t("chrome.formsLibrary.filter.legend") }),
|
|
4896
4903
|
STATUS_FILTERS.map((filter) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4916,8 +4923,8 @@ function FormsLibrary({
|
|
|
4916
4923
|
components,
|
|
4917
4924
|
style
|
|
4918
4925
|
}) {
|
|
4919
|
-
const { t } =
|
|
4920
|
-
const { forms, loaded, lastFetchFailed, refresh, createForm } =
|
|
4926
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
4927
|
+
const { forms, loaded, lastFetchFailed, refresh, createForm } = chunkX5EFVCYF_cjs.useAgencyForms();
|
|
4921
4928
|
const isControlled = controlledCreating !== void 0 && onCreatingChange !== void 0;
|
|
4922
4929
|
const [internalCreating, setInternalCreating] = react.useState(false);
|
|
4923
4930
|
const creating = isControlled ? controlledCreating : internalCreating;
|
|
@@ -4928,7 +4935,7 @@ function FormsLibrary({
|
|
|
4928
4935
|
await createForm(input);
|
|
4929
4936
|
};
|
|
4930
4937
|
const visibleForms = statusFilter === "ALL" ? forms : forms.filter((form) => form.status === statusFilter);
|
|
4931
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-forms-library", style:
|
|
4938
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-forms-library", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
4932
4939
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-forms-library__heading", children: [
|
|
4933
4940
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-forms-library__title", children: title }),
|
|
4934
4941
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-forms-library__subtitle", children: subtitle }) : null
|
|
@@ -5004,9 +5011,9 @@ function FormsAuthoringFlow({ initialFormId, style }) {
|
|
|
5004
5011
|
setSelectedFormId(void 0);
|
|
5005
5012
|
}
|
|
5006
5013
|
if (selectedFormId === void 0) {
|
|
5007
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style:
|
|
5014
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(FormsLibrary, { onSelectForm: handleSelect }) });
|
|
5008
5015
|
}
|
|
5009
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style:
|
|
5016
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(FormBuilder, { formId: selectedFormId, onBack: handleBack }) });
|
|
5010
5017
|
}
|
|
5011
5018
|
function SearchIcon(props) {
|
|
5012
5019
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -5157,7 +5164,7 @@ function AdminAvatar({
|
|
|
5157
5164
|
className: "kf-admin-shared-patterns-avatar",
|
|
5158
5165
|
"data-size": size,
|
|
5159
5166
|
"aria-hidden": "true",
|
|
5160
|
-
style:
|
|
5167
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style, {
|
|
5161
5168
|
"--kf-admin-shared-patterns-avatar-computed-size": SIZE_VAR[size],
|
|
5162
5169
|
"--kf-admin-shared-patterns-avatar-computed-bg": `var(--kf-color-avatar-${step})`
|
|
5163
5170
|
}),
|
|
@@ -5177,7 +5184,7 @@ function ManagerResultRow({
|
|
|
5177
5184
|
onSelect,
|
|
5178
5185
|
style
|
|
5179
5186
|
}) {
|
|
5180
|
-
const { t } =
|
|
5187
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5181
5188
|
const initials = initialsFromName(manager.fullName);
|
|
5182
5189
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5183
5190
|
"tr",
|
|
@@ -5185,7 +5192,7 @@ function ManagerResultRow({
|
|
|
5185
5192
|
role: "row",
|
|
5186
5193
|
className: "kf-manager-directory-flow__table-row",
|
|
5187
5194
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
5188
|
-
style:
|
|
5195
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
5189
5196
|
children: [
|
|
5190
5197
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5191
5198
|
"td",
|
|
@@ -5294,8 +5301,8 @@ function ManagerResultsListBody({
|
|
|
5294
5301
|
onCountChange,
|
|
5295
5302
|
onRetry
|
|
5296
5303
|
}) {
|
|
5297
|
-
const { t } =
|
|
5298
|
-
const directories =
|
|
5304
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5305
|
+
const directories = chunkX5EFVCYF_cjs.useDirectories();
|
|
5299
5306
|
const [errorMessage, setErrorMessage] = react.useState(void 0);
|
|
5300
5307
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
5301
5308
|
const ManagerRow = ManagerResultRowComponent ?? ManagerResultRow;
|
|
@@ -5306,7 +5313,7 @@ function ManagerResultsListBody({
|
|
|
5306
5313
|
setErrorMessage(void 0);
|
|
5307
5314
|
return page;
|
|
5308
5315
|
} catch (error) {
|
|
5309
|
-
setErrorMessage(
|
|
5316
|
+
setErrorMessage(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
5310
5317
|
return { rows: [], nextCursor: void 0 };
|
|
5311
5318
|
} finally {
|
|
5312
5319
|
setHasSettled(true);
|
|
@@ -5314,7 +5321,7 @@ function ManagerResultsListBody({
|
|
|
5314
5321
|
},
|
|
5315
5322
|
[directories, filters]
|
|
5316
5323
|
);
|
|
5317
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
5324
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkX5EFVCYF_cjs.usePaginatedList(fetch);
|
|
5318
5325
|
const isLoading = !hasSettled;
|
|
5319
5326
|
const reportedCount = isLoading || errorMessage !== void 0 ? void 0 : rows.length;
|
|
5320
5327
|
react.useEffect(() => {
|
|
@@ -5411,7 +5418,7 @@ function ManagerSearchInput({
|
|
|
5411
5418
|
debounceMs,
|
|
5412
5419
|
onDebouncedChange
|
|
5413
5420
|
}) {
|
|
5414
|
-
const { t } =
|
|
5421
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5415
5422
|
const [value, setValue] = react.useState("");
|
|
5416
5423
|
react.useEffect(() => {
|
|
5417
5424
|
const timer = setTimeout(() => onDebouncedChange(value), debounceMs);
|
|
@@ -5450,12 +5457,12 @@ function ManagerDirectoryFlow({
|
|
|
5450
5457
|
components,
|
|
5451
5458
|
style
|
|
5452
5459
|
}) {
|
|
5453
|
-
const { t } =
|
|
5460
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5454
5461
|
const [query, setQuery] = react.useState("");
|
|
5455
5462
|
const [count, setCount] = react.useState(void 0);
|
|
5456
5463
|
const trimmedQuery = query.trim();
|
|
5457
5464
|
const handleCountChange = react.useCallback((next) => setCount(next), []);
|
|
5458
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-directory-flow", style:
|
|
5465
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-directory-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
5459
5466
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-directory-flow__heading", children: [
|
|
5460
5467
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-manager-directory-flow__title", children: title }),
|
|
5461
5468
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-directory-flow__subtitle", children: subtitle }) : null
|
|
@@ -5527,7 +5534,7 @@ function formatDate3(iso) {
|
|
|
5527
5534
|
return new Date(iso).toLocaleDateString("en-GB", { day: "2-digit", month: "short" });
|
|
5528
5535
|
}
|
|
5529
5536
|
function ManagerAssignmentsCard({ trips }) {
|
|
5530
|
-
const { t } =
|
|
5537
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5531
5538
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-manager-profile-section__card", children: [
|
|
5532
5539
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section__card-head", children: [
|
|
5533
5540
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-manager-profile-section__card-title", children: t("chrome.managerProfileSection.trips.title") }),
|
|
@@ -5591,7 +5598,7 @@ function HeroProfileHeader({
|
|
|
5591
5598
|
glowTone,
|
|
5592
5599
|
style
|
|
5593
5600
|
}) {
|
|
5594
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-hero", "data-glow": glowTone, style:
|
|
5601
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-hero", "data-glow": glowTone, style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
5595
5602
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-hero-glow", "aria-hidden": "true" }),
|
|
5596
5603
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-hero-row", children: [
|
|
5597
5604
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-hero-avatar", "aria-hidden": "true", children: avatarInitials }),
|
|
@@ -5624,7 +5631,7 @@ function initialsFromName2(name) {
|
|
|
5624
5631
|
return `${first}${last}`.toUpperCase();
|
|
5625
5632
|
}
|
|
5626
5633
|
function ManagerProfileHero({ profile, onBack }) {
|
|
5627
|
-
const { t } =
|
|
5634
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5628
5635
|
const initials = initialsFromName2(profile.fullName);
|
|
5629
5636
|
const stats = [
|
|
5630
5637
|
{ key: "trips", label: t("chrome.managerProfileSection.hero.trips"), value: profile.tripCount },
|
|
@@ -5683,12 +5690,12 @@ function ManagerProfileSection({
|
|
|
5683
5690
|
components,
|
|
5684
5691
|
style
|
|
5685
5692
|
}) {
|
|
5686
|
-
const { t } =
|
|
5687
|
-
const { read, readFailed, refresh } =
|
|
5693
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5694
|
+
const { read, readFailed, refresh } = chunkX5EFVCYF_cjs.useAgencyManagerProfile(managerRef);
|
|
5688
5695
|
const Hero = components?.Hero ?? ManagerProfileHero;
|
|
5689
5696
|
const AssignmentsCard = components?.AssignmentsCard ?? ManagerAssignmentsCard;
|
|
5690
5697
|
if (readFailed) {
|
|
5691
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style:
|
|
5698
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section__status-block", role: "alert", children: [
|
|
5692
5699
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon7, { className: "kf-manager-profile-section__status-icon kf-manager-profile-section__status-icon--danger" }),
|
|
5693
5700
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-profile-section__status-title", children: t("chrome.managerProfileSection.errorTitle") }),
|
|
5694
5701
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-profile-section__status-body", children: t("chrome.managerProfileSection.errorBody") }),
|
|
@@ -5704,9 +5711,9 @@ function ManagerProfileSection({
|
|
|
5704
5711
|
] }) });
|
|
5705
5712
|
}
|
|
5706
5713
|
if (read === void 0) {
|
|
5707
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style:
|
|
5714
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(ManagerProfileSkeleton, {}) });
|
|
5708
5715
|
}
|
|
5709
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section", style:
|
|
5716
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
5710
5717
|
/* @__PURE__ */ jsxRuntime.jsx(Hero, { profile: read, onBack }),
|
|
5711
5718
|
/* @__PURE__ */ jsxRuntime.jsx(AssignmentsCard, { trips: read.trips })
|
|
5712
5719
|
] });
|
|
@@ -5733,7 +5740,7 @@ function TemplateAuthoringFlow({
|
|
|
5733
5740
|
initialTemplateId,
|
|
5734
5741
|
style
|
|
5735
5742
|
}) {
|
|
5736
|
-
const { t } =
|
|
5743
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5737
5744
|
const [selectedTemplateId, setSelectedTemplateId] = react.useState(
|
|
5738
5745
|
initialTemplateId
|
|
5739
5746
|
);
|
|
@@ -5744,9 +5751,9 @@ function TemplateAuthoringFlow({
|
|
|
5744
5751
|
setSelectedTemplateId(void 0);
|
|
5745
5752
|
}
|
|
5746
5753
|
if (selectedTemplateId === void 0) {
|
|
5747
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-template-authoring-flow", style:
|
|
5754
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-template-authoring-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(ChecklistTemplateLibrary, { onSelectTemplate: handleSelect }) });
|
|
5748
5755
|
}
|
|
5749
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-template-authoring-flow", style:
|
|
5756
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-template-authoring-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
5750
5757
|
/* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", onClick: handleBack, className: "kf-template-authoring-flow__back-link", children: [
|
|
5751
5758
|
/* @__PURE__ */ jsxRuntime.jsx(BackIcon3, {}),
|
|
5752
5759
|
t("chrome.templateAuthoringFlow.backToLibrary")
|
|
@@ -5755,8 +5762,8 @@ function TemplateAuthoringFlow({
|
|
|
5755
5762
|
] });
|
|
5756
5763
|
}
|
|
5757
5764
|
function AddTravellerModal({ onClose, onCreated }) {
|
|
5758
|
-
const { t } =
|
|
5759
|
-
const directories =
|
|
5765
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5766
|
+
const directories = chunkX5EFVCYF_cjs.useDirectories();
|
|
5760
5767
|
const titleId = react.useId();
|
|
5761
5768
|
const [fullName, setFullName] = react.useState("");
|
|
5762
5769
|
const [phone, setPhone] = react.useState("");
|
|
@@ -5780,7 +5787,7 @@ function AddTravellerModal({ onClose, onCreated }) {
|
|
|
5780
5787
|
});
|
|
5781
5788
|
onCreated(created);
|
|
5782
5789
|
} catch (error) {
|
|
5783
|
-
setErrorMessage(
|
|
5790
|
+
setErrorMessage(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
5784
5791
|
} finally {
|
|
5785
5792
|
setIsSubmitting(false);
|
|
5786
5793
|
}
|
|
@@ -5994,7 +6001,7 @@ function TravellerResultRow({
|
|
|
5994
6001
|
onSelect,
|
|
5995
6002
|
style
|
|
5996
6003
|
}) {
|
|
5997
|
-
const { t } =
|
|
6004
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
5998
6005
|
const initials = initialsFromName3(traveller.fullName);
|
|
5999
6006
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6000
6007
|
"tr",
|
|
@@ -6002,7 +6009,7 @@ function TravellerResultRow({
|
|
|
6002
6009
|
role: "row",
|
|
6003
6010
|
className: "kf-traveller-directory__table-row",
|
|
6004
6011
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
6005
|
-
style:
|
|
6012
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
6006
6013
|
children: [
|
|
6007
6014
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6008
6015
|
"td",
|
|
@@ -6130,8 +6137,8 @@ function TravellerResultsListBody({
|
|
|
6130
6137
|
onCountChange,
|
|
6131
6138
|
onRetry
|
|
6132
6139
|
}) {
|
|
6133
|
-
const { t } =
|
|
6134
|
-
const directories =
|
|
6140
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6141
|
+
const directories = chunkX5EFVCYF_cjs.useDirectories();
|
|
6135
6142
|
const [errorMessage, setErrorMessage] = react.useState(void 0);
|
|
6136
6143
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
6137
6144
|
const fetch = react.useCallback(
|
|
@@ -6142,7 +6149,7 @@ function TravellerResultsListBody({
|
|
|
6142
6149
|
setErrorMessage(void 0);
|
|
6143
6150
|
return page;
|
|
6144
6151
|
} catch (error) {
|
|
6145
|
-
setErrorMessage(
|
|
6152
|
+
setErrorMessage(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
6146
6153
|
return { rows: [], nextCursor: void 0 };
|
|
6147
6154
|
} finally {
|
|
6148
6155
|
setHasSettled(true);
|
|
@@ -6150,7 +6157,7 @@ function TravellerResultsListBody({
|
|
|
6150
6157
|
},
|
|
6151
6158
|
[directories, query]
|
|
6152
6159
|
);
|
|
6153
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
6160
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkX5EFVCYF_cjs.usePaginatedList(fetch);
|
|
6154
6161
|
const isLoading = !hasSettled;
|
|
6155
6162
|
const reportedCount = isLoading || errorMessage !== void 0 ? void 0 : rows.length;
|
|
6156
6163
|
react.useEffect(() => {
|
|
@@ -6245,7 +6252,7 @@ function TravellerSearchInput({
|
|
|
6245
6252
|
debounceMs,
|
|
6246
6253
|
onDebouncedChange
|
|
6247
6254
|
}) {
|
|
6248
|
-
const { t } =
|
|
6255
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6249
6256
|
const [value, setValue] = react.useState("");
|
|
6250
6257
|
react.useEffect(() => {
|
|
6251
6258
|
const timer = setTimeout(() => onDebouncedChange(value), debounceMs);
|
|
@@ -6285,13 +6292,13 @@ function TravellerSearchBox({
|
|
|
6285
6292
|
trailingAction,
|
|
6286
6293
|
style
|
|
6287
6294
|
}) {
|
|
6288
|
-
const { t } =
|
|
6295
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6289
6296
|
const [query, setQuery] = react.useState("");
|
|
6290
6297
|
const [count, setCount] = react.useState(void 0);
|
|
6291
6298
|
const trimmed = query.trim();
|
|
6292
6299
|
const handleCountChange = react.useCallback((next) => setCount(next), []);
|
|
6293
6300
|
const isBelowFloor = minQueryLength > 0 && trimmed.length < minQueryLength;
|
|
6294
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory__search-box", style:
|
|
6301
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory__search-box", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
6295
6302
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory__search-box-input-row", children: [
|
|
6296
6303
|
/* @__PURE__ */ jsxRuntime.jsx(TravellerSearchInput, { debounceMs, onDebouncedChange: setQuery }),
|
|
6297
6304
|
count !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-traveller-directory__count", children: t(
|
|
@@ -6323,7 +6330,7 @@ function TravellerDirectoryFlow({
|
|
|
6323
6330
|
components,
|
|
6324
6331
|
style
|
|
6325
6332
|
}) {
|
|
6326
|
-
const { t } =
|
|
6333
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6327
6334
|
const [uncontrolledOpen, setUncontrolledOpen] = react.useState(false);
|
|
6328
6335
|
const isControlled = adding !== void 0 && onAddingChange !== void 0;
|
|
6329
6336
|
const isAddModalOpen = isControlled ? adding : uncontrolledOpen;
|
|
@@ -6346,7 +6353,7 @@ function TravellerDirectoryFlow({
|
|
|
6346
6353
|
);
|
|
6347
6354
|
const SearchBox = components?.TravellerSearchBox ?? TravellerSearchBox;
|
|
6348
6355
|
const AddModal = components?.AddTravellerModal ?? AddTravellerModal;
|
|
6349
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory-flow", style:
|
|
6356
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
6350
6357
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory-flow__heading", children: [
|
|
6351
6358
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-traveller-directory-flow__title", children: title }),
|
|
6352
6359
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-traveller-directory-flow__subtitle", children: subtitle }) : null
|
|
@@ -6372,7 +6379,7 @@ function TravellerDirectoryFlow({
|
|
|
6372
6379
|
] });
|
|
6373
6380
|
}
|
|
6374
6381
|
function useAgencyTravellerProfile(travellerRef) {
|
|
6375
|
-
const client =
|
|
6382
|
+
const client = chunkP5HF55MO_cjs.useKaafilClient();
|
|
6376
6383
|
const [read, setRead] = react.useState(void 0);
|
|
6377
6384
|
const [readFailed, setReadFailed] = react.useState(false);
|
|
6378
6385
|
const refresh = react.useCallback(async () => {
|
|
@@ -6429,7 +6436,7 @@ function formatMinor(minor, currency) {
|
|
|
6429
6436
|
}).format(minor / 100);
|
|
6430
6437
|
}
|
|
6431
6438
|
function TravellerLifetimeCard({ lifetime }) {
|
|
6432
|
-
const { t } =
|
|
6439
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6433
6440
|
if (lifetime.currency === null) {
|
|
6434
6441
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-traveller-profile-section__card", children: [
|
|
6435
6442
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__card-head", children: [
|
|
@@ -6477,7 +6484,7 @@ function formatTimestamp(iso) {
|
|
|
6477
6484
|
});
|
|
6478
6485
|
}
|
|
6479
6486
|
function TravellerNotesList({ notes }) {
|
|
6480
|
-
const { t } =
|
|
6487
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6481
6488
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-traveller-profile-section__card", children: [
|
|
6482
6489
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__card-head", children: [
|
|
6483
6490
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-traveller-profile-section__card-title", children: t("chrome.travellerProfileSection.notes.title") }),
|
|
@@ -6523,7 +6530,7 @@ function formatDateOfBirth(iso) {
|
|
|
6523
6530
|
});
|
|
6524
6531
|
}
|
|
6525
6532
|
function TravellerPersonalCard({ profile }) {
|
|
6526
|
-
const { t } =
|
|
6533
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6527
6534
|
const p = profile.profile;
|
|
6528
6535
|
const dob = formatDateOfBirth(p.dateOfBirth);
|
|
6529
6536
|
const email = p.email ?? profile.email;
|
|
@@ -6638,7 +6645,7 @@ function formatMinor2(minor, currency) {
|
|
|
6638
6645
|
}).format(minor / 100);
|
|
6639
6646
|
}
|
|
6640
6647
|
function TravellerProfileHero({ profile, onBack }) {
|
|
6641
|
-
const { t } =
|
|
6648
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6642
6649
|
const initials = initialsFromName4(profile.fullName);
|
|
6643
6650
|
const { lifetime } = profile;
|
|
6644
6651
|
const stats = lifetime.currency !== null ? [
|
|
@@ -6729,7 +6736,7 @@ function formatMinor3(minor, currency) {
|
|
|
6729
6736
|
}).format(minor / 100);
|
|
6730
6737
|
}
|
|
6731
6738
|
function TravellerTripHistoryTable({ trips }) {
|
|
6732
|
-
const { t } =
|
|
6739
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6733
6740
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-traveller-profile-section__card", children: [
|
|
6734
6741
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__card-head", children: [
|
|
6735
6742
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-traveller-profile-section__card-title", children: t("chrome.travellerProfileSection.trips.title") }),
|
|
@@ -6780,7 +6787,7 @@ function TravellerProfileSection({
|
|
|
6780
6787
|
components,
|
|
6781
6788
|
style
|
|
6782
6789
|
}) {
|
|
6783
|
-
const { t } =
|
|
6790
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
6784
6791
|
const { read, readFailed, refresh } = useAgencyTravellerProfile(travellerRef);
|
|
6785
6792
|
const Hero = components?.Hero ?? TravellerProfileHero;
|
|
6786
6793
|
const PersonalCard = components?.PersonalCard ?? TravellerPersonalCard;
|
|
@@ -6788,7 +6795,7 @@ function TravellerProfileSection({
|
|
|
6788
6795
|
const TripHistoryTable = components?.TripHistoryTable ?? TravellerTripHistoryTable;
|
|
6789
6796
|
const NotesList = components?.NotesList ?? TravellerNotesList;
|
|
6790
6797
|
if (readFailed) {
|
|
6791
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style:
|
|
6798
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__status-block", role: "alert", children: [
|
|
6792
6799
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon9, { className: "kf-traveller-profile-section__status-icon kf-traveller-profile-section__status-icon--danger" }),
|
|
6793
6800
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-traveller-profile-section__status-title", children: t("chrome.travellerProfileSection.errorTitle") }),
|
|
6794
6801
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-traveller-profile-section__status-body", children: t("chrome.travellerProfileSection.errorBody") }),
|
|
@@ -6804,9 +6811,9 @@ function TravellerProfileSection({
|
|
|
6804
6811
|
] }) });
|
|
6805
6812
|
}
|
|
6806
6813
|
if (read === void 0) {
|
|
6807
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style:
|
|
6814
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(TravellerProfileSkeleton, {}) });
|
|
6808
6815
|
}
|
|
6809
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section", style:
|
|
6816
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
6810
6817
|
/* @__PURE__ */ jsxRuntime.jsx(Hero, { profile: read, onBack }),
|
|
6811
6818
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__body", children: [
|
|
6812
6819
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__column", children: [
|
|
@@ -6898,7 +6905,7 @@ function ToggleSwitch({
|
|
|
6898
6905
|
disabled,
|
|
6899
6906
|
className: "kf-admin-shared-patterns-toggle-row",
|
|
6900
6907
|
onClick: () => onChange(!checked),
|
|
6901
|
-
style:
|
|
6908
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
6902
6909
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6903
6910
|
"span",
|
|
6904
6911
|
{
|
|
@@ -7336,7 +7343,7 @@ function TriggerDetailPanel({
|
|
|
7336
7343
|
style
|
|
7337
7344
|
}) {
|
|
7338
7345
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
7339
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__detail", style:
|
|
7346
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__detail", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
7340
7347
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__detail-head", children: [
|
|
7341
7348
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trigger-template-editor__detail-eyebrow", children: t("chrome.triggerTemplateEditor.selected") }),
|
|
7342
7349
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7420,8 +7427,8 @@ function TriggerTemplateEditor({
|
|
|
7420
7427
|
onTriggerPatched,
|
|
7421
7428
|
style
|
|
7422
7429
|
}) {
|
|
7423
|
-
const { t } =
|
|
7424
|
-
const { triggers, loaded, lastFetchFailed, refresh, patchTrigger } =
|
|
7430
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7431
|
+
const { triggers, loaded, lastFetchFailed, refresh, patchTrigger } = chunkX5EFVCYF_cjs.useAgencyJourneyTriggers();
|
|
7425
7432
|
const [savingId, setSavingId] = react.useState(void 0);
|
|
7426
7433
|
const [selectedId, setSelectedId] = react.useState(void 0);
|
|
7427
7434
|
const filtered = tripModeFilter === void 0 ? triggers : triggers.filter((trigger) => trigger.tripMode === tripModeFilter);
|
|
@@ -7456,7 +7463,7 @@ function TriggerTemplateEditor({
|
|
|
7456
7463
|
setSavingId(void 0);
|
|
7457
7464
|
}
|
|
7458
7465
|
}
|
|
7459
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor", style:
|
|
7466
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
7460
7467
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__heading", children: [
|
|
7461
7468
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trigger-template-editor__title", children: title }),
|
|
7462
7469
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trigger-template-editor__subtitle", children: subtitle }) : null
|
|
@@ -7604,14 +7611,14 @@ function BookingsSkeleton() {
|
|
|
7604
7611
|
] }, id)) });
|
|
7605
7612
|
}
|
|
7606
7613
|
function BookingsEmpty() {
|
|
7607
|
-
const { t } =
|
|
7614
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7608
7615
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__state", children: [
|
|
7609
7616
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-bookings-section__state-title", children: t("chrome.tripBookings.emptyTitle") }),
|
|
7610
7617
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-bookings-section__state-body", children: t("chrome.tripBookings.emptyBody") })
|
|
7611
7618
|
] });
|
|
7612
7619
|
}
|
|
7613
7620
|
function BookingsFailed({ onRetry }) {
|
|
7614
|
-
const { t } =
|
|
7621
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7615
7622
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__state", role: "alert", children: [
|
|
7616
7623
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-bookings-section__state-title", children: t("chrome.tripBookings.failedTitle") }),
|
|
7617
7624
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-bookings-section__state-body", children: t("chrome.tripBookings.failedBody") }),
|
|
@@ -7619,7 +7626,7 @@ function BookingsFailed({ onRetry }) {
|
|
|
7619
7626
|
] });
|
|
7620
7627
|
}
|
|
7621
7628
|
function BookingsDark({ reason }) {
|
|
7622
|
-
const { t } =
|
|
7629
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7623
7630
|
if (reason === "mode") return null;
|
|
7624
7631
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__state", "data-dark": reason, children: [
|
|
7625
7632
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-bookings-section__state-title", children: t(
|
|
@@ -7659,13 +7666,20 @@ function voucherCount(row) {
|
|
|
7659
7666
|
return row.voucherFileKeys?.length ?? 0;
|
|
7660
7667
|
}
|
|
7661
7668
|
var DAY = { day: "numeric", month: "short", year: "numeric" };
|
|
7662
|
-
function TripBookingsSection({
|
|
7669
|
+
function TripBookingsSection(props) {
|
|
7670
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
7671
|
+
if (session.status !== "authenticated") {
|
|
7672
|
+
return null;
|
|
7673
|
+
}
|
|
7674
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripBookingsSection, { ...props });
|
|
7675
|
+
}
|
|
7676
|
+
function ReadyTripBookingsSection({
|
|
7663
7677
|
tripRef,
|
|
7664
7678
|
onOpenDocuments,
|
|
7665
7679
|
style
|
|
7666
7680
|
}) {
|
|
7667
|
-
const { t } =
|
|
7668
|
-
const bookings =
|
|
7681
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7682
|
+
const bookings = chunkX5EFVCYF_cjs.useBookings(tripRef);
|
|
7669
7683
|
const ready = bookings.status === "ready" ? bookings : null;
|
|
7670
7684
|
const groups = react.useMemo(
|
|
7671
7685
|
() => ready === null ? [] : groupByKind(liveBookings(ready.bookings)),
|
|
@@ -7675,7 +7689,7 @@ function TripBookingsSection({
|
|
|
7675
7689
|
const unreadable = ready !== null && ready.syncedAt === void 0;
|
|
7676
7690
|
const refreshLive = ready?.refreshLive;
|
|
7677
7691
|
if (bookings.status === "dark") return /* @__PURE__ */ jsxRuntime.jsx(BookingsDark, { reason: bookings.reason });
|
|
7678
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-bookings-section", style:
|
|
7692
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-bookings-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
7679
7693
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-bookings-section__head", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__head-text", children: [
|
|
7680
7694
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-bookings-section__title", children: t("chrome.tripBookings.panelLabel") }),
|
|
7681
7695
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-bookings-section__subtitle", children: t("chrome.tripBookings.subtitle").replace("{count}", String(total)) })
|
|
@@ -7747,7 +7761,7 @@ function LockIcon2() {
|
|
|
7747
7761
|
);
|
|
7748
7762
|
}
|
|
7749
7763
|
function CloseoutLockNotice({ whatKey }) {
|
|
7750
|
-
const { t } =
|
|
7764
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7751
7765
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-closeout-lock", role: "status", children: [
|
|
7752
7766
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-closeout-lock__glyph", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon2, {}) }),
|
|
7753
7767
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-admin-closeout-lock__body", children: [
|
|
@@ -7851,7 +7865,7 @@ function ChecklistSkeleton() {
|
|
|
7851
7865
|
] }, column)) });
|
|
7852
7866
|
}
|
|
7853
7867
|
function ChecklistEmpty({ onPull }) {
|
|
7854
|
-
const { t } =
|
|
7868
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7855
7869
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__state", children: [
|
|
7856
7870
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-checklist-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(ChecklistIcon, {}) }),
|
|
7857
7871
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-checklist-section__state-title", children: t("chrome.tripChecklist.emptyTitle") }),
|
|
@@ -7860,7 +7874,7 @@ function ChecklistEmpty({ onPull }) {
|
|
|
7860
7874
|
] });
|
|
7861
7875
|
}
|
|
7862
7876
|
function ChecklistFailed({ onRetry }) {
|
|
7863
|
-
const { t } =
|
|
7877
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7864
7878
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__state", children: [
|
|
7865
7879
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-checklist-section__state-title", children: t("chrome.tripChecklist.failedTitle") }),
|
|
7866
7880
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-checklist-section__state-body", children: t("chrome.tripChecklist.failedBody") }),
|
|
@@ -7868,7 +7882,7 @@ function ChecklistFailed({ onRetry }) {
|
|
|
7868
7882
|
] });
|
|
7869
7883
|
}
|
|
7870
7884
|
function ChecklistDark({ reason }) {
|
|
7871
|
-
const { t } =
|
|
7885
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7872
7886
|
if (reason === "mode") return null;
|
|
7873
7887
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__state", "data-dark": reason, children: [
|
|
7874
7888
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-checklist-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon3, {}) }),
|
|
@@ -7968,7 +7982,7 @@ function ItemDialog({
|
|
|
7968
7982
|
onClose,
|
|
7969
7983
|
onSubmit
|
|
7970
7984
|
}) {
|
|
7971
|
-
const { t } =
|
|
7985
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
7972
7986
|
const titleId = react.useId();
|
|
7973
7987
|
const [values, setValues] = react.useState(initial);
|
|
7974
7988
|
const [sectionChoice, setSectionChoice] = react.useState(
|
|
@@ -8165,7 +8179,7 @@ function ChecklistItemRow({
|
|
|
8165
8179
|
onToggle,
|
|
8166
8180
|
onEdit
|
|
8167
8181
|
}) {
|
|
8168
|
-
const { t } =
|
|
8182
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
8169
8183
|
const complete = item.status === "COMPLETE";
|
|
8170
8184
|
const day = dayOffsetLabel(item.dayOffset);
|
|
8171
8185
|
const actorKey = actorLabelKey(item.performedByKind);
|
|
@@ -8217,7 +8231,7 @@ function SectionCard2({
|
|
|
8217
8231
|
onAddToSection,
|
|
8218
8232
|
ItemRow: ItemRow2 = ChecklistItemRow
|
|
8219
8233
|
}) {
|
|
8220
|
-
const { t } =
|
|
8234
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
8221
8235
|
const openMandatory = items.filter((one) => one.isMandatory && one.status === "OPEN").length;
|
|
8222
8236
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-checklist-section__section", children: [
|
|
8223
8237
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "kf-trip-checklist-section__section-head", children: [
|
|
@@ -8271,7 +8285,7 @@ function PhasePanel({
|
|
|
8271
8285
|
onAddToPhase,
|
|
8272
8286
|
ItemRow: ItemRow2
|
|
8273
8287
|
}) {
|
|
8274
|
-
const { t } =
|
|
8288
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
8275
8289
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: sections.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__phase-empty", children: [
|
|
8276
8290
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: t("chrome.tripChecklist.phaseEmpty") }),
|
|
8277
8291
|
readOnly ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8307,7 +8321,7 @@ function PhaseSwitcher({
|
|
|
8307
8321
|
value,
|
|
8308
8322
|
onChange
|
|
8309
8323
|
}) {
|
|
8310
|
-
const { t } =
|
|
8324
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
8311
8325
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-checklist-section__segment", children: [
|
|
8312
8326
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t("chrome.tripChecklist.phaseLabel") }),
|
|
8313
8327
|
OPTIONS.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8340,7 +8354,7 @@ function TemplatePickerDialog({
|
|
|
8340
8354
|
onClose,
|
|
8341
8355
|
onPull
|
|
8342
8356
|
}) {
|
|
8343
|
-
const { t } =
|
|
8357
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
8344
8358
|
const titleId = react.useId();
|
|
8345
8359
|
const [selectedId, setSelectedId] = react.useState(null);
|
|
8346
8360
|
const [mode, setMode] = react.useState("append");
|
|
@@ -8461,7 +8475,14 @@ function codeOf(error) {
|
|
|
8461
8475
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
8462
8476
|
return classification?.code ?? "unknown";
|
|
8463
8477
|
}
|
|
8464
|
-
function TripChecklistSection({
|
|
8478
|
+
function TripChecklistSection(props) {
|
|
8479
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
8480
|
+
if (session.status !== "authenticated") {
|
|
8481
|
+
return null;
|
|
8482
|
+
}
|
|
8483
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripChecklistSection, { ...props });
|
|
8484
|
+
}
|
|
8485
|
+
function ReadyTripChecklistSection({
|
|
8465
8486
|
tripRef,
|
|
8466
8487
|
readOnly = false,
|
|
8467
8488
|
initialPhase,
|
|
@@ -8469,8 +8490,8 @@ function TripChecklistSection({
|
|
|
8469
8490
|
components,
|
|
8470
8491
|
style
|
|
8471
8492
|
}) {
|
|
8472
|
-
const { t } =
|
|
8473
|
-
const checklists =
|
|
8493
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
8494
|
+
const checklists = chunkAPE4R2GB_cjs.useChecklists(tripRef);
|
|
8474
8495
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
8475
8496
|
const [pending, setPending] = react.useState(false);
|
|
8476
8497
|
const [busyItemId, setBusyItemId] = react.useState(null);
|
|
@@ -8637,7 +8658,7 @@ function TripChecklistSection({
|
|
|
8637
8658
|
const inert = readOnly || locked;
|
|
8638
8659
|
const unreadable = aggregate?.lastFetchFailed === true && aggregate.loaded === false;
|
|
8639
8660
|
const percent = overallPercent(aggregate?.progress);
|
|
8640
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-checklist-section", style:
|
|
8661
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-checklist-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
8641
8662
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__head", children: [
|
|
8642
8663
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__head-text", children: [
|
|
8643
8664
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-checklist-section__title", children: t("chrome.tripChecklist.panelLabel") }),
|
|
@@ -9026,7 +9047,7 @@ var STATUS_LABEL_KEY5 = {
|
|
|
9026
9047
|
CANCELLED: "chrome.tripDirectory.status.cancelled"
|
|
9027
9048
|
};
|
|
9028
9049
|
function TripRow({ trip, index, onOpen, style }) {
|
|
9029
|
-
const { t } =
|
|
9050
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9030
9051
|
const derived = deriveTripRow(trip, index);
|
|
9031
9052
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9032
9053
|
"tr",
|
|
@@ -9034,7 +9055,7 @@ function TripRow({ trip, index, onOpen, style }) {
|
|
|
9034
9055
|
role: "row",
|
|
9035
9056
|
className: "kf-trip-directory-flow__row",
|
|
9036
9057
|
"data-dimming": derived.dimming === "none" ? void 0 : derived.dimming,
|
|
9037
|
-
style:
|
|
9058
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
9038
9059
|
children: [
|
|
9039
9060
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
9040
9061
|
"td",
|
|
@@ -9153,8 +9174,8 @@ function TripResultsListBody({
|
|
|
9153
9174
|
hasActiveFilter,
|
|
9154
9175
|
onRetry
|
|
9155
9176
|
}) {
|
|
9156
|
-
const { t } =
|
|
9157
|
-
const { makeTripsFetch } =
|
|
9177
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9178
|
+
const { makeTripsFetch } = chunkX5EFVCYF_cjs.useAgencyTrips();
|
|
9158
9179
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
9159
9180
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
9160
9181
|
const Row = TripRowComponent ?? TripRow;
|
|
@@ -9165,7 +9186,7 @@ function TripResultsListBody({
|
|
|
9165
9186
|
setErrorCode(void 0);
|
|
9166
9187
|
return page;
|
|
9167
9188
|
} catch (error) {
|
|
9168
|
-
setErrorCode(
|
|
9189
|
+
setErrorCode(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
9169
9190
|
return { rows: [], nextCursor: void 0 };
|
|
9170
9191
|
} finally {
|
|
9171
9192
|
setHasSettled(true);
|
|
@@ -9173,7 +9194,7 @@ function TripResultsListBody({
|
|
|
9173
9194
|
},
|
|
9174
9195
|
[makeTripsFetch, filters]
|
|
9175
9196
|
);
|
|
9176
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
9197
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkX5EFVCYF_cjs.usePaginatedList(fetch);
|
|
9177
9198
|
const isLoading = !hasSettled;
|
|
9178
9199
|
const reportedCount = isLoading || errorCode !== void 0 ? void 0 : rows.length;
|
|
9179
9200
|
react.useEffect(() => {
|
|
@@ -9275,7 +9296,7 @@ function TripSearchInput({
|
|
|
9275
9296
|
debounceMs,
|
|
9276
9297
|
onDebouncedChange
|
|
9277
9298
|
}) {
|
|
9278
|
-
const { t } =
|
|
9299
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9279
9300
|
const [value, setValue] = react.useState("");
|
|
9280
9301
|
react.useEffect(() => {
|
|
9281
9302
|
const timer = setTimeout(() => onDebouncedChange(value.trim()), debounceMs);
|
|
@@ -9345,7 +9366,7 @@ function TripDirectoryFlow({
|
|
|
9345
9366
|
components,
|
|
9346
9367
|
style
|
|
9347
9368
|
}) {
|
|
9348
|
-
const { t } =
|
|
9369
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9349
9370
|
const [eventType, setEventType] = react.useState(initialEventType ?? "TRIP");
|
|
9350
9371
|
const [segment, setSegment] = react.useState("all");
|
|
9351
9372
|
const [q, setQ] = react.useState("");
|
|
@@ -9365,7 +9386,7 @@ function TripDirectoryFlow({
|
|
|
9365
9386
|
);
|
|
9366
9387
|
const filterKey = react.useMemo(() => JSON.stringify(filters), [filters]);
|
|
9367
9388
|
const hasActiveFilter = segment !== "all" || q.length > 0 || status !== void 0;
|
|
9368
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow", style:
|
|
9389
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
9369
9390
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow__toolbar", children: [
|
|
9370
9391
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow__toolbar-row", children: [
|
|
9371
9392
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9626,7 +9647,7 @@ function KindIcon({
|
|
|
9626
9647
|
return /* @__PURE__ */ jsxRuntime.jsx(GenericFileIcon, {});
|
|
9627
9648
|
}
|
|
9628
9649
|
function DocumentRow({ row, onOpen }) {
|
|
9629
|
-
const { t } =
|
|
9650
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9630
9651
|
const { file, spend } = row;
|
|
9631
9652
|
const purged = file.status === "purged";
|
|
9632
9653
|
const retention = retentionStateOf(file);
|
|
@@ -9687,7 +9708,7 @@ function DocumentsSkeleton() {
|
|
|
9687
9708
|
] }, id)) });
|
|
9688
9709
|
}
|
|
9689
9710
|
function DocumentsEmpty() {
|
|
9690
|
-
const { t } =
|
|
9711
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9691
9712
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__state", children: [
|
|
9692
9713
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-documents-section__state-mark", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(EmptyDocumentsIcon, {}) }),
|
|
9693
9714
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-documents-section__state-title", children: t("chrome.tripDocuments.emptyTitle") }),
|
|
@@ -9695,7 +9716,7 @@ function DocumentsEmpty() {
|
|
|
9695
9716
|
] });
|
|
9696
9717
|
}
|
|
9697
9718
|
function DocumentsFailed({ onRetry }) {
|
|
9698
|
-
const { t } =
|
|
9719
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9699
9720
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__state", role: "alert", children: [
|
|
9700
9721
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-documents-section__state-title", children: t("chrome.tripDocuments.failedTitle") }),
|
|
9701
9722
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-documents-section__state-body", children: t("chrome.tripDocuments.failedBody") }),
|
|
@@ -9703,7 +9724,7 @@ function DocumentsFailed({ onRetry }) {
|
|
|
9703
9724
|
] });
|
|
9704
9725
|
}
|
|
9705
9726
|
function DocumentsDark({ reason }) {
|
|
9706
|
-
const { t } =
|
|
9727
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9707
9728
|
if (reason === "mode") return null;
|
|
9708
9729
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__state", "data-dark": reason, children: [
|
|
9709
9730
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-documents-section__state-title", children: t(
|
|
@@ -9726,7 +9747,7 @@ function DocumentViewer({
|
|
|
9726
9747
|
failed,
|
|
9727
9748
|
onClose
|
|
9728
9749
|
}) {
|
|
9729
|
-
const { t } =
|
|
9750
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9730
9751
|
const titleId = react.useId();
|
|
9731
9752
|
const { file } = row;
|
|
9732
9753
|
const classKey = retentionClassLabelKey(file.retentionClass);
|
|
@@ -9807,7 +9828,7 @@ function DocumentViewer({
|
|
|
9807
9828
|
);
|
|
9808
9829
|
}
|
|
9809
9830
|
function PurposeChips({ counts, value, onChange }) {
|
|
9810
|
-
const { t } =
|
|
9831
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9811
9832
|
const options = [
|
|
9812
9833
|
{
|
|
9813
9834
|
key: "all",
|
|
@@ -9877,7 +9898,7 @@ function UploadDialog({
|
|
|
9877
9898
|
onClose,
|
|
9878
9899
|
onSubmit
|
|
9879
9900
|
}) {
|
|
9880
|
-
const { t } =
|
|
9901
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
9881
9902
|
const titleId = react.useId();
|
|
9882
9903
|
const nameId = react.useId();
|
|
9883
9904
|
const fileId = react.useId();
|
|
@@ -10038,13 +10059,20 @@ function UploadDialog({
|
|
|
10038
10059
|
}
|
|
10039
10060
|
);
|
|
10040
10061
|
}
|
|
10041
|
-
function TripDocumentsSection(
|
|
10042
|
-
const
|
|
10043
|
-
|
|
10044
|
-
|
|
10045
|
-
|
|
10046
|
-
|
|
10047
|
-
|
|
10062
|
+
function TripDocumentsSection(props) {
|
|
10063
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
10064
|
+
if (session.status !== "authenticated") {
|
|
10065
|
+
return null;
|
|
10066
|
+
}
|
|
10067
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripDocumentsSection, { ...props });
|
|
10068
|
+
}
|
|
10069
|
+
function ReadyTripDocumentsSection({ tripRef, style }) {
|
|
10070
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10071
|
+
const files = chunkAPE4R2GB_cjs.useFiles({ tripRef });
|
|
10072
|
+
const expenses = chunkAPE4R2GB_cjs.useExpenses(tripRef);
|
|
10073
|
+
const bookings = chunkX5EFVCYF_cjs.useBookings(tripRef);
|
|
10074
|
+
const { listTripManifest } = chunkX5EFVCYF_cjs.useDirectories();
|
|
10075
|
+
const { statuses, loaded: capabilityLoaded } = chunkX5EFVCYF_cjs.useCapabilityStatuses(tripRef);
|
|
10048
10076
|
const capability = statuses.get("files");
|
|
10049
10077
|
const [state, setState] = react.useState({ kind: "loading" });
|
|
10050
10078
|
const [purpose, setPurpose] = react.useState(null);
|
|
@@ -10191,7 +10219,7 @@ function TripDocumentsSection({ tripRef, style }) {
|
|
|
10191
10219
|
if (capabilityLoaded && capability === "mode-dark") return /* @__PURE__ */ jsxRuntime.jsx(DocumentsDark, { reason: "mode" });
|
|
10192
10220
|
if (capabilityLoaded && capability === "flag-dark") return /* @__PURE__ */ jsxRuntime.jsx(DocumentsDark, { reason: "flag" });
|
|
10193
10221
|
if (capabilityLoaded && capability === "data-dark") return /* @__PURE__ */ jsxRuntime.jsx(DocumentsDark, { reason: "data" });
|
|
10194
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-documents-section", style:
|
|
10222
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-documents-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
10195
10223
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__head", children: [
|
|
10196
10224
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__head-text", children: [
|
|
10197
10225
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-documents-section__title", children: t("chrome.tripDocuments.panelLabel") }),
|
|
@@ -10480,7 +10508,7 @@ function ExpensesSkeleton() {
|
|
|
10480
10508
|
] }, id)) });
|
|
10481
10509
|
}
|
|
10482
10510
|
function ExpensesEmpty({ onLog }) {
|
|
10483
|
-
const { t } =
|
|
10511
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10484
10512
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-expenses-section__state", children: [
|
|
10485
10513
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-expenses-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(WalletIcon, {}) }),
|
|
10486
10514
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-expenses-section__state-title", children: t("chrome.tripExpenses.emptyTitle") }),
|
|
@@ -10489,7 +10517,7 @@ function ExpensesEmpty({ onLog }) {
|
|
|
10489
10517
|
] });
|
|
10490
10518
|
}
|
|
10491
10519
|
function ExpensesFailed({ onRetry }) {
|
|
10492
|
-
const { t } =
|
|
10520
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10493
10521
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-expenses-section__state", role: "alert", children: [
|
|
10494
10522
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-expenses-section__state-title", children: t("chrome.tripExpenses.failedTitle") }),
|
|
10495
10523
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-expenses-section__state-body", children: t("chrome.tripExpenses.failedBody") }),
|
|
@@ -10497,7 +10525,7 @@ function ExpensesFailed({ onRetry }) {
|
|
|
10497
10525
|
] });
|
|
10498
10526
|
}
|
|
10499
10527
|
function ExpensesDark({ reason }) {
|
|
10500
|
-
const { t } =
|
|
10528
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10501
10529
|
if (reason === "mode") {
|
|
10502
10530
|
return null;
|
|
10503
10531
|
}
|
|
@@ -10518,7 +10546,7 @@ function ExpensesTable({
|
|
|
10518
10546
|
onVoid,
|
|
10519
10547
|
onViewReceipt
|
|
10520
10548
|
}) {
|
|
10521
|
-
const { t } =
|
|
10549
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10522
10550
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-expenses-section__table-wrap", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "kf-trip-expenses-section__table", children: [
|
|
10523
10551
|
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "kf-visually-hidden", children: t("chrome.tripExpenses.tableCaption") }),
|
|
10524
10552
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
@@ -10578,7 +10606,7 @@ function LogExpenseDialog({
|
|
|
10578
10606
|
onClose,
|
|
10579
10607
|
onSubmit
|
|
10580
10608
|
}) {
|
|
10581
|
-
const { t } =
|
|
10609
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10582
10610
|
const titleId = react.useId();
|
|
10583
10611
|
const [category, setCategory] = react.useState("MISC");
|
|
10584
10612
|
const [amount, setAmount] = react.useState("");
|
|
@@ -10741,9 +10769,9 @@ function ReceiptDialog({
|
|
|
10741
10769
|
description,
|
|
10742
10770
|
onClose
|
|
10743
10771
|
}) {
|
|
10744
|
-
const { t } =
|
|
10772
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10745
10773
|
const titleId = react.useId();
|
|
10746
|
-
const files =
|
|
10774
|
+
const files = chunkAPE4R2GB_cjs.useFiles({ tripRef });
|
|
10747
10775
|
const [phase, setPhase] = react.useState({ kind: "loading" });
|
|
10748
10776
|
const [imageBroke, setImageBroke] = react.useState(false);
|
|
10749
10777
|
const readUrl = files.url;
|
|
@@ -10817,7 +10845,7 @@ function VoidExpenseDialog({
|
|
|
10817
10845
|
onClose,
|
|
10818
10846
|
onSubmit
|
|
10819
10847
|
}) {
|
|
10820
|
-
const { t } =
|
|
10848
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10821
10849
|
const titleId = react.useId();
|
|
10822
10850
|
const [reason, setReason] = react.useState("");
|
|
10823
10851
|
const trimmed = reason.trim();
|
|
@@ -10890,10 +10918,17 @@ function isCloseoutLocked2(error) {
|
|
|
10890
10918
|
const classification = error.classification;
|
|
10891
10919
|
return classification?.status === 423 || classification?.code === "TRIP_CLOSED_OUT";
|
|
10892
10920
|
}
|
|
10893
|
-
function TripExpensesSection(
|
|
10894
|
-
const
|
|
10895
|
-
|
|
10896
|
-
|
|
10921
|
+
function TripExpensesSection(props) {
|
|
10922
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
10923
|
+
if (session.status !== "authenticated") {
|
|
10924
|
+
return null;
|
|
10925
|
+
}
|
|
10926
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripExpensesSection, { ...props });
|
|
10927
|
+
}
|
|
10928
|
+
function ReadyTripExpensesSection({ tripRef, style }) {
|
|
10929
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
10930
|
+
const expenses = chunkAPE4R2GB_cjs.useExpenses(tripRef);
|
|
10931
|
+
const vendors = chunkAPE4R2GB_cjs.useVendors(tripRef, "");
|
|
10897
10932
|
const [category, setCategory] = react.useState(null);
|
|
10898
10933
|
const [paymentMode, setPaymentMode] = react.useState(null);
|
|
10899
10934
|
const [missingReceiptOnly, setMissingReceiptOnly] = react.useState(false);
|
|
@@ -10962,7 +10997,7 @@ function TripExpensesSection({ tripRef, style }) {
|
|
|
10962
10997
|
return /* @__PURE__ */ jsxRuntime.jsx(ExpensesDark, { reason: expenses.reason });
|
|
10963
10998
|
}
|
|
10964
10999
|
const filtered = category !== null || paymentMode !== null || missingReceiptOnly;
|
|
10965
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-expenses-section", style:
|
|
11000
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-expenses-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
10966
11001
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-expenses-section__toolbar", children: [
|
|
10967
11002
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-expenses-section__toolbar-title", children: t("chrome.tripExpenses.panelLabel") }),
|
|
10968
11003
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-expenses-section__toolbar-spacer" }),
|
|
@@ -11242,7 +11277,7 @@ function FloatMovementDialog({
|
|
|
11242
11277
|
onClose,
|
|
11243
11278
|
onSubmit
|
|
11244
11279
|
}) {
|
|
11245
|
-
const { t } =
|
|
11280
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11246
11281
|
const titleId = react.useId();
|
|
11247
11282
|
const [managerId, setManagerId] = react.useState(manager?.managerId ?? null);
|
|
11248
11283
|
const [amount, setAmount] = react.useState(
|
|
@@ -11475,7 +11510,7 @@ function FloatSkeleton() {
|
|
|
11475
11510
|
] }, id)) });
|
|
11476
11511
|
}
|
|
11477
11512
|
function FloatEmpty({ onIssue }) {
|
|
11478
|
-
const { t } =
|
|
11513
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11479
11514
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-float-section__state", children: [
|
|
11480
11515
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-float-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(SafeIcon, {}) }),
|
|
11481
11516
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-float-section__state-title", children: t("chrome.tripFloat.emptyTitle") }),
|
|
@@ -11484,7 +11519,7 @@ function FloatEmpty({ onIssue }) {
|
|
|
11484
11519
|
] });
|
|
11485
11520
|
}
|
|
11486
11521
|
function FloatFailed({ onRetry }) {
|
|
11487
|
-
const { t } =
|
|
11522
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11488
11523
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-float-section__state", role: "alert", children: [
|
|
11489
11524
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-float-section__state-title", children: t("chrome.tripFloat.failedTitle") }),
|
|
11490
11525
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-float-section__state-body", children: t("chrome.tripFloat.failedBody") }),
|
|
@@ -11492,7 +11527,7 @@ function FloatFailed({ onRetry }) {
|
|
|
11492
11527
|
] });
|
|
11493
11528
|
}
|
|
11494
11529
|
function FloatDark({ reason }) {
|
|
11495
|
-
const { t } =
|
|
11530
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11496
11531
|
if (reason === "mode") {
|
|
11497
11532
|
return null;
|
|
11498
11533
|
}
|
|
@@ -11515,7 +11550,7 @@ function ManagerFloatCard({
|
|
|
11515
11550
|
onAdjust,
|
|
11516
11551
|
onSettle
|
|
11517
11552
|
}) {
|
|
11518
|
-
const { t } =
|
|
11553
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11519
11554
|
const bodyId = `kf-float-${row.managerId}`;
|
|
11520
11555
|
const summary = row.summary;
|
|
11521
11556
|
const shares = summary === void 0 ? void 0 : usageShares(summary);
|
|
@@ -11720,10 +11755,17 @@ function refusedBalanceOf(error) {
|
|
|
11720
11755
|
const details = error.details;
|
|
11721
11756
|
return details?.currentBalanceMinor;
|
|
11722
11757
|
}
|
|
11723
|
-
function TripFloatSection(
|
|
11724
|
-
const
|
|
11725
|
-
|
|
11726
|
-
|
|
11758
|
+
function TripFloatSection(props) {
|
|
11759
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
11760
|
+
if (session.status !== "authenticated") {
|
|
11761
|
+
return null;
|
|
11762
|
+
}
|
|
11763
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripFloatSection, { ...props });
|
|
11764
|
+
}
|
|
11765
|
+
function ReadyTripFloatSection({ tripRef, style }) {
|
|
11766
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11767
|
+
const float = chunkAPE4R2GB_cjs.useFloat(tripRef);
|
|
11768
|
+
const managers = chunkAPE4R2GB_cjs.useManagers(tripRef);
|
|
11727
11769
|
const [openManagerId, setOpenManagerId] = react.useState(null);
|
|
11728
11770
|
const [ledgers, setLedgers] = react.useState({});
|
|
11729
11771
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -11849,7 +11891,7 @@ function TripFloatSection({ tripRef, style }) {
|
|
|
11849
11891
|
if (float.status === "dark") {
|
|
11850
11892
|
return /* @__PURE__ */ jsxRuntime.jsx(FloatDark, { reason: float.reason });
|
|
11851
11893
|
}
|
|
11852
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-float-section", style:
|
|
11894
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-float-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
11853
11895
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-float-section__toolbar", children: [
|
|
11854
11896
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-float-section__toolbar-title", children: t("chrome.tripFloat.panelLabel") }),
|
|
11855
11897
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-float-section__toolbar-spacer" }),
|
|
@@ -11964,7 +12006,7 @@ function DispatchDialog({
|
|
|
11964
12006
|
onClose,
|
|
11965
12007
|
onSend
|
|
11966
12008
|
}) {
|
|
11967
|
-
const { t } =
|
|
12009
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
11968
12010
|
const titleId = react.useId();
|
|
11969
12011
|
const [everyone, setEveryone] = react.useState(true);
|
|
11970
12012
|
const [picked, setPicked] = react.useState(/* @__PURE__ */ new Set());
|
|
@@ -12112,7 +12154,7 @@ function FormRow2({
|
|
|
12112
12154
|
onExport,
|
|
12113
12155
|
onOpenMissing
|
|
12114
12156
|
}) {
|
|
12115
|
-
const { t } =
|
|
12157
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12116
12158
|
const canSeeMissing = supportsWhoIsMissing(form);
|
|
12117
12159
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "kf-trip-forms-section__row", children: [
|
|
12118
12160
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-trip-forms-section__row-body", children: [
|
|
@@ -12165,14 +12207,14 @@ function FormsSkeleton() {
|
|
|
12165
12207
|
] }, id)) });
|
|
12166
12208
|
}
|
|
12167
12209
|
function FormsEmpty() {
|
|
12168
|
-
const { t } =
|
|
12210
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12169
12211
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__state", children: [
|
|
12170
12212
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-forms-section__state-title", children: t("chrome.tripForms.emptyTitle") }),
|
|
12171
12213
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-forms-section__state-body", children: t("chrome.tripForms.emptyBody") })
|
|
12172
12214
|
] });
|
|
12173
12215
|
}
|
|
12174
12216
|
function FormsFailed({ onRetry }) {
|
|
12175
|
-
const { t } =
|
|
12217
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12176
12218
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__state", role: "alert", children: [
|
|
12177
12219
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-forms-section__state-title", children: t("chrome.tripForms.failedTitle") }),
|
|
12178
12220
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-forms-section__state-body", children: t("chrome.tripForms.failedBody") }),
|
|
@@ -12180,7 +12222,7 @@ function FormsFailed({ onRetry }) {
|
|
|
12180
12222
|
] });
|
|
12181
12223
|
}
|
|
12182
12224
|
function FormsDark({ reason }) {
|
|
12183
|
-
const { t } =
|
|
12225
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12184
12226
|
if (reason === "mode") return null;
|
|
12185
12227
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__state", "data-dark": reason, children: [
|
|
12186
12228
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-forms-section__state-title", children: t(reason === "flag" ? "chrome.tripForms.flagDarkTitle" : "chrome.tripForms.dataDarkTitle") }),
|
|
@@ -12225,7 +12267,7 @@ function OnBehalfDialog({
|
|
|
12225
12267
|
onClose,
|
|
12226
12268
|
onSubmit
|
|
12227
12269
|
}) {
|
|
12228
|
-
const { t } =
|
|
12270
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12229
12271
|
const titleId = react.useId();
|
|
12230
12272
|
const [values, setValues] = react.useState({});
|
|
12231
12273
|
const answerable = react.useMemo(
|
|
@@ -12363,7 +12405,7 @@ function ParticipantRow({
|
|
|
12363
12405
|
onFillOnBehalf,
|
|
12364
12406
|
onOpenResponse
|
|
12365
12407
|
}) {
|
|
12366
|
-
const { t } =
|
|
12408
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12367
12409
|
const status = row.response?.status;
|
|
12368
12410
|
const submitted = status === "SUBMITTED";
|
|
12369
12411
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "kf-trip-forms-section__row", "data-done": submitted ? "true" : void 0, children: [
|
|
@@ -12416,7 +12458,7 @@ function ResponseViewer({
|
|
|
12416
12458
|
failed,
|
|
12417
12459
|
onClose
|
|
12418
12460
|
}) {
|
|
12419
|
-
const { t } =
|
|
12461
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12420
12462
|
const titleId = react.useId();
|
|
12421
12463
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12422
12464
|
SheetDialog,
|
|
@@ -12446,15 +12488,22 @@ function codeOf4(error) {
|
|
|
12446
12488
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
12447
12489
|
return classification?.code ?? "unknown";
|
|
12448
12490
|
}
|
|
12449
|
-
function TripFormsSection({
|
|
12491
|
+
function TripFormsSection(props) {
|
|
12492
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
12493
|
+
if (session.status !== "authenticated") {
|
|
12494
|
+
return null;
|
|
12495
|
+
}
|
|
12496
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripFormsSection, { ...props });
|
|
12497
|
+
}
|
|
12498
|
+
function ReadyTripFormsSection({
|
|
12450
12499
|
tripRef,
|
|
12451
12500
|
readOnly = false,
|
|
12452
12501
|
components,
|
|
12453
12502
|
style
|
|
12454
12503
|
}) {
|
|
12455
|
-
const { t } =
|
|
12456
|
-
const forms =
|
|
12457
|
-
const { listTripManifest } =
|
|
12504
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12505
|
+
const forms = chunkAPE4R2GB_cjs.useForms(tripRef);
|
|
12506
|
+
const { listTripManifest } = chunkX5EFVCYF_cjs.useDirectories();
|
|
12458
12507
|
const [openFormId, setOpenFormId] = react.useState(null);
|
|
12459
12508
|
const [completion, setCompletion] = react.useState(void 0);
|
|
12460
12509
|
const [manifest, setManifest] = react.useState(void 0);
|
|
@@ -12576,7 +12625,7 @@ function TripFormsSection({
|
|
|
12576
12625
|
if (forms.status === "dark") return /* @__PURE__ */ jsxRuntime.jsx(FormsDark, { reason: forms.reason });
|
|
12577
12626
|
const inert = readOnly;
|
|
12578
12627
|
const unreadable = ready !== null && ready.syncedAt === void 0 && rows.length === 0;
|
|
12579
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-forms-section", style:
|
|
12628
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-forms-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
12580
12629
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__head", children: [
|
|
12581
12630
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__head-text", children: [
|
|
12582
12631
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-forms-section__title", children: openForm === null ? t("chrome.tripForms.panelLabel") : openForm.title }),
|
|
@@ -12726,7 +12775,7 @@ function ChangeLogDialog({
|
|
|
12726
12775
|
onRetry,
|
|
12727
12776
|
onClose
|
|
12728
12777
|
}) {
|
|
12729
|
-
const { t } =
|
|
12778
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
12730
12779
|
const titleId = react.useId();
|
|
12731
12780
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12732
12781
|
SheetDialog,
|
|
@@ -13073,7 +13122,7 @@ function ItemRow({
|
|
|
13073
13122
|
onMoveBy,
|
|
13074
13123
|
onOpenVendor
|
|
13075
13124
|
}) {
|
|
13076
|
-
const { t } =
|
|
13125
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13077
13126
|
const derived = deriveItineraryItem(item, timeZone, serverTime);
|
|
13078
13127
|
const isDone = item.status === "COMPLETED";
|
|
13079
13128
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -13195,7 +13244,7 @@ function DayCard({
|
|
|
13195
13244
|
onSwitchToTimeline,
|
|
13196
13245
|
onOpenVendor
|
|
13197
13246
|
}) {
|
|
13198
|
-
const { t } =
|
|
13247
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13199
13248
|
const { draggingId, overIndex, rowProps, moveBy } = useListReorder({
|
|
13200
13249
|
enabled: canEdit,
|
|
13201
13250
|
onMove: onReorder
|
|
@@ -13246,7 +13295,7 @@ function DayCard({
|
|
|
13246
13295
|
] });
|
|
13247
13296
|
}
|
|
13248
13297
|
function DayPillStrip({ pills, activeIso, onSelect }) {
|
|
13249
|
-
const { t } =
|
|
13298
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13250
13299
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13251
13300
|
"div",
|
|
13252
13301
|
{
|
|
@@ -13323,7 +13372,7 @@ function EditDayDialog({
|
|
|
13323
13372
|
onClose,
|
|
13324
13373
|
onSubmit
|
|
13325
13374
|
}) {
|
|
13326
|
-
const { t } =
|
|
13375
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13327
13376
|
const titleId = react.useId();
|
|
13328
13377
|
const [cardTitle, setCardTitle] = react.useState(group.day.cardTitle);
|
|
13329
13378
|
const [hasSummary, setHasSummary] = react.useState(
|
|
@@ -13466,7 +13515,7 @@ function ItemFormDialog({
|
|
|
13466
13515
|
onSubmit,
|
|
13467
13516
|
onDelete
|
|
13468
13517
|
}) {
|
|
13469
|
-
const { t } =
|
|
13518
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13470
13519
|
const titleId = react.useId();
|
|
13471
13520
|
const isEdit = item !== null;
|
|
13472
13521
|
const [isoDate, setIsoDate] = react.useState(
|
|
@@ -13721,7 +13770,7 @@ function ItinerarySkeleton({ view }) {
|
|
|
13721
13770
|
] });
|
|
13722
13771
|
}
|
|
13723
13772
|
function ItineraryEmpty() {
|
|
13724
|
-
const { t } =
|
|
13773
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13725
13774
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__state", children: [
|
|
13726
13775
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-itinerary-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(CalendarIcon, {}) }),
|
|
13727
13776
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-itinerary-section__state-title", children: t("chrome.tripItinerary.emptyTitle") }),
|
|
@@ -13729,7 +13778,7 @@ function ItineraryEmpty() {
|
|
|
13729
13778
|
] });
|
|
13730
13779
|
}
|
|
13731
13780
|
function ItineraryFailed({ onRetry }) {
|
|
13732
|
-
const { t } =
|
|
13781
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13733
13782
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__state", role: "alert", children: [
|
|
13734
13783
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-itinerary-section__state-title", children: t("chrome.tripItinerary.failedTitle") }),
|
|
13735
13784
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-itinerary-section__state-body", children: t("chrome.tripItinerary.failedBody") }),
|
|
@@ -13737,7 +13786,7 @@ function ItineraryFailed({ onRetry }) {
|
|
|
13737
13786
|
] });
|
|
13738
13787
|
}
|
|
13739
13788
|
function TimelineView({ entries, onOpenDay }) {
|
|
13740
|
-
const { t } =
|
|
13789
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13741
13790
|
return /* @__PURE__ */ jsxRuntime.jsx("section", { className: "kf-trip-itinerary-section__timeline", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__timeline-grid", children: [
|
|
13742
13791
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-itinerary-section__timeline-line", "aria-hidden": "true" }),
|
|
13743
13792
|
entries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13824,7 +13873,7 @@ var OPTIONS2 = [
|
|
|
13824
13873
|
{ value: "timeline", labelKey: "chrome.tripItinerary.viewTimeline" }
|
|
13825
13874
|
];
|
|
13826
13875
|
function ViewSegment({ value, onChange }) {
|
|
13827
|
-
const { t } =
|
|
13876
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13828
13877
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-itinerary-section__segment", children: [
|
|
13829
13878
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t("chrome.tripItinerary.viewLabel") }),
|
|
13830
13879
|
OPTIONS2.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13845,13 +13894,20 @@ function codeOf5(error) {
|
|
|
13845
13894
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
13846
13895
|
return classification?.code ?? "unknown";
|
|
13847
13896
|
}
|
|
13848
|
-
function TripItinerarySection({
|
|
13897
|
+
function TripItinerarySection(props) {
|
|
13898
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
13899
|
+
if (session.status !== "authenticated") {
|
|
13900
|
+
return null;
|
|
13901
|
+
}
|
|
13902
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripItinerarySection, { ...props });
|
|
13903
|
+
}
|
|
13904
|
+
function ReadyTripItinerarySection({
|
|
13849
13905
|
tripRef,
|
|
13850
13906
|
onOpenVendor,
|
|
13851
13907
|
style
|
|
13852
13908
|
}) {
|
|
13853
|
-
const { t } =
|
|
13854
|
-
const itinerary =
|
|
13909
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
13910
|
+
const itinerary = chunkAPE4R2GB_cjs.useItinerary(tripRef);
|
|
13855
13911
|
const [view, setView] = react.useState("days");
|
|
13856
13912
|
const [activeIso, setActiveIso] = react.useState(null);
|
|
13857
13913
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -14024,7 +14080,7 @@ function TripItinerarySection({
|
|
|
14024
14080
|
setActiveIso(isoDate);
|
|
14025
14081
|
setView("days");
|
|
14026
14082
|
}
|
|
14027
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-itinerary-section", style:
|
|
14083
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-itinerary-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
14028
14084
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__toolbar", children: [
|
|
14029
14085
|
/* @__PURE__ */ jsxRuntime.jsx(ViewSegment, { value: view, onChange: setView }),
|
|
14030
14086
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-itinerary-section__toolbar-spacer" }),
|
|
@@ -14209,9 +14265,9 @@ function AddTravellerDialog({
|
|
|
14209
14265
|
onClose,
|
|
14210
14266
|
onAdded
|
|
14211
14267
|
}) {
|
|
14212
|
-
const { t } =
|
|
14268
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
14213
14269
|
const titleId = react.useId();
|
|
14214
|
-
const { makeTravellersFetch, addTraveller, createAgencyTraveller } =
|
|
14270
|
+
const { makeTravellersFetch, addTraveller, createAgencyTraveller } = chunkX5EFVCYF_cjs.useDirectories();
|
|
14215
14271
|
const [mode, setMode] = react.useState("search");
|
|
14216
14272
|
const [term, setTerm] = react.useState("");
|
|
14217
14273
|
const [debounced, setDebounced] = react.useState("");
|
|
@@ -14225,7 +14281,7 @@ function AddTravellerDialog({
|
|
|
14225
14281
|
return () => clearTimeout(timer);
|
|
14226
14282
|
}, [term]);
|
|
14227
14283
|
function reportFailure(error) {
|
|
14228
|
-
setErrorCode(
|
|
14284
|
+
setErrorCode(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
14229
14285
|
}
|
|
14230
14286
|
async function addExisting(externalTravellerId, fullName) {
|
|
14231
14287
|
setPending(true);
|
|
@@ -14377,8 +14433,8 @@ function DirectoryResults({
|
|
|
14377
14433
|
pendingId,
|
|
14378
14434
|
onPick
|
|
14379
14435
|
}) {
|
|
14380
|
-
const { t } =
|
|
14381
|
-
const { rows, hasNext, loadNext, settled, error } =
|
|
14436
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
14437
|
+
const { rows, hasNext, loadNext, settled, error } = chunkX5EFVCYF_cjs.usePaginatedList(fetch);
|
|
14382
14438
|
if (!settled) {
|
|
14383
14439
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", "aria-live": "polite", children: t("chrome.tripManifest.addSearching") });
|
|
14384
14440
|
}
|
|
@@ -14463,9 +14519,9 @@ function ManageGroupsDialog({
|
|
|
14463
14519
|
onClose,
|
|
14464
14520
|
onSaved
|
|
14465
14521
|
}) {
|
|
14466
|
-
const { t } =
|
|
14522
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
14467
14523
|
const titleId = react.useId();
|
|
14468
|
-
const { createParty, patchParty, deleteParty } =
|
|
14524
|
+
const { createParty, patchParty, deleteParty } = chunkX5EFVCYF_cjs.useDirectories();
|
|
14469
14525
|
const groups = deriveManifestGroups(rows).filter(
|
|
14470
14526
|
(group) => group.id !== SOLO_GROUP_ID && group.party !== null
|
|
14471
14527
|
);
|
|
@@ -14693,7 +14749,7 @@ function ManageGroupsDialog({
|
|
|
14693
14749
|
}
|
|
14694
14750
|
var DIET_BUCKET_CAP = 4;
|
|
14695
14751
|
function ManifestFacetTiles({ facets, filtered }) {
|
|
14696
|
-
const { t } =
|
|
14752
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
14697
14753
|
const dietEntries = Object.entries(facets.dietCounts).filter(([, count]) => count > 0).sort((a, b) => b[1] - a[1]);
|
|
14698
14754
|
const shown = dietEntries.slice(0, DIET_BUCKET_CAP);
|
|
14699
14755
|
const hiddenCount = dietEntries.length - shown.length;
|
|
@@ -14775,7 +14831,7 @@ function ManifestFiltersPopover({
|
|
|
14775
14831
|
value,
|
|
14776
14832
|
onChange
|
|
14777
14833
|
}) {
|
|
14778
|
-
const { t } =
|
|
14834
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
14779
14835
|
const [open, setOpen] = react.useState(false);
|
|
14780
14836
|
const rootRef = react.useRef(null);
|
|
14781
14837
|
const triggerRef = react.useRef(null);
|
|
@@ -14915,7 +14971,7 @@ var KIND_LABEL_KEY2 = {
|
|
|
14915
14971
|
OTHER: "chrome.tripManifest.partyKind.other"
|
|
14916
14972
|
};
|
|
14917
14973
|
function ManifestGroupCard({ group, onEdit, children }) {
|
|
14918
|
-
const { t } =
|
|
14974
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
14919
14975
|
const party = group.party;
|
|
14920
14976
|
const isSolo = party === null;
|
|
14921
14977
|
const heading = isSolo ? t("chrome.tripManifest.soloHeading") : party.label ?? t(KIND_LABEL_KEY2[party.kind] ?? "chrome.tripManifest.partyKind.other");
|
|
@@ -15003,7 +15059,7 @@ function ManifestRowKebab({
|
|
|
15003
15059
|
onShareLink,
|
|
15004
15060
|
onOpenProfile
|
|
15005
15061
|
}) {
|
|
15006
|
-
const { t } =
|
|
15062
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15007
15063
|
const [open, setOpen] = react.useState(false);
|
|
15008
15064
|
const rootRef = react.useRef(null);
|
|
15009
15065
|
const triggerRef = react.useRef(null);
|
|
@@ -15102,10 +15158,10 @@ function ManifestRow({
|
|
|
15102
15158
|
onOpenProfile,
|
|
15103
15159
|
style
|
|
15104
15160
|
}) {
|
|
15105
|
-
const { t } =
|
|
15161
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15106
15162
|
const derived = deriveManifestRow(row, index, serverTime);
|
|
15107
15163
|
const traveller = row.traveller;
|
|
15108
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("tr", { role: "row", className: "kf-trip-manifest-section__row", style:
|
|
15164
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("tr", { role: "row", className: "kf-trip-manifest-section__row", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
15109
15165
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15110
15166
|
"td",
|
|
15111
15167
|
{
|
|
@@ -15179,7 +15235,7 @@ function ManifestTable({
|
|
|
15179
15235
|
onOpenProfile,
|
|
15180
15236
|
RowComponent
|
|
15181
15237
|
}) {
|
|
15182
|
-
const { t } =
|
|
15238
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15183
15239
|
const Row = RowComponent ?? ManifestRow;
|
|
15184
15240
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-manifest-section__table-wrap", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { role: "table", className: "kf-trip-manifest-section__table", children: [
|
|
15185
15241
|
showHead ? /* @__PURE__ */ jsxRuntime.jsx("thead", { role: "rowgroup", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { role: "row", className: "kf-trip-manifest-section__head-row", children: [
|
|
@@ -15226,8 +15282,8 @@ function ManifestResultsBody({
|
|
|
15226
15282
|
RowComponent,
|
|
15227
15283
|
onRetry
|
|
15228
15284
|
}) {
|
|
15229
|
-
const { t } =
|
|
15230
|
-
const { makeManifestFetch, facets, groupedPageSize } =
|
|
15285
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15286
|
+
const { makeManifestFetch, facets, groupedPageSize } = chunkX5EFVCYF_cjs.useAgencyTripManifest(tripRef);
|
|
15231
15287
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
15232
15288
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
15233
15289
|
const [serverTime, setServerTime] = react.useState(void 0);
|
|
@@ -15244,7 +15300,7 @@ function ManifestResultsBody({
|
|
|
15244
15300
|
if (meta?.serverTime !== void 0) setServerTime(meta.serverTime);
|
|
15245
15301
|
return page;
|
|
15246
15302
|
} catch (error) {
|
|
15247
|
-
setErrorCode(
|
|
15303
|
+
setErrorCode(chunkAPE4R2GB_cjs.classifyError(error).code ?? "unknown");
|
|
15248
15304
|
return { rows: [], nextCursor: void 0 };
|
|
15249
15305
|
} finally {
|
|
15250
15306
|
setHasSettled(true);
|
|
@@ -15252,7 +15308,7 @@ function ManifestResultsBody({
|
|
|
15252
15308
|
},
|
|
15253
15309
|
[makeManifestFetch, filters, grouped, groupedPageSize]
|
|
15254
15310
|
);
|
|
15255
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
15311
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkX5EFVCYF_cjs.usePaginatedList(fetch, {
|
|
15256
15312
|
accumulate: grouped
|
|
15257
15313
|
});
|
|
15258
15314
|
react.useEffect(() => {
|
|
@@ -15413,7 +15469,7 @@ function ManifestSearchInput({
|
|
|
15413
15469
|
debounceMs,
|
|
15414
15470
|
onDebouncedChange
|
|
15415
15471
|
}) {
|
|
15416
|
-
const { t } =
|
|
15472
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15417
15473
|
const [value, setValue] = react.useState("");
|
|
15418
15474
|
react.useEffect(() => {
|
|
15419
15475
|
const timer = setTimeout(() => onDebouncedChange(value.trim()), debounceMs);
|
|
@@ -15440,8 +15496,8 @@ function RemoveTravellerDialog({
|
|
|
15440
15496
|
onClose,
|
|
15441
15497
|
onRemoved
|
|
15442
15498
|
}) {
|
|
15443
|
-
const { t } =
|
|
15444
|
-
const { removeFromManifest } =
|
|
15499
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15500
|
+
const { removeFromManifest } = chunkX5EFVCYF_cjs.useDirectories();
|
|
15445
15501
|
const titleId = react.useId();
|
|
15446
15502
|
const [pending, setPending] = react.useState(false);
|
|
15447
15503
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
@@ -15526,18 +15582,28 @@ function shareAddress(build, token) {
|
|
|
15526
15582
|
return token;
|
|
15527
15583
|
}
|
|
15528
15584
|
}
|
|
15585
|
+
var warnedNoShareUrl = false;
|
|
15586
|
+
function warnMissingShareUrl() {
|
|
15587
|
+
if (warnedNoShareUrl || !chunkP5HF55MO_cjs.isDevelopment()) return;
|
|
15588
|
+
warnedNoShareUrl = true;
|
|
15589
|
+
console.warn(
|
|
15590
|
+
"[kaafil-react-uikit] No `buildShareUrl` on <KaafilUIKitProvider>, so the share dialog is showing operators a bare token instead of a sendable address. Kaafil returns a token, never a URL \u2014 the traveller page is on your domain. Fix: buildShareUrl={(token) => `${window.location.origin}/share/${token}`}"
|
|
15591
|
+
);
|
|
15592
|
+
}
|
|
15529
15593
|
function ShareLinkDialog({
|
|
15530
15594
|
tripRef,
|
|
15531
15595
|
travellerRef,
|
|
15532
15596
|
travellerName,
|
|
15533
15597
|
onClose
|
|
15534
15598
|
}) {
|
|
15535
|
-
const { t } =
|
|
15599
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15536
15600
|
const titleId = react.useId();
|
|
15537
|
-
const buildShareUrl =
|
|
15601
|
+
const buildShareUrl = chunkX5EFVCYF_cjs.useBuildShareUrl();
|
|
15602
|
+
const showsBareToken = buildShareUrl === null;
|
|
15603
|
+
if (showsBareToken) warnMissingShareUrl();
|
|
15538
15604
|
const isFamily = travellerRef === null;
|
|
15539
|
-
const offerable =
|
|
15540
|
-
const { links, readFailed, mint, revoke, regenerate, reveal } =
|
|
15605
|
+
const offerable = chunkX5EFVCYF_cjs.familySafeSections(isFamily);
|
|
15606
|
+
const { links, readFailed, mint, revoke, regenerate, reveal } = chunkX5EFVCYF_cjs.useShareLinks(
|
|
15541
15607
|
tripRef,
|
|
15542
15608
|
travellerRef
|
|
15543
15609
|
);
|
|
@@ -15646,7 +15712,9 @@ function ShareLinkDialog({
|
|
|
15646
15712
|
readOnly: true,
|
|
15647
15713
|
className: "kf-trip-manifest-section__minted-token",
|
|
15648
15714
|
value: shareAddress(buildShareUrl, minted.token),
|
|
15649
|
-
"aria-label": t(
|
|
15715
|
+
"aria-label": t(
|
|
15716
|
+
showsBareToken ? "chrome.tripManifest.mintedTokenLabelCode" : "chrome.tripManifest.mintedTokenLabel"
|
|
15717
|
+
),
|
|
15650
15718
|
onFocus: (event) => event.currentTarget.select()
|
|
15651
15719
|
}
|
|
15652
15720
|
),
|
|
@@ -15659,6 +15727,7 @@ function ShareLinkDialog({
|
|
|
15659
15727
|
children: copied ? t("chrome.tripManifest.copied") : t("chrome.tripManifest.copy")
|
|
15660
15728
|
}
|
|
15661
15729
|
),
|
|
15730
|
+
showsBareToken ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", children: t("chrome.tripManifest.noShareUrlHint") }) : null,
|
|
15662
15731
|
minted.expiresAt === null ? null : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", children: t("chrome.tripManifest.mintedExpiresAt").replace(
|
|
15663
15732
|
"{date}",
|
|
15664
15733
|
formatDay(minted.expiresAt, FULL_DATE_OPTS)
|
|
@@ -15806,7 +15875,9 @@ function ShareLinkDialog({
|
|
|
15806
15875
|
readOnly: true,
|
|
15807
15876
|
className: "kf-trip-manifest-section__minted-token",
|
|
15808
15877
|
value: shareAddress(buildShareUrl, String(revealed[link.id])),
|
|
15809
|
-
"aria-label": t(
|
|
15878
|
+
"aria-label": t(
|
|
15879
|
+
showsBareToken ? "chrome.tripManifest.mintedTokenLabelCode" : "chrome.tripManifest.mintedTokenLabel"
|
|
15880
|
+
),
|
|
15810
15881
|
onFocus: (event) => event.currentTarget.select()
|
|
15811
15882
|
}
|
|
15812
15883
|
),
|
|
@@ -15818,7 +15889,8 @@ function ShareLinkDialog({
|
|
|
15818
15889
|
onClick: () => void copy(shareAddress(buildShareUrl, String(revealed[link.id]))),
|
|
15819
15890
|
children: copied ? t("chrome.tripManifest.copied") : t("chrome.tripManifest.copy")
|
|
15820
15891
|
}
|
|
15821
|
-
)
|
|
15892
|
+
),
|
|
15893
|
+
showsBareToken ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__dialog-note", children: t("chrome.tripManifest.noShareUrlHint") }) : null
|
|
15822
15894
|
] }) })
|
|
15823
15895
|
] }, link.id)) })
|
|
15824
15896
|
] })
|
|
@@ -15870,7 +15942,7 @@ function SideDrawer({
|
|
|
15870
15942
|
"aria-modal": "true",
|
|
15871
15943
|
"aria-labelledby": titleId,
|
|
15872
15944
|
tabIndex: -1,
|
|
15873
|
-
style:
|
|
15945
|
+
style: chunkP5HF55MO_cjs.tokenStyle(style),
|
|
15874
15946
|
children: [
|
|
15875
15947
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-admin-side-drawer__header", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-side-drawer__header-row", children: [
|
|
15876
15948
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-side-drawer__identity", children: [
|
|
@@ -15938,11 +16010,11 @@ function TravellerDetailDialog({
|
|
|
15938
16010
|
onClose,
|
|
15939
16011
|
onRemove
|
|
15940
16012
|
}) {
|
|
15941
|
-
const { t } =
|
|
16013
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
15942
16014
|
const titleId = react.useId();
|
|
15943
|
-
const { read, readFailed, refresh } =
|
|
15944
|
-
const forms =
|
|
15945
|
-
const { addTravellerNote } =
|
|
16015
|
+
const { read, readFailed, refresh } = chunkAPE4R2GB_cjs.useTravellerProfile(tripRef, travellerRef);
|
|
16016
|
+
const forms = chunkX5EFVCYF_cjs.useTravellerFormResponses(tripRef, travellerRef);
|
|
16017
|
+
const { addTravellerNote } = chunkX5EFVCYF_cjs.useDirectories();
|
|
15946
16018
|
const [noteDraft, setNoteDraft] = react.useState("");
|
|
15947
16019
|
const [notePending, setNotePending] = react.useState(false);
|
|
15948
16020
|
const [noteFailed, setNoteFailed] = react.useState(false);
|
|
@@ -16171,7 +16243,7 @@ function DetailRow({
|
|
|
16171
16243
|
absentLabel,
|
|
16172
16244
|
meta
|
|
16173
16245
|
}) {
|
|
16174
|
-
const { t } =
|
|
16246
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16175
16247
|
const has = value !== null && value !== void 0 && value.length > 0;
|
|
16176
16248
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section__detail-row", children: [
|
|
16177
16249
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__detail-label", children: label }),
|
|
@@ -16194,7 +16266,7 @@ function TripManifestSection({
|
|
|
16194
16266
|
components,
|
|
16195
16267
|
style
|
|
16196
16268
|
}) {
|
|
16197
|
-
const { t } =
|
|
16269
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16198
16270
|
const [q, setQ] = react.useState("");
|
|
16199
16271
|
const [groupBy, setGroupBy] = react.useState("booking_group");
|
|
16200
16272
|
const [filters, setFilters] = react.useState({});
|
|
@@ -16223,7 +16295,7 @@ function TripManifestSection({
|
|
|
16223
16295
|
[groupBy, writeToken, wireFilters]
|
|
16224
16296
|
);
|
|
16225
16297
|
const hasActiveFilter = q.length > 0 || Object.keys(filters).length > 0;
|
|
16226
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section", style:
|
|
16298
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
16227
16299
|
facets === void 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(ManifestFacetTiles, { facets, filtered: hasActiveFilter }),
|
|
16228
16300
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section__toolbar", children: [
|
|
16229
16301
|
/* @__PURE__ */ jsxRuntime.jsx(ManifestSearchInput, { debounceMs: DEBOUNCE_MS, onDebouncedChange: setQ }),
|
|
@@ -16442,7 +16514,7 @@ function PaymentsSkeleton() {
|
|
|
16442
16514
|
] }, id)) });
|
|
16443
16515
|
}
|
|
16444
16516
|
function PaymentsEmpty({ onRecord }) {
|
|
16445
|
-
const { t } =
|
|
16517
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16446
16518
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-payments-section__state", children: [
|
|
16447
16519
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-payments-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(ReceiptIcon, {}) }),
|
|
16448
16520
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-payments-section__state-title", children: t("chrome.tripPayments.emptyTitle") }),
|
|
@@ -16451,7 +16523,7 @@ function PaymentsEmpty({ onRecord }) {
|
|
|
16451
16523
|
] });
|
|
16452
16524
|
}
|
|
16453
16525
|
function PaymentsFailed({ onRetry }) {
|
|
16454
|
-
const { t } =
|
|
16526
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16455
16527
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-payments-section__state", role: "alert", children: [
|
|
16456
16528
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-payments-section__state-title", children: t("chrome.tripPayments.failedTitle") }),
|
|
16457
16529
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-payments-section__state-body", children: t("chrome.tripPayments.failedBody") }),
|
|
@@ -16459,7 +16531,7 @@ function PaymentsFailed({ onRetry }) {
|
|
|
16459
16531
|
] });
|
|
16460
16532
|
}
|
|
16461
16533
|
function PaymentsDark({ reason }) {
|
|
16462
|
-
const { t } =
|
|
16534
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16463
16535
|
if (reason === "mode") {
|
|
16464
16536
|
return null;
|
|
16465
16537
|
}
|
|
@@ -16480,7 +16552,7 @@ function PaymentsTable({
|
|
|
16480
16552
|
locked,
|
|
16481
16553
|
onVoid
|
|
16482
16554
|
}) {
|
|
16483
|
-
const { t } =
|
|
16555
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16484
16556
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-payments-section__table-wrap", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "kf-trip-payments-section__table", children: [
|
|
16485
16557
|
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "kf-visually-hidden", children: t("chrome.tripPayments.tableCaption") }),
|
|
16486
16558
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
@@ -16539,7 +16611,7 @@ function RecordPaymentDialog({
|
|
|
16539
16611
|
onClose,
|
|
16540
16612
|
onSubmit
|
|
16541
16613
|
}) {
|
|
16542
|
-
const { t } =
|
|
16614
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16543
16615
|
const titleId = react.useId();
|
|
16544
16616
|
const [travellerId, setTravellerId] = react.useState(null);
|
|
16545
16617
|
const [amount, setAmount] = react.useState("");
|
|
@@ -16714,7 +16786,7 @@ function VoidPaymentDialog({
|
|
|
16714
16786
|
onClose,
|
|
16715
16787
|
onSubmit
|
|
16716
16788
|
}) {
|
|
16717
|
-
const { t } =
|
|
16789
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16718
16790
|
const titleId = react.useId();
|
|
16719
16791
|
const [reason, setReason] = react.useState("");
|
|
16720
16792
|
const trimmed = reason.trim();
|
|
@@ -16787,14 +16859,21 @@ function isCloseoutLocked4(error) {
|
|
|
16787
16859
|
const classification = error.classification;
|
|
16788
16860
|
return classification?.status === 423 || classification?.code === "TRIP_CLOSED_OUT";
|
|
16789
16861
|
}
|
|
16790
|
-
function TripPaymentsSection({
|
|
16862
|
+
function TripPaymentsSection(props) {
|
|
16863
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
16864
|
+
if (session.status !== "authenticated") {
|
|
16865
|
+
return null;
|
|
16866
|
+
}
|
|
16867
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripPaymentsSection, { ...props });
|
|
16868
|
+
}
|
|
16869
|
+
function ReadyTripPaymentsSection({
|
|
16791
16870
|
tripRef,
|
|
16792
16871
|
balance,
|
|
16793
16872
|
style
|
|
16794
16873
|
}) {
|
|
16795
|
-
const { t } =
|
|
16796
|
-
const collections =
|
|
16797
|
-
const parties =
|
|
16874
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
16875
|
+
const collections = chunkAPE4R2GB_cjs.useCollections(tripRef);
|
|
16876
|
+
const parties = chunkAPE4R2GB_cjs.useParties(tripRef);
|
|
16798
16877
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
16799
16878
|
const [pending, setPending] = react.useState(false);
|
|
16800
16879
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
@@ -16874,7 +16953,7 @@ function TripPaymentsSection({
|
|
|
16874
16953
|
}
|
|
16875
16954
|
const currency = balance?.currency ?? rows[0]?.currency ?? "INR";
|
|
16876
16955
|
const owingCount = eligibleRows.filter((row) => row.outstandingMinor > 0).length;
|
|
16877
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-payments-section", style:
|
|
16956
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-payments-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
16878
16957
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-payments-section__toolbar", children: [
|
|
16879
16958
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-payments-section__toolbar-title", children: t("chrome.tripPayments.panelLabel") }),
|
|
16880
16959
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-payments-section__toolbar-spacer" }),
|
|
@@ -17015,7 +17094,7 @@ function AssignTravellerDialog({
|
|
|
17015
17094
|
onSubmit,
|
|
17016
17095
|
onClose
|
|
17017
17096
|
}) {
|
|
17018
|
-
const { t } =
|
|
17097
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17019
17098
|
const titleId = react.useId();
|
|
17020
17099
|
const [pointId, setPointId] = react.useState(stops[0]?.id ?? "");
|
|
17021
17100
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -17086,7 +17165,7 @@ function BoardingRoster({
|
|
|
17086
17165
|
onRetry,
|
|
17087
17166
|
stops
|
|
17088
17167
|
}) {
|
|
17089
|
-
const { t } =
|
|
17168
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17090
17169
|
if (failed) {
|
|
17091
17170
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__state", role: "alert", children: [
|
|
17092
17171
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-pickups-section__state-title", children: t("chrome.tripPickups.boardingFailedTitle") }),
|
|
@@ -17146,7 +17225,7 @@ function TravellerBoardRow({
|
|
|
17146
17225
|
busy,
|
|
17147
17226
|
onCorrect
|
|
17148
17227
|
}) {
|
|
17149
|
-
const { t } =
|
|
17228
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17150
17229
|
const correctable = occupant.status !== "PENDING";
|
|
17151
17230
|
const next = occupant.status === "BOARDED" ? "NO_SHOW" : "BOARDED";
|
|
17152
17231
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "kf-trip-pickups-section__roster-row", children: [
|
|
@@ -17184,7 +17263,7 @@ function DeleteStopDialog({
|
|
|
17184
17263
|
onDelete,
|
|
17185
17264
|
onClose
|
|
17186
17265
|
}) {
|
|
17187
|
-
const { t } =
|
|
17266
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17188
17267
|
const titleId = react.useId();
|
|
17189
17268
|
const [target, setTarget] = react.useState(siblings[0]?.id ?? "");
|
|
17190
17269
|
const occupied = stop.expectedCount > 0;
|
|
@@ -17438,7 +17517,7 @@ function PickupsEmpty({
|
|
|
17438
17517
|
kindLabel,
|
|
17439
17518
|
onAdd
|
|
17440
17519
|
}) {
|
|
17441
|
-
const { t } =
|
|
17520
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17442
17521
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__state", children: [
|
|
17443
17522
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-pickups-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(BusIcon, {}) }),
|
|
17444
17523
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-pickups-section__state-title", children: t("chrome.tripPickups.emptyTitle").replace("{kind}", kindLabel) }),
|
|
@@ -17447,7 +17526,7 @@ function PickupsEmpty({
|
|
|
17447
17526
|
] });
|
|
17448
17527
|
}
|
|
17449
17528
|
function PickupsFailed({ onRetry }) {
|
|
17450
|
-
const { t } =
|
|
17529
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17451
17530
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__state", role: "alert", children: [
|
|
17452
17531
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-pickups-section__state-title", children: t("chrome.tripPickups.failedTitle") }),
|
|
17453
17532
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-pickups-section__state-body", children: t("chrome.tripPickups.failedBody") }),
|
|
@@ -17455,7 +17534,7 @@ function PickupsFailed({ onRetry }) {
|
|
|
17455
17534
|
] });
|
|
17456
17535
|
}
|
|
17457
17536
|
function PickupsDark({ reason }) {
|
|
17458
|
-
const { t } =
|
|
17537
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17459
17538
|
if (reason === "mode") {
|
|
17460
17539
|
return null;
|
|
17461
17540
|
}
|
|
@@ -17489,7 +17568,7 @@ function StopFormDialog({
|
|
|
17489
17568
|
onClose,
|
|
17490
17569
|
onSubmit
|
|
17491
17570
|
}) {
|
|
17492
|
-
const { t } =
|
|
17571
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17493
17572
|
const titleId = react.useId();
|
|
17494
17573
|
const isEdit = stop !== null;
|
|
17495
17574
|
const [kind, setKind] = react.useState(stop?.kind ?? defaultKind);
|
|
@@ -17636,7 +17715,7 @@ function StopFormDialog({
|
|
|
17636
17715
|
);
|
|
17637
17716
|
}
|
|
17638
17717
|
function StopKebab({ stopName, onEdit, onDelete }) {
|
|
17639
|
-
const { t } =
|
|
17718
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17640
17719
|
const [open, setOpen] = react.useState(false);
|
|
17641
17720
|
const rootRef = react.useRef(null);
|
|
17642
17721
|
const triggerRef = react.useRef(null);
|
|
@@ -17713,7 +17792,7 @@ function StopCard({
|
|
|
17713
17792
|
onDelete,
|
|
17714
17793
|
onMoveBy
|
|
17715
17794
|
}) {
|
|
17716
|
-
const { t } =
|
|
17795
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17717
17796
|
const isClosed = stop.status === "CLOSED";
|
|
17718
17797
|
const canReorder = !isClosed;
|
|
17719
17798
|
const percent = boardedPercent(stop);
|
|
@@ -17861,7 +17940,7 @@ function Segment({
|
|
|
17861
17940
|
value,
|
|
17862
17941
|
onChange
|
|
17863
17942
|
}) {
|
|
17864
|
-
const { t } =
|
|
17943
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
17865
17944
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-pickups-section__segment", children: [
|
|
17866
17945
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t(legendKey) }),
|
|
17867
17946
|
options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17918,14 +17997,21 @@ function codeOf7(error) {
|
|
|
17918
17997
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
17919
17998
|
return classification?.code ?? "unknown";
|
|
17920
17999
|
}
|
|
17921
|
-
function TripPickupsSection({
|
|
18000
|
+
function TripPickupsSection(props) {
|
|
18001
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
18002
|
+
if (session.status !== "authenticated") {
|
|
18003
|
+
return null;
|
|
18004
|
+
}
|
|
18005
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripPickupsSection, { ...props });
|
|
18006
|
+
}
|
|
18007
|
+
function ReadyTripPickupsSection({
|
|
17922
18008
|
tripRef,
|
|
17923
18009
|
timeZone,
|
|
17924
18010
|
tripStartIso,
|
|
17925
18011
|
style
|
|
17926
18012
|
}) {
|
|
17927
|
-
const { t } =
|
|
17928
|
-
const pickups =
|
|
18013
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18014
|
+
const pickups = chunkAPE4R2GB_cjs.usePickups(tripRef);
|
|
17929
18015
|
const [kind, setKind] = react.useState("PICKUP");
|
|
17930
18016
|
const [view, setView] = react.useState("stops");
|
|
17931
18017
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -18085,7 +18171,7 @@ function TripPickupsSection({
|
|
|
18085
18171
|
const kindLabel = t(
|
|
18086
18172
|
kind === "PICKUP" ? "chrome.tripPickups.kindPickupOne" : "chrome.tripPickups.kindDropOne"
|
|
18087
18173
|
);
|
|
18088
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-pickups-section", style:
|
|
18174
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-pickups-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
18089
18175
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__toolbar", children: [
|
|
18090
18176
|
/* @__PURE__ */ jsxRuntime.jsx(ViewSwitcher, { value: view, onChange: setView }),
|
|
18091
18177
|
/* @__PURE__ */ jsxRuntime.jsx(KindSwitcher, { value: kind, onChange: setKind }),
|
|
@@ -18308,7 +18394,7 @@ function AutoAssignDialog({
|
|
|
18308
18394
|
onApply,
|
|
18309
18395
|
onClose
|
|
18310
18396
|
}) {
|
|
18311
|
-
const { t } =
|
|
18397
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18312
18398
|
const titleId = react.useId();
|
|
18313
18399
|
const [reassignAll, setReassignAll] = react.useState(false);
|
|
18314
18400
|
const roomCodeById = new Map(group.rooms.map((room) => [room.id, room.code]));
|
|
@@ -18403,7 +18489,7 @@ function AutoAssignDialog({
|
|
|
18403
18489
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-rooming-section__plan", children: [
|
|
18404
18490
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-rooming-section__plan-title", children: t("chrome.tripRooming.rulesTitle") }),
|
|
18405
18491
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "kf-trip-rooming-section__rule-list", children: preview.perRule.map((entry) => {
|
|
18406
|
-
const severity =
|
|
18492
|
+
const severity = chunkAPE4R2GB_cjs.roomingHeuristicSeverity(entry.rule);
|
|
18407
18493
|
const relaxed = entry.outcome === "relaxed";
|
|
18408
18494
|
const violation = relaxed && severity === "never";
|
|
18409
18495
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -18449,7 +18535,7 @@ function DeleteShell({
|
|
|
18449
18535
|
onConfirm,
|
|
18450
18536
|
onClose
|
|
18451
18537
|
}) {
|
|
18452
|
-
const { t } =
|
|
18538
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18453
18539
|
const titleId = react.useId();
|
|
18454
18540
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
18455
18541
|
SheetDialog,
|
|
@@ -18495,7 +18581,7 @@ function DeleteRoomDialog({
|
|
|
18495
18581
|
onConfirm,
|
|
18496
18582
|
onClose
|
|
18497
18583
|
}) {
|
|
18498
|
-
const { t } =
|
|
18584
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18499
18585
|
const occupied = room.beds.filter((bed) => bed.occupant !== null).length;
|
|
18500
18586
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18501
18587
|
DeleteShell,
|
|
@@ -18521,7 +18607,7 @@ function DeleteWindowDialog({
|
|
|
18521
18607
|
onConfirm,
|
|
18522
18608
|
onClose
|
|
18523
18609
|
}) {
|
|
18524
|
-
const { t } =
|
|
18610
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18525
18611
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18526
18612
|
DeleteShell,
|
|
18527
18613
|
{
|
|
@@ -18619,15 +18705,15 @@ function roomTypeLabelKey(roomType) {
|
|
|
18619
18705
|
return ROOM_TYPE_LABEL_KEY[roomType] ?? "chrome.tripRooming.roomType.shared";
|
|
18620
18706
|
}
|
|
18621
18707
|
function toneAttrs(tone) {
|
|
18622
|
-
const parsed =
|
|
18708
|
+
const parsed = chunkAPE4R2GB_cjs.parseRoomingTone(tone);
|
|
18623
18709
|
if (parsed === void 0) {
|
|
18624
|
-
return { family:
|
|
18710
|
+
return { family: chunkAPE4R2GB_cjs.TONE_FAMILIES.UNKNOWN, shade: 0 };
|
|
18625
18711
|
}
|
|
18626
|
-
const shade = parsed.shade <
|
|
18712
|
+
const shade = parsed.shade < chunkAPE4R2GB_cjs.SHADES_PER_FAMILY ? parsed.shade : parsed.shade % chunkAPE4R2GB_cjs.SHADES_PER_FAMILY;
|
|
18627
18713
|
return { family: parsed.family, shade };
|
|
18628
18714
|
}
|
|
18629
18715
|
function glyphOf(occupant) {
|
|
18630
|
-
return occupant.glyph === "" ?
|
|
18716
|
+
return occupant.glyph === "" ? chunkAPE4R2GB_cjs.FALLBACK_GLYPH : occupant.glyph;
|
|
18631
18717
|
}
|
|
18632
18718
|
function TravellerGlyph({
|
|
18633
18719
|
occupant,
|
|
@@ -18665,7 +18751,7 @@ var COLLAPSED_COUNT = 10;
|
|
|
18665
18751
|
function IdentityLegend({
|
|
18666
18752
|
occupants
|
|
18667
18753
|
}) {
|
|
18668
|
-
const { t } =
|
|
18754
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18669
18755
|
const [open, setOpen] = react.useState(false);
|
|
18670
18756
|
if (occupants.length === 0) {
|
|
18671
18757
|
return null;
|
|
@@ -18792,7 +18878,7 @@ function RoomFormDialog({
|
|
|
18792
18878
|
onClose,
|
|
18793
18879
|
onSubmit
|
|
18794
18880
|
}) {
|
|
18795
|
-
const { t } =
|
|
18881
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18796
18882
|
const titleId = react.useId();
|
|
18797
18883
|
const isEdit = room !== null;
|
|
18798
18884
|
const [code, setCode] = react.useState(room?.code ?? "");
|
|
@@ -18916,7 +19002,7 @@ function RoomingSkeleton() {
|
|
|
18916
19002
|
] }, id)) });
|
|
18917
19003
|
}
|
|
18918
19004
|
function RoomingEmpty({ onAddWindow }) {
|
|
18919
|
-
const { t } =
|
|
19005
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18920
19006
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-rooming-section__state", children: [
|
|
18921
19007
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-rooming-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(BedIcon, {}) }),
|
|
18922
19008
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-rooming-section__state-title", children: t("chrome.tripRooming.emptyTitle") }),
|
|
@@ -18925,7 +19011,7 @@ function RoomingEmpty({ onAddWindow }) {
|
|
|
18925
19011
|
] });
|
|
18926
19012
|
}
|
|
18927
19013
|
function RoomingFailed({ onRetry }) {
|
|
18928
|
-
const { t } =
|
|
19014
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18929
19015
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-rooming-section__state", role: "alert", children: [
|
|
18930
19016
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-rooming-section__state-title", children: t("chrome.tripRooming.failedTitle") }),
|
|
18931
19017
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-rooming-section__state-body", children: t("chrome.tripRooming.failedBody") }),
|
|
@@ -18933,7 +19019,7 @@ function RoomingFailed({ onRetry }) {
|
|
|
18933
19019
|
] });
|
|
18934
19020
|
}
|
|
18935
19021
|
function RoomingDark({ reason }) {
|
|
18936
|
-
const { t } =
|
|
19022
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18937
19023
|
if (reason === "mode") {
|
|
18938
19024
|
return null;
|
|
18939
19025
|
}
|
|
@@ -18948,7 +19034,7 @@ function RoomingDark({ reason }) {
|
|
|
18948
19034
|
] });
|
|
18949
19035
|
}
|
|
18950
19036
|
function RoomKebab({ roomCode, onEdit, onDelete }) {
|
|
18951
|
-
const { t } =
|
|
19037
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
18952
19038
|
const [open, setOpen] = react.useState(false);
|
|
18953
19039
|
const rootRef = react.useRef(null);
|
|
18954
19040
|
const triggerRef = react.useRef(null);
|
|
@@ -19013,7 +19099,7 @@ function RoomKebab({ roomCode, onEdit, onDelete }) {
|
|
|
19013
19099
|
] });
|
|
19014
19100
|
}
|
|
19015
19101
|
function RoomCard({ room, drag, busy, onEdit, onDelete }) {
|
|
19016
|
-
const { t } =
|
|
19102
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19017
19103
|
const occupied = room.beds.filter((bed) => bed.occupant !== null).length;
|
|
19018
19104
|
return /* @__PURE__ */ jsxRuntime.jsxs("article", { className: "kf-trip-rooming-section__room", "data-busy": busy ? "true" : void 0, children: [
|
|
19019
19105
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "kf-trip-rooming-section__room-head", children: [
|
|
@@ -19063,7 +19149,7 @@ function UnassignedStrip({
|
|
|
19063
19149
|
drag,
|
|
19064
19150
|
busy
|
|
19065
19151
|
}) {
|
|
19066
|
-
const { t } =
|
|
19152
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19067
19153
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19068
19154
|
"div",
|
|
19069
19155
|
{
|
|
@@ -19137,7 +19223,7 @@ function WindowAccordion({
|
|
|
19137
19223
|
onEditRoom,
|
|
19138
19224
|
onDeleteRoom
|
|
19139
19225
|
}) {
|
|
19140
|
-
const { t } =
|
|
19226
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19141
19227
|
const percent = fillPercent(group);
|
|
19142
19228
|
const bodyId = `kf-rooming-window-${group.window.id}`;
|
|
19143
19229
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -19287,7 +19373,7 @@ function WindowFormDialog({
|
|
|
19287
19373
|
onClose,
|
|
19288
19374
|
onSubmit
|
|
19289
19375
|
}) {
|
|
19290
|
-
const { t } =
|
|
19376
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19291
19377
|
const titleId = react.useId();
|
|
19292
19378
|
const isEdit = window !== null;
|
|
19293
19379
|
const [label, setLabel] = react.useState(window?.label ?? "");
|
|
@@ -19393,15 +19479,22 @@ function codeOf8(error) {
|
|
|
19393
19479
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
19394
19480
|
return classification?.code ?? "unknown";
|
|
19395
19481
|
}
|
|
19396
|
-
function TripRoomingSection({
|
|
19482
|
+
function TripRoomingSection(props) {
|
|
19483
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
19484
|
+
if (session.status !== "authenticated") {
|
|
19485
|
+
return null;
|
|
19486
|
+
}
|
|
19487
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripRoomingSection, { ...props });
|
|
19488
|
+
}
|
|
19489
|
+
function ReadyTripRoomingSection({
|
|
19397
19490
|
tripRef,
|
|
19398
19491
|
timeZone,
|
|
19399
19492
|
tripStartIso,
|
|
19400
19493
|
tripEndIso,
|
|
19401
19494
|
style
|
|
19402
19495
|
}) {
|
|
19403
|
-
const { t } =
|
|
19404
|
-
const rooming =
|
|
19496
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19497
|
+
const rooming = chunkAPE4R2GB_cjs.useRooming(tripRef);
|
|
19405
19498
|
const [openWindowId, setOpenWindowId] = react.useState(null);
|
|
19406
19499
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
19407
19500
|
const [pending, setPending] = react.useState(false);
|
|
@@ -19539,7 +19632,7 @@ function TripRoomingSection({
|
|
|
19539
19632
|
return /* @__PURE__ */ jsxRuntime.jsx(RoomingDark, { reason: rooming.reason });
|
|
19540
19633
|
}
|
|
19541
19634
|
const pool = ready?.unassignedPool;
|
|
19542
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-rooming-section", style:
|
|
19635
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-rooming-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
19543
19636
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-rooming-section__toolbar", children: [
|
|
19544
19637
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-rooming-section__toolbar-title", children: t("chrome.tripRooming.panelLabel") }),
|
|
19545
19638
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-rooming-section__toolbar-spacer" }),
|
|
@@ -19773,7 +19866,7 @@ function isAgencyAuthored(vendor) {
|
|
|
19773
19866
|
return vendor.externalId.startsWith("kf-");
|
|
19774
19867
|
}
|
|
19775
19868
|
function CategoryTabs({ selected, counts, total, onSelect }) {
|
|
19776
|
-
const { t } =
|
|
19869
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19777
19870
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__chips", children: [
|
|
19778
19871
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
19779
19872
|
"button",
|
|
@@ -19816,7 +19909,7 @@ function DeleteSupplierDialog({
|
|
|
19816
19909
|
onConfirm,
|
|
19817
19910
|
onClose
|
|
19818
19911
|
}) {
|
|
19819
|
-
const { t } =
|
|
19912
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19820
19913
|
const titleId = react.useId();
|
|
19821
19914
|
const blockers = deleteBlockers(usage);
|
|
19822
19915
|
const blockedLocally = blockers !== void 0 && blockers.vehicles + blockers.expenses > 0;
|
|
@@ -19969,7 +20062,7 @@ function SupplierFormDialog({
|
|
|
19969
20062
|
onClose,
|
|
19970
20063
|
onSubmit
|
|
19971
20064
|
}) {
|
|
19972
|
-
const { t } =
|
|
20065
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
19973
20066
|
const titleId = react.useId();
|
|
19974
20067
|
const isEdit = supplier !== null;
|
|
19975
20068
|
const [name, setName] = react.useState(supplier?.name ?? "");
|
|
@@ -20091,7 +20184,7 @@ function SuppliersSkeleton() {
|
|
|
20091
20184
|
] }, id)) });
|
|
20092
20185
|
}
|
|
20093
20186
|
function SuppliersEmpty({ onAdd }) {
|
|
20094
|
-
const { t } =
|
|
20187
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20095
20188
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__state", children: [
|
|
20096
20189
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-suppliers-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(StorefrontIcon, {}) }),
|
|
20097
20190
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-suppliers-section__state-title", children: t("chrome.tripSuppliers.emptyTitle") }),
|
|
@@ -20100,7 +20193,7 @@ function SuppliersEmpty({ onAdd }) {
|
|
|
20100
20193
|
] });
|
|
20101
20194
|
}
|
|
20102
20195
|
function SuppliersNoMatch({ onClear }) {
|
|
20103
|
-
const { t } =
|
|
20196
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20104
20197
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__state", children: [
|
|
20105
20198
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-suppliers-section__state-title", children: t("chrome.tripSuppliers.noMatchTitle") }),
|
|
20106
20199
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-suppliers-section__state-body", children: t("chrome.tripSuppliers.noMatchBody") }),
|
|
@@ -20108,7 +20201,7 @@ function SuppliersNoMatch({ onClear }) {
|
|
|
20108
20201
|
] });
|
|
20109
20202
|
}
|
|
20110
20203
|
function SuppliersFailed({ onRetry }) {
|
|
20111
|
-
const { t } =
|
|
20204
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20112
20205
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__state", role: "alert", children: [
|
|
20113
20206
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-suppliers-section__state-title", children: t("chrome.tripSuppliers.failedTitle") }),
|
|
20114
20207
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-suppliers-section__state-body", children: t("chrome.tripSuppliers.failedBody") }),
|
|
@@ -20116,7 +20209,7 @@ function SuppliersFailed({ onRetry }) {
|
|
|
20116
20209
|
] });
|
|
20117
20210
|
}
|
|
20118
20211
|
function SuppliersDark({ reason }) {
|
|
20119
|
-
const { t } =
|
|
20212
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20120
20213
|
if (reason === "mode") {
|
|
20121
20214
|
return null;
|
|
20122
20215
|
}
|
|
@@ -20131,7 +20224,7 @@ function SuppliersDark({ reason }) {
|
|
|
20131
20224
|
] });
|
|
20132
20225
|
}
|
|
20133
20226
|
function SupplierKebab({ name, busy, onEdit, onDelete }) {
|
|
20134
|
-
const { t } =
|
|
20227
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20135
20228
|
const [open, setOpen] = react.useState(false);
|
|
20136
20229
|
const rootRef = react.useRef(null);
|
|
20137
20230
|
const triggerRef = react.useRef(null);
|
|
@@ -20198,7 +20291,7 @@ function SupplierKebab({ name, busy, onEdit, onDelete }) {
|
|
|
20198
20291
|
] });
|
|
20199
20292
|
}
|
|
20200
20293
|
function SupplierUsageCell({ usage }) {
|
|
20201
|
-
const { t } =
|
|
20294
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20202
20295
|
const parts = [];
|
|
20203
20296
|
if (usage.vehicles !== void 0 && usage.vehicles > 0) {
|
|
20204
20297
|
parts.push(
|
|
@@ -20242,7 +20335,7 @@ function SupplierTable({
|
|
|
20242
20335
|
onEdit,
|
|
20243
20336
|
onDelete
|
|
20244
20337
|
}) {
|
|
20245
|
-
const { t } =
|
|
20338
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20246
20339
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-suppliers-section__table-wrap", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "kf-trip-suppliers-section__table", children: [
|
|
20247
20340
|
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "kf-visually-hidden", children: t("chrome.tripSuppliers.tableCaption") }),
|
|
20248
20341
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
@@ -20309,12 +20402,19 @@ function serverBlockOf(error) {
|
|
|
20309
20402
|
if (details?.rule !== "vendor.deleteBlockedByReferences") return void 0;
|
|
20310
20403
|
return { vehicles: details.vehicleCount ?? 0, expenses: details.expenseCount ?? 0 };
|
|
20311
20404
|
}
|
|
20312
|
-
function TripSuppliersSection(
|
|
20313
|
-
const
|
|
20314
|
-
|
|
20315
|
-
|
|
20316
|
-
|
|
20317
|
-
|
|
20405
|
+
function TripSuppliersSection(props) {
|
|
20406
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
20407
|
+
if (session.status !== "authenticated") {
|
|
20408
|
+
return null;
|
|
20409
|
+
}
|
|
20410
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripSuppliersSection, { ...props });
|
|
20411
|
+
}
|
|
20412
|
+
function ReadyTripSuppliersSection({ tripRef, style }) {
|
|
20413
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20414
|
+
const vendors = chunkAPE4R2GB_cjs.useVendors(tripRef, "");
|
|
20415
|
+
const seating = chunkAPE4R2GB_cjs.useSeating(tripRef);
|
|
20416
|
+
const itinerary = chunkAPE4R2GB_cjs.useItinerary(tripRef);
|
|
20417
|
+
const expenses = chunkAPE4R2GB_cjs.useExpenses(tripRef);
|
|
20318
20418
|
const [category, setCategory] = react.useState(null);
|
|
20319
20419
|
const [query, setQuery] = react.useState("");
|
|
20320
20420
|
const [sortKey, setSortKey] = react.useState("name");
|
|
@@ -20397,7 +20497,7 @@ function TripSuppliersSection({ tripRef, style }) {
|
|
|
20397
20497
|
return /* @__PURE__ */ jsxRuntime.jsx(SuppliersDark, { reason: vendors.reason });
|
|
20398
20498
|
}
|
|
20399
20499
|
const filtered = category !== null || query.trim() !== "";
|
|
20400
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-suppliers-section", style:
|
|
20500
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-suppliers-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
20401
20501
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__toolbar", children: [
|
|
20402
20502
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-suppliers-section__toolbar-title", children: t("chrome.tripSuppliers.panelLabel") }),
|
|
20403
20503
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-suppliers-section__toolbar-spacer" }),
|
|
@@ -20536,7 +20636,7 @@ function AutoAssignDialog2({
|
|
|
20536
20636
|
onApply,
|
|
20537
20637
|
onClose
|
|
20538
20638
|
}) {
|
|
20539
|
-
const { t } =
|
|
20639
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20540
20640
|
const titleId = react.useId();
|
|
20541
20641
|
const [reassignAll, setReassignAll] = react.useState(false);
|
|
20542
20642
|
const [genderAdjacency, setGenderAdjacency] = react.useState("AVOID_UNRELATED");
|
|
@@ -20698,7 +20798,7 @@ function DayFilter({
|
|
|
20698
20798
|
countByDay,
|
|
20699
20799
|
onSelect
|
|
20700
20800
|
}) {
|
|
20701
|
-
const { t } =
|
|
20801
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20702
20802
|
const days = Array.from({ length: durationDays }, (_unused, index) => index);
|
|
20703
20803
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__days", children: [
|
|
20704
20804
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__days-label", children: t("chrome.tripVehicles.showDay") }),
|
|
@@ -20831,7 +20931,7 @@ function DeleteVehicleDialog({
|
|
|
20831
20931
|
onConfirm,
|
|
20832
20932
|
onClose
|
|
20833
20933
|
}) {
|
|
20834
|
-
const { t } =
|
|
20934
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
20835
20935
|
const titleId = react.useId();
|
|
20836
20936
|
const released = occupantsOf(vehicle).length;
|
|
20837
20937
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -21008,7 +21108,7 @@ function ManagerLinkDialog({
|
|
|
21008
21108
|
onClose,
|
|
21009
21109
|
onSubmit
|
|
21010
21110
|
}) {
|
|
21011
|
-
const { t } =
|
|
21111
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21012
21112
|
const titleId = react.useId();
|
|
21013
21113
|
const [chosen, setChosen] = react.useState(null);
|
|
21014
21114
|
const demotedFrom = chosen === null ? void 0 : managerVehicleByRef.get(chosen);
|
|
@@ -21085,7 +21185,7 @@ function UnassignedStrip2({
|
|
|
21085
21185
|
drag,
|
|
21086
21186
|
busy
|
|
21087
21187
|
}) {
|
|
21088
|
-
const { t } =
|
|
21188
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21089
21189
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21090
21190
|
"div",
|
|
21091
21191
|
{
|
|
@@ -21152,7 +21252,7 @@ function OccupantRoster({
|
|
|
21152
21252
|
variant,
|
|
21153
21253
|
emptyKey
|
|
21154
21254
|
}) {
|
|
21155
|
-
const { t } =
|
|
21255
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21156
21256
|
const target = { containerId: vehicleId, slotLabel: "" };
|
|
21157
21257
|
const isOver = drag.overSlot !== null && drag.overSlot.containerId === vehicleId && drag.overSlot.slotLabel === "";
|
|
21158
21258
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -21196,7 +21296,7 @@ function OccupantRoster({
|
|
|
21196
21296
|
);
|
|
21197
21297
|
}
|
|
21198
21298
|
function SeatTile({ seat, vehicleId, drag, busy }) {
|
|
21199
|
-
const { t } =
|
|
21299
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21200
21300
|
const target = { containerId: vehicleId, slotLabel: seat.seatLabel };
|
|
21201
21301
|
const isOver = drag.overSlot !== null && drag.overSlot.containerId === target.containerId && drag.overSlot.slotLabel === target.slotLabel;
|
|
21202
21302
|
const occupant = seat.occupant;
|
|
@@ -21259,7 +21359,7 @@ function VehicleKebab({
|
|
|
21259
21359
|
onUnlinkManager,
|
|
21260
21360
|
onDelete
|
|
21261
21361
|
}) {
|
|
21262
|
-
const { t } =
|
|
21362
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21263
21363
|
const [open, setOpen] = react.useState(false);
|
|
21264
21364
|
const rootRef = react.useRef(null);
|
|
21265
21365
|
const triggerRef = react.useRef(null);
|
|
@@ -21369,7 +21469,7 @@ function VehicleCard({
|
|
|
21369
21469
|
onUnlinkManager,
|
|
21370
21470
|
onDelete
|
|
21371
21471
|
}) {
|
|
21372
|
-
const { t } =
|
|
21472
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21373
21473
|
const percent = fillPercent2(vehicle);
|
|
21374
21474
|
const days = daysLabel(vehicle.days);
|
|
21375
21475
|
const bodyId = `kf-vehicle-${vehicle.id}`;
|
|
@@ -21504,7 +21604,7 @@ function VehicleDaysDialog({
|
|
|
21504
21604
|
onClose,
|
|
21505
21605
|
onSubmit
|
|
21506
21606
|
}) {
|
|
21507
|
-
const { t } =
|
|
21607
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21508
21608
|
const titleId = react.useId();
|
|
21509
21609
|
const [selected, setSelected] = react.useState(vehicle.days);
|
|
21510
21610
|
const wholeTrip = selected.length === 0;
|
|
@@ -21603,7 +21703,7 @@ function VehicleFormDialog({
|
|
|
21603
21703
|
onClose,
|
|
21604
21704
|
onSubmit
|
|
21605
21705
|
}) {
|
|
21606
|
-
const { t } =
|
|
21706
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21607
21707
|
const titleId = react.useId();
|
|
21608
21708
|
const isEdit = vehicle !== null;
|
|
21609
21709
|
const [regNo, setRegNo] = react.useState(vehicle?.regNo ?? "");
|
|
@@ -21798,7 +21898,7 @@ function VehiclesSkeleton() {
|
|
|
21798
21898
|
] }, id)) });
|
|
21799
21899
|
}
|
|
21800
21900
|
function VehiclesEmpty({ onAddVehicle }) {
|
|
21801
|
-
const { t } =
|
|
21901
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21802
21902
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__state", children: [
|
|
21803
21903
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(BusIcon2, {}) }),
|
|
21804
21904
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-vehicles-section__state-title", children: t("chrome.tripVehicles.emptyTitle") }),
|
|
@@ -21807,7 +21907,7 @@ function VehiclesEmpty({ onAddVehicle }) {
|
|
|
21807
21907
|
] });
|
|
21808
21908
|
}
|
|
21809
21909
|
function VehiclesFailed({ onRetry }) {
|
|
21810
|
-
const { t } =
|
|
21910
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21811
21911
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__state", role: "alert", children: [
|
|
21812
21912
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-vehicles-section__state-title", children: t("chrome.tripVehicles.failedTitle") }),
|
|
21813
21913
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-vehicles-section__state-body", children: t("chrome.tripVehicles.failedBody") }),
|
|
@@ -21815,7 +21915,7 @@ function VehiclesFailed({ onRetry }) {
|
|
|
21815
21915
|
] });
|
|
21816
21916
|
}
|
|
21817
21917
|
function VehiclesDark({ reason }) {
|
|
21818
|
-
const { t } =
|
|
21918
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21819
21919
|
if (reason === "mode") {
|
|
21820
21920
|
return null;
|
|
21821
21921
|
}
|
|
@@ -21833,14 +21933,21 @@ function codeOf10(error) {
|
|
|
21833
21933
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
21834
21934
|
return classification?.code ?? "unknown";
|
|
21835
21935
|
}
|
|
21836
|
-
function TripVehiclesSection({
|
|
21936
|
+
function TripVehiclesSection(props) {
|
|
21937
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
21938
|
+
if (session.status !== "authenticated") {
|
|
21939
|
+
return null;
|
|
21940
|
+
}
|
|
21941
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripVehiclesSection, { ...props });
|
|
21942
|
+
}
|
|
21943
|
+
function ReadyTripVehiclesSection({
|
|
21837
21944
|
tripRef,
|
|
21838
21945
|
durationDays,
|
|
21839
21946
|
style
|
|
21840
21947
|
}) {
|
|
21841
|
-
const { t } =
|
|
21842
|
-
const seating =
|
|
21843
|
-
const managers =
|
|
21948
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
21949
|
+
const seating = chunkAPE4R2GB_cjs.useSeating(tripRef);
|
|
21950
|
+
const managers = chunkAPE4R2GB_cjs.useManagers(tripRef);
|
|
21844
21951
|
const [openVehicleId, setOpenVehicleId] = react.useState(null);
|
|
21845
21952
|
const [day, setDay] = react.useState(null);
|
|
21846
21953
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -21974,7 +22081,7 @@ function TripVehiclesSection({
|
|
|
21974
22081
|
return /* @__PURE__ */ jsxRuntime.jsx(VehiclesDark, { reason: seating.reason });
|
|
21975
22082
|
}
|
|
21976
22083
|
const pool = ready?.unassignedPool;
|
|
21977
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-vehicles-section", style:
|
|
22084
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-vehicles-section", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
21978
22085
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__toolbar", children: [
|
|
21979
22086
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__toolbar-title", children: t("chrome.tripVehicles.panelLabel") }),
|
|
21980
22087
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__toolbar-spacer" }),
|
|
@@ -22267,7 +22374,7 @@ function WarningIcon13(props) {
|
|
|
22267
22374
|
|
|
22268
22375
|
// src/admin/composite/office/TripWorkspace/internal/panels/deriveCloseout.ts
|
|
22269
22376
|
function tabForBlocker(row) {
|
|
22270
|
-
return
|
|
22377
|
+
return chunkX5EFVCYF_cjs.resolveBlockerDeepLink({ actionKey: row.actionKey })?.tab;
|
|
22271
22378
|
}
|
|
22272
22379
|
function orderedBlockers(rows) {
|
|
22273
22380
|
return [...rows].sort((a, b) => {
|
|
@@ -22307,8 +22414,8 @@ function codeOf11(error) {
|
|
|
22307
22414
|
return classification?.code ?? "unknown";
|
|
22308
22415
|
}
|
|
22309
22416
|
function CloseoutCard({ tripRef, onOpenTab, litTabs }) {
|
|
22310
|
-
const { t } =
|
|
22311
|
-
const closeout =
|
|
22417
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
22418
|
+
const closeout = chunkAPE4R2GB_cjs.useCloseout(tripRef);
|
|
22312
22419
|
const [note, setNote] = react.useState(null);
|
|
22313
22420
|
const [pending, setPending] = react.useState(void 0);
|
|
22314
22421
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
@@ -22515,7 +22622,7 @@ function AssignManagerDialog({
|
|
|
22515
22622
|
onClose,
|
|
22516
22623
|
onAssign
|
|
22517
22624
|
}) {
|
|
22518
|
-
const { t } =
|
|
22625
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
22519
22626
|
const titleId = react.useId();
|
|
22520
22627
|
const [query, setQuery] = react.useState("");
|
|
22521
22628
|
const [selected, setSelected] = react.useState(null);
|
|
@@ -22647,8 +22754,8 @@ var ROLE_LABEL_KEY = {
|
|
|
22647
22754
|
COORDINATOR: "chrome.tripWorkspace.managers.roleCoordinator"
|
|
22648
22755
|
};
|
|
22649
22756
|
function OverviewManagersCard({ trip, onChanged }) {
|
|
22650
|
-
const { t } =
|
|
22651
|
-
const { promoteManager, assignManager, unassignManager, makeManagersFetch } =
|
|
22757
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
22758
|
+
const { promoteManager, assignManager, unassignManager, makeManagersFetch } = chunkX5EFVCYF_cjs.useDirectories();
|
|
22652
22759
|
const [pendingId, setPendingId] = react.useState(void 0);
|
|
22653
22760
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
22654
22761
|
const [assignOpen, setAssignOpen] = react.useState(false);
|
|
@@ -22809,13 +22916,13 @@ function TripOverviewPanel({
|
|
|
22809
22916
|
onOpenTab,
|
|
22810
22917
|
onTripChanged
|
|
22811
22918
|
}) {
|
|
22812
|
-
const { t } =
|
|
22813
|
-
const today =
|
|
22814
|
-
const expenses =
|
|
22919
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
22920
|
+
const today = chunkAPE4R2GB_cjs.useManagerToday(trip.ref);
|
|
22921
|
+
const expenses = chunkAPE4R2GB_cjs.useExpenses(trip.ref);
|
|
22815
22922
|
const spendTotalMinor = expenses.status === "ready" && expenses.totals.loaded && !expenses.totals.lastFetchFailed ? expenses.totals.spendTotalMinor : void 0;
|
|
22816
22923
|
const finance = deriveFinance(trip, spendTotalMinor);
|
|
22817
22924
|
const quickActions = QUICK_ACTION_TABS.filter((key) => litTabs.has(key));
|
|
22818
|
-
const closeoutProbe =
|
|
22925
|
+
const closeoutProbe = chunkAPE4R2GB_cjs.useCloseout(trip.ref);
|
|
22819
22926
|
const closeoutStage = closeoutProbe.status === "ready" && hasReturned(closeoutProbe.aggregate) ? closeoutProbe.aggregate?.stage ?? null : null;
|
|
22820
22927
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__overview", children: [
|
|
22821
22928
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__overview-main", children: [
|
|
@@ -22854,7 +22961,7 @@ function TripOverviewPanel({
|
|
|
22854
22961
|
function TodayCard({
|
|
22855
22962
|
today
|
|
22856
22963
|
}) {
|
|
22857
|
-
const { t } =
|
|
22964
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
22858
22965
|
if (today.kind === "idle") return null;
|
|
22859
22966
|
const openChecklist = today.checklist ?? [];
|
|
22860
22967
|
const itinerary = today.itinerary ?? [];
|
|
@@ -22878,7 +22985,7 @@ function TodayCard({
|
|
|
22878
22985
|
function FinanceCard({
|
|
22879
22986
|
finance
|
|
22880
22987
|
}) {
|
|
22881
|
-
const { t } =
|
|
22988
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
22882
22989
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-workspace__card", children: [
|
|
22883
22990
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace__card-head", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-workspace__card-title", children: t("chrome.tripWorkspace.overview.financeTitle") }) }),
|
|
22884
22991
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__finance-body", children: [
|
|
@@ -23141,7 +23248,7 @@ var BLOCKER_BODY_KEY = {
|
|
|
23141
23248
|
capabilityDark: "chrome.tripWorkspace.blocker.capabilityDarkBody"
|
|
23142
23249
|
};
|
|
23143
23250
|
function TripTabPlaceholder({ tabKey, blocker }) {
|
|
23144
|
-
const { t } =
|
|
23251
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
23145
23252
|
const label = t(TAB_LABEL_KEY[tabKey]);
|
|
23146
23253
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__placeholder", children: [
|
|
23147
23254
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-workspace__placeholder-glyph", children: blocker === "deferred" ? /* @__PURE__ */ jsxRuntime.jsx(ClockIcon2, {}) : /* @__PURE__ */ jsxRuntime.jsx(LockIcon11, {}) }),
|
|
@@ -23151,7 +23258,7 @@ function TripTabPlaceholder({ tabKey, blocker }) {
|
|
|
23151
23258
|
] });
|
|
23152
23259
|
}
|
|
23153
23260
|
function TripKpiStrip({ cells }) {
|
|
23154
|
-
const { t } =
|
|
23261
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
23155
23262
|
if (cells.length === 0) return null;
|
|
23156
23263
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace__kpi-strip", "data-columns": cells.length, children: cells.map((cell) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__kpi-card", children: [
|
|
23157
23264
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace__kpi-label", children: t(cell.labelKey) }),
|
|
@@ -23160,7 +23267,7 @@ function TripKpiStrip({ cells }) {
|
|
|
23160
23267
|
] }, cell.key)) });
|
|
23161
23268
|
}
|
|
23162
23269
|
function TripTabRail({ tabs, activeKey, onSelect }) {
|
|
23163
|
-
const { t } =
|
|
23270
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
23164
23271
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23165
23272
|
"div",
|
|
23166
23273
|
{
|
|
@@ -23194,7 +23301,7 @@ var STATUS_LABEL_KEY9 = {
|
|
|
23194
23301
|
CANCELLED: "chrome.tripDirectory.status.cancelled"
|
|
23195
23302
|
};
|
|
23196
23303
|
function TripWorkspaceHead({ trip, onBack, style }) {
|
|
23197
|
-
const { t } =
|
|
23304
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
23198
23305
|
const head = deriveTripHead(trip);
|
|
23199
23306
|
const subLabelParts = [
|
|
23200
23307
|
head.dateRangeLabel,
|
|
@@ -23205,7 +23312,7 @@ function TripWorkspaceHead({ trip, onBack, style }) {
|
|
|
23205
23312
|
trip.manifestCount === 1 ? "chrome.tripWorkspace.travellerCountOne" : "chrome.tripWorkspace.travellerCount"
|
|
23206
23313
|
).replace("{count}", String(trip.manifestCount))
|
|
23207
23314
|
];
|
|
23208
|
-
return /* @__PURE__ */ jsxRuntime.jsx("header", { className: "kf-trip-workspace__head", style:
|
|
23315
|
+
return /* @__PURE__ */ jsxRuntime.jsx("header", { className: "kf-trip-workspace__head", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__head-identity", children: [
|
|
23209
23316
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__eyebrow", children: [
|
|
23210
23317
|
onBack === void 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
23211
23318
|
"button",
|
|
@@ -23236,7 +23343,14 @@ function TripWorkspaceHead({ trip, onBack, style }) {
|
|
|
23236
23343
|
] })
|
|
23237
23344
|
] }) });
|
|
23238
23345
|
}
|
|
23239
|
-
function TripWorkspace({
|
|
23346
|
+
function TripWorkspace(props) {
|
|
23347
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
23348
|
+
if (session.status !== "authenticated") {
|
|
23349
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TripWorkspaceSkeleton, {});
|
|
23350
|
+
}
|
|
23351
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ReadyTripWorkspace, { ...props });
|
|
23352
|
+
}
|
|
23353
|
+
function ReadyTripWorkspace({
|
|
23240
23354
|
tripRef,
|
|
23241
23355
|
initialTab,
|
|
23242
23356
|
onBack,
|
|
@@ -23245,10 +23359,10 @@ function TripWorkspace({
|
|
|
23245
23359
|
components,
|
|
23246
23360
|
style
|
|
23247
23361
|
}) {
|
|
23248
|
-
const { t } =
|
|
23249
|
-
const { read, readFailed, refresh } =
|
|
23362
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
23363
|
+
const { read, readFailed, refresh } = chunkX5EFVCYF_cjs.useAgencyTrip(tripRef);
|
|
23250
23364
|
if (readFailed) {
|
|
23251
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style:
|
|
23365
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__status-block", role: "alert", children: [
|
|
23252
23366
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon13, { className: "kf-trip-workspace__status-icon" }),
|
|
23253
23367
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-workspace__status-title", children: t("chrome.tripWorkspace.errorTitle") }),
|
|
23254
23368
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-workspace__status-body", children: t("chrome.tripWorkspace.errorBody") }),
|
|
@@ -23264,7 +23378,7 @@ function TripWorkspace({
|
|
|
23264
23378
|
] }) });
|
|
23265
23379
|
}
|
|
23266
23380
|
if (read === void 0) {
|
|
23267
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style:
|
|
23381
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style: chunkP5HF55MO_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(TripWorkspaceSkeleton, {}) });
|
|
23268
23382
|
}
|
|
23269
23383
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23270
23384
|
TripWorkspaceBody,
|
|
@@ -23292,7 +23406,7 @@ function TripWorkspaceBody({
|
|
|
23292
23406
|
components,
|
|
23293
23407
|
style
|
|
23294
23408
|
}) {
|
|
23295
|
-
const { statuses, loaded } =
|
|
23409
|
+
const { statuses, loaded } = chunkX5EFVCYF_cjs.useCapabilityStatuses(tripRef);
|
|
23296
23410
|
const Head = components?.TripWorkspaceHead ?? TripWorkspaceHead;
|
|
23297
23411
|
const tabs = react.useMemo(() => resolveTripTabs(trip.eventType, statuses), [trip.eventType, statuses]);
|
|
23298
23412
|
const [requestedTab, setRequestedTab] = react.useState(initialTab ?? "overview");
|
|
@@ -23376,7 +23490,7 @@ function TripWorkspaceBody({
|
|
|
23376
23490
|
}),
|
|
23377
23491
|
[trip, litTabs, tripRef, onTripChanged, onOpenTravellerProfile]
|
|
23378
23492
|
);
|
|
23379
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace", style:
|
|
23493
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
23380
23494
|
/* @__PURE__ */ jsxRuntime.jsx(Head, { trip, ...onBack !== void 0 ? { onBack } : {} }),
|
|
23381
23495
|
/* @__PURE__ */ jsxRuntime.jsx(TripKpiStrip, { cells: kpis }),
|
|
23382
23496
|
loaded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -23573,7 +23687,7 @@ function AdminShell({
|
|
|
23573
23687
|
function renderNavIcon(iconKey) {
|
|
23574
23688
|
return NavIcon !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(NavIcon, { iconKey }) : navIcon(iconKey);
|
|
23575
23689
|
}
|
|
23576
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shell", style:
|
|
23690
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shell", style: chunkP5HF55MO_cjs.tokenStyle(style), children: [
|
|
23577
23691
|
/* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "kf-admin-shell__sidebar", children: [
|
|
23578
23692
|
brand !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shell__brand", children: [
|
|
23579
23693
|
brand.logo !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shell__brand-logo", children: brand.logo }) : null,
|
|
@@ -23677,7 +23791,7 @@ function AdminShell({
|
|
|
23677
23791
|
] });
|
|
23678
23792
|
}
|
|
23679
23793
|
function KaafilAgencyWorkspace(props) {
|
|
23680
|
-
const session =
|
|
23794
|
+
const session = chunkP5HF55MO_cjs.useSession();
|
|
23681
23795
|
if (session.status !== "authenticated") {
|
|
23682
23796
|
return null;
|
|
23683
23797
|
}
|
|
@@ -23702,8 +23816,8 @@ function ReadyKaafilAgencyWorkspace(props) {
|
|
|
23702
23816
|
components,
|
|
23703
23817
|
style
|
|
23704
23818
|
} = props;
|
|
23705
|
-
const { t } =
|
|
23706
|
-
const agencyAdminMe =
|
|
23819
|
+
const { t } = chunkP5HF55MO_cjs.useKaafilChrome();
|
|
23820
|
+
const agencyAdminMe = chunkX5EFVCYF_cjs.useAgencyAdminMe();
|
|
23707
23821
|
const [internalPane, setInternalPane] = react.useState(
|
|
23708
23822
|
initialPane ?? "trips"
|
|
23709
23823
|
);
|
|
@@ -23964,27 +24078,27 @@ function ReadyKaafilAgencyWorkspace(props) {
|
|
|
23964
24078
|
|
|
23965
24079
|
Object.defineProperty(exports, "BootErrorScreen", {
|
|
23966
24080
|
enumerable: true,
|
|
23967
|
-
get: function () { return
|
|
24081
|
+
get: function () { return chunkAJEZMD64_cjs.BootErrorScreen; }
|
|
23968
24082
|
});
|
|
23969
24083
|
Object.defineProperty(exports, "LockedTripScreen", {
|
|
23970
24084
|
enumerable: true,
|
|
23971
|
-
get: function () { return
|
|
24085
|
+
get: function () { return chunkAJEZMD64_cjs.LockedTripScreen; }
|
|
23972
24086
|
});
|
|
23973
24087
|
Object.defineProperty(exports, "NotFoundScreen", {
|
|
23974
24088
|
enumerable: true,
|
|
23975
|
-
get: function () { return
|
|
24089
|
+
get: function () { return chunkAJEZMD64_cjs.NotFoundScreen; }
|
|
23976
24090
|
});
|
|
23977
24091
|
Object.defineProperty(exports, "OfflineFallbackScreen", {
|
|
23978
24092
|
enumerable: true,
|
|
23979
|
-
get: function () { return
|
|
24093
|
+
get: function () { return chunkAJEZMD64_cjs.OfflineFallbackScreen; }
|
|
23980
24094
|
});
|
|
23981
24095
|
Object.defineProperty(exports, "PlanLockedScreen", {
|
|
23982
24096
|
enumerable: true,
|
|
23983
|
-
get: function () { return
|
|
24097
|
+
get: function () { return chunkAJEZMD64_cjs.PlanLockedScreen; }
|
|
23984
24098
|
});
|
|
23985
24099
|
Object.defineProperty(exports, "SessionExpiredScreen", {
|
|
23986
24100
|
enumerable: true,
|
|
23987
|
-
get: function () { return
|
|
24101
|
+
get: function () { return chunkAJEZMD64_cjs.SessionExpiredScreen; }
|
|
23988
24102
|
});
|
|
23989
24103
|
exports.AdminShell = AdminShell;
|
|
23990
24104
|
exports.AgencySettingsScreen = AgencySettingsScreen;
|