kaafil-react-uikit 0.6.0 → 0.7.1
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 +26 -0
- package/dist/admin/index.cjs +468 -446
- package/dist/admin/index.cjs.map +1 -1
- package/dist/admin/index.js +128 -106
- package/dist/admin/index.js.map +1 -1
- package/dist/{chunk-53ITV6GF.cjs → chunk-4R7QBTNL.cjs} +4 -4
- package/dist/{chunk-53ITV6GF.cjs.map → chunk-4R7QBTNL.cjs.map} +1 -1
- package/dist/{chunk-HNENKHHJ.js → chunk-57DYMIWS.js} +5 -5
- package/dist/{chunk-HNENKHHJ.js.map → chunk-57DYMIWS.js.map} +1 -1
- package/dist/{chunk-XPF737RG.cjs → chunk-7COMKJTM.cjs} +9 -9
- package/dist/{chunk-XPF737RG.cjs.map → chunk-7COMKJTM.cjs.map} +1 -1
- package/dist/{chunk-OOHU3ECL.cjs → chunk-7O3TPYK4.cjs} +17 -17
- package/dist/{chunk-OOHU3ECL.cjs.map → chunk-7O3TPYK4.cjs.map} +1 -1
- package/dist/{chunk-4QMYUKW4.cjs → chunk-ASFUY3IE.cjs} +5368 -5358
- package/dist/chunk-ASFUY3IE.cjs.map +1 -0
- package/dist/{chunk-CJMUPBZ7.js → chunk-DYOAKTGJ.js} +5 -5
- package/dist/{chunk-CJMUPBZ7.js.map → chunk-DYOAKTGJ.js.map} +1 -1
- package/dist/{chunk-JHLPO6LZ.js → chunk-E3KOQYY2.js} +3 -3
- package/dist/{chunk-JHLPO6LZ.js.map → chunk-E3KOQYY2.js.map} +1 -1
- package/dist/{chunk-F6B4CDUL.js → chunk-GKR52SVU.js} +3 -3
- package/dist/{chunk-F6B4CDUL.js.map → chunk-GKR52SVU.js.map} +1 -1
- package/dist/chunk-LBTAK5JA.cjs +12 -0
- package/dist/{chunk-V45VFRBI.cjs.map → chunk-LBTAK5JA.cjs.map} +1 -1
- package/dist/{chunk-77RKNRNH.cjs → chunk-MP4IMAPF.cjs} +55 -55
- package/dist/{chunk-77RKNRNH.cjs.map → chunk-MP4IMAPF.cjs.map} +1 -1
- package/dist/{chunk-AWOKWGTB.cjs → chunk-PQJGV3RE.cjs} +83 -83
- package/dist/{chunk-AWOKWGTB.cjs.map → chunk-PQJGV3RE.cjs.map} +1 -1
- package/dist/{chunk-F6YBM6EE.js → chunk-Q4B25EZO.js} +3 -3
- package/dist/{chunk-F6YBM6EE.js.map → chunk-Q4B25EZO.js.map} +1 -1
- package/dist/{chunk-XPCCR7OH.cjs → chunk-TDFM563X.cjs} +12 -12
- package/dist/{chunk-XPCCR7OH.cjs.map → chunk-TDFM563X.cjs.map} +1 -1
- package/dist/{chunk-PWZNUXKT.js → chunk-VU5BCK2P.js} +3 -3
- package/dist/{chunk-PWZNUXKT.js.map → chunk-VU5BCK2P.js.map} +1 -1
- package/dist/{chunk-4BPCKBLP.js → chunk-YHGAFRN6.js} +3 -3
- package/dist/{chunk-4BPCKBLP.js.map → chunk-YHGAFRN6.js.map} +1 -1
- package/dist/{chunk-SEPFCHBJ.js → chunk-ZURCZQQ7.js} +5368 -5358
- package/dist/chunk-ZURCZQQ7.js.map +1 -0
- package/dist/core/index.cjs +107 -107
- package/dist/core/index.js +10 -10
- package/dist/index.css +1 -1
- package/dist/manager/index.cjs +239 -239
- package/dist/manager/index.js +6 -6
- package/dist/traveller/index.cjs +35 -35
- package/dist/traveller/index.js +5 -5
- package/package.json +1 -1
- package/dist/chunk-4QMYUKW4.cjs.map +0 -1
- package/dist/chunk-SEPFCHBJ.js.map +0 -1
- package/dist/chunk-V45VFRBI.cjs +0 -12
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 chunkMP4IMAPF_cjs = require('../chunk-MP4IMAPF.cjs');
|
|
4
|
+
var chunkPQJGV3RE_cjs = require('../chunk-PQJGV3RE.cjs');
|
|
5
|
+
require('../chunk-4R7QBTNL.cjs');
|
|
6
|
+
var chunkTDFM563X_cjs = require('../chunk-TDFM563X.cjs');
|
|
7
|
+
var chunkASFUY3IE_cjs = require('../chunk-ASFUY3IE.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: chunkASFUY3IE_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: chunkASFUY3IE_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: chunkASFUY3IE_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 = chunkASFUY3IE_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 } = chunkASFUY3IE_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: chunkASFUY3IE_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: [
|
|
@@ -1005,8 +1005,8 @@ function AgencySettingsScreen({
|
|
|
1005
1005
|
components,
|
|
1006
1006
|
style
|
|
1007
1007
|
}) {
|
|
1008
|
-
const { t } =
|
|
1009
|
-
const { document: document2, loaded, lastFetchFailed, refresh, patchSettings } =
|
|
1008
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1009
|
+
const { document: document2, loaded, lastFetchFailed, refresh, patchSettings } = chunkMP4IMAPF_cjs.useAgencySettings();
|
|
1010
1010
|
const [selectedSectionId, setSelectedSectionId] = react.useState(AGENCY_SETTINGS_SECTIONS[0]?.id);
|
|
1011
1011
|
const [savingSectionId, setSavingSectionId] = react.useState(void 0);
|
|
1012
1012
|
const [sectionError, setSectionError] = react.useState(void 0);
|
|
@@ -1023,13 +1023,13 @@ function AgencySettingsScreen({
|
|
|
1023
1023
|
try {
|
|
1024
1024
|
await patchSettings({ version: document2.version, [sectionId]: patch });
|
|
1025
1025
|
} catch (error) {
|
|
1026
|
-
const kind =
|
|
1026
|
+
const kind = chunkPQJGV3RE_cjs.classifyError(error).code === "CONFLICT_VERSION" ? "conflict" : "failed";
|
|
1027
1027
|
setSectionError({ sectionId, kind });
|
|
1028
1028
|
} finally {
|
|
1029
1029
|
setSavingSectionId(void 0);
|
|
1030
1030
|
}
|
|
1031
1031
|
}
|
|
1032
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen", style:
|
|
1032
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
1033
1033
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-agency-settings-screen__heading", children: [
|
|
1034
1034
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-agency-settings-screen__eyebrow", children: t("chrome.agencySettingsScreen.eyebrow") }),
|
|
1035
1035
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "kf-agency-settings-screen__title", children: title }),
|
|
@@ -1146,7 +1146,7 @@ function summaryFor(t, selected, everyLabelKey, optionLabelKey) {
|
|
|
1146
1146
|
return selected.length === 0 ? t(everyLabelKey) : selected.map(optionLabelKey).join(", ");
|
|
1147
1147
|
}
|
|
1148
1148
|
function AutoAttachPanel({ template, saving, onSave }) {
|
|
1149
|
-
const { t } =
|
|
1149
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1150
1150
|
const titleId = react.useId();
|
|
1151
1151
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
1152
1152
|
const [draft, setDraft] = react.useState(() => draftFromTemplate(template));
|
|
@@ -1382,9 +1382,9 @@ function TemplateEditorHeader({
|
|
|
1382
1382
|
onPublish,
|
|
1383
1383
|
style
|
|
1384
1384
|
}) {
|
|
1385
|
-
const { t } =
|
|
1385
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1386
1386
|
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:
|
|
1387
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
1388
1388
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header-identity", children: [
|
|
1389
1389
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__header-top", children: [
|
|
1390
1390
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1453,7 +1453,7 @@ function TemplateItemEditDialog({
|
|
|
1453
1453
|
onRemove,
|
|
1454
1454
|
onClose
|
|
1455
1455
|
}) {
|
|
1456
|
-
const { t } =
|
|
1456
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1457
1457
|
const titleId = react.useId();
|
|
1458
1458
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1459
1459
|
SheetDialog,
|
|
@@ -1603,7 +1603,7 @@ function TemplateItemRow({
|
|
|
1603
1603
|
onReorder,
|
|
1604
1604
|
style
|
|
1605
1605
|
}) {
|
|
1606
|
-
const { t } =
|
|
1606
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1607
1607
|
const dayOffset = item.dayOffset.trim().length > 0 ? Number.parseInt(item.dayOffset, 10) : null;
|
|
1608
1608
|
const dayLabel = dayOffset === null ? "\u2014" : dayOffset > 0 ? `D+${dayOffset}` : `D${dayOffset}`;
|
|
1609
1609
|
return (
|
|
@@ -1631,7 +1631,7 @@ function TemplateItemRow({
|
|
|
1631
1631
|
onReorder(draggedDraftId, item.draftId);
|
|
1632
1632
|
}
|
|
1633
1633
|
},
|
|
1634
|
-
style:
|
|
1634
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
1635
1635
|
children: [
|
|
1636
1636
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__item-drag", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(DragHandleIcon, {}) }),
|
|
1637
1637
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__item-index", children: String(index + 1).padStart(2, "0") }),
|
|
@@ -1703,8 +1703,8 @@ function ChecklistTemplateEditor({
|
|
|
1703
1703
|
components,
|
|
1704
1704
|
style
|
|
1705
1705
|
}) {
|
|
1706
|
-
const { t } =
|
|
1707
|
-
const { templates, loaded, lastFetchFailed, refresh, patchTemplate, publishTemplate } =
|
|
1706
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1707
|
+
const { templates, loaded, lastFetchFailed, refresh, patchTemplate, publishTemplate } = chunkMP4IMAPF_cjs.useAgencyChecklistTemplates();
|
|
1708
1708
|
const template = templates.find((candidate) => candidate.id === templateId);
|
|
1709
1709
|
const [title, setTitle] = react.useState("");
|
|
1710
1710
|
const [items, setItems] = react.useState([]);
|
|
@@ -1821,7 +1821,7 @@ function ChecklistTemplateEditor({
|
|
|
1821
1821
|
}
|
|
1822
1822
|
};
|
|
1823
1823
|
if (lastFetchFailed && !loaded) {
|
|
1824
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style:
|
|
1824
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__status-block", role: "alert", children: [
|
|
1825
1825
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon2, { className: "kf-checklist-template-editor__status-icon kf-checklist-template-editor__status-icon--danger" }),
|
|
1826
1826
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-checklist-template-editor__status-title", children: t("chrome.checklistTemplateEditor.errorTitle") }),
|
|
1827
1827
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1836,20 +1836,20 @@ function ChecklistTemplateEditor({
|
|
|
1836
1836
|
] }) });
|
|
1837
1837
|
}
|
|
1838
1838
|
if (!loaded) {
|
|
1839
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style:
|
|
1839
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-checklist-template-editor", "data-framed": "true", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__skeleton", "aria-hidden": "true", children: [
|
|
1840
1840
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__skeleton-block" }),
|
|
1841
1841
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__skeleton-block" }),
|
|
1842
1842
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-checklist-template-editor__skeleton-block" })
|
|
1843
1843
|
] }) });
|
|
1844
1844
|
}
|
|
1845
1845
|
if (template === void 0) {
|
|
1846
|
-
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: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor__status-block", children: [
|
|
1847
1847
|
/* @__PURE__ */ jsxRuntime.jsx(EmptyStateIcon2, { className: "kf-checklist-template-editor__status-icon" }),
|
|
1848
1848
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-checklist-template-editor__status-title", children: t("chrome.checklistTemplateEditor.notFoundTitle") })
|
|
1849
1849
|
] }) });
|
|
1850
1850
|
}
|
|
1851
1851
|
const editingItem = items.find((item) => item.draftId === editingDraftId);
|
|
1852
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor", style:
|
|
1852
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-editor", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
1853
1853
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1854
1854
|
TemplateEditorHeader2,
|
|
1855
1855
|
{
|
|
@@ -1952,7 +1952,7 @@ var AUDIENCE_HINT_KEY = {
|
|
|
1952
1952
|
EXTERNAL: "chrome.checklistTemplateLibrary.audience.externalHint"
|
|
1953
1953
|
};
|
|
1954
1954
|
function CreateTemplateSheet({ onSubmit, onClose }) {
|
|
1955
|
-
const { t } =
|
|
1955
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
1956
1956
|
const titleId = react.useId();
|
|
1957
1957
|
const [locale, setLocale] = react.useState("en");
|
|
1958
1958
|
const [title, setTitle] = react.useState("");
|
|
@@ -2069,7 +2069,7 @@ function DeleteTemplateConfirmSheet({
|
|
|
2069
2069
|
onConfirm,
|
|
2070
2070
|
onClose
|
|
2071
2071
|
}) {
|
|
2072
|
-
const { t } =
|
|
2072
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
2073
2073
|
const titleId = react.useId();
|
|
2074
2074
|
if (template === void 0) {
|
|
2075
2075
|
return null;
|
|
@@ -2188,7 +2188,7 @@ function TemplateRow({
|
|
|
2188
2188
|
onDelete,
|
|
2189
2189
|
style
|
|
2190
2190
|
}) {
|
|
2191
|
-
const { t } =
|
|
2191
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
2192
2192
|
const statusLabelKey5 = template.status === "PUBLISHED" ? "chrome.checklistTemplateLibrary.status.published" : "chrome.checklistTemplateLibrary.status.draft";
|
|
2193
2193
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2194
2194
|
"tr",
|
|
@@ -2197,7 +2197,7 @@ function TemplateRow({
|
|
|
2197
2197
|
className: "kf-checklist-template-library__table-row",
|
|
2198
2198
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
2199
2199
|
"data-selected": selected === true ? "true" : void 0,
|
|
2200
|
-
style:
|
|
2200
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
2201
2201
|
children: [
|
|
2202
2202
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2203
2203
|
"td",
|
|
@@ -2287,7 +2287,7 @@ function TemplateLibrarySkeleton() {
|
|
|
2287
2287
|
] }, rowIndex)) }) }) });
|
|
2288
2288
|
}
|
|
2289
2289
|
function CardHeading({ count }) {
|
|
2290
|
-
const { t } =
|
|
2290
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
2291
2291
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-checklist-template-library__card-title", children: t(
|
|
2292
2292
|
count === 1 ? "chrome.checklistTemplateLibrary.countLabelOne" : "chrome.checklistTemplateLibrary.countLabel"
|
|
2293
2293
|
).replace("{count}", String(count)) });
|
|
@@ -2303,8 +2303,8 @@ function ChecklistTemplateLibrary({
|
|
|
2303
2303
|
components,
|
|
2304
2304
|
style
|
|
2305
2305
|
}) {
|
|
2306
|
-
const { t } =
|
|
2307
|
-
const { templates, loaded, lastFetchFailed, refresh, createTemplate, removeTemplate } =
|
|
2306
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
2307
|
+
const { templates, loaded, lastFetchFailed, refresh, createTemplate, removeTemplate } = chunkMP4IMAPF_cjs.useAgencyChecklistTemplates();
|
|
2308
2308
|
const isControlled = controlledCreating !== void 0 && onCreatingChange !== void 0;
|
|
2309
2309
|
const [internalCreating, setInternalCreating] = react.useState(false);
|
|
2310
2310
|
const creating = isControlled ? controlledCreating : internalCreating;
|
|
@@ -2340,7 +2340,7 @@ function ChecklistTemplateLibrary({
|
|
|
2340
2340
|
]
|
|
2341
2341
|
}
|
|
2342
2342
|
);
|
|
2343
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library", style:
|
|
2343
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
2344
2344
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library__heading", children: [
|
|
2345
2345
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-checklist-template-library__heading-copy", children: [
|
|
2346
2346
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-checklist-template-library__title", children: title }),
|
|
@@ -2635,8 +2635,8 @@ function BuilderHeader({
|
|
|
2635
2635
|
pending,
|
|
2636
2636
|
style
|
|
2637
2637
|
}) {
|
|
2638
|
-
const { t } =
|
|
2639
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header", style:
|
|
2638
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
2639
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
2640
2640
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header-identity", children: [
|
|
2641
2641
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__header-top", children: [
|
|
2642
2642
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2832,7 +2832,7 @@ var fallback = {
|
|
|
2832
2832
|
preview: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-form-builder__preview-unsupported", children: field.label }),
|
|
2833
2833
|
configFields: NoConfigFields
|
|
2834
2834
|
};
|
|
2835
|
-
var fieldRegistry =
|
|
2835
|
+
var fieldRegistry = chunkASFUY3IE_cjs.createRegistry({ fallback });
|
|
2836
2836
|
fieldRegistry.register("HEADING", {
|
|
2837
2837
|
preview: ({ field }) => /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-form-builder__preview-heading", children: field.label }),
|
|
2838
2838
|
configFields: NoConfigFields
|
|
@@ -3304,7 +3304,7 @@ fieldRegistry.register("ADDRESS", {
|
|
|
3304
3304
|
}
|
|
3305
3305
|
});
|
|
3306
3306
|
function FieldEditDialog(props) {
|
|
3307
|
-
const { t } =
|
|
3307
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
3308
3308
|
const titleId = react.useId();
|
|
3309
3309
|
const { bindings, saving, onClose } = props;
|
|
3310
3310
|
const isEdit = props.mode === "edit";
|
|
@@ -3541,7 +3541,7 @@ function FieldEditDialog(props) {
|
|
|
3541
3541
|
);
|
|
3542
3542
|
}
|
|
3543
3543
|
function LivePreviewPane({ title, sections, fields }) {
|
|
3544
|
-
const { t } =
|
|
3544
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
3545
3545
|
const [frame, setFrame] = react.useState("desktop");
|
|
3546
3546
|
const [answers, setAnswers] = react.useState({});
|
|
3547
3547
|
function setAnswer(fieldId, value) {
|
|
@@ -3630,7 +3630,7 @@ function FieldRow({
|
|
|
3630
3630
|
onDragEnd,
|
|
3631
3631
|
style
|
|
3632
3632
|
}) {
|
|
3633
|
-
const { t } =
|
|
3633
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
3634
3634
|
const hasHelp = field.helpText !== null && field.helpText.length > 0;
|
|
3635
3635
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3636
3636
|
"li",
|
|
@@ -3638,7 +3638,7 @@ function FieldRow({
|
|
|
3638
3638
|
className: "kf-form-builder__field-row",
|
|
3639
3639
|
"data-dragging": dragging ? "true" : void 0,
|
|
3640
3640
|
"data-drag-over": dragOver ? "true" : void 0,
|
|
3641
|
-
style:
|
|
3641
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
3642
3642
|
onDragOver: (event) => {
|
|
3643
3643
|
event.preventDefault();
|
|
3644
3644
|
onDragOverRow();
|
|
@@ -3700,7 +3700,7 @@ function SectionBlock({
|
|
|
3700
3700
|
onOpenField,
|
|
3701
3701
|
onReorderField
|
|
3702
3702
|
}) {
|
|
3703
|
-
const { t } =
|
|
3703
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
3704
3704
|
const [title, setTitle] = react.useState(section.title ?? "");
|
|
3705
3705
|
const [draggedFieldId, setDraggedFieldId] = react.useState(void 0);
|
|
3706
3706
|
const [dragOverFieldId, setDragOverFieldId] = react.useState(void 0);
|
|
@@ -3834,7 +3834,7 @@ function draftFromForm(form) {
|
|
|
3834
3834
|
};
|
|
3835
3835
|
}
|
|
3836
3836
|
function TargetingSummary({ form }) {
|
|
3837
|
-
const { t } =
|
|
3837
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
3838
3838
|
const anchorLabel = (anchor) => t(`chrome.formBuilder.summary.anchor.${anchor}`);
|
|
3839
3839
|
const eventTypes = form.appliesToEventTypes.length === 0 ? t("chrome.formBuilder.summary.everyEventType") : form.appliesToEventTypes.map((type) => t(`chrome.formBuilder.targeting.eventType.${type}`)).join(" \xB7 ");
|
|
3840
3840
|
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 +3895,7 @@ function TargetingSummary({ form }) {
|
|
|
3895
3895
|
] }, cell.key)) });
|
|
3896
3896
|
}
|
|
3897
3897
|
function TargetingPanel({ form, saving, onSave }) {
|
|
3898
|
-
const { t } =
|
|
3898
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
3899
3899
|
const [editing, setEditing] = react.useState(false);
|
|
3900
3900
|
const [submitted, setSubmitted] = react.useState(false);
|
|
3901
3901
|
const [draft, setDraft] = react.useState(() => draftFromForm(form));
|
|
@@ -4191,7 +4191,7 @@ function buildReorderSections(sections, fieldsBySection) {
|
|
|
4191
4191
|
}));
|
|
4192
4192
|
}
|
|
4193
4193
|
function FormBuilder({ formId, onBack, components, style }) {
|
|
4194
|
-
const { t } =
|
|
4194
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
4195
4195
|
const {
|
|
4196
4196
|
getForm,
|
|
4197
4197
|
patchForm,
|
|
@@ -4209,7 +4209,7 @@ function FormBuilder({ formId, onBack, components, style }) {
|
|
|
4209
4209
|
deleteField,
|
|
4210
4210
|
reorderForm,
|
|
4211
4211
|
listBindings
|
|
4212
|
-
} =
|
|
4212
|
+
} = chunkMP4IMAPF_cjs.useAgencyForms();
|
|
4213
4213
|
const [form, setForm] = react.useState(void 0);
|
|
4214
4214
|
const [loadFailed, setLoadFailed] = react.useState(false);
|
|
4215
4215
|
const [bindings, setBindings] = react.useState([]);
|
|
@@ -4420,7 +4420,7 @@ function FormBuilder({ formId, onBack, components, style }) {
|
|
|
4420
4420
|
}
|
|
4421
4421
|
}
|
|
4422
4422
|
if (loadFailed && form === void 0) {
|
|
4423
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style:
|
|
4423
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__status-block", role: "alert", children: [
|
|
4424
4424
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon4, { className: "kf-form-builder__status-icon kf-form-builder__status-icon--danger" }),
|
|
4425
4425
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-form-builder__status-title", children: t("chrome.formBuilder.errorTitle") }),
|
|
4426
4426
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4435,13 +4435,13 @@ function FormBuilder({ formId, onBack, components, style }) {
|
|
|
4435
4435
|
] }) });
|
|
4436
4436
|
}
|
|
4437
4437
|
if (form === void 0) {
|
|
4438
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style:
|
|
4438
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-form-builder", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder__skeleton", "aria-hidden": "true", children: [
|
|
4439
4439
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-form-builder__skeleton-block" }),
|
|
4440
4440
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-form-builder__skeleton-block" }),
|
|
4441
4441
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-form-builder__skeleton-block" })
|
|
4442
4442
|
] }) });
|
|
4443
4443
|
}
|
|
4444
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder", style:
|
|
4444
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-form-builder", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
4445
4445
|
onBack !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", onClick: onBack, className: "kf-form-builder__back-link", children: [
|
|
4446
4446
|
/* @__PURE__ */ jsxRuntime.jsx(BackIcon, {}),
|
|
4447
4447
|
t("chrome.formBuilder.backToLibrary")
|
|
@@ -4595,7 +4595,7 @@ var AUDIENCE_LABEL_KEY2 = {
|
|
|
4595
4595
|
MANAGER: "chrome.formsLibrary.audience.manager"
|
|
4596
4596
|
};
|
|
4597
4597
|
function CreateFormSheet({ onSubmit, onClose }) {
|
|
4598
|
-
const { t } =
|
|
4598
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
4599
4599
|
const titleId = react.useId();
|
|
4600
4600
|
const [locale, setLocale] = react.useState("en");
|
|
4601
4601
|
const [title, setTitle] = react.useState("");
|
|
@@ -4623,7 +4623,7 @@ function CreateFormSheet({ onSubmit, onClose }) {
|
|
|
4623
4623
|
});
|
|
4624
4624
|
onClose();
|
|
4625
4625
|
} catch (error) {
|
|
4626
|
-
setErrorCode(
|
|
4626
|
+
setErrorCode(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
4627
4627
|
} finally {
|
|
4628
4628
|
setPending(false);
|
|
4629
4629
|
}
|
|
@@ -4811,7 +4811,7 @@ function formatDate2(iso) {
|
|
|
4811
4811
|
});
|
|
4812
4812
|
}
|
|
4813
4813
|
function FormRow({ form, selected, onSelect, style }) {
|
|
4814
|
-
const { t } =
|
|
4814
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
4815
4815
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4816
4816
|
"tr",
|
|
4817
4817
|
{
|
|
@@ -4819,7 +4819,7 @@ function FormRow({ form, selected, onSelect, style }) {
|
|
|
4819
4819
|
className: "kf-forms-library__table-row",
|
|
4820
4820
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
4821
4821
|
"data-selected": selected === true ? "true" : void 0,
|
|
4822
|
-
style:
|
|
4822
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
4823
4823
|
children: [
|
|
4824
4824
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4825
4825
|
"td",
|
|
@@ -4875,7 +4875,7 @@ function FormsLibrarySkeleton() {
|
|
|
4875
4875
|
] }, rowIndex)) }) }) });
|
|
4876
4876
|
}
|
|
4877
4877
|
function CardHeading2({ count }) {
|
|
4878
|
-
const { t } =
|
|
4878
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
4879
4879
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-forms-library__card-title", children: t(
|
|
4880
4880
|
count === 1 ? "chrome.formsLibrary.countLabelOne" : "chrome.formsLibrary.countLabel"
|
|
4881
4881
|
).replace("{count}", String(count)) });
|
|
@@ -4890,7 +4890,7 @@ function StatusFilterBar({
|
|
|
4890
4890
|
active,
|
|
4891
4891
|
onChange
|
|
4892
4892
|
}) {
|
|
4893
|
-
const { t } =
|
|
4893
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
4894
4894
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-forms-library__filter-bar", children: [
|
|
4895
4895
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t("chrome.formsLibrary.filter.legend") }),
|
|
4896
4896
|
STATUS_FILTERS.map((filter) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4916,8 +4916,8 @@ function FormsLibrary({
|
|
|
4916
4916
|
components,
|
|
4917
4917
|
style
|
|
4918
4918
|
}) {
|
|
4919
|
-
const { t } =
|
|
4920
|
-
const { forms, loaded, lastFetchFailed, refresh, createForm } =
|
|
4919
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
4920
|
+
const { forms, loaded, lastFetchFailed, refresh, createForm } = chunkMP4IMAPF_cjs.useAgencyForms();
|
|
4921
4921
|
const isControlled = controlledCreating !== void 0 && onCreatingChange !== void 0;
|
|
4922
4922
|
const [internalCreating, setInternalCreating] = react.useState(false);
|
|
4923
4923
|
const creating = isControlled ? controlledCreating : internalCreating;
|
|
@@ -4928,7 +4928,7 @@ function FormsLibrary({
|
|
|
4928
4928
|
await createForm(input);
|
|
4929
4929
|
};
|
|
4930
4930
|
const visibleForms = statusFilter === "ALL" ? forms : forms.filter((form) => form.status === statusFilter);
|
|
4931
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-forms-library", style:
|
|
4931
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-forms-library", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
4932
4932
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-forms-library__heading", children: [
|
|
4933
4933
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-forms-library__title", children: title }),
|
|
4934
4934
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-forms-library__subtitle", children: subtitle }) : null
|
|
@@ -5004,9 +5004,9 @@ function FormsAuthoringFlow({ initialFormId, style }) {
|
|
|
5004
5004
|
setSelectedFormId(void 0);
|
|
5005
5005
|
}
|
|
5006
5006
|
if (selectedFormId === void 0) {
|
|
5007
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style:
|
|
5007
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(FormsLibrary, { onSelectForm: handleSelect }) });
|
|
5008
5008
|
}
|
|
5009
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style:
|
|
5009
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-forms-authoring-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(FormBuilder, { formId: selectedFormId, onBack: handleBack }) });
|
|
5010
5010
|
}
|
|
5011
5011
|
function SearchIcon(props) {
|
|
5012
5012
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -5157,7 +5157,7 @@ function AdminAvatar({
|
|
|
5157
5157
|
className: "kf-admin-shared-patterns-avatar",
|
|
5158
5158
|
"data-size": size,
|
|
5159
5159
|
"aria-hidden": "true",
|
|
5160
|
-
style:
|
|
5160
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style, {
|
|
5161
5161
|
"--kf-admin-shared-patterns-avatar-computed-size": SIZE_VAR[size],
|
|
5162
5162
|
"--kf-admin-shared-patterns-avatar-computed-bg": `var(--kf-color-avatar-${step})`
|
|
5163
5163
|
}),
|
|
@@ -5177,7 +5177,7 @@ function ManagerResultRow({
|
|
|
5177
5177
|
onSelect,
|
|
5178
5178
|
style
|
|
5179
5179
|
}) {
|
|
5180
|
-
const { t } =
|
|
5180
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5181
5181
|
const initials = initialsFromName(manager.fullName);
|
|
5182
5182
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5183
5183
|
"tr",
|
|
@@ -5185,7 +5185,7 @@ function ManagerResultRow({
|
|
|
5185
5185
|
role: "row",
|
|
5186
5186
|
className: "kf-manager-directory-flow__table-row",
|
|
5187
5187
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
5188
|
-
style:
|
|
5188
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
5189
5189
|
children: [
|
|
5190
5190
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5191
5191
|
"td",
|
|
@@ -5294,8 +5294,8 @@ function ManagerResultsListBody({
|
|
|
5294
5294
|
onCountChange,
|
|
5295
5295
|
onRetry
|
|
5296
5296
|
}) {
|
|
5297
|
-
const { t } =
|
|
5298
|
-
const directories =
|
|
5297
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5298
|
+
const directories = chunkMP4IMAPF_cjs.useDirectories();
|
|
5299
5299
|
const [errorMessage, setErrorMessage] = react.useState(void 0);
|
|
5300
5300
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
5301
5301
|
const ManagerRow = ManagerResultRowComponent ?? ManagerResultRow;
|
|
@@ -5306,7 +5306,7 @@ function ManagerResultsListBody({
|
|
|
5306
5306
|
setErrorMessage(void 0);
|
|
5307
5307
|
return page;
|
|
5308
5308
|
} catch (error) {
|
|
5309
|
-
setErrorMessage(
|
|
5309
|
+
setErrorMessage(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
5310
5310
|
return { rows: [], nextCursor: void 0 };
|
|
5311
5311
|
} finally {
|
|
5312
5312
|
setHasSettled(true);
|
|
@@ -5314,7 +5314,7 @@ function ManagerResultsListBody({
|
|
|
5314
5314
|
},
|
|
5315
5315
|
[directories, filters]
|
|
5316
5316
|
);
|
|
5317
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
5317
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkMP4IMAPF_cjs.usePaginatedList(fetch);
|
|
5318
5318
|
const isLoading = !hasSettled;
|
|
5319
5319
|
const reportedCount = isLoading || errorMessage !== void 0 ? void 0 : rows.length;
|
|
5320
5320
|
react.useEffect(() => {
|
|
@@ -5411,7 +5411,7 @@ function ManagerSearchInput({
|
|
|
5411
5411
|
debounceMs,
|
|
5412
5412
|
onDebouncedChange
|
|
5413
5413
|
}) {
|
|
5414
|
-
const { t } =
|
|
5414
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5415
5415
|
const [value, setValue] = react.useState("");
|
|
5416
5416
|
react.useEffect(() => {
|
|
5417
5417
|
const timer = setTimeout(() => onDebouncedChange(value), debounceMs);
|
|
@@ -5450,12 +5450,12 @@ function ManagerDirectoryFlow({
|
|
|
5450
5450
|
components,
|
|
5451
5451
|
style
|
|
5452
5452
|
}) {
|
|
5453
|
-
const { t } =
|
|
5453
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5454
5454
|
const [query, setQuery] = react.useState("");
|
|
5455
5455
|
const [count, setCount] = react.useState(void 0);
|
|
5456
5456
|
const trimmedQuery = query.trim();
|
|
5457
5457
|
const handleCountChange = react.useCallback((next) => setCount(next), []);
|
|
5458
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-directory-flow", style:
|
|
5458
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-directory-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
5459
5459
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-directory-flow__heading", children: [
|
|
5460
5460
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-manager-directory-flow__title", children: title }),
|
|
5461
5461
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-directory-flow__subtitle", children: subtitle }) : null
|
|
@@ -5527,7 +5527,7 @@ function formatDate3(iso) {
|
|
|
5527
5527
|
return new Date(iso).toLocaleDateString("en-GB", { day: "2-digit", month: "short" });
|
|
5528
5528
|
}
|
|
5529
5529
|
function ManagerAssignmentsCard({ trips }) {
|
|
5530
|
-
const { t } =
|
|
5530
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5531
5531
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-manager-profile-section__card", children: [
|
|
5532
5532
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section__card-head", children: [
|
|
5533
5533
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-manager-profile-section__card-title", children: t("chrome.managerProfileSection.trips.title") }),
|
|
@@ -5591,7 +5591,7 @@ function HeroProfileHeader({
|
|
|
5591
5591
|
glowTone,
|
|
5592
5592
|
style
|
|
5593
5593
|
}) {
|
|
5594
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-hero", "data-glow": glowTone, style:
|
|
5594
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-hero", "data-glow": glowTone, style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
5595
5595
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-hero-glow", "aria-hidden": "true" }),
|
|
5596
5596
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shared-patterns-hero-row", children: [
|
|
5597
5597
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shared-patterns-hero-avatar", "aria-hidden": "true", children: avatarInitials }),
|
|
@@ -5624,7 +5624,7 @@ function initialsFromName2(name) {
|
|
|
5624
5624
|
return `${first}${last}`.toUpperCase();
|
|
5625
5625
|
}
|
|
5626
5626
|
function ManagerProfileHero({ profile, onBack }) {
|
|
5627
|
-
const { t } =
|
|
5627
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5628
5628
|
const initials = initialsFromName2(profile.fullName);
|
|
5629
5629
|
const stats = [
|
|
5630
5630
|
{ key: "trips", label: t("chrome.managerProfileSection.hero.trips"), value: profile.tripCount },
|
|
@@ -5683,12 +5683,12 @@ function ManagerProfileSection({
|
|
|
5683
5683
|
components,
|
|
5684
5684
|
style
|
|
5685
5685
|
}) {
|
|
5686
|
-
const { t } =
|
|
5687
|
-
const { read, readFailed, refresh } =
|
|
5686
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5687
|
+
const { read, readFailed, refresh } = chunkMP4IMAPF_cjs.useAgencyManagerProfile(managerRef);
|
|
5688
5688
|
const Hero = components?.Hero ?? ManagerProfileHero;
|
|
5689
5689
|
const AssignmentsCard = components?.AssignmentsCard ?? ManagerAssignmentsCard;
|
|
5690
5690
|
if (readFailed) {
|
|
5691
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style:
|
|
5691
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section__status-block", role: "alert", children: [
|
|
5692
5692
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon7, { className: "kf-manager-profile-section__status-icon kf-manager-profile-section__status-icon--danger" }),
|
|
5693
5693
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-profile-section__status-title", children: t("chrome.managerProfileSection.errorTitle") }),
|
|
5694
5694
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-manager-profile-section__status-body", children: t("chrome.managerProfileSection.errorBody") }),
|
|
@@ -5704,9 +5704,9 @@ function ManagerProfileSection({
|
|
|
5704
5704
|
] }) });
|
|
5705
5705
|
}
|
|
5706
5706
|
if (read === void 0) {
|
|
5707
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style:
|
|
5707
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-manager-profile-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(ManagerProfileSkeleton, {}) });
|
|
5708
5708
|
}
|
|
5709
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section", style:
|
|
5709
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-manager-profile-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
5710
5710
|
/* @__PURE__ */ jsxRuntime.jsx(Hero, { profile: read, onBack }),
|
|
5711
5711
|
/* @__PURE__ */ jsxRuntime.jsx(AssignmentsCard, { trips: read.trips })
|
|
5712
5712
|
] });
|
|
@@ -5733,7 +5733,7 @@ function TemplateAuthoringFlow({
|
|
|
5733
5733
|
initialTemplateId,
|
|
5734
5734
|
style
|
|
5735
5735
|
}) {
|
|
5736
|
-
const { t } =
|
|
5736
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5737
5737
|
const [selectedTemplateId, setSelectedTemplateId] = react.useState(
|
|
5738
5738
|
initialTemplateId
|
|
5739
5739
|
);
|
|
@@ -5744,9 +5744,9 @@ function TemplateAuthoringFlow({
|
|
|
5744
5744
|
setSelectedTemplateId(void 0);
|
|
5745
5745
|
}
|
|
5746
5746
|
if (selectedTemplateId === void 0) {
|
|
5747
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-template-authoring-flow", style:
|
|
5747
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-template-authoring-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(ChecklistTemplateLibrary, { onSelectTemplate: handleSelect }) });
|
|
5748
5748
|
}
|
|
5749
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-template-authoring-flow", style:
|
|
5749
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-template-authoring-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
5750
5750
|
/* @__PURE__ */ jsxRuntime.jsxs("button", { type: "button", onClick: handleBack, className: "kf-template-authoring-flow__back-link", children: [
|
|
5751
5751
|
/* @__PURE__ */ jsxRuntime.jsx(BackIcon3, {}),
|
|
5752
5752
|
t("chrome.templateAuthoringFlow.backToLibrary")
|
|
@@ -5755,8 +5755,8 @@ function TemplateAuthoringFlow({
|
|
|
5755
5755
|
] });
|
|
5756
5756
|
}
|
|
5757
5757
|
function AddTravellerModal({ onClose, onCreated }) {
|
|
5758
|
-
const { t } =
|
|
5759
|
-
const directories =
|
|
5758
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5759
|
+
const directories = chunkMP4IMAPF_cjs.useDirectories();
|
|
5760
5760
|
const titleId = react.useId();
|
|
5761
5761
|
const [fullName, setFullName] = react.useState("");
|
|
5762
5762
|
const [phone, setPhone] = react.useState("");
|
|
@@ -5780,7 +5780,7 @@ function AddTravellerModal({ onClose, onCreated }) {
|
|
|
5780
5780
|
});
|
|
5781
5781
|
onCreated(created);
|
|
5782
5782
|
} catch (error) {
|
|
5783
|
-
setErrorMessage(
|
|
5783
|
+
setErrorMessage(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
5784
5784
|
} finally {
|
|
5785
5785
|
setIsSubmitting(false);
|
|
5786
5786
|
}
|
|
@@ -5994,7 +5994,7 @@ function TravellerResultRow({
|
|
|
5994
5994
|
onSelect,
|
|
5995
5995
|
style
|
|
5996
5996
|
}) {
|
|
5997
|
-
const { t } =
|
|
5997
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
5998
5998
|
const initials = initialsFromName3(traveller.fullName);
|
|
5999
5999
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6000
6000
|
"tr",
|
|
@@ -6002,7 +6002,7 @@ function TravellerResultRow({
|
|
|
6002
6002
|
role: "row",
|
|
6003
6003
|
className: "kf-traveller-directory__table-row",
|
|
6004
6004
|
"data-selectable": onSelect !== void 0 ? "true" : void 0,
|
|
6005
|
-
style:
|
|
6005
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
6006
6006
|
children: [
|
|
6007
6007
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6008
6008
|
"td",
|
|
@@ -6130,8 +6130,8 @@ function TravellerResultsListBody({
|
|
|
6130
6130
|
onCountChange,
|
|
6131
6131
|
onRetry
|
|
6132
6132
|
}) {
|
|
6133
|
-
const { t } =
|
|
6134
|
-
const directories =
|
|
6133
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6134
|
+
const directories = chunkMP4IMAPF_cjs.useDirectories();
|
|
6135
6135
|
const [errorMessage, setErrorMessage] = react.useState(void 0);
|
|
6136
6136
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
6137
6137
|
const fetch = react.useCallback(
|
|
@@ -6142,7 +6142,7 @@ function TravellerResultsListBody({
|
|
|
6142
6142
|
setErrorMessage(void 0);
|
|
6143
6143
|
return page;
|
|
6144
6144
|
} catch (error) {
|
|
6145
|
-
setErrorMessage(
|
|
6145
|
+
setErrorMessage(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
6146
6146
|
return { rows: [], nextCursor: void 0 };
|
|
6147
6147
|
} finally {
|
|
6148
6148
|
setHasSettled(true);
|
|
@@ -6150,7 +6150,7 @@ function TravellerResultsListBody({
|
|
|
6150
6150
|
},
|
|
6151
6151
|
[directories, query]
|
|
6152
6152
|
);
|
|
6153
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
6153
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkMP4IMAPF_cjs.usePaginatedList(fetch);
|
|
6154
6154
|
const isLoading = !hasSettled;
|
|
6155
6155
|
const reportedCount = isLoading || errorMessage !== void 0 ? void 0 : rows.length;
|
|
6156
6156
|
react.useEffect(() => {
|
|
@@ -6245,7 +6245,7 @@ function TravellerSearchInput({
|
|
|
6245
6245
|
debounceMs,
|
|
6246
6246
|
onDebouncedChange
|
|
6247
6247
|
}) {
|
|
6248
|
-
const { t } =
|
|
6248
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6249
6249
|
const [value, setValue] = react.useState("");
|
|
6250
6250
|
react.useEffect(() => {
|
|
6251
6251
|
const timer = setTimeout(() => onDebouncedChange(value), debounceMs);
|
|
@@ -6285,13 +6285,13 @@ function TravellerSearchBox({
|
|
|
6285
6285
|
trailingAction,
|
|
6286
6286
|
style
|
|
6287
6287
|
}) {
|
|
6288
|
-
const { t } =
|
|
6288
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6289
6289
|
const [query, setQuery] = react.useState("");
|
|
6290
6290
|
const [count, setCount] = react.useState(void 0);
|
|
6291
6291
|
const trimmed = query.trim();
|
|
6292
6292
|
const handleCountChange = react.useCallback((next) => setCount(next), []);
|
|
6293
6293
|
const isBelowFloor = minQueryLength > 0 && trimmed.length < minQueryLength;
|
|
6294
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory__search-box", style:
|
|
6294
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory__search-box", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
6295
6295
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory__search-box-input-row", children: [
|
|
6296
6296
|
/* @__PURE__ */ jsxRuntime.jsx(TravellerSearchInput, { debounceMs, onDebouncedChange: setQuery }),
|
|
6297
6297
|
count !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-traveller-directory__count", children: t(
|
|
@@ -6323,7 +6323,7 @@ function TravellerDirectoryFlow({
|
|
|
6323
6323
|
components,
|
|
6324
6324
|
style
|
|
6325
6325
|
}) {
|
|
6326
|
-
const { t } =
|
|
6326
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6327
6327
|
const [uncontrolledOpen, setUncontrolledOpen] = react.useState(false);
|
|
6328
6328
|
const isControlled = adding !== void 0 && onAddingChange !== void 0;
|
|
6329
6329
|
const isAddModalOpen = isControlled ? adding : uncontrolledOpen;
|
|
@@ -6346,7 +6346,7 @@ function TravellerDirectoryFlow({
|
|
|
6346
6346
|
);
|
|
6347
6347
|
const SearchBox = components?.TravellerSearchBox ?? TravellerSearchBox;
|
|
6348
6348
|
const AddModal = components?.AddTravellerModal ?? AddTravellerModal;
|
|
6349
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory-flow", style:
|
|
6349
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
6350
6350
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-directory-flow__heading", children: [
|
|
6351
6351
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-traveller-directory-flow__title", children: title }),
|
|
6352
6352
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-traveller-directory-flow__subtitle", children: subtitle }) : null
|
|
@@ -6372,7 +6372,7 @@ function TravellerDirectoryFlow({
|
|
|
6372
6372
|
] });
|
|
6373
6373
|
}
|
|
6374
6374
|
function useAgencyTravellerProfile(travellerRef) {
|
|
6375
|
-
const client =
|
|
6375
|
+
const client = chunkASFUY3IE_cjs.useKaafilClient();
|
|
6376
6376
|
const [read, setRead] = react.useState(void 0);
|
|
6377
6377
|
const [readFailed, setReadFailed] = react.useState(false);
|
|
6378
6378
|
const refresh = react.useCallback(async () => {
|
|
@@ -6429,7 +6429,7 @@ function formatMinor(minor, currency) {
|
|
|
6429
6429
|
}).format(minor / 100);
|
|
6430
6430
|
}
|
|
6431
6431
|
function TravellerLifetimeCard({ lifetime }) {
|
|
6432
|
-
const { t } =
|
|
6432
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6433
6433
|
if (lifetime.currency === null) {
|
|
6434
6434
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-traveller-profile-section__card", children: [
|
|
6435
6435
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__card-head", children: [
|
|
@@ -6477,7 +6477,7 @@ function formatTimestamp(iso) {
|
|
|
6477
6477
|
});
|
|
6478
6478
|
}
|
|
6479
6479
|
function TravellerNotesList({ notes }) {
|
|
6480
|
-
const { t } =
|
|
6480
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6481
6481
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-traveller-profile-section__card", children: [
|
|
6482
6482
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__card-head", children: [
|
|
6483
6483
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-traveller-profile-section__card-title", children: t("chrome.travellerProfileSection.notes.title") }),
|
|
@@ -6523,7 +6523,7 @@ function formatDateOfBirth(iso) {
|
|
|
6523
6523
|
});
|
|
6524
6524
|
}
|
|
6525
6525
|
function TravellerPersonalCard({ profile }) {
|
|
6526
|
-
const { t } =
|
|
6526
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6527
6527
|
const p = profile.profile;
|
|
6528
6528
|
const dob = formatDateOfBirth(p.dateOfBirth);
|
|
6529
6529
|
const email = p.email ?? profile.email;
|
|
@@ -6638,7 +6638,7 @@ function formatMinor2(minor, currency) {
|
|
|
6638
6638
|
}).format(minor / 100);
|
|
6639
6639
|
}
|
|
6640
6640
|
function TravellerProfileHero({ profile, onBack }) {
|
|
6641
|
-
const { t } =
|
|
6641
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6642
6642
|
const initials = initialsFromName4(profile.fullName);
|
|
6643
6643
|
const { lifetime } = profile;
|
|
6644
6644
|
const stats = lifetime.currency !== null ? [
|
|
@@ -6729,7 +6729,7 @@ function formatMinor3(minor, currency) {
|
|
|
6729
6729
|
}).format(minor / 100);
|
|
6730
6730
|
}
|
|
6731
6731
|
function TravellerTripHistoryTable({ trips }) {
|
|
6732
|
-
const { t } =
|
|
6732
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6733
6733
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-traveller-profile-section__card", children: [
|
|
6734
6734
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__card-head", children: [
|
|
6735
6735
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-traveller-profile-section__card-title", children: t("chrome.travellerProfileSection.trips.title") }),
|
|
@@ -6780,7 +6780,7 @@ function TravellerProfileSection({
|
|
|
6780
6780
|
components,
|
|
6781
6781
|
style
|
|
6782
6782
|
}) {
|
|
6783
|
-
const { t } =
|
|
6783
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
6784
6784
|
const { read, readFailed, refresh } = useAgencyTravellerProfile(travellerRef);
|
|
6785
6785
|
const Hero = components?.Hero ?? TravellerProfileHero;
|
|
6786
6786
|
const PersonalCard = components?.PersonalCard ?? TravellerPersonalCard;
|
|
@@ -6788,7 +6788,7 @@ function TravellerProfileSection({
|
|
|
6788
6788
|
const TripHistoryTable = components?.TripHistoryTable ?? TravellerTripHistoryTable;
|
|
6789
6789
|
const NotesList = components?.NotesList ?? TravellerNotesList;
|
|
6790
6790
|
if (readFailed) {
|
|
6791
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style:
|
|
6791
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__status-block", role: "alert", children: [
|
|
6792
6792
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon9, { className: "kf-traveller-profile-section__status-icon kf-traveller-profile-section__status-icon--danger" }),
|
|
6793
6793
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-traveller-profile-section__status-title", children: t("chrome.travellerProfileSection.errorTitle") }),
|
|
6794
6794
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-traveller-profile-section__status-body", children: t("chrome.travellerProfileSection.errorBody") }),
|
|
@@ -6804,9 +6804,9 @@ function TravellerProfileSection({
|
|
|
6804
6804
|
] }) });
|
|
6805
6805
|
}
|
|
6806
6806
|
if (read === void 0) {
|
|
6807
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style:
|
|
6807
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-traveller-profile-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(TravellerProfileSkeleton, {}) });
|
|
6808
6808
|
}
|
|
6809
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section", style:
|
|
6809
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
6810
6810
|
/* @__PURE__ */ jsxRuntime.jsx(Hero, { profile: read, onBack }),
|
|
6811
6811
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__body", children: [
|
|
6812
6812
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-traveller-profile-section__column", children: [
|
|
@@ -6898,7 +6898,7 @@ function ToggleSwitch({
|
|
|
6898
6898
|
disabled,
|
|
6899
6899
|
className: "kf-admin-shared-patterns-toggle-row",
|
|
6900
6900
|
onClick: () => onChange(!checked),
|
|
6901
|
-
style:
|
|
6901
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
6902
6902
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6903
6903
|
"span",
|
|
6904
6904
|
{
|
|
@@ -7336,7 +7336,7 @@ function TriggerDetailPanel({
|
|
|
7336
7336
|
style
|
|
7337
7337
|
}) {
|
|
7338
7338
|
const [dialogOpen, setDialogOpen] = react.useState(false);
|
|
7339
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__detail", style:
|
|
7339
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__detail", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
7340
7340
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__detail-head", children: [
|
|
7341
7341
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trigger-template-editor__detail-eyebrow", children: t("chrome.triggerTemplateEditor.selected") }),
|
|
7342
7342
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -7420,8 +7420,8 @@ function TriggerTemplateEditor({
|
|
|
7420
7420
|
onTriggerPatched,
|
|
7421
7421
|
style
|
|
7422
7422
|
}) {
|
|
7423
|
-
const { t } =
|
|
7424
|
-
const { triggers, loaded, lastFetchFailed, refresh, patchTrigger } =
|
|
7423
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7424
|
+
const { triggers, loaded, lastFetchFailed, refresh, patchTrigger } = chunkMP4IMAPF_cjs.useAgencyJourneyTriggers();
|
|
7425
7425
|
const [savingId, setSavingId] = react.useState(void 0);
|
|
7426
7426
|
const [selectedId, setSelectedId] = react.useState(void 0);
|
|
7427
7427
|
const filtered = tripModeFilter === void 0 ? triggers : triggers.filter((trigger) => trigger.tripMode === tripModeFilter);
|
|
@@ -7456,7 +7456,7 @@ function TriggerTemplateEditor({
|
|
|
7456
7456
|
setSavingId(void 0);
|
|
7457
7457
|
}
|
|
7458
7458
|
}
|
|
7459
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor", style:
|
|
7459
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
7460
7460
|
title !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trigger-template-editor__heading", children: [
|
|
7461
7461
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trigger-template-editor__title", children: title }),
|
|
7462
7462
|
subtitle !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trigger-template-editor__subtitle", children: subtitle }) : null
|
|
@@ -7604,14 +7604,14 @@ function BookingsSkeleton() {
|
|
|
7604
7604
|
] }, id)) });
|
|
7605
7605
|
}
|
|
7606
7606
|
function BookingsEmpty() {
|
|
7607
|
-
const { t } =
|
|
7607
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7608
7608
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__state", children: [
|
|
7609
7609
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-bookings-section__state-title", children: t("chrome.tripBookings.emptyTitle") }),
|
|
7610
7610
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-bookings-section__state-body", children: t("chrome.tripBookings.emptyBody") })
|
|
7611
7611
|
] });
|
|
7612
7612
|
}
|
|
7613
7613
|
function BookingsFailed({ onRetry }) {
|
|
7614
|
-
const { t } =
|
|
7614
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7615
7615
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__state", role: "alert", children: [
|
|
7616
7616
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-bookings-section__state-title", children: t("chrome.tripBookings.failedTitle") }),
|
|
7617
7617
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-bookings-section__state-body", children: t("chrome.tripBookings.failedBody") }),
|
|
@@ -7619,7 +7619,7 @@ function BookingsFailed({ onRetry }) {
|
|
|
7619
7619
|
] });
|
|
7620
7620
|
}
|
|
7621
7621
|
function BookingsDark({ reason }) {
|
|
7622
|
-
const { t } =
|
|
7622
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7623
7623
|
if (reason === "mode") return null;
|
|
7624
7624
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__state", "data-dark": reason, children: [
|
|
7625
7625
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-bookings-section__state-title", children: t(
|
|
@@ -7664,8 +7664,8 @@ function TripBookingsSection({
|
|
|
7664
7664
|
onOpenDocuments,
|
|
7665
7665
|
style
|
|
7666
7666
|
}) {
|
|
7667
|
-
const { t } =
|
|
7668
|
-
const bookings =
|
|
7667
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7668
|
+
const bookings = chunkMP4IMAPF_cjs.useBookings(tripRef);
|
|
7669
7669
|
const ready = bookings.status === "ready" ? bookings : null;
|
|
7670
7670
|
const groups = react.useMemo(
|
|
7671
7671
|
() => ready === null ? [] : groupByKind(liveBookings(ready.bookings)),
|
|
@@ -7675,7 +7675,7 @@ function TripBookingsSection({
|
|
|
7675
7675
|
const unreadable = ready !== null && ready.syncedAt === void 0;
|
|
7676
7676
|
const refreshLive = ready?.refreshLive;
|
|
7677
7677
|
if (bookings.status === "dark") return /* @__PURE__ */ jsxRuntime.jsx(BookingsDark, { reason: bookings.reason });
|
|
7678
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-bookings-section", style:
|
|
7678
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-bookings-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
7679
7679
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-bookings-section__head", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-bookings-section__head-text", children: [
|
|
7680
7680
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-bookings-section__title", children: t("chrome.tripBookings.panelLabel") }),
|
|
7681
7681
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-bookings-section__subtitle", children: t("chrome.tripBookings.subtitle").replace("{count}", String(total)) })
|
|
@@ -7747,7 +7747,7 @@ function LockIcon2() {
|
|
|
7747
7747
|
);
|
|
7748
7748
|
}
|
|
7749
7749
|
function CloseoutLockNotice({ whatKey }) {
|
|
7750
|
-
const { t } =
|
|
7750
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7751
7751
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-closeout-lock", role: "status", children: [
|
|
7752
7752
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-closeout-lock__glyph", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon2, {}) }),
|
|
7753
7753
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-admin-closeout-lock__body", children: [
|
|
@@ -7851,7 +7851,7 @@ function ChecklistSkeleton() {
|
|
|
7851
7851
|
] }, column)) });
|
|
7852
7852
|
}
|
|
7853
7853
|
function ChecklistEmpty({ onPull }) {
|
|
7854
|
-
const { t } =
|
|
7854
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7855
7855
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__state", children: [
|
|
7856
7856
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-checklist-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(ChecklistIcon, {}) }),
|
|
7857
7857
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-checklist-section__state-title", children: t("chrome.tripChecklist.emptyTitle") }),
|
|
@@ -7860,7 +7860,7 @@ function ChecklistEmpty({ onPull }) {
|
|
|
7860
7860
|
] });
|
|
7861
7861
|
}
|
|
7862
7862
|
function ChecklistFailed({ onRetry }) {
|
|
7863
|
-
const { t } =
|
|
7863
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7864
7864
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__state", children: [
|
|
7865
7865
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-checklist-section__state-title", children: t("chrome.tripChecklist.failedTitle") }),
|
|
7866
7866
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-checklist-section__state-body", children: t("chrome.tripChecklist.failedBody") }),
|
|
@@ -7868,7 +7868,7 @@ function ChecklistFailed({ onRetry }) {
|
|
|
7868
7868
|
] });
|
|
7869
7869
|
}
|
|
7870
7870
|
function ChecklistDark({ reason }) {
|
|
7871
|
-
const { t } =
|
|
7871
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7872
7872
|
if (reason === "mode") return null;
|
|
7873
7873
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__state", "data-dark": reason, children: [
|
|
7874
7874
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-checklist-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(LockIcon3, {}) }),
|
|
@@ -7968,7 +7968,7 @@ function ItemDialog({
|
|
|
7968
7968
|
onClose,
|
|
7969
7969
|
onSubmit
|
|
7970
7970
|
}) {
|
|
7971
|
-
const { t } =
|
|
7971
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
7972
7972
|
const titleId = react.useId();
|
|
7973
7973
|
const [values, setValues] = react.useState(initial);
|
|
7974
7974
|
const [sectionChoice, setSectionChoice] = react.useState(
|
|
@@ -8165,7 +8165,7 @@ function ChecklistItemRow({
|
|
|
8165
8165
|
onToggle,
|
|
8166
8166
|
onEdit
|
|
8167
8167
|
}) {
|
|
8168
|
-
const { t } =
|
|
8168
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
8169
8169
|
const complete = item.status === "COMPLETE";
|
|
8170
8170
|
const day = dayOffsetLabel(item.dayOffset);
|
|
8171
8171
|
const actorKey = actorLabelKey(item.performedByKind);
|
|
@@ -8217,7 +8217,7 @@ function SectionCard2({
|
|
|
8217
8217
|
onAddToSection,
|
|
8218
8218
|
ItemRow: ItemRow2 = ChecklistItemRow
|
|
8219
8219
|
}) {
|
|
8220
|
-
const { t } =
|
|
8220
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
8221
8221
|
const openMandatory = items.filter((one) => one.isMandatory && one.status === "OPEN").length;
|
|
8222
8222
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-checklist-section__section", children: [
|
|
8223
8223
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "kf-trip-checklist-section__section-head", children: [
|
|
@@ -8271,7 +8271,7 @@ function PhasePanel({
|
|
|
8271
8271
|
onAddToPhase,
|
|
8272
8272
|
ItemRow: ItemRow2
|
|
8273
8273
|
}) {
|
|
8274
|
-
const { t } =
|
|
8274
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
8275
8275
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: sections.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__phase-empty", children: [
|
|
8276
8276
|
/* @__PURE__ */ jsxRuntime.jsx("p", { children: t("chrome.tripChecklist.phaseEmpty") }),
|
|
8277
8277
|
readOnly ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8307,7 +8307,7 @@ function PhaseSwitcher({
|
|
|
8307
8307
|
value,
|
|
8308
8308
|
onChange
|
|
8309
8309
|
}) {
|
|
8310
|
-
const { t } =
|
|
8310
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
8311
8311
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-checklist-section__segment", children: [
|
|
8312
8312
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t("chrome.tripChecklist.phaseLabel") }),
|
|
8313
8313
|
OPTIONS.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -8340,7 +8340,7 @@ function TemplatePickerDialog({
|
|
|
8340
8340
|
onClose,
|
|
8341
8341
|
onPull
|
|
8342
8342
|
}) {
|
|
8343
|
-
const { t } =
|
|
8343
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
8344
8344
|
const titleId = react.useId();
|
|
8345
8345
|
const [selectedId, setSelectedId] = react.useState(null);
|
|
8346
8346
|
const [mode, setMode] = react.useState("append");
|
|
@@ -8469,8 +8469,8 @@ function TripChecklistSection({
|
|
|
8469
8469
|
components,
|
|
8470
8470
|
style
|
|
8471
8471
|
}) {
|
|
8472
|
-
const { t } =
|
|
8473
|
-
const checklists =
|
|
8472
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
8473
|
+
const checklists = chunkPQJGV3RE_cjs.useChecklists(tripRef);
|
|
8474
8474
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
8475
8475
|
const [pending, setPending] = react.useState(false);
|
|
8476
8476
|
const [busyItemId, setBusyItemId] = react.useState(null);
|
|
@@ -8637,7 +8637,7 @@ function TripChecklistSection({
|
|
|
8637
8637
|
const inert = readOnly || locked;
|
|
8638
8638
|
const unreadable = aggregate?.lastFetchFailed === true && aggregate.loaded === false;
|
|
8639
8639
|
const percent = overallPercent(aggregate?.progress);
|
|
8640
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-checklist-section", style:
|
|
8640
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-checklist-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
8641
8641
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__head", children: [
|
|
8642
8642
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-checklist-section__head-text", children: [
|
|
8643
8643
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-checklist-section__title", children: t("chrome.tripChecklist.panelLabel") }),
|
|
@@ -9026,7 +9026,7 @@ var STATUS_LABEL_KEY5 = {
|
|
|
9026
9026
|
CANCELLED: "chrome.tripDirectory.status.cancelled"
|
|
9027
9027
|
};
|
|
9028
9028
|
function TripRow({ trip, index, onOpen, style }) {
|
|
9029
|
-
const { t } =
|
|
9029
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9030
9030
|
const derived = deriveTripRow(trip, index);
|
|
9031
9031
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
9032
9032
|
"tr",
|
|
@@ -9034,7 +9034,7 @@ function TripRow({ trip, index, onOpen, style }) {
|
|
|
9034
9034
|
role: "row",
|
|
9035
9035
|
className: "kf-trip-directory-flow__row",
|
|
9036
9036
|
"data-dimming": derived.dimming === "none" ? void 0 : derived.dimming,
|
|
9037
|
-
style:
|
|
9037
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
9038
9038
|
children: [
|
|
9039
9039
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
9040
9040
|
"td",
|
|
@@ -9153,8 +9153,8 @@ function TripResultsListBody({
|
|
|
9153
9153
|
hasActiveFilter,
|
|
9154
9154
|
onRetry
|
|
9155
9155
|
}) {
|
|
9156
|
-
const { t } =
|
|
9157
|
-
const { makeTripsFetch } =
|
|
9156
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9157
|
+
const { makeTripsFetch } = chunkMP4IMAPF_cjs.useAgencyTrips();
|
|
9158
9158
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
9159
9159
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
9160
9160
|
const Row = TripRowComponent ?? TripRow;
|
|
@@ -9165,7 +9165,7 @@ function TripResultsListBody({
|
|
|
9165
9165
|
setErrorCode(void 0);
|
|
9166
9166
|
return page;
|
|
9167
9167
|
} catch (error) {
|
|
9168
|
-
setErrorCode(
|
|
9168
|
+
setErrorCode(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
9169
9169
|
return { rows: [], nextCursor: void 0 };
|
|
9170
9170
|
} finally {
|
|
9171
9171
|
setHasSettled(true);
|
|
@@ -9173,7 +9173,7 @@ function TripResultsListBody({
|
|
|
9173
9173
|
},
|
|
9174
9174
|
[makeTripsFetch, filters]
|
|
9175
9175
|
);
|
|
9176
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
9176
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkMP4IMAPF_cjs.usePaginatedList(fetch);
|
|
9177
9177
|
const isLoading = !hasSettled;
|
|
9178
9178
|
const reportedCount = isLoading || errorCode !== void 0 ? void 0 : rows.length;
|
|
9179
9179
|
react.useEffect(() => {
|
|
@@ -9275,7 +9275,7 @@ function TripSearchInput({
|
|
|
9275
9275
|
debounceMs,
|
|
9276
9276
|
onDebouncedChange
|
|
9277
9277
|
}) {
|
|
9278
|
-
const { t } =
|
|
9278
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9279
9279
|
const [value, setValue] = react.useState("");
|
|
9280
9280
|
react.useEffect(() => {
|
|
9281
9281
|
const timer = setTimeout(() => onDebouncedChange(value.trim()), debounceMs);
|
|
@@ -9345,7 +9345,7 @@ function TripDirectoryFlow({
|
|
|
9345
9345
|
components,
|
|
9346
9346
|
style
|
|
9347
9347
|
}) {
|
|
9348
|
-
const { t } =
|
|
9348
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9349
9349
|
const [eventType, setEventType] = react.useState(initialEventType ?? "TRIP");
|
|
9350
9350
|
const [segment, setSegment] = react.useState("all");
|
|
9351
9351
|
const [q, setQ] = react.useState("");
|
|
@@ -9365,7 +9365,7 @@ function TripDirectoryFlow({
|
|
|
9365
9365
|
);
|
|
9366
9366
|
const filterKey = react.useMemo(() => JSON.stringify(filters), [filters]);
|
|
9367
9367
|
const hasActiveFilter = segment !== "all" || q.length > 0 || status !== void 0;
|
|
9368
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow", style:
|
|
9368
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
9369
9369
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow__toolbar", children: [
|
|
9370
9370
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-directory-flow__toolbar-row", children: [
|
|
9371
9371
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -9626,7 +9626,7 @@ function KindIcon({
|
|
|
9626
9626
|
return /* @__PURE__ */ jsxRuntime.jsx(GenericFileIcon, {});
|
|
9627
9627
|
}
|
|
9628
9628
|
function DocumentRow({ row, onOpen }) {
|
|
9629
|
-
const { t } =
|
|
9629
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9630
9630
|
const { file, spend } = row;
|
|
9631
9631
|
const purged = file.status === "purged";
|
|
9632
9632
|
const retention = retentionStateOf(file);
|
|
@@ -9687,7 +9687,7 @@ function DocumentsSkeleton() {
|
|
|
9687
9687
|
] }, id)) });
|
|
9688
9688
|
}
|
|
9689
9689
|
function DocumentsEmpty() {
|
|
9690
|
-
const { t } =
|
|
9690
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9691
9691
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__state", children: [
|
|
9692
9692
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-documents-section__state-mark", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(EmptyDocumentsIcon, {}) }),
|
|
9693
9693
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-documents-section__state-title", children: t("chrome.tripDocuments.emptyTitle") }),
|
|
@@ -9695,7 +9695,7 @@ function DocumentsEmpty() {
|
|
|
9695
9695
|
] });
|
|
9696
9696
|
}
|
|
9697
9697
|
function DocumentsFailed({ onRetry }) {
|
|
9698
|
-
const { t } =
|
|
9698
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9699
9699
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__state", role: "alert", children: [
|
|
9700
9700
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-documents-section__state-title", children: t("chrome.tripDocuments.failedTitle") }),
|
|
9701
9701
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-documents-section__state-body", children: t("chrome.tripDocuments.failedBody") }),
|
|
@@ -9703,7 +9703,7 @@ function DocumentsFailed({ onRetry }) {
|
|
|
9703
9703
|
] });
|
|
9704
9704
|
}
|
|
9705
9705
|
function DocumentsDark({ reason }) {
|
|
9706
|
-
const { t } =
|
|
9706
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9707
9707
|
if (reason === "mode") return null;
|
|
9708
9708
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__state", "data-dark": reason, children: [
|
|
9709
9709
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-documents-section__state-title", children: t(
|
|
@@ -9726,7 +9726,7 @@ function DocumentViewer({
|
|
|
9726
9726
|
failed,
|
|
9727
9727
|
onClose
|
|
9728
9728
|
}) {
|
|
9729
|
-
const { t } =
|
|
9729
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9730
9730
|
const titleId = react.useId();
|
|
9731
9731
|
const { file } = row;
|
|
9732
9732
|
const classKey = retentionClassLabelKey(file.retentionClass);
|
|
@@ -9807,7 +9807,7 @@ function DocumentViewer({
|
|
|
9807
9807
|
);
|
|
9808
9808
|
}
|
|
9809
9809
|
function PurposeChips({ counts, value, onChange }) {
|
|
9810
|
-
const { t } =
|
|
9810
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9811
9811
|
const options = [
|
|
9812
9812
|
{
|
|
9813
9813
|
key: "all",
|
|
@@ -9877,7 +9877,7 @@ function UploadDialog({
|
|
|
9877
9877
|
onClose,
|
|
9878
9878
|
onSubmit
|
|
9879
9879
|
}) {
|
|
9880
|
-
const { t } =
|
|
9880
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
9881
9881
|
const titleId = react.useId();
|
|
9882
9882
|
const nameId = react.useId();
|
|
9883
9883
|
const fileId = react.useId();
|
|
@@ -10039,12 +10039,12 @@ function UploadDialog({
|
|
|
10039
10039
|
);
|
|
10040
10040
|
}
|
|
10041
10041
|
function TripDocumentsSection({ tripRef, style }) {
|
|
10042
|
-
const { t } =
|
|
10043
|
-
const files =
|
|
10044
|
-
const expenses =
|
|
10045
|
-
const bookings =
|
|
10046
|
-
const { listTripManifest } =
|
|
10047
|
-
const { statuses, loaded: capabilityLoaded } =
|
|
10042
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10043
|
+
const files = chunkPQJGV3RE_cjs.useFiles({ tripRef });
|
|
10044
|
+
const expenses = chunkPQJGV3RE_cjs.useExpenses(tripRef);
|
|
10045
|
+
const bookings = chunkMP4IMAPF_cjs.useBookings(tripRef);
|
|
10046
|
+
const { listTripManifest } = chunkMP4IMAPF_cjs.useDirectories();
|
|
10047
|
+
const { statuses, loaded: capabilityLoaded } = chunkMP4IMAPF_cjs.useCapabilityStatuses(tripRef);
|
|
10048
10048
|
const capability = statuses.get("files");
|
|
10049
10049
|
const [state, setState] = react.useState({ kind: "loading" });
|
|
10050
10050
|
const [purpose, setPurpose] = react.useState(null);
|
|
@@ -10191,7 +10191,7 @@ function TripDocumentsSection({ tripRef, style }) {
|
|
|
10191
10191
|
if (capabilityLoaded && capability === "mode-dark") return /* @__PURE__ */ jsxRuntime.jsx(DocumentsDark, { reason: "mode" });
|
|
10192
10192
|
if (capabilityLoaded && capability === "flag-dark") return /* @__PURE__ */ jsxRuntime.jsx(DocumentsDark, { reason: "flag" });
|
|
10193
10193
|
if (capabilityLoaded && capability === "data-dark") return /* @__PURE__ */ jsxRuntime.jsx(DocumentsDark, { reason: "data" });
|
|
10194
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-documents-section", style:
|
|
10194
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-documents-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
10195
10195
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__head", children: [
|
|
10196
10196
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-documents-section__head-text", children: [
|
|
10197
10197
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-documents-section__title", children: t("chrome.tripDocuments.panelLabel") }),
|
|
@@ -10480,7 +10480,7 @@ function ExpensesSkeleton() {
|
|
|
10480
10480
|
] }, id)) });
|
|
10481
10481
|
}
|
|
10482
10482
|
function ExpensesEmpty({ onLog }) {
|
|
10483
|
-
const { t } =
|
|
10483
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10484
10484
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-expenses-section__state", children: [
|
|
10485
10485
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-expenses-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(WalletIcon, {}) }),
|
|
10486
10486
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-expenses-section__state-title", children: t("chrome.tripExpenses.emptyTitle") }),
|
|
@@ -10489,7 +10489,7 @@ function ExpensesEmpty({ onLog }) {
|
|
|
10489
10489
|
] });
|
|
10490
10490
|
}
|
|
10491
10491
|
function ExpensesFailed({ onRetry }) {
|
|
10492
|
-
const { t } =
|
|
10492
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10493
10493
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-expenses-section__state", role: "alert", children: [
|
|
10494
10494
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-expenses-section__state-title", children: t("chrome.tripExpenses.failedTitle") }),
|
|
10495
10495
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-expenses-section__state-body", children: t("chrome.tripExpenses.failedBody") }),
|
|
@@ -10497,7 +10497,7 @@ function ExpensesFailed({ onRetry }) {
|
|
|
10497
10497
|
] });
|
|
10498
10498
|
}
|
|
10499
10499
|
function ExpensesDark({ reason }) {
|
|
10500
|
-
const { t } =
|
|
10500
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10501
10501
|
if (reason === "mode") {
|
|
10502
10502
|
return null;
|
|
10503
10503
|
}
|
|
@@ -10518,7 +10518,7 @@ function ExpensesTable({
|
|
|
10518
10518
|
onVoid,
|
|
10519
10519
|
onViewReceipt
|
|
10520
10520
|
}) {
|
|
10521
|
-
const { t } =
|
|
10521
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10522
10522
|
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
10523
|
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "kf-visually-hidden", children: t("chrome.tripExpenses.tableCaption") }),
|
|
10524
10524
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
@@ -10578,7 +10578,7 @@ function LogExpenseDialog({
|
|
|
10578
10578
|
onClose,
|
|
10579
10579
|
onSubmit
|
|
10580
10580
|
}) {
|
|
10581
|
-
const { t } =
|
|
10581
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10582
10582
|
const titleId = react.useId();
|
|
10583
10583
|
const [category, setCategory] = react.useState("MISC");
|
|
10584
10584
|
const [amount, setAmount] = react.useState("");
|
|
@@ -10741,9 +10741,9 @@ function ReceiptDialog({
|
|
|
10741
10741
|
description,
|
|
10742
10742
|
onClose
|
|
10743
10743
|
}) {
|
|
10744
|
-
const { t } =
|
|
10744
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10745
10745
|
const titleId = react.useId();
|
|
10746
|
-
const files =
|
|
10746
|
+
const files = chunkPQJGV3RE_cjs.useFiles({ tripRef });
|
|
10747
10747
|
const [phase, setPhase] = react.useState({ kind: "loading" });
|
|
10748
10748
|
const [imageBroke, setImageBroke] = react.useState(false);
|
|
10749
10749
|
const readUrl = files.url;
|
|
@@ -10817,7 +10817,7 @@ function VoidExpenseDialog({
|
|
|
10817
10817
|
onClose,
|
|
10818
10818
|
onSubmit
|
|
10819
10819
|
}) {
|
|
10820
|
-
const { t } =
|
|
10820
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10821
10821
|
const titleId = react.useId();
|
|
10822
10822
|
const [reason, setReason] = react.useState("");
|
|
10823
10823
|
const trimmed = reason.trim();
|
|
@@ -10891,9 +10891,9 @@ function isCloseoutLocked2(error) {
|
|
|
10891
10891
|
return classification?.status === 423 || classification?.code === "TRIP_CLOSED_OUT";
|
|
10892
10892
|
}
|
|
10893
10893
|
function TripExpensesSection({ tripRef, style }) {
|
|
10894
|
-
const { t } =
|
|
10895
|
-
const expenses =
|
|
10896
|
-
const vendors =
|
|
10894
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
10895
|
+
const expenses = chunkPQJGV3RE_cjs.useExpenses(tripRef);
|
|
10896
|
+
const vendors = chunkPQJGV3RE_cjs.useVendors(tripRef, "");
|
|
10897
10897
|
const [category, setCategory] = react.useState(null);
|
|
10898
10898
|
const [paymentMode, setPaymentMode] = react.useState(null);
|
|
10899
10899
|
const [missingReceiptOnly, setMissingReceiptOnly] = react.useState(false);
|
|
@@ -10962,7 +10962,7 @@ function TripExpensesSection({ tripRef, style }) {
|
|
|
10962
10962
|
return /* @__PURE__ */ jsxRuntime.jsx(ExpensesDark, { reason: expenses.reason });
|
|
10963
10963
|
}
|
|
10964
10964
|
const filtered = category !== null || paymentMode !== null || missingReceiptOnly;
|
|
10965
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-expenses-section", style:
|
|
10965
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-expenses-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
10966
10966
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-expenses-section__toolbar", children: [
|
|
10967
10967
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-expenses-section__toolbar-title", children: t("chrome.tripExpenses.panelLabel") }),
|
|
10968
10968
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-expenses-section__toolbar-spacer" }),
|
|
@@ -11242,7 +11242,7 @@ function FloatMovementDialog({
|
|
|
11242
11242
|
onClose,
|
|
11243
11243
|
onSubmit
|
|
11244
11244
|
}) {
|
|
11245
|
-
const { t } =
|
|
11245
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11246
11246
|
const titleId = react.useId();
|
|
11247
11247
|
const [managerId, setManagerId] = react.useState(manager?.managerId ?? null);
|
|
11248
11248
|
const [amount, setAmount] = react.useState(
|
|
@@ -11475,7 +11475,7 @@ function FloatSkeleton() {
|
|
|
11475
11475
|
] }, id)) });
|
|
11476
11476
|
}
|
|
11477
11477
|
function FloatEmpty({ onIssue }) {
|
|
11478
|
-
const { t } =
|
|
11478
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11479
11479
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-float-section__state", children: [
|
|
11480
11480
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-float-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(SafeIcon, {}) }),
|
|
11481
11481
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-float-section__state-title", children: t("chrome.tripFloat.emptyTitle") }),
|
|
@@ -11484,7 +11484,7 @@ function FloatEmpty({ onIssue }) {
|
|
|
11484
11484
|
] });
|
|
11485
11485
|
}
|
|
11486
11486
|
function FloatFailed({ onRetry }) {
|
|
11487
|
-
const { t } =
|
|
11487
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11488
11488
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-float-section__state", role: "alert", children: [
|
|
11489
11489
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-float-section__state-title", children: t("chrome.tripFloat.failedTitle") }),
|
|
11490
11490
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-float-section__state-body", children: t("chrome.tripFloat.failedBody") }),
|
|
@@ -11492,7 +11492,7 @@ function FloatFailed({ onRetry }) {
|
|
|
11492
11492
|
] });
|
|
11493
11493
|
}
|
|
11494
11494
|
function FloatDark({ reason }) {
|
|
11495
|
-
const { t } =
|
|
11495
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11496
11496
|
if (reason === "mode") {
|
|
11497
11497
|
return null;
|
|
11498
11498
|
}
|
|
@@ -11515,7 +11515,7 @@ function ManagerFloatCard({
|
|
|
11515
11515
|
onAdjust,
|
|
11516
11516
|
onSettle
|
|
11517
11517
|
}) {
|
|
11518
|
-
const { t } =
|
|
11518
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11519
11519
|
const bodyId = `kf-float-${row.managerId}`;
|
|
11520
11520
|
const summary = row.summary;
|
|
11521
11521
|
const shares = summary === void 0 ? void 0 : usageShares(summary);
|
|
@@ -11721,9 +11721,9 @@ function refusedBalanceOf(error) {
|
|
|
11721
11721
|
return details?.currentBalanceMinor;
|
|
11722
11722
|
}
|
|
11723
11723
|
function TripFloatSection({ tripRef, style }) {
|
|
11724
|
-
const { t } =
|
|
11725
|
-
const float =
|
|
11726
|
-
const managers =
|
|
11724
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11725
|
+
const float = chunkPQJGV3RE_cjs.useFloat(tripRef);
|
|
11726
|
+
const managers = chunkPQJGV3RE_cjs.useManagers(tripRef);
|
|
11727
11727
|
const [openManagerId, setOpenManagerId] = react.useState(null);
|
|
11728
11728
|
const [ledgers, setLedgers] = react.useState({});
|
|
11729
11729
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -11849,7 +11849,7 @@ function TripFloatSection({ tripRef, style }) {
|
|
|
11849
11849
|
if (float.status === "dark") {
|
|
11850
11850
|
return /* @__PURE__ */ jsxRuntime.jsx(FloatDark, { reason: float.reason });
|
|
11851
11851
|
}
|
|
11852
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-float-section", style:
|
|
11852
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-float-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
11853
11853
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-float-section__toolbar", children: [
|
|
11854
11854
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-float-section__toolbar-title", children: t("chrome.tripFloat.panelLabel") }),
|
|
11855
11855
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-float-section__toolbar-spacer" }),
|
|
@@ -11964,7 +11964,7 @@ function DispatchDialog({
|
|
|
11964
11964
|
onClose,
|
|
11965
11965
|
onSend
|
|
11966
11966
|
}) {
|
|
11967
|
-
const { t } =
|
|
11967
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
11968
11968
|
const titleId = react.useId();
|
|
11969
11969
|
const [everyone, setEveryone] = react.useState(true);
|
|
11970
11970
|
const [picked, setPicked] = react.useState(/* @__PURE__ */ new Set());
|
|
@@ -12112,7 +12112,7 @@ function FormRow2({
|
|
|
12112
12112
|
onExport,
|
|
12113
12113
|
onOpenMissing
|
|
12114
12114
|
}) {
|
|
12115
|
-
const { t } =
|
|
12115
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12116
12116
|
const canSeeMissing = supportsWhoIsMissing(form);
|
|
12117
12117
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "kf-trip-forms-section__row", children: [
|
|
12118
12118
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "kf-trip-forms-section__row-body", children: [
|
|
@@ -12165,14 +12165,14 @@ function FormsSkeleton() {
|
|
|
12165
12165
|
] }, id)) });
|
|
12166
12166
|
}
|
|
12167
12167
|
function FormsEmpty() {
|
|
12168
|
-
const { t } =
|
|
12168
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12169
12169
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__state", children: [
|
|
12170
12170
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-forms-section__state-title", children: t("chrome.tripForms.emptyTitle") }),
|
|
12171
12171
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-forms-section__state-body", children: t("chrome.tripForms.emptyBody") })
|
|
12172
12172
|
] });
|
|
12173
12173
|
}
|
|
12174
12174
|
function FormsFailed({ onRetry }) {
|
|
12175
|
-
const { t } =
|
|
12175
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12176
12176
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__state", role: "alert", children: [
|
|
12177
12177
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-forms-section__state-title", children: t("chrome.tripForms.failedTitle") }),
|
|
12178
12178
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-forms-section__state-body", children: t("chrome.tripForms.failedBody") }),
|
|
@@ -12180,7 +12180,7 @@ function FormsFailed({ onRetry }) {
|
|
|
12180
12180
|
] });
|
|
12181
12181
|
}
|
|
12182
12182
|
function FormsDark({ reason }) {
|
|
12183
|
-
const { t } =
|
|
12183
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12184
12184
|
if (reason === "mode") return null;
|
|
12185
12185
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__state", "data-dark": reason, children: [
|
|
12186
12186
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-forms-section__state-title", children: t(reason === "flag" ? "chrome.tripForms.flagDarkTitle" : "chrome.tripForms.dataDarkTitle") }),
|
|
@@ -12225,7 +12225,7 @@ function OnBehalfDialog({
|
|
|
12225
12225
|
onClose,
|
|
12226
12226
|
onSubmit
|
|
12227
12227
|
}) {
|
|
12228
|
-
const { t } =
|
|
12228
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12229
12229
|
const titleId = react.useId();
|
|
12230
12230
|
const [values, setValues] = react.useState({});
|
|
12231
12231
|
const answerable = react.useMemo(
|
|
@@ -12363,7 +12363,7 @@ function ParticipantRow({
|
|
|
12363
12363
|
onFillOnBehalf,
|
|
12364
12364
|
onOpenResponse
|
|
12365
12365
|
}) {
|
|
12366
|
-
const { t } =
|
|
12366
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12367
12367
|
const status = row.response?.status;
|
|
12368
12368
|
const submitted = status === "SUBMITTED";
|
|
12369
12369
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "kf-trip-forms-section__row", "data-done": submitted ? "true" : void 0, children: [
|
|
@@ -12416,7 +12416,7 @@ function ResponseViewer({
|
|
|
12416
12416
|
failed,
|
|
12417
12417
|
onClose
|
|
12418
12418
|
}) {
|
|
12419
|
-
const { t } =
|
|
12419
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12420
12420
|
const titleId = react.useId();
|
|
12421
12421
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12422
12422
|
SheetDialog,
|
|
@@ -12452,9 +12452,9 @@ function TripFormsSection({
|
|
|
12452
12452
|
components,
|
|
12453
12453
|
style
|
|
12454
12454
|
}) {
|
|
12455
|
-
const { t } =
|
|
12456
|
-
const forms =
|
|
12457
|
-
const { listTripManifest } =
|
|
12455
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12456
|
+
const forms = chunkPQJGV3RE_cjs.useForms(tripRef);
|
|
12457
|
+
const { listTripManifest } = chunkMP4IMAPF_cjs.useDirectories();
|
|
12458
12458
|
const [openFormId, setOpenFormId] = react.useState(null);
|
|
12459
12459
|
const [completion, setCompletion] = react.useState(void 0);
|
|
12460
12460
|
const [manifest, setManifest] = react.useState(void 0);
|
|
@@ -12576,7 +12576,7 @@ function TripFormsSection({
|
|
|
12576
12576
|
if (forms.status === "dark") return /* @__PURE__ */ jsxRuntime.jsx(FormsDark, { reason: forms.reason });
|
|
12577
12577
|
const inert = readOnly;
|
|
12578
12578
|
const unreadable = ready !== null && ready.syncedAt === void 0 && rows.length === 0;
|
|
12579
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-forms-section", style:
|
|
12579
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-forms-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
12580
12580
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__head", children: [
|
|
12581
12581
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-forms-section__head-text", children: [
|
|
12582
12582
|
/* @__PURE__ */ jsxRuntime.jsx("h2", { className: "kf-trip-forms-section__title", children: openForm === null ? t("chrome.tripForms.panelLabel") : openForm.title }),
|
|
@@ -12726,7 +12726,7 @@ function ChangeLogDialog({
|
|
|
12726
12726
|
onRetry,
|
|
12727
12727
|
onClose
|
|
12728
12728
|
}) {
|
|
12729
|
-
const { t } =
|
|
12729
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
12730
12730
|
const titleId = react.useId();
|
|
12731
12731
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
12732
12732
|
SheetDialog,
|
|
@@ -13073,7 +13073,7 @@ function ItemRow({
|
|
|
13073
13073
|
onMoveBy,
|
|
13074
13074
|
onOpenVendor
|
|
13075
13075
|
}) {
|
|
13076
|
-
const { t } =
|
|
13076
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13077
13077
|
const derived = deriveItineraryItem(item, timeZone, serverTime);
|
|
13078
13078
|
const isDone = item.status === "COMPLETED";
|
|
13079
13079
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -13195,7 +13195,7 @@ function DayCard({
|
|
|
13195
13195
|
onSwitchToTimeline,
|
|
13196
13196
|
onOpenVendor
|
|
13197
13197
|
}) {
|
|
13198
|
-
const { t } =
|
|
13198
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13199
13199
|
const { draggingId, overIndex, rowProps, moveBy } = useListReorder({
|
|
13200
13200
|
enabled: canEdit,
|
|
13201
13201
|
onMove: onReorder
|
|
@@ -13246,7 +13246,7 @@ function DayCard({
|
|
|
13246
13246
|
] });
|
|
13247
13247
|
}
|
|
13248
13248
|
function DayPillStrip({ pills, activeIso, onSelect }) {
|
|
13249
|
-
const { t } =
|
|
13249
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13250
13250
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
13251
13251
|
"div",
|
|
13252
13252
|
{
|
|
@@ -13323,7 +13323,7 @@ function EditDayDialog({
|
|
|
13323
13323
|
onClose,
|
|
13324
13324
|
onSubmit
|
|
13325
13325
|
}) {
|
|
13326
|
-
const { t } =
|
|
13326
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13327
13327
|
const titleId = react.useId();
|
|
13328
13328
|
const [cardTitle, setCardTitle] = react.useState(group.day.cardTitle);
|
|
13329
13329
|
const [hasSummary, setHasSummary] = react.useState(
|
|
@@ -13466,7 +13466,7 @@ function ItemFormDialog({
|
|
|
13466
13466
|
onSubmit,
|
|
13467
13467
|
onDelete
|
|
13468
13468
|
}) {
|
|
13469
|
-
const { t } =
|
|
13469
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13470
13470
|
const titleId = react.useId();
|
|
13471
13471
|
const isEdit = item !== null;
|
|
13472
13472
|
const [isoDate, setIsoDate] = react.useState(
|
|
@@ -13721,7 +13721,7 @@ function ItinerarySkeleton({ view }) {
|
|
|
13721
13721
|
] });
|
|
13722
13722
|
}
|
|
13723
13723
|
function ItineraryEmpty() {
|
|
13724
|
-
const { t } =
|
|
13724
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13725
13725
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__state", children: [
|
|
13726
13726
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-itinerary-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(CalendarIcon, {}) }),
|
|
13727
13727
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-itinerary-section__state-title", children: t("chrome.tripItinerary.emptyTitle") }),
|
|
@@ -13729,7 +13729,7 @@ function ItineraryEmpty() {
|
|
|
13729
13729
|
] });
|
|
13730
13730
|
}
|
|
13731
13731
|
function ItineraryFailed({ onRetry }) {
|
|
13732
|
-
const { t } =
|
|
13732
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13733
13733
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__state", role: "alert", children: [
|
|
13734
13734
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-itinerary-section__state-title", children: t("chrome.tripItinerary.failedTitle") }),
|
|
13735
13735
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-itinerary-section__state-body", children: t("chrome.tripItinerary.failedBody") }),
|
|
@@ -13737,7 +13737,7 @@ function ItineraryFailed({ onRetry }) {
|
|
|
13737
13737
|
] });
|
|
13738
13738
|
}
|
|
13739
13739
|
function TimelineView({ entries, onOpenDay }) {
|
|
13740
|
-
const { t } =
|
|
13740
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13741
13741
|
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
13742
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-itinerary-section__timeline-line", "aria-hidden": "true" }),
|
|
13743
13743
|
entries.map((entry, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13824,7 +13824,7 @@ var OPTIONS2 = [
|
|
|
13824
13824
|
{ value: "timeline", labelKey: "chrome.tripItinerary.viewTimeline" }
|
|
13825
13825
|
];
|
|
13826
13826
|
function ViewSegment({ value, onChange }) {
|
|
13827
|
-
const { t } =
|
|
13827
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13828
13828
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-itinerary-section__segment", children: [
|
|
13829
13829
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t("chrome.tripItinerary.viewLabel") }),
|
|
13830
13830
|
OPTIONS2.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -13850,8 +13850,8 @@ function TripItinerarySection({
|
|
|
13850
13850
|
onOpenVendor,
|
|
13851
13851
|
style
|
|
13852
13852
|
}) {
|
|
13853
|
-
const { t } =
|
|
13854
|
-
const itinerary =
|
|
13853
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
13854
|
+
const itinerary = chunkPQJGV3RE_cjs.useItinerary(tripRef);
|
|
13855
13855
|
const [view, setView] = react.useState("days");
|
|
13856
13856
|
const [activeIso, setActiveIso] = react.useState(null);
|
|
13857
13857
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -14024,7 +14024,7 @@ function TripItinerarySection({
|
|
|
14024
14024
|
setActiveIso(isoDate);
|
|
14025
14025
|
setView("days");
|
|
14026
14026
|
}
|
|
14027
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-itinerary-section", style:
|
|
14027
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-itinerary-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
14028
14028
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-itinerary-section__toolbar", children: [
|
|
14029
14029
|
/* @__PURE__ */ jsxRuntime.jsx(ViewSegment, { value: view, onChange: setView }),
|
|
14030
14030
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-itinerary-section__toolbar-spacer" }),
|
|
@@ -14209,9 +14209,9 @@ function AddTravellerDialog({
|
|
|
14209
14209
|
onClose,
|
|
14210
14210
|
onAdded
|
|
14211
14211
|
}) {
|
|
14212
|
-
const { t } =
|
|
14212
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14213
14213
|
const titleId = react.useId();
|
|
14214
|
-
const { makeTravellersFetch, addTraveller, createAgencyTraveller } =
|
|
14214
|
+
const { makeTravellersFetch, addTraveller, createAgencyTraveller } = chunkMP4IMAPF_cjs.useDirectories();
|
|
14215
14215
|
const [mode, setMode] = react.useState("search");
|
|
14216
14216
|
const [term, setTerm] = react.useState("");
|
|
14217
14217
|
const [debounced, setDebounced] = react.useState("");
|
|
@@ -14225,7 +14225,7 @@ function AddTravellerDialog({
|
|
|
14225
14225
|
return () => clearTimeout(timer);
|
|
14226
14226
|
}, [term]);
|
|
14227
14227
|
function reportFailure(error) {
|
|
14228
|
-
setErrorCode(
|
|
14228
|
+
setErrorCode(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
14229
14229
|
}
|
|
14230
14230
|
async function addExisting(externalTravellerId, fullName) {
|
|
14231
14231
|
setPending(true);
|
|
@@ -14377,8 +14377,8 @@ function DirectoryResults({
|
|
|
14377
14377
|
pendingId,
|
|
14378
14378
|
onPick
|
|
14379
14379
|
}) {
|
|
14380
|
-
const { t } =
|
|
14381
|
-
const { rows, hasNext, loadNext, settled, error } =
|
|
14380
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14381
|
+
const { rows, hasNext, loadNext, settled, error } = chunkMP4IMAPF_cjs.usePaginatedList(fetch);
|
|
14382
14382
|
if (!settled) {
|
|
14383
14383
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", "aria-live": "polite", children: t("chrome.tripManifest.addSearching") });
|
|
14384
14384
|
}
|
|
@@ -14455,36 +14455,51 @@ var KIND_LABEL_KEY = {
|
|
|
14455
14455
|
CORPORATE: "chrome.tripManifest.partyKind.corporate",
|
|
14456
14456
|
OTHER: "chrome.tripManifest.partyKind.other"
|
|
14457
14457
|
};
|
|
14458
|
-
|
|
14458
|
+
var NEW_GROUP = "__new__";
|
|
14459
|
+
function ManageGroupsDialog({
|
|
14459
14460
|
tripRef,
|
|
14460
|
-
|
|
14461
|
-
|
|
14461
|
+
rows,
|
|
14462
|
+
initialPartyId,
|
|
14462
14463
|
onClose,
|
|
14463
14464
|
onSaved
|
|
14464
14465
|
}) {
|
|
14465
|
-
const { t } =
|
|
14466
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14466
14467
|
const titleId = react.useId();
|
|
14467
|
-
const { createParty, patchParty, deleteParty } =
|
|
14468
|
-
const
|
|
14469
|
-
|
|
14468
|
+
const { createParty, patchParty, deleteParty } = chunkMP4IMAPF_cjs.useDirectories();
|
|
14469
|
+
const groups = deriveManifestGroups(rows).filter(
|
|
14470
|
+
(group) => group.id !== SOLO_GROUP_ID && group.party !== null
|
|
14471
|
+
);
|
|
14472
|
+
const openable = initialPartyId !== void 0 && groups.some((group) => group.id === initialPartyId) ? initialPartyId : groups[0]?.id ?? NEW_GROUP;
|
|
14473
|
+
const [selectedId, setSelectedId] = react.useState(openable);
|
|
14474
|
+
const selected = groups.find((group) => group.id === selectedId);
|
|
14475
|
+
const creating = selectedId === NEW_GROUP;
|
|
14476
|
+
const editing = selected?.party ?? null;
|
|
14470
14477
|
const [kind, setKind] = react.useState(
|
|
14471
|
-
|
|
14478
|
+
editing?.kind ?? "OTHER"
|
|
14472
14479
|
);
|
|
14473
|
-
const [label, setLabel] = react.useState(
|
|
14480
|
+
const [label, setLabel] = react.useState(editing?.label ?? "");
|
|
14474
14481
|
const [members, setMembers] = react.useState(
|
|
14475
|
-
new Set((
|
|
14482
|
+
new Set((selected?.rows ?? []).map((row) => row.traveller.travellerId))
|
|
14476
14483
|
);
|
|
14477
14484
|
const [pending, setPending] = react.useState(false);
|
|
14478
14485
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
14479
|
-
|
|
14480
|
-
|
|
14481
|
-
|
|
14486
|
+
function select(nextId) {
|
|
14487
|
+
const next = groups.find((group) => group.id === nextId);
|
|
14488
|
+
setSelectedId(nextId);
|
|
14489
|
+
setKind(next?.party?.kind ?? "OTHER");
|
|
14490
|
+
setLabel(next?.party?.label ?? "");
|
|
14491
|
+
setMembers(new Set((next?.rows ?? []).map((row) => row.traveller.travellerId)));
|
|
14492
|
+
setErrorCode(void 0);
|
|
14493
|
+
}
|
|
14482
14494
|
function toggle(travellerId) {
|
|
14483
14495
|
const next = new Set(members);
|
|
14484
14496
|
if (next.has(travellerId)) next.delete(travellerId);
|
|
14485
14497
|
else next.add(travellerId);
|
|
14486
14498
|
setMembers(next);
|
|
14487
14499
|
}
|
|
14500
|
+
const moving = rows.filter(
|
|
14501
|
+
(row) => members.has(row.traveller.travellerId) && row.party != null && row.party.id !== selectedId
|
|
14502
|
+
);
|
|
14488
14503
|
function report(error) {
|
|
14489
14504
|
const classification = error !== null && typeof error === "object" && "classification" in error ? error.classification : void 0;
|
|
14490
14505
|
setErrorCode(classification?.code ?? "unknown");
|
|
@@ -14501,24 +14516,20 @@ function EditPartyDialog({
|
|
|
14501
14516
|
...trimmed.length === 0 ? {} : { label: trimmed },
|
|
14502
14517
|
travellerRefs: [...members]
|
|
14503
14518
|
});
|
|
14504
|
-
|
|
14505
|
-
|
|
14519
|
+
} else {
|
|
14520
|
+
await patchParty({
|
|
14521
|
+
tripRef,
|
|
14522
|
+
partyId: editing.id,
|
|
14523
|
+
// The PARTY's own version, off the row's denormalised party. The
|
|
14524
|
+
// manifest row carries a `version` too — that one guards the
|
|
14525
|
+
// TripTraveller LINK, not this, and sending the wrong one would be
|
|
14526
|
+
// a guard token for a different row.
|
|
14527
|
+
version: editing.version,
|
|
14528
|
+
kind,
|
|
14529
|
+
label: trimmed.length === 0 ? null : trimmed,
|
|
14530
|
+
travellerRefs: [...members]
|
|
14531
|
+
});
|
|
14506
14532
|
}
|
|
14507
|
-
await patchParty({
|
|
14508
|
-
tripRef,
|
|
14509
|
-
partyId: editing.id,
|
|
14510
|
-
// The PARTY's own version, off the row's denormalised party. Note the
|
|
14511
|
-
// manifest row also carries a `version` — that one guards the
|
|
14512
|
-
// TripTraveller LINK, not this. The endpoint returns both because a
|
|
14513
|
-
// console needs both, and confusing them would send a guard token for
|
|
14514
|
-
// the wrong row.
|
|
14515
|
-
version: editing.version,
|
|
14516
|
-
kind,
|
|
14517
|
-
// `null` CLEARS the label; a trimmed-empty box means "no label",
|
|
14518
|
-
// which is a clear rather than a set to empty string.
|
|
14519
|
-
label: trimmed.length === 0 ? null : trimmed,
|
|
14520
|
-
travellerRefs: [...members]
|
|
14521
|
-
});
|
|
14522
14533
|
onSaved();
|
|
14523
14534
|
} catch (error) {
|
|
14524
14535
|
report(error);
|
|
@@ -14527,10 +14538,10 @@ function EditPartyDialog({
|
|
|
14527
14538
|
}
|
|
14528
14539
|
}
|
|
14529
14540
|
async function retire() {
|
|
14541
|
+
if (editing === null) return;
|
|
14530
14542
|
setPending(true);
|
|
14531
14543
|
setErrorCode(void 0);
|
|
14532
14544
|
try {
|
|
14533
|
-
if (editing === null) return;
|
|
14534
14545
|
await deleteParty({ tripRef, partyId: editing.id });
|
|
14535
14546
|
onSaved();
|
|
14536
14547
|
} catch (error) {
|
|
@@ -14539,19 +14550,27 @@ function EditPartyDialog({
|
|
|
14539
14550
|
setPending(false);
|
|
14540
14551
|
}
|
|
14541
14552
|
}
|
|
14553
|
+
const enoughMembers = members.size >= MIN_PARTY_MEMBERS;
|
|
14542
14554
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14543
14555
|
SheetDialog,
|
|
14544
14556
|
{
|
|
14545
14557
|
titleId,
|
|
14546
|
-
title: t(
|
|
14547
|
-
|
|
14548
|
-
),
|
|
14549
|
-
description: t(
|
|
14550
|
-
creating ? "chrome.tripManifest.newGroupBody" : "chrome.tripManifest.editGroupBody"
|
|
14551
|
-
),
|
|
14558
|
+
title: t("chrome.tripManifest.manageGroupsTitle"),
|
|
14559
|
+
description: t("chrome.tripManifest.manageGroupsBody"),
|
|
14552
14560
|
onClose,
|
|
14553
14561
|
closeLabel: t("chrome.tripManifest.close"),
|
|
14554
14562
|
footer: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
14563
|
+
creating ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
14564
|
+
"button",
|
|
14565
|
+
{
|
|
14566
|
+
type: "button",
|
|
14567
|
+
className: "kf-trip-manifest-section__dialog-danger",
|
|
14568
|
+
onClick: () => void retire(),
|
|
14569
|
+
disabled: pending,
|
|
14570
|
+
children: t("chrome.tripManifest.retireGroup")
|
|
14571
|
+
}
|
|
14572
|
+
),
|
|
14573
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__toolbar-spacer" }),
|
|
14555
14574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14556
14575
|
"button",
|
|
14557
14576
|
{
|
|
@@ -14574,6 +14593,37 @@ function EditPartyDialog({
|
|
|
14574
14593
|
)
|
|
14575
14594
|
] }),
|
|
14576
14595
|
children: [
|
|
14596
|
+
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-manifest-section__share-fieldset", children: [
|
|
14597
|
+
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-trip-manifest-section__share-legend", children: t("chrome.tripManifest.groupPickerLegend") }),
|
|
14598
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section__share-chips", children: [
|
|
14599
|
+
groups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14600
|
+
"button",
|
|
14601
|
+
{
|
|
14602
|
+
type: "button",
|
|
14603
|
+
className: "kf-trip-manifest-section__share-chip",
|
|
14604
|
+
"data-active": selectedId === group.id ? "true" : void 0,
|
|
14605
|
+
onClick: () => select(group.id),
|
|
14606
|
+
disabled: pending,
|
|
14607
|
+
children: [
|
|
14608
|
+
group.party?.label ?? t("chrome.tripManifest.unnamedGroup"),
|
|
14609
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__chip-count", children: group.rows.length })
|
|
14610
|
+
]
|
|
14611
|
+
},
|
|
14612
|
+
group.id
|
|
14613
|
+
)),
|
|
14614
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14615
|
+
"button",
|
|
14616
|
+
{
|
|
14617
|
+
type: "button",
|
|
14618
|
+
className: "kf-trip-manifest-section__share-chip",
|
|
14619
|
+
"data-active": creating ? "true" : void 0,
|
|
14620
|
+
onClick: () => select(NEW_GROUP),
|
|
14621
|
+
disabled: pending,
|
|
14622
|
+
children: t("chrome.tripManifest.newGroupChip")
|
|
14623
|
+
}
|
|
14624
|
+
)
|
|
14625
|
+
] })
|
|
14626
|
+
] }),
|
|
14577
14627
|
editing !== null && editing.source === "DERIVED" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", "data-tone": "warn", children: t("chrome.tripManifest.pinNote") }) : null,
|
|
14578
14628
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: "kf-trip-manifest-section__field", children: [
|
|
14579
14629
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__field-label", children: t("chrome.tripManifest.fieldGroupLabel") }),
|
|
@@ -14603,38 +14653,39 @@ function EditPartyDialog({
|
|
|
14603
14653
|
] }),
|
|
14604
14654
|
/* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-manifest-section__share-fieldset", children: [
|
|
14605
14655
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-trip-manifest-section__share-legend", children: t("chrome.tripManifest.fieldGroupMembers") }),
|
|
14606
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-manifest-section__share-grid", children:
|
|
14607
|
-
|
|
14608
|
-
|
|
14609
|
-
|
|
14610
|
-
|
|
14611
|
-
|
|
14612
|
-
|
|
14613
|
-
|
|
14614
|
-
|
|
14615
|
-
|
|
14616
|
-
|
|
14617
|
-
|
|
14618
|
-
|
|
14619
|
-
|
|
14620
|
-
|
|
14621
|
-
|
|
14622
|
-
|
|
14623
|
-
|
|
14624
|
-
|
|
14656
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-manifest-section__share-grid", children: rows.map((row) => {
|
|
14657
|
+
const inThisGroup = row.party != null && row.party.id === selectedId;
|
|
14658
|
+
const elsewhere = row.party != null && !inThisGroup ? row.party : null;
|
|
14659
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
14660
|
+
"label",
|
|
14661
|
+
{
|
|
14662
|
+
className: "kf-trip-manifest-section__member-option",
|
|
14663
|
+
children: [
|
|
14664
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
14665
|
+
"input",
|
|
14666
|
+
{
|
|
14667
|
+
type: "checkbox",
|
|
14668
|
+
checked: members.has(row.traveller.travellerId),
|
|
14669
|
+
onChange: () => toggle(row.traveller.travellerId)
|
|
14670
|
+
}
|
|
14671
|
+
),
|
|
14672
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__member-name", children: row.traveller.fullName }),
|
|
14673
|
+
elsewhere === null ? null : /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__member-current", children: t("chrome.tripManifest.memberInGroup").replace(
|
|
14674
|
+
"{group}",
|
|
14675
|
+
elsewhere.label ?? t("chrome.tripManifest.unnamedGroup")
|
|
14676
|
+
) })
|
|
14677
|
+
]
|
|
14678
|
+
},
|
|
14679
|
+
row.traveller.travellerId
|
|
14680
|
+
);
|
|
14681
|
+
}) }),
|
|
14682
|
+
moving.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", "data-tone": "warn", children: t(
|
|
14683
|
+
moving.length === 1 ? "chrome.tripManifest.movesOne" : "chrome.tripManifest.movesMany"
|
|
14684
|
+
).replace("{count}", String(moving.length)) }) : null,
|
|
14685
|
+
members.size < MIN_PARTY_MEMBERS ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-note", children: t("chrome.tripManifest.tooFewMembers") }) : null
|
|
14625
14686
|
] }),
|
|
14626
|
-
creating ? null : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-manifest-section__danger-lane", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
14627
|
-
"button",
|
|
14628
|
-
{
|
|
14629
|
-
type: "button",
|
|
14630
|
-
className: "kf-trip-manifest-section__dialog-danger",
|
|
14631
|
-
onClick: () => void retire(),
|
|
14632
|
-
disabled: pending,
|
|
14633
|
-
children: t("chrome.tripManifest.retireGroup")
|
|
14634
|
-
}
|
|
14635
|
-
) }),
|
|
14636
14687
|
errorCode === void 0 ? null : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-manifest-section__dialog-error", role: "alert", children: t(
|
|
14637
|
-
errorCode === "CONFLICT_VERSION" ? "chrome.tripManifest.
|
|
14688
|
+
errorCode === "CONFLICT_VERSION" ? "chrome.tripManifest.groupConflict" : "chrome.tripManifest.groupFailed"
|
|
14638
14689
|
) })
|
|
14639
14690
|
]
|
|
14640
14691
|
}
|
|
@@ -14642,7 +14693,7 @@ function EditPartyDialog({
|
|
|
14642
14693
|
}
|
|
14643
14694
|
var DIET_BUCKET_CAP = 4;
|
|
14644
14695
|
function ManifestFacetTiles({ facets, filtered }) {
|
|
14645
|
-
const { t } =
|
|
14696
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14646
14697
|
const dietEntries = Object.entries(facets.dietCounts).filter(([, count]) => count > 0).sort((a, b) => b[1] - a[1]);
|
|
14647
14698
|
const shown = dietEntries.slice(0, DIET_BUCKET_CAP);
|
|
14648
14699
|
const hiddenCount = dietEntries.length - shown.length;
|
|
@@ -14724,7 +14775,7 @@ function ManifestFiltersPopover({
|
|
|
14724
14775
|
value,
|
|
14725
14776
|
onChange
|
|
14726
14777
|
}) {
|
|
14727
|
-
const { t } =
|
|
14778
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14728
14779
|
const [open, setOpen] = react.useState(false);
|
|
14729
14780
|
const rootRef = react.useRef(null);
|
|
14730
14781
|
const triggerRef = react.useRef(null);
|
|
@@ -14864,7 +14915,7 @@ var KIND_LABEL_KEY2 = {
|
|
|
14864
14915
|
OTHER: "chrome.tripManifest.partyKind.other"
|
|
14865
14916
|
};
|
|
14866
14917
|
function ManifestGroupCard({ group, onEdit, children }) {
|
|
14867
|
-
const { t } =
|
|
14918
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14868
14919
|
const party = group.party;
|
|
14869
14920
|
const isSolo = party === null;
|
|
14870
14921
|
const heading = isSolo ? t("chrome.tripManifest.soloHeading") : party.label ?? t(KIND_LABEL_KEY2[party.kind] ?? "chrome.tripManifest.partyKind.other");
|
|
@@ -14952,7 +15003,7 @@ function ManifestRowKebab({
|
|
|
14952
15003
|
onShareLink,
|
|
14953
15004
|
onOpenProfile
|
|
14954
15005
|
}) {
|
|
14955
|
-
const { t } =
|
|
15006
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
14956
15007
|
const [open, setOpen] = react.useState(false);
|
|
14957
15008
|
const rootRef = react.useRef(null);
|
|
14958
15009
|
const triggerRef = react.useRef(null);
|
|
@@ -15051,10 +15102,10 @@ function ManifestRow({
|
|
|
15051
15102
|
onOpenProfile,
|
|
15052
15103
|
style
|
|
15053
15104
|
}) {
|
|
15054
|
-
const { t } =
|
|
15105
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15055
15106
|
const derived = deriveManifestRow(row, index, serverTime);
|
|
15056
15107
|
const traveller = row.traveller;
|
|
15057
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("tr", { role: "row", className: "kf-trip-manifest-section__row", style:
|
|
15108
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("tr", { role: "row", className: "kf-trip-manifest-section__row", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
15058
15109
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
15059
15110
|
"td",
|
|
15060
15111
|
{
|
|
@@ -15128,7 +15179,7 @@ function ManifestTable({
|
|
|
15128
15179
|
onOpenProfile,
|
|
15129
15180
|
RowComponent
|
|
15130
15181
|
}) {
|
|
15131
|
-
const { t } =
|
|
15182
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15132
15183
|
const Row = RowComponent ?? ManifestRow;
|
|
15133
15184
|
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: [
|
|
15134
15185
|
showHead ? /* @__PURE__ */ jsxRuntime.jsx("thead", { role: "rowgroup", children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { role: "row", className: "kf-trip-manifest-section__head-row", children: [
|
|
@@ -15175,8 +15226,8 @@ function ManifestResultsBody({
|
|
|
15175
15226
|
RowComponent,
|
|
15176
15227
|
onRetry
|
|
15177
15228
|
}) {
|
|
15178
|
-
const { t } =
|
|
15179
|
-
const { makeManifestFetch, facets, groupedPageSize } =
|
|
15229
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15230
|
+
const { makeManifestFetch, facets, groupedPageSize } = chunkMP4IMAPF_cjs.useAgencyTripManifest(tripRef);
|
|
15180
15231
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
15181
15232
|
const [hasSettled, setHasSettled] = react.useState(false);
|
|
15182
15233
|
const [serverTime, setServerTime] = react.useState(void 0);
|
|
@@ -15193,7 +15244,7 @@ function ManifestResultsBody({
|
|
|
15193
15244
|
if (meta?.serverTime !== void 0) setServerTime(meta.serverTime);
|
|
15194
15245
|
return page;
|
|
15195
15246
|
} catch (error) {
|
|
15196
|
-
setErrorCode(
|
|
15247
|
+
setErrorCode(chunkPQJGV3RE_cjs.classifyError(error).code ?? "unknown");
|
|
15197
15248
|
return { rows: [], nextCursor: void 0 };
|
|
15198
15249
|
} finally {
|
|
15199
15250
|
setHasSettled(true);
|
|
@@ -15201,7 +15252,7 @@ function ManifestResultsBody({
|
|
|
15201
15252
|
},
|
|
15202
15253
|
[makeManifestFetch, filters, grouped, groupedPageSize]
|
|
15203
15254
|
);
|
|
15204
|
-
const { rows, hasNext, hasPrev, loadNext, loadPrev } =
|
|
15255
|
+
const { rows, hasNext, hasPrev, loadNext, loadPrev } = chunkMP4IMAPF_cjs.usePaginatedList(fetch, {
|
|
15205
15256
|
accumulate: grouped
|
|
15206
15257
|
});
|
|
15207
15258
|
react.useEffect(() => {
|
|
@@ -15362,7 +15413,7 @@ function ManifestSearchInput({
|
|
|
15362
15413
|
debounceMs,
|
|
15363
15414
|
onDebouncedChange
|
|
15364
15415
|
}) {
|
|
15365
|
-
const { t } =
|
|
15416
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15366
15417
|
const [value, setValue] = react.useState("");
|
|
15367
15418
|
react.useEffect(() => {
|
|
15368
15419
|
const timer = setTimeout(() => onDebouncedChange(value.trim()), debounceMs);
|
|
@@ -15389,8 +15440,8 @@ function RemoveTravellerDialog({
|
|
|
15389
15440
|
onClose,
|
|
15390
15441
|
onRemoved
|
|
15391
15442
|
}) {
|
|
15392
|
-
const { t } =
|
|
15393
|
-
const { removeFromManifest } =
|
|
15443
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15444
|
+
const { removeFromManifest } = chunkMP4IMAPF_cjs.useDirectories();
|
|
15394
15445
|
const titleId = react.useId();
|
|
15395
15446
|
const [pending, setPending] = react.useState(false);
|
|
15396
15447
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
@@ -15481,12 +15532,12 @@ function ShareLinkDialog({
|
|
|
15481
15532
|
travellerName,
|
|
15482
15533
|
onClose
|
|
15483
15534
|
}) {
|
|
15484
|
-
const { t } =
|
|
15535
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15485
15536
|
const titleId = react.useId();
|
|
15486
|
-
const buildShareUrl =
|
|
15537
|
+
const buildShareUrl = chunkMP4IMAPF_cjs.useBuildShareUrl();
|
|
15487
15538
|
const isFamily = travellerRef === null;
|
|
15488
|
-
const offerable =
|
|
15489
|
-
const { links, readFailed, mint, revoke, regenerate, reveal } =
|
|
15539
|
+
const offerable = chunkMP4IMAPF_cjs.familySafeSections(isFamily);
|
|
15540
|
+
const { links, readFailed, mint, revoke, regenerate, reveal } = chunkMP4IMAPF_cjs.useShareLinks(
|
|
15490
15541
|
tripRef,
|
|
15491
15542
|
travellerRef
|
|
15492
15543
|
);
|
|
@@ -15819,7 +15870,7 @@ function SideDrawer({
|
|
|
15819
15870
|
"aria-modal": "true",
|
|
15820
15871
|
"aria-labelledby": titleId,
|
|
15821
15872
|
tabIndex: -1,
|
|
15822
|
-
style:
|
|
15873
|
+
style: chunkASFUY3IE_cjs.tokenStyle(style),
|
|
15823
15874
|
children: [
|
|
15824
15875
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-admin-side-drawer__header", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-side-drawer__header-row", children: [
|
|
15825
15876
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-side-drawer__identity", children: [
|
|
@@ -15887,11 +15938,11 @@ function TravellerDetailDialog({
|
|
|
15887
15938
|
onClose,
|
|
15888
15939
|
onRemove
|
|
15889
15940
|
}) {
|
|
15890
|
-
const { t } =
|
|
15941
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
15891
15942
|
const titleId = react.useId();
|
|
15892
|
-
const { read, readFailed, refresh } =
|
|
15893
|
-
const forms =
|
|
15894
|
-
const { addTravellerNote } =
|
|
15943
|
+
const { read, readFailed, refresh } = chunkPQJGV3RE_cjs.useTravellerProfile(tripRef, travellerRef);
|
|
15944
|
+
const forms = chunkMP4IMAPF_cjs.useTravellerFormResponses(tripRef, travellerRef);
|
|
15945
|
+
const { addTravellerNote } = chunkMP4IMAPF_cjs.useDirectories();
|
|
15895
15946
|
const [noteDraft, setNoteDraft] = react.useState("");
|
|
15896
15947
|
const [notePending, setNotePending] = react.useState(false);
|
|
15897
15948
|
const [noteFailed, setNoteFailed] = react.useState(false);
|
|
@@ -16120,7 +16171,7 @@ function DetailRow({
|
|
|
16120
16171
|
absentLabel,
|
|
16121
16172
|
meta
|
|
16122
16173
|
}) {
|
|
16123
|
-
const { t } =
|
|
16174
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16124
16175
|
const has = value !== null && value !== void 0 && value.length > 0;
|
|
16125
16176
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section__detail-row", children: [
|
|
16126
16177
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-manifest-section__detail-label", children: label }),
|
|
@@ -16143,7 +16194,7 @@ function TripManifestSection({
|
|
|
16143
16194
|
components,
|
|
16144
16195
|
style
|
|
16145
16196
|
}) {
|
|
16146
|
-
const { t } =
|
|
16197
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16147
16198
|
const [q, setQ] = react.useState("");
|
|
16148
16199
|
const [groupBy, setGroupBy] = react.useState("booking_group");
|
|
16149
16200
|
const [filters, setFilters] = react.useState({});
|
|
@@ -16172,7 +16223,7 @@ function TripManifestSection({
|
|
|
16172
16223
|
[groupBy, writeToken, wireFilters]
|
|
16173
16224
|
);
|
|
16174
16225
|
const hasActiveFilter = q.length > 0 || Object.keys(filters).length > 0;
|
|
16175
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section", style:
|
|
16226
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
16176
16227
|
facets === void 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(ManifestFacetTiles, { facets, filtered: hasActiveFilter }),
|
|
16177
16228
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-manifest-section__toolbar", children: [
|
|
16178
16229
|
/* @__PURE__ */ jsxRuntime.jsx(ManifestSearchInput, { debounceMs: DEBOUNCE_MS, onDebouncedChange: setQ }),
|
|
@@ -16221,10 +16272,10 @@ function TripManifestSection({
|
|
|
16221
16272
|
{
|
|
16222
16273
|
type: "button",
|
|
16223
16274
|
className: "kf-trip-manifest-section__toolbar-button",
|
|
16224
|
-
onClick: () => setOverlay({ kind: "
|
|
16275
|
+
onClick: () => setOverlay({ kind: "groups" }),
|
|
16225
16276
|
children: [
|
|
16226
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
16227
|
-
t("chrome.tripManifest.
|
|
16277
|
+
/* @__PURE__ */ jsxRuntime.jsx(GroupIcon, {}),
|
|
16278
|
+
t("chrome.tripManifest.manageGroups")
|
|
16228
16279
|
]
|
|
16229
16280
|
}
|
|
16230
16281
|
) : null
|
|
@@ -16240,7 +16291,7 @@ function TripManifestSection({
|
|
|
16240
16291
|
onOpen: (row) => setOverlay({ kind: "detail", row }),
|
|
16241
16292
|
onRemove: (row) => setOverlay({ kind: "remove", row }),
|
|
16242
16293
|
onShareLink: (row) => setOverlay({ kind: "shareTraveller", row }),
|
|
16243
|
-
onEditGroup: (partyId) => setOverlay({ kind: "
|
|
16294
|
+
onEditGroup: (partyId) => setOverlay({ kind: "groups", partyId }),
|
|
16244
16295
|
onRowsChange: setVisibleRows,
|
|
16245
16296
|
...onOpenTravellerProfile !== void 0 ? {
|
|
16246
16297
|
onOpenProfile: (row) => onOpenTravellerProfile(row.traveller.travellerId, row.traveller.fullName)
|
|
@@ -16269,21 +16320,12 @@ function TripManifestSection({
|
|
|
16269
16320
|
}
|
|
16270
16321
|
) : null,
|
|
16271
16322
|
overlay.kind === "add" ? /* @__PURE__ */ jsxRuntime.jsx(AddTravellerDialog, { tripRef, onClose: closeOverlay, onAdded: afterWrite }) : null,
|
|
16272
|
-
overlay.kind === "
|
|
16273
|
-
|
|
16323
|
+
overlay.kind === "groups" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16324
|
+
ManageGroupsDialog,
|
|
16274
16325
|
{
|
|
16275
16326
|
tripRef,
|
|
16276
|
-
partyId: overlay.partyId,
|
|
16277
16327
|
rows: visibleRows,
|
|
16278
|
-
|
|
16279
|
-
onSaved: afterWrite
|
|
16280
|
-
}
|
|
16281
|
-
) : null,
|
|
16282
|
-
overlay.kind === "newParty" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
16283
|
-
EditPartyDialog,
|
|
16284
|
-
{
|
|
16285
|
-
tripRef,
|
|
16286
|
-
candidates: visibleRows,
|
|
16328
|
+
...overlay.partyId !== void 0 ? { initialPartyId: overlay.partyId } : {},
|
|
16287
16329
|
onClose: closeOverlay,
|
|
16288
16330
|
onSaved: afterWrite
|
|
16289
16331
|
}
|
|
@@ -16308,26 +16350,6 @@ function TripManifestSection({
|
|
|
16308
16350
|
) : null
|
|
16309
16351
|
] });
|
|
16310
16352
|
}
|
|
16311
|
-
function EditPartyForId({
|
|
16312
|
-
tripRef,
|
|
16313
|
-
partyId,
|
|
16314
|
-
rows,
|
|
16315
|
-
onClose,
|
|
16316
|
-
onSaved
|
|
16317
|
-
}) {
|
|
16318
|
-
const group = deriveManifestGroups(rows).find((candidate) => candidate.id === partyId);
|
|
16319
|
-
if (group === void 0) return null;
|
|
16320
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
16321
|
-
EditPartyDialog,
|
|
16322
|
-
{
|
|
16323
|
-
tripRef,
|
|
16324
|
-
group,
|
|
16325
|
-
candidates: rows,
|
|
16326
|
-
onClose,
|
|
16327
|
-
onSaved
|
|
16328
|
-
}
|
|
16329
|
-
);
|
|
16330
|
-
}
|
|
16331
16353
|
|
|
16332
16354
|
// src/admin/composite/office/TripPaymentsSection/internal/derivePayments.ts
|
|
16333
16355
|
function liveCollections(rows) {
|
|
@@ -16420,7 +16442,7 @@ function PaymentsSkeleton() {
|
|
|
16420
16442
|
] }, id)) });
|
|
16421
16443
|
}
|
|
16422
16444
|
function PaymentsEmpty({ onRecord }) {
|
|
16423
|
-
const { t } =
|
|
16445
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16424
16446
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-payments-section__state", children: [
|
|
16425
16447
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-payments-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(ReceiptIcon, {}) }),
|
|
16426
16448
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-payments-section__state-title", children: t("chrome.tripPayments.emptyTitle") }),
|
|
@@ -16429,7 +16451,7 @@ function PaymentsEmpty({ onRecord }) {
|
|
|
16429
16451
|
] });
|
|
16430
16452
|
}
|
|
16431
16453
|
function PaymentsFailed({ onRetry }) {
|
|
16432
|
-
const { t } =
|
|
16454
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16433
16455
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-payments-section__state", role: "alert", children: [
|
|
16434
16456
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-payments-section__state-title", children: t("chrome.tripPayments.failedTitle") }),
|
|
16435
16457
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-payments-section__state-body", children: t("chrome.tripPayments.failedBody") }),
|
|
@@ -16437,7 +16459,7 @@ function PaymentsFailed({ onRetry }) {
|
|
|
16437
16459
|
] });
|
|
16438
16460
|
}
|
|
16439
16461
|
function PaymentsDark({ reason }) {
|
|
16440
|
-
const { t } =
|
|
16462
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16441
16463
|
if (reason === "mode") {
|
|
16442
16464
|
return null;
|
|
16443
16465
|
}
|
|
@@ -16458,7 +16480,7 @@ function PaymentsTable({
|
|
|
16458
16480
|
locked,
|
|
16459
16481
|
onVoid
|
|
16460
16482
|
}) {
|
|
16461
|
-
const { t } =
|
|
16483
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16462
16484
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-payments-section__table-wrap", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "kf-trip-payments-section__table", children: [
|
|
16463
16485
|
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "kf-visually-hidden", children: t("chrome.tripPayments.tableCaption") }),
|
|
16464
16486
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
@@ -16517,7 +16539,7 @@ function RecordPaymentDialog({
|
|
|
16517
16539
|
onClose,
|
|
16518
16540
|
onSubmit
|
|
16519
16541
|
}) {
|
|
16520
|
-
const { t } =
|
|
16542
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16521
16543
|
const titleId = react.useId();
|
|
16522
16544
|
const [travellerId, setTravellerId] = react.useState(null);
|
|
16523
16545
|
const [amount, setAmount] = react.useState("");
|
|
@@ -16692,7 +16714,7 @@ function VoidPaymentDialog({
|
|
|
16692
16714
|
onClose,
|
|
16693
16715
|
onSubmit
|
|
16694
16716
|
}) {
|
|
16695
|
-
const { t } =
|
|
16717
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16696
16718
|
const titleId = react.useId();
|
|
16697
16719
|
const [reason, setReason] = react.useState("");
|
|
16698
16720
|
const trimmed = reason.trim();
|
|
@@ -16770,9 +16792,9 @@ function TripPaymentsSection({
|
|
|
16770
16792
|
balance,
|
|
16771
16793
|
style
|
|
16772
16794
|
}) {
|
|
16773
|
-
const { t } =
|
|
16774
|
-
const collections =
|
|
16775
|
-
const parties =
|
|
16795
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16796
|
+
const collections = chunkPQJGV3RE_cjs.useCollections(tripRef);
|
|
16797
|
+
const parties = chunkPQJGV3RE_cjs.useParties(tripRef);
|
|
16776
16798
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
16777
16799
|
const [pending, setPending] = react.useState(false);
|
|
16778
16800
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
@@ -16852,7 +16874,7 @@ function TripPaymentsSection({
|
|
|
16852
16874
|
}
|
|
16853
16875
|
const currency = balance?.currency ?? rows[0]?.currency ?? "INR";
|
|
16854
16876
|
const owingCount = eligibleRows.filter((row) => row.outstandingMinor > 0).length;
|
|
16855
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-payments-section", style:
|
|
16877
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-payments-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
16856
16878
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-payments-section__toolbar", children: [
|
|
16857
16879
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-payments-section__toolbar-title", children: t("chrome.tripPayments.panelLabel") }),
|
|
16858
16880
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-payments-section__toolbar-spacer" }),
|
|
@@ -16993,7 +17015,7 @@ function AssignTravellerDialog({
|
|
|
16993
17015
|
onSubmit,
|
|
16994
17016
|
onClose
|
|
16995
17017
|
}) {
|
|
16996
|
-
const { t } =
|
|
17018
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
16997
17019
|
const titleId = react.useId();
|
|
16998
17020
|
const [pointId, setPointId] = react.useState(stops[0]?.id ?? "");
|
|
16999
17021
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -17064,7 +17086,7 @@ function BoardingRoster({
|
|
|
17064
17086
|
onRetry,
|
|
17065
17087
|
stops
|
|
17066
17088
|
}) {
|
|
17067
|
-
const { t } =
|
|
17089
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17068
17090
|
if (failed) {
|
|
17069
17091
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__state", role: "alert", children: [
|
|
17070
17092
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-pickups-section__state-title", children: t("chrome.tripPickups.boardingFailedTitle") }),
|
|
@@ -17124,7 +17146,7 @@ function TravellerBoardRow({
|
|
|
17124
17146
|
busy,
|
|
17125
17147
|
onCorrect
|
|
17126
17148
|
}) {
|
|
17127
|
-
const { t } =
|
|
17149
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17128
17150
|
const correctable = occupant.status !== "PENDING";
|
|
17129
17151
|
const next = occupant.status === "BOARDED" ? "NO_SHOW" : "BOARDED";
|
|
17130
17152
|
return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "kf-trip-pickups-section__roster-row", children: [
|
|
@@ -17162,7 +17184,7 @@ function DeleteStopDialog({
|
|
|
17162
17184
|
onDelete,
|
|
17163
17185
|
onClose
|
|
17164
17186
|
}) {
|
|
17165
|
-
const { t } =
|
|
17187
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17166
17188
|
const titleId = react.useId();
|
|
17167
17189
|
const [target, setTarget] = react.useState(siblings[0]?.id ?? "");
|
|
17168
17190
|
const occupied = stop.expectedCount > 0;
|
|
@@ -17416,7 +17438,7 @@ function PickupsEmpty({
|
|
|
17416
17438
|
kindLabel,
|
|
17417
17439
|
onAdd
|
|
17418
17440
|
}) {
|
|
17419
|
-
const { t } =
|
|
17441
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17420
17442
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__state", children: [
|
|
17421
17443
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-pickups-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(BusIcon, {}) }),
|
|
17422
17444
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-pickups-section__state-title", children: t("chrome.tripPickups.emptyTitle").replace("{kind}", kindLabel) }),
|
|
@@ -17425,7 +17447,7 @@ function PickupsEmpty({
|
|
|
17425
17447
|
] });
|
|
17426
17448
|
}
|
|
17427
17449
|
function PickupsFailed({ onRetry }) {
|
|
17428
|
-
const { t } =
|
|
17450
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17429
17451
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__state", role: "alert", children: [
|
|
17430
17452
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-pickups-section__state-title", children: t("chrome.tripPickups.failedTitle") }),
|
|
17431
17453
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-pickups-section__state-body", children: t("chrome.tripPickups.failedBody") }),
|
|
@@ -17433,7 +17455,7 @@ function PickupsFailed({ onRetry }) {
|
|
|
17433
17455
|
] });
|
|
17434
17456
|
}
|
|
17435
17457
|
function PickupsDark({ reason }) {
|
|
17436
|
-
const { t } =
|
|
17458
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17437
17459
|
if (reason === "mode") {
|
|
17438
17460
|
return null;
|
|
17439
17461
|
}
|
|
@@ -17467,7 +17489,7 @@ function StopFormDialog({
|
|
|
17467
17489
|
onClose,
|
|
17468
17490
|
onSubmit
|
|
17469
17491
|
}) {
|
|
17470
|
-
const { t } =
|
|
17492
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17471
17493
|
const titleId = react.useId();
|
|
17472
17494
|
const isEdit = stop !== null;
|
|
17473
17495
|
const [kind, setKind] = react.useState(stop?.kind ?? defaultKind);
|
|
@@ -17614,7 +17636,7 @@ function StopFormDialog({
|
|
|
17614
17636
|
);
|
|
17615
17637
|
}
|
|
17616
17638
|
function StopKebab({ stopName, onEdit, onDelete }) {
|
|
17617
|
-
const { t } =
|
|
17639
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17618
17640
|
const [open, setOpen] = react.useState(false);
|
|
17619
17641
|
const rootRef = react.useRef(null);
|
|
17620
17642
|
const triggerRef = react.useRef(null);
|
|
@@ -17691,7 +17713,7 @@ function StopCard({
|
|
|
17691
17713
|
onDelete,
|
|
17692
17714
|
onMoveBy
|
|
17693
17715
|
}) {
|
|
17694
|
-
const { t } =
|
|
17716
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17695
17717
|
const isClosed = stop.status === "CLOSED";
|
|
17696
17718
|
const canReorder = !isClosed;
|
|
17697
17719
|
const percent = boardedPercent(stop);
|
|
@@ -17839,7 +17861,7 @@ function Segment({
|
|
|
17839
17861
|
value,
|
|
17840
17862
|
onChange
|
|
17841
17863
|
}) {
|
|
17842
|
-
const { t } =
|
|
17864
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17843
17865
|
return /* @__PURE__ */ jsxRuntime.jsxs("fieldset", { className: "kf-trip-pickups-section__segment", children: [
|
|
17844
17866
|
/* @__PURE__ */ jsxRuntime.jsx("legend", { className: "kf-visually-hidden", children: t(legendKey) }),
|
|
17845
17867
|
options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -17902,8 +17924,8 @@ function TripPickupsSection({
|
|
|
17902
17924
|
tripStartIso,
|
|
17903
17925
|
style
|
|
17904
17926
|
}) {
|
|
17905
|
-
const { t } =
|
|
17906
|
-
const pickups =
|
|
17927
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
17928
|
+
const pickups = chunkPQJGV3RE_cjs.usePickups(tripRef);
|
|
17907
17929
|
const [kind, setKind] = react.useState("PICKUP");
|
|
17908
17930
|
const [view, setView] = react.useState("stops");
|
|
17909
17931
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -18063,7 +18085,7 @@ function TripPickupsSection({
|
|
|
18063
18085
|
const kindLabel = t(
|
|
18064
18086
|
kind === "PICKUP" ? "chrome.tripPickups.kindPickupOne" : "chrome.tripPickups.kindDropOne"
|
|
18065
18087
|
);
|
|
18066
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-pickups-section", style:
|
|
18088
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-pickups-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
18067
18089
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-pickups-section__toolbar", children: [
|
|
18068
18090
|
/* @__PURE__ */ jsxRuntime.jsx(ViewSwitcher, { value: view, onChange: setView }),
|
|
18069
18091
|
/* @__PURE__ */ jsxRuntime.jsx(KindSwitcher, { value: kind, onChange: setKind }),
|
|
@@ -18286,7 +18308,7 @@ function AutoAssignDialog({
|
|
|
18286
18308
|
onApply,
|
|
18287
18309
|
onClose
|
|
18288
18310
|
}) {
|
|
18289
|
-
const { t } =
|
|
18311
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18290
18312
|
const titleId = react.useId();
|
|
18291
18313
|
const [reassignAll, setReassignAll] = react.useState(false);
|
|
18292
18314
|
const roomCodeById = new Map(group.rooms.map((room) => [room.id, room.code]));
|
|
@@ -18381,7 +18403,7 @@ function AutoAssignDialog({
|
|
|
18381
18403
|
/* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-rooming-section__plan", children: [
|
|
18382
18404
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-rooming-section__plan-title", children: t("chrome.tripRooming.rulesTitle") }),
|
|
18383
18405
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "kf-trip-rooming-section__rule-list", children: preview.perRule.map((entry) => {
|
|
18384
|
-
const severity =
|
|
18406
|
+
const severity = chunkPQJGV3RE_cjs.roomingHeuristicSeverity(entry.rule);
|
|
18385
18407
|
const relaxed = entry.outcome === "relaxed";
|
|
18386
18408
|
const violation = relaxed && severity === "never";
|
|
18387
18409
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -18427,7 +18449,7 @@ function DeleteShell({
|
|
|
18427
18449
|
onConfirm,
|
|
18428
18450
|
onClose
|
|
18429
18451
|
}) {
|
|
18430
|
-
const { t } =
|
|
18452
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18431
18453
|
const titleId = react.useId();
|
|
18432
18454
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
18433
18455
|
SheetDialog,
|
|
@@ -18473,7 +18495,7 @@ function DeleteRoomDialog({
|
|
|
18473
18495
|
onConfirm,
|
|
18474
18496
|
onClose
|
|
18475
18497
|
}) {
|
|
18476
|
-
const { t } =
|
|
18498
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18477
18499
|
const occupied = room.beds.filter((bed) => bed.occupant !== null).length;
|
|
18478
18500
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18479
18501
|
DeleteShell,
|
|
@@ -18499,7 +18521,7 @@ function DeleteWindowDialog({
|
|
|
18499
18521
|
onConfirm,
|
|
18500
18522
|
onClose
|
|
18501
18523
|
}) {
|
|
18502
|
-
const { t } =
|
|
18524
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18503
18525
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
18504
18526
|
DeleteShell,
|
|
18505
18527
|
{
|
|
@@ -18597,15 +18619,15 @@ function roomTypeLabelKey(roomType) {
|
|
|
18597
18619
|
return ROOM_TYPE_LABEL_KEY[roomType] ?? "chrome.tripRooming.roomType.shared";
|
|
18598
18620
|
}
|
|
18599
18621
|
function toneAttrs(tone) {
|
|
18600
|
-
const parsed =
|
|
18622
|
+
const parsed = chunkPQJGV3RE_cjs.parseRoomingTone(tone);
|
|
18601
18623
|
if (parsed === void 0) {
|
|
18602
|
-
return { family:
|
|
18624
|
+
return { family: chunkPQJGV3RE_cjs.TONE_FAMILIES.UNKNOWN, shade: 0 };
|
|
18603
18625
|
}
|
|
18604
|
-
const shade = parsed.shade <
|
|
18626
|
+
const shade = parsed.shade < chunkPQJGV3RE_cjs.SHADES_PER_FAMILY ? parsed.shade : parsed.shade % chunkPQJGV3RE_cjs.SHADES_PER_FAMILY;
|
|
18605
18627
|
return { family: parsed.family, shade };
|
|
18606
18628
|
}
|
|
18607
18629
|
function glyphOf(occupant) {
|
|
18608
|
-
return occupant.glyph === "" ?
|
|
18630
|
+
return occupant.glyph === "" ? chunkPQJGV3RE_cjs.FALLBACK_GLYPH : occupant.glyph;
|
|
18609
18631
|
}
|
|
18610
18632
|
function TravellerGlyph({
|
|
18611
18633
|
occupant,
|
|
@@ -18643,7 +18665,7 @@ var COLLAPSED_COUNT = 10;
|
|
|
18643
18665
|
function IdentityLegend({
|
|
18644
18666
|
occupants
|
|
18645
18667
|
}) {
|
|
18646
|
-
const { t } =
|
|
18668
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18647
18669
|
const [open, setOpen] = react.useState(false);
|
|
18648
18670
|
if (occupants.length === 0) {
|
|
18649
18671
|
return null;
|
|
@@ -18770,7 +18792,7 @@ function RoomFormDialog({
|
|
|
18770
18792
|
onClose,
|
|
18771
18793
|
onSubmit
|
|
18772
18794
|
}) {
|
|
18773
|
-
const { t } =
|
|
18795
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18774
18796
|
const titleId = react.useId();
|
|
18775
18797
|
const isEdit = room !== null;
|
|
18776
18798
|
const [code, setCode] = react.useState(room?.code ?? "");
|
|
@@ -18894,7 +18916,7 @@ function RoomingSkeleton() {
|
|
|
18894
18916
|
] }, id)) });
|
|
18895
18917
|
}
|
|
18896
18918
|
function RoomingEmpty({ onAddWindow }) {
|
|
18897
|
-
const { t } =
|
|
18919
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18898
18920
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-rooming-section__state", children: [
|
|
18899
18921
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-rooming-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(BedIcon, {}) }),
|
|
18900
18922
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-rooming-section__state-title", children: t("chrome.tripRooming.emptyTitle") }),
|
|
@@ -18903,7 +18925,7 @@ function RoomingEmpty({ onAddWindow }) {
|
|
|
18903
18925
|
] });
|
|
18904
18926
|
}
|
|
18905
18927
|
function RoomingFailed({ onRetry }) {
|
|
18906
|
-
const { t } =
|
|
18928
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18907
18929
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-rooming-section__state", role: "alert", children: [
|
|
18908
18930
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-rooming-section__state-title", children: t("chrome.tripRooming.failedTitle") }),
|
|
18909
18931
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-rooming-section__state-body", children: t("chrome.tripRooming.failedBody") }),
|
|
@@ -18911,7 +18933,7 @@ function RoomingFailed({ onRetry }) {
|
|
|
18911
18933
|
] });
|
|
18912
18934
|
}
|
|
18913
18935
|
function RoomingDark({ reason }) {
|
|
18914
|
-
const { t } =
|
|
18936
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18915
18937
|
if (reason === "mode") {
|
|
18916
18938
|
return null;
|
|
18917
18939
|
}
|
|
@@ -18926,7 +18948,7 @@ function RoomingDark({ reason }) {
|
|
|
18926
18948
|
] });
|
|
18927
18949
|
}
|
|
18928
18950
|
function RoomKebab({ roomCode, onEdit, onDelete }) {
|
|
18929
|
-
const { t } =
|
|
18951
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18930
18952
|
const [open, setOpen] = react.useState(false);
|
|
18931
18953
|
const rootRef = react.useRef(null);
|
|
18932
18954
|
const triggerRef = react.useRef(null);
|
|
@@ -18991,7 +19013,7 @@ function RoomKebab({ roomCode, onEdit, onDelete }) {
|
|
|
18991
19013
|
] });
|
|
18992
19014
|
}
|
|
18993
19015
|
function RoomCard({ room, drag, busy, onEdit, onDelete }) {
|
|
18994
|
-
const { t } =
|
|
19016
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
18995
19017
|
const occupied = room.beds.filter((bed) => bed.occupant !== null).length;
|
|
18996
19018
|
return /* @__PURE__ */ jsxRuntime.jsxs("article", { className: "kf-trip-rooming-section__room", "data-busy": busy ? "true" : void 0, children: [
|
|
18997
19019
|
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: "kf-trip-rooming-section__room-head", children: [
|
|
@@ -19041,7 +19063,7 @@ function UnassignedStrip({
|
|
|
19041
19063
|
drag,
|
|
19042
19064
|
busy
|
|
19043
19065
|
}) {
|
|
19044
|
-
const { t } =
|
|
19066
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19045
19067
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19046
19068
|
"div",
|
|
19047
19069
|
{
|
|
@@ -19115,7 +19137,7 @@ function WindowAccordion({
|
|
|
19115
19137
|
onEditRoom,
|
|
19116
19138
|
onDeleteRoom
|
|
19117
19139
|
}) {
|
|
19118
|
-
const { t } =
|
|
19140
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19119
19141
|
const percent = fillPercent(group);
|
|
19120
19142
|
const bodyId = `kf-rooming-window-${group.window.id}`;
|
|
19121
19143
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -19265,7 +19287,7 @@ function WindowFormDialog({
|
|
|
19265
19287
|
onClose,
|
|
19266
19288
|
onSubmit
|
|
19267
19289
|
}) {
|
|
19268
|
-
const { t } =
|
|
19290
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19269
19291
|
const titleId = react.useId();
|
|
19270
19292
|
const isEdit = window !== null;
|
|
19271
19293
|
const [label, setLabel] = react.useState(window?.label ?? "");
|
|
@@ -19378,8 +19400,8 @@ function TripRoomingSection({
|
|
|
19378
19400
|
tripEndIso,
|
|
19379
19401
|
style
|
|
19380
19402
|
}) {
|
|
19381
|
-
const { t } =
|
|
19382
|
-
const rooming =
|
|
19403
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19404
|
+
const rooming = chunkPQJGV3RE_cjs.useRooming(tripRef);
|
|
19383
19405
|
const [openWindowId, setOpenWindowId] = react.useState(null);
|
|
19384
19406
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
19385
19407
|
const [pending, setPending] = react.useState(false);
|
|
@@ -19517,7 +19539,7 @@ function TripRoomingSection({
|
|
|
19517
19539
|
return /* @__PURE__ */ jsxRuntime.jsx(RoomingDark, { reason: rooming.reason });
|
|
19518
19540
|
}
|
|
19519
19541
|
const pool = ready?.unassignedPool;
|
|
19520
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-rooming-section", style:
|
|
19542
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-rooming-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
19521
19543
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-rooming-section__toolbar", children: [
|
|
19522
19544
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-rooming-section__toolbar-title", children: t("chrome.tripRooming.panelLabel") }),
|
|
19523
19545
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-rooming-section__toolbar-spacer" }),
|
|
@@ -19751,7 +19773,7 @@ function isAgencyAuthored(vendor) {
|
|
|
19751
19773
|
return vendor.externalId.startsWith("kf-");
|
|
19752
19774
|
}
|
|
19753
19775
|
function CategoryTabs({ selected, counts, total, onSelect }) {
|
|
19754
|
-
const { t } =
|
|
19776
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19755
19777
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__chips", children: [
|
|
19756
19778
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
19757
19779
|
"button",
|
|
@@ -19794,7 +19816,7 @@ function DeleteSupplierDialog({
|
|
|
19794
19816
|
onConfirm,
|
|
19795
19817
|
onClose
|
|
19796
19818
|
}) {
|
|
19797
|
-
const { t } =
|
|
19819
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19798
19820
|
const titleId = react.useId();
|
|
19799
19821
|
const blockers = deleteBlockers(usage);
|
|
19800
19822
|
const blockedLocally = blockers !== void 0 && blockers.vehicles + blockers.expenses > 0;
|
|
@@ -19947,7 +19969,7 @@ function SupplierFormDialog({
|
|
|
19947
19969
|
onClose,
|
|
19948
19970
|
onSubmit
|
|
19949
19971
|
}) {
|
|
19950
|
-
const { t } =
|
|
19972
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
19951
19973
|
const titleId = react.useId();
|
|
19952
19974
|
const isEdit = supplier !== null;
|
|
19953
19975
|
const [name, setName] = react.useState(supplier?.name ?? "");
|
|
@@ -20069,7 +20091,7 @@ function SuppliersSkeleton() {
|
|
|
20069
20091
|
] }, id)) });
|
|
20070
20092
|
}
|
|
20071
20093
|
function SuppliersEmpty({ onAdd }) {
|
|
20072
|
-
const { t } =
|
|
20094
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20073
20095
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__state", children: [
|
|
20074
20096
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-suppliers-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(StorefrontIcon, {}) }),
|
|
20075
20097
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-suppliers-section__state-title", children: t("chrome.tripSuppliers.emptyTitle") }),
|
|
@@ -20078,7 +20100,7 @@ function SuppliersEmpty({ onAdd }) {
|
|
|
20078
20100
|
] });
|
|
20079
20101
|
}
|
|
20080
20102
|
function SuppliersNoMatch({ onClear }) {
|
|
20081
|
-
const { t } =
|
|
20103
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20082
20104
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__state", children: [
|
|
20083
20105
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-suppliers-section__state-title", children: t("chrome.tripSuppliers.noMatchTitle") }),
|
|
20084
20106
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-suppliers-section__state-body", children: t("chrome.tripSuppliers.noMatchBody") }),
|
|
@@ -20086,7 +20108,7 @@ function SuppliersNoMatch({ onClear }) {
|
|
|
20086
20108
|
] });
|
|
20087
20109
|
}
|
|
20088
20110
|
function SuppliersFailed({ onRetry }) {
|
|
20089
|
-
const { t } =
|
|
20111
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20090
20112
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__state", role: "alert", children: [
|
|
20091
20113
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-suppliers-section__state-title", children: t("chrome.tripSuppliers.failedTitle") }),
|
|
20092
20114
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-suppliers-section__state-body", children: t("chrome.tripSuppliers.failedBody") }),
|
|
@@ -20094,7 +20116,7 @@ function SuppliersFailed({ onRetry }) {
|
|
|
20094
20116
|
] });
|
|
20095
20117
|
}
|
|
20096
20118
|
function SuppliersDark({ reason }) {
|
|
20097
|
-
const { t } =
|
|
20119
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20098
20120
|
if (reason === "mode") {
|
|
20099
20121
|
return null;
|
|
20100
20122
|
}
|
|
@@ -20109,7 +20131,7 @@ function SuppliersDark({ reason }) {
|
|
|
20109
20131
|
] });
|
|
20110
20132
|
}
|
|
20111
20133
|
function SupplierKebab({ name, busy, onEdit, onDelete }) {
|
|
20112
|
-
const { t } =
|
|
20134
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20113
20135
|
const [open, setOpen] = react.useState(false);
|
|
20114
20136
|
const rootRef = react.useRef(null);
|
|
20115
20137
|
const triggerRef = react.useRef(null);
|
|
@@ -20176,7 +20198,7 @@ function SupplierKebab({ name, busy, onEdit, onDelete }) {
|
|
|
20176
20198
|
] });
|
|
20177
20199
|
}
|
|
20178
20200
|
function SupplierUsageCell({ usage }) {
|
|
20179
|
-
const { t } =
|
|
20201
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20180
20202
|
const parts = [];
|
|
20181
20203
|
if (usage.vehicles !== void 0 && usage.vehicles > 0) {
|
|
20182
20204
|
parts.push(
|
|
@@ -20220,7 +20242,7 @@ function SupplierTable({
|
|
|
20220
20242
|
onEdit,
|
|
20221
20243
|
onDelete
|
|
20222
20244
|
}) {
|
|
20223
|
-
const { t } =
|
|
20245
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20224
20246
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-suppliers-section__table-wrap", children: /* @__PURE__ */ jsxRuntime.jsxs("table", { className: "kf-trip-suppliers-section__table", children: [
|
|
20225
20247
|
/* @__PURE__ */ jsxRuntime.jsx("caption", { className: "kf-visually-hidden", children: t("chrome.tripSuppliers.tableCaption") }),
|
|
20226
20248
|
/* @__PURE__ */ jsxRuntime.jsx("thead", { children: /* @__PURE__ */ jsxRuntime.jsxs("tr", { children: [
|
|
@@ -20288,11 +20310,11 @@ function serverBlockOf(error) {
|
|
|
20288
20310
|
return { vehicles: details.vehicleCount ?? 0, expenses: details.expenseCount ?? 0 };
|
|
20289
20311
|
}
|
|
20290
20312
|
function TripSuppliersSection({ tripRef, style }) {
|
|
20291
|
-
const { t } =
|
|
20292
|
-
const vendors =
|
|
20293
|
-
const seating =
|
|
20294
|
-
const itinerary =
|
|
20295
|
-
const expenses =
|
|
20313
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20314
|
+
const vendors = chunkPQJGV3RE_cjs.useVendors(tripRef, "");
|
|
20315
|
+
const seating = chunkPQJGV3RE_cjs.useSeating(tripRef);
|
|
20316
|
+
const itinerary = chunkPQJGV3RE_cjs.useItinerary(tripRef);
|
|
20317
|
+
const expenses = chunkPQJGV3RE_cjs.useExpenses(tripRef);
|
|
20296
20318
|
const [category, setCategory] = react.useState(null);
|
|
20297
20319
|
const [query, setQuery] = react.useState("");
|
|
20298
20320
|
const [sortKey, setSortKey] = react.useState("name");
|
|
@@ -20375,7 +20397,7 @@ function TripSuppliersSection({ tripRef, style }) {
|
|
|
20375
20397
|
return /* @__PURE__ */ jsxRuntime.jsx(SuppliersDark, { reason: vendors.reason });
|
|
20376
20398
|
}
|
|
20377
20399
|
const filtered = category !== null || query.trim() !== "";
|
|
20378
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-suppliers-section", style:
|
|
20400
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-suppliers-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
20379
20401
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-suppliers-section__toolbar", children: [
|
|
20380
20402
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-suppliers-section__toolbar-title", children: t("chrome.tripSuppliers.panelLabel") }),
|
|
20381
20403
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-suppliers-section__toolbar-spacer" }),
|
|
@@ -20514,7 +20536,7 @@ function AutoAssignDialog2({
|
|
|
20514
20536
|
onApply,
|
|
20515
20537
|
onClose
|
|
20516
20538
|
}) {
|
|
20517
|
-
const { t } =
|
|
20539
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20518
20540
|
const titleId = react.useId();
|
|
20519
20541
|
const [reassignAll, setReassignAll] = react.useState(false);
|
|
20520
20542
|
const [genderAdjacency, setGenderAdjacency] = react.useState("AVOID_UNRELATED");
|
|
@@ -20676,7 +20698,7 @@ function DayFilter({
|
|
|
20676
20698
|
countByDay,
|
|
20677
20699
|
onSelect
|
|
20678
20700
|
}) {
|
|
20679
|
-
const { t } =
|
|
20701
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20680
20702
|
const days = Array.from({ length: durationDays }, (_unused, index) => index);
|
|
20681
20703
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__days", children: [
|
|
20682
20704
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__days-label", children: t("chrome.tripVehicles.showDay") }),
|
|
@@ -20809,7 +20831,7 @@ function DeleteVehicleDialog({
|
|
|
20809
20831
|
onConfirm,
|
|
20810
20832
|
onClose
|
|
20811
20833
|
}) {
|
|
20812
|
-
const { t } =
|
|
20834
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20813
20835
|
const titleId = react.useId();
|
|
20814
20836
|
const released = occupantsOf(vehicle).length;
|
|
20815
20837
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -20986,7 +21008,7 @@ function ManagerLinkDialog({
|
|
|
20986
21008
|
onClose,
|
|
20987
21009
|
onSubmit
|
|
20988
21010
|
}) {
|
|
20989
|
-
const { t } =
|
|
21011
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
20990
21012
|
const titleId = react.useId();
|
|
20991
21013
|
const [chosen, setChosen] = react.useState(null);
|
|
20992
21014
|
const demotedFrom = chosen === null ? void 0 : managerVehicleByRef.get(chosen);
|
|
@@ -21063,7 +21085,7 @@ function UnassignedStrip2({
|
|
|
21063
21085
|
drag,
|
|
21064
21086
|
busy
|
|
21065
21087
|
}) {
|
|
21066
|
-
const { t } =
|
|
21088
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21067
21089
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21068
21090
|
"div",
|
|
21069
21091
|
{
|
|
@@ -21130,7 +21152,7 @@ function OccupantRoster({
|
|
|
21130
21152
|
variant,
|
|
21131
21153
|
emptyKey
|
|
21132
21154
|
}) {
|
|
21133
|
-
const { t } =
|
|
21155
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21134
21156
|
const target = { containerId: vehicleId, slotLabel: "" };
|
|
21135
21157
|
const isOver = drag.overSlot !== null && drag.overSlot.containerId === vehicleId && drag.overSlot.slotLabel === "";
|
|
21136
21158
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -21174,7 +21196,7 @@ function OccupantRoster({
|
|
|
21174
21196
|
);
|
|
21175
21197
|
}
|
|
21176
21198
|
function SeatTile({ seat, vehicleId, drag, busy }) {
|
|
21177
|
-
const { t } =
|
|
21199
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21178
21200
|
const target = { containerId: vehicleId, slotLabel: seat.seatLabel };
|
|
21179
21201
|
const isOver = drag.overSlot !== null && drag.overSlot.containerId === target.containerId && drag.overSlot.slotLabel === target.slotLabel;
|
|
21180
21202
|
const occupant = seat.occupant;
|
|
@@ -21237,7 +21259,7 @@ function VehicleKebab({
|
|
|
21237
21259
|
onUnlinkManager,
|
|
21238
21260
|
onDelete
|
|
21239
21261
|
}) {
|
|
21240
|
-
const { t } =
|
|
21262
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21241
21263
|
const [open, setOpen] = react.useState(false);
|
|
21242
21264
|
const rootRef = react.useRef(null);
|
|
21243
21265
|
const triggerRef = react.useRef(null);
|
|
@@ -21347,7 +21369,7 @@ function VehicleCard({
|
|
|
21347
21369
|
onUnlinkManager,
|
|
21348
21370
|
onDelete
|
|
21349
21371
|
}) {
|
|
21350
|
-
const { t } =
|
|
21372
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21351
21373
|
const percent = fillPercent2(vehicle);
|
|
21352
21374
|
const days = daysLabel(vehicle.days);
|
|
21353
21375
|
const bodyId = `kf-vehicle-${vehicle.id}`;
|
|
@@ -21482,7 +21504,7 @@ function VehicleDaysDialog({
|
|
|
21482
21504
|
onClose,
|
|
21483
21505
|
onSubmit
|
|
21484
21506
|
}) {
|
|
21485
|
-
const { t } =
|
|
21507
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21486
21508
|
const titleId = react.useId();
|
|
21487
21509
|
const [selected, setSelected] = react.useState(vehicle.days);
|
|
21488
21510
|
const wholeTrip = selected.length === 0;
|
|
@@ -21581,7 +21603,7 @@ function VehicleFormDialog({
|
|
|
21581
21603
|
onClose,
|
|
21582
21604
|
onSubmit
|
|
21583
21605
|
}) {
|
|
21584
|
-
const { t } =
|
|
21606
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21585
21607
|
const titleId = react.useId();
|
|
21586
21608
|
const isEdit = vehicle !== null;
|
|
21587
21609
|
const [regNo, setRegNo] = react.useState(vehicle?.regNo ?? "");
|
|
@@ -21776,7 +21798,7 @@ function VehiclesSkeleton() {
|
|
|
21776
21798
|
] }, id)) });
|
|
21777
21799
|
}
|
|
21778
21800
|
function VehiclesEmpty({ onAddVehicle }) {
|
|
21779
|
-
const { t } =
|
|
21801
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21780
21802
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__state", children: [
|
|
21781
21803
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__state-glyph", children: /* @__PURE__ */ jsxRuntime.jsx(BusIcon2, {}) }),
|
|
21782
21804
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-vehicles-section__state-title", children: t("chrome.tripVehicles.emptyTitle") }),
|
|
@@ -21785,7 +21807,7 @@ function VehiclesEmpty({ onAddVehicle }) {
|
|
|
21785
21807
|
] });
|
|
21786
21808
|
}
|
|
21787
21809
|
function VehiclesFailed({ onRetry }) {
|
|
21788
|
-
const { t } =
|
|
21810
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21789
21811
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__state", role: "alert", children: [
|
|
21790
21812
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "kf-trip-vehicles-section__state-title", children: t("chrome.tripVehicles.failedTitle") }),
|
|
21791
21813
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-vehicles-section__state-body", children: t("chrome.tripVehicles.failedBody") }),
|
|
@@ -21793,7 +21815,7 @@ function VehiclesFailed({ onRetry }) {
|
|
|
21793
21815
|
] });
|
|
21794
21816
|
}
|
|
21795
21817
|
function VehiclesDark({ reason }) {
|
|
21796
|
-
const { t } =
|
|
21818
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21797
21819
|
if (reason === "mode") {
|
|
21798
21820
|
return null;
|
|
21799
21821
|
}
|
|
@@ -21816,9 +21838,9 @@ function TripVehiclesSection({
|
|
|
21816
21838
|
durationDays,
|
|
21817
21839
|
style
|
|
21818
21840
|
}) {
|
|
21819
|
-
const { t } =
|
|
21820
|
-
const seating =
|
|
21821
|
-
const managers =
|
|
21841
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
21842
|
+
const seating = chunkPQJGV3RE_cjs.useSeating(tripRef);
|
|
21843
|
+
const managers = chunkPQJGV3RE_cjs.useManagers(tripRef);
|
|
21822
21844
|
const [openVehicleId, setOpenVehicleId] = react.useState(null);
|
|
21823
21845
|
const [day, setDay] = react.useState(null);
|
|
21824
21846
|
const [overlay, setOverlay] = react.useState({ kind: "none" });
|
|
@@ -21952,7 +21974,7 @@ function TripVehiclesSection({
|
|
|
21952
21974
|
return /* @__PURE__ */ jsxRuntime.jsx(VehiclesDark, { reason: seating.reason });
|
|
21953
21975
|
}
|
|
21954
21976
|
const pool = ready?.unassignedPool;
|
|
21955
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-vehicles-section", style:
|
|
21977
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-vehicles-section", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
21956
21978
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-vehicles-section__toolbar", children: [
|
|
21957
21979
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__toolbar-title", children: t("chrome.tripVehicles.panelLabel") }),
|
|
21958
21980
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-vehicles-section__toolbar-spacer" }),
|
|
@@ -22245,7 +22267,7 @@ function WarningIcon13(props) {
|
|
|
22245
22267
|
|
|
22246
22268
|
// src/admin/composite/office/TripWorkspace/internal/panels/deriveCloseout.ts
|
|
22247
22269
|
function tabForBlocker(row) {
|
|
22248
|
-
return
|
|
22270
|
+
return chunkMP4IMAPF_cjs.resolveBlockerDeepLink({ actionKey: row.actionKey })?.tab;
|
|
22249
22271
|
}
|
|
22250
22272
|
function orderedBlockers(rows) {
|
|
22251
22273
|
return [...rows].sort((a, b) => {
|
|
@@ -22285,8 +22307,8 @@ function codeOf11(error) {
|
|
|
22285
22307
|
return classification?.code ?? "unknown";
|
|
22286
22308
|
}
|
|
22287
22309
|
function CloseoutCard({ tripRef, onOpenTab, litTabs }) {
|
|
22288
|
-
const { t } =
|
|
22289
|
-
const closeout =
|
|
22310
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
22311
|
+
const closeout = chunkPQJGV3RE_cjs.useCloseout(tripRef);
|
|
22290
22312
|
const [note, setNote] = react.useState(null);
|
|
22291
22313
|
const [pending, setPending] = react.useState(void 0);
|
|
22292
22314
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
@@ -22493,7 +22515,7 @@ function AssignManagerDialog({
|
|
|
22493
22515
|
onClose,
|
|
22494
22516
|
onAssign
|
|
22495
22517
|
}) {
|
|
22496
|
-
const { t } =
|
|
22518
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
22497
22519
|
const titleId = react.useId();
|
|
22498
22520
|
const [query, setQuery] = react.useState("");
|
|
22499
22521
|
const [selected, setSelected] = react.useState(null);
|
|
@@ -22625,8 +22647,8 @@ var ROLE_LABEL_KEY = {
|
|
|
22625
22647
|
COORDINATOR: "chrome.tripWorkspace.managers.roleCoordinator"
|
|
22626
22648
|
};
|
|
22627
22649
|
function OverviewManagersCard({ trip, onChanged }) {
|
|
22628
|
-
const { t } =
|
|
22629
|
-
const { promoteManager, assignManager, unassignManager, makeManagersFetch } =
|
|
22650
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
22651
|
+
const { promoteManager, assignManager, unassignManager, makeManagersFetch } = chunkMP4IMAPF_cjs.useDirectories();
|
|
22630
22652
|
const [pendingId, setPendingId] = react.useState(void 0);
|
|
22631
22653
|
const [errorCode, setErrorCode] = react.useState(void 0);
|
|
22632
22654
|
const [assignOpen, setAssignOpen] = react.useState(false);
|
|
@@ -22787,13 +22809,13 @@ function TripOverviewPanel({
|
|
|
22787
22809
|
onOpenTab,
|
|
22788
22810
|
onTripChanged
|
|
22789
22811
|
}) {
|
|
22790
|
-
const { t } =
|
|
22791
|
-
const today =
|
|
22792
|
-
const expenses =
|
|
22812
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
22813
|
+
const today = chunkPQJGV3RE_cjs.useManagerToday(trip.ref);
|
|
22814
|
+
const expenses = chunkPQJGV3RE_cjs.useExpenses(trip.ref);
|
|
22793
22815
|
const spendTotalMinor = expenses.status === "ready" && expenses.totals.loaded && !expenses.totals.lastFetchFailed ? expenses.totals.spendTotalMinor : void 0;
|
|
22794
22816
|
const finance = deriveFinance(trip, spendTotalMinor);
|
|
22795
22817
|
const quickActions = QUICK_ACTION_TABS.filter((key) => litTabs.has(key));
|
|
22796
|
-
const closeoutProbe =
|
|
22818
|
+
const closeoutProbe = chunkPQJGV3RE_cjs.useCloseout(trip.ref);
|
|
22797
22819
|
const closeoutStage = closeoutProbe.status === "ready" && hasReturned(closeoutProbe.aggregate) ? closeoutProbe.aggregate?.stage ?? null : null;
|
|
22798
22820
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__overview", children: [
|
|
22799
22821
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__overview-main", children: [
|
|
@@ -22832,7 +22854,7 @@ function TripOverviewPanel({
|
|
|
22832
22854
|
function TodayCard({
|
|
22833
22855
|
today
|
|
22834
22856
|
}) {
|
|
22835
|
-
const { t } =
|
|
22857
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
22836
22858
|
if (today.kind === "idle") return null;
|
|
22837
22859
|
const openChecklist = today.checklist ?? [];
|
|
22838
22860
|
const itinerary = today.itinerary ?? [];
|
|
@@ -22856,7 +22878,7 @@ function TodayCard({
|
|
|
22856
22878
|
function FinanceCard({
|
|
22857
22879
|
finance
|
|
22858
22880
|
}) {
|
|
22859
|
-
const { t } =
|
|
22881
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
22860
22882
|
return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "kf-trip-workspace__card", children: [
|
|
22861
22883
|
/* @__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") }) }),
|
|
22862
22884
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__finance-body", children: [
|
|
@@ -23119,7 +23141,7 @@ var BLOCKER_BODY_KEY = {
|
|
|
23119
23141
|
capabilityDark: "chrome.tripWorkspace.blocker.capabilityDarkBody"
|
|
23120
23142
|
};
|
|
23121
23143
|
function TripTabPlaceholder({ tabKey, blocker }) {
|
|
23122
|
-
const { t } =
|
|
23144
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
23123
23145
|
const label = t(TAB_LABEL_KEY[tabKey]);
|
|
23124
23146
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__placeholder", children: [
|
|
23125
23147
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-trip-workspace__placeholder-glyph", children: blocker === "deferred" ? /* @__PURE__ */ jsxRuntime.jsx(ClockIcon2, {}) : /* @__PURE__ */ jsxRuntime.jsx(LockIcon11, {}) }),
|
|
@@ -23129,7 +23151,7 @@ function TripTabPlaceholder({ tabKey, blocker }) {
|
|
|
23129
23151
|
] });
|
|
23130
23152
|
}
|
|
23131
23153
|
function TripKpiStrip({ cells }) {
|
|
23132
|
-
const { t } =
|
|
23154
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
23133
23155
|
if (cells.length === 0) return null;
|
|
23134
23156
|
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: [
|
|
23135
23157
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace__kpi-label", children: t(cell.labelKey) }),
|
|
@@ -23138,7 +23160,7 @@ function TripKpiStrip({ cells }) {
|
|
|
23138
23160
|
] }, cell.key)) });
|
|
23139
23161
|
}
|
|
23140
23162
|
function TripTabRail({ tabs, activeKey, onSelect }) {
|
|
23141
|
-
const { t } =
|
|
23163
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
23142
23164
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23143
23165
|
"div",
|
|
23144
23166
|
{
|
|
@@ -23172,7 +23194,7 @@ var STATUS_LABEL_KEY9 = {
|
|
|
23172
23194
|
CANCELLED: "chrome.tripDirectory.status.cancelled"
|
|
23173
23195
|
};
|
|
23174
23196
|
function TripWorkspaceHead({ trip, onBack, style }) {
|
|
23175
|
-
const { t } =
|
|
23197
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
23176
23198
|
const head = deriveTripHead(trip);
|
|
23177
23199
|
const subLabelParts = [
|
|
23178
23200
|
head.dateRangeLabel,
|
|
@@ -23183,7 +23205,7 @@ function TripWorkspaceHead({ trip, onBack, style }) {
|
|
|
23183
23205
|
trip.manifestCount === 1 ? "chrome.tripWorkspace.travellerCountOne" : "chrome.tripWorkspace.travellerCount"
|
|
23184
23206
|
).replace("{count}", String(trip.manifestCount))
|
|
23185
23207
|
];
|
|
23186
|
-
return /* @__PURE__ */ jsxRuntime.jsx("header", { className: "kf-trip-workspace__head", style:
|
|
23208
|
+
return /* @__PURE__ */ jsxRuntime.jsx("header", { className: "kf-trip-workspace__head", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__head-identity", children: [
|
|
23187
23209
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__eyebrow", children: [
|
|
23188
23210
|
onBack === void 0 ? null : /* @__PURE__ */ jsxRuntime.jsx(
|
|
23189
23211
|
"button",
|
|
@@ -23223,10 +23245,10 @@ function TripWorkspace({
|
|
|
23223
23245
|
components,
|
|
23224
23246
|
style
|
|
23225
23247
|
}) {
|
|
23226
|
-
const { t } =
|
|
23227
|
-
const { read, readFailed, refresh } =
|
|
23248
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
23249
|
+
const { read, readFailed, refresh } = chunkMP4IMAPF_cjs.useAgencyTrip(tripRef);
|
|
23228
23250
|
if (readFailed) {
|
|
23229
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style:
|
|
23251
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace__status-block", role: "alert", children: [
|
|
23230
23252
|
/* @__PURE__ */ jsxRuntime.jsx(WarningIcon13, { className: "kf-trip-workspace__status-icon" }),
|
|
23231
23253
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-workspace__status-title", children: t("chrome.tripWorkspace.errorTitle") }),
|
|
23232
23254
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "kf-trip-workspace__status-body", children: t("chrome.tripWorkspace.errorBody") }),
|
|
@@ -23242,7 +23264,7 @@ function TripWorkspace({
|
|
|
23242
23264
|
] }) });
|
|
23243
23265
|
}
|
|
23244
23266
|
if (read === void 0) {
|
|
23245
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style:
|
|
23267
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "kf-trip-workspace", style: chunkASFUY3IE_cjs.tokenStyle(style), children: /* @__PURE__ */ jsxRuntime.jsx(TripWorkspaceSkeleton, {}) });
|
|
23246
23268
|
}
|
|
23247
23269
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
23248
23270
|
TripWorkspaceBody,
|
|
@@ -23270,7 +23292,7 @@ function TripWorkspaceBody({
|
|
|
23270
23292
|
components,
|
|
23271
23293
|
style
|
|
23272
23294
|
}) {
|
|
23273
|
-
const { statuses, loaded } =
|
|
23295
|
+
const { statuses, loaded } = chunkMP4IMAPF_cjs.useCapabilityStatuses(tripRef);
|
|
23274
23296
|
const Head = components?.TripWorkspaceHead ?? TripWorkspaceHead;
|
|
23275
23297
|
const tabs = react.useMemo(() => resolveTripTabs(trip.eventType, statuses), [trip.eventType, statuses]);
|
|
23276
23298
|
const [requestedTab, setRequestedTab] = react.useState(initialTab ?? "overview");
|
|
@@ -23354,7 +23376,7 @@ function TripWorkspaceBody({
|
|
|
23354
23376
|
}),
|
|
23355
23377
|
[trip, litTabs, tripRef, onTripChanged, onOpenTravellerProfile]
|
|
23356
23378
|
);
|
|
23357
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace", style:
|
|
23379
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-trip-workspace", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
23358
23380
|
/* @__PURE__ */ jsxRuntime.jsx(Head, { trip, ...onBack !== void 0 ? { onBack } : {} }),
|
|
23359
23381
|
/* @__PURE__ */ jsxRuntime.jsx(TripKpiStrip, { cells: kpis }),
|
|
23360
23382
|
loaded ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -23551,7 +23573,7 @@ function AdminShell({
|
|
|
23551
23573
|
function renderNavIcon(iconKey) {
|
|
23552
23574
|
return NavIcon !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(NavIcon, { iconKey }) : navIcon(iconKey);
|
|
23553
23575
|
}
|
|
23554
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shell", style:
|
|
23576
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shell", style: chunkASFUY3IE_cjs.tokenStyle(style), children: [
|
|
23555
23577
|
/* @__PURE__ */ jsxRuntime.jsxs("aside", { className: "kf-admin-shell__sidebar", children: [
|
|
23556
23578
|
brand !== void 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "kf-admin-shell__brand", children: [
|
|
23557
23579
|
brand.logo !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "kf-admin-shell__brand-logo", children: brand.logo }) : null,
|
|
@@ -23655,7 +23677,7 @@ function AdminShell({
|
|
|
23655
23677
|
] });
|
|
23656
23678
|
}
|
|
23657
23679
|
function KaafilAgencyWorkspace(props) {
|
|
23658
|
-
const session =
|
|
23680
|
+
const session = chunkASFUY3IE_cjs.useSession();
|
|
23659
23681
|
if (session.status !== "authenticated") {
|
|
23660
23682
|
return null;
|
|
23661
23683
|
}
|
|
@@ -23680,8 +23702,8 @@ function ReadyKaafilAgencyWorkspace(props) {
|
|
|
23680
23702
|
components,
|
|
23681
23703
|
style
|
|
23682
23704
|
} = props;
|
|
23683
|
-
const { t } =
|
|
23684
|
-
const agencyAdminMe =
|
|
23705
|
+
const { t } = chunkASFUY3IE_cjs.useKaafilChrome();
|
|
23706
|
+
const agencyAdminMe = chunkMP4IMAPF_cjs.useAgencyAdminMe();
|
|
23685
23707
|
const [internalPane, setInternalPane] = react.useState(
|
|
23686
23708
|
initialPane ?? "trips"
|
|
23687
23709
|
);
|
|
@@ -23942,27 +23964,27 @@ function ReadyKaafilAgencyWorkspace(props) {
|
|
|
23942
23964
|
|
|
23943
23965
|
Object.defineProperty(exports, "BootErrorScreen", {
|
|
23944
23966
|
enumerable: true,
|
|
23945
|
-
get: function () { return
|
|
23967
|
+
get: function () { return chunkTDFM563X_cjs.BootErrorScreen; }
|
|
23946
23968
|
});
|
|
23947
23969
|
Object.defineProperty(exports, "LockedTripScreen", {
|
|
23948
23970
|
enumerable: true,
|
|
23949
|
-
get: function () { return
|
|
23971
|
+
get: function () { return chunkTDFM563X_cjs.LockedTripScreen; }
|
|
23950
23972
|
});
|
|
23951
23973
|
Object.defineProperty(exports, "NotFoundScreen", {
|
|
23952
23974
|
enumerable: true,
|
|
23953
|
-
get: function () { return
|
|
23975
|
+
get: function () { return chunkTDFM563X_cjs.NotFoundScreen; }
|
|
23954
23976
|
});
|
|
23955
23977
|
Object.defineProperty(exports, "OfflineFallbackScreen", {
|
|
23956
23978
|
enumerable: true,
|
|
23957
|
-
get: function () { return
|
|
23979
|
+
get: function () { return chunkTDFM563X_cjs.OfflineFallbackScreen; }
|
|
23958
23980
|
});
|
|
23959
23981
|
Object.defineProperty(exports, "PlanLockedScreen", {
|
|
23960
23982
|
enumerable: true,
|
|
23961
|
-
get: function () { return
|
|
23983
|
+
get: function () { return chunkTDFM563X_cjs.PlanLockedScreen; }
|
|
23962
23984
|
});
|
|
23963
23985
|
Object.defineProperty(exports, "SessionExpiredScreen", {
|
|
23964
23986
|
enumerable: true,
|
|
23965
|
-
get: function () { return
|
|
23987
|
+
get: function () { return chunkTDFM563X_cjs.SessionExpiredScreen; }
|
|
23966
23988
|
});
|
|
23967
23989
|
exports.AdminShell = AdminShell;
|
|
23968
23990
|
exports.AgencySettingsScreen = AgencySettingsScreen;
|