@shortstravelmgmt/component-lib 0.1.7 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +20 -16
- package/dist/index.esm.js +227 -129
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +231 -133
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9,12 +9,12 @@ const createIcon = (children, displayName) => {
|
|
|
9
9
|
return Icon;
|
|
10
10
|
};
|
|
11
11
|
// Travel / segment type icons
|
|
12
|
-
const PlaneIcon$
|
|
13
|
-
const CarIcon$
|
|
14
|
-
const HotelIcon$
|
|
12
|
+
const PlaneIcon$3 = createIcon(jsxRuntime.jsx("path", { d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z" }), 'PlaneIcon');
|
|
13
|
+
const CarIcon$1 = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2" }), jsxRuntime.jsx("circle", { cx: "7", cy: "17", r: "2" }), jsxRuntime.jsx("path", { d: "M9 17h6" }), jsxRuntime.jsx("circle", { cx: "17", cy: "17", r: "2" })] }), 'CarIcon');
|
|
14
|
+
const HotelIcon$3 = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M10 22v-6.57" }), jsxRuntime.jsx("path", { d: "M12 11h.01" }), jsxRuntime.jsx("path", { d: "M12 7h.01" }), jsxRuntime.jsx("path", { d: "M14 15.43V22" }), jsxRuntime.jsx("path", { d: "M15 16a5 5 0 0 0-6 0" }), jsxRuntime.jsx("path", { d: "M16 11h.01" }), jsxRuntime.jsx("path", { d: "M16 7h.01" }), jsxRuntime.jsx("path", { d: "M8 11h.01" }), jsxRuntime.jsx("path", { d: "M8 7h.01" }), jsxRuntime.jsx("rect", { x: "4", y: "2", width: "16", height: "20", rx: "2" })] }), 'HotelIcon');
|
|
15
15
|
const LimoIcon = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "m21 8-2 2-1.5-3.7A2 2 0 0 0 15.646 5H8.4a2 2 0 0 0-1.903 1.257L5 10 3 8" }), jsxRuntime.jsx("path", { d: "M7 14h.01" }), jsxRuntime.jsx("path", { d: "M17 14h.01" }), jsxRuntime.jsx("rect", { width: "18", height: "8", x: "3", y: "10", rx: "2" }), jsxRuntime.jsx("path", { d: "M5 18v2" }), jsxRuntime.jsx("path", { d: "M19 18v2" })] }), 'LimoIcon');
|
|
16
16
|
const RailIcon = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M8 3.1V7a4 4 0 0 0 8 0V3.1" }), jsxRuntime.jsx("path", { d: "m9 15-1-1" }), jsxRuntime.jsx("path", { d: "m15 15 1-1" }), jsxRuntime.jsx("path", { d: "M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z" }), jsxRuntime.jsx("path", { d: "m8 19-2 3" }), jsxRuntime.jsx("path", { d: "m16 19 2 3" })] }), 'RailIcon');
|
|
17
|
-
const BusIcon$
|
|
17
|
+
const BusIcon$2 = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M8 6v6" }), jsxRuntime.jsx("path", { d: "M15 6v6" }), jsxRuntime.jsx("path", { d: "M2 12h19.6" }), jsxRuntime.jsx("path", { d: "M18 18h3s.5-1.7.8-2.8c.1-.4.2-.8.2-1.2 0-.4-.1-.8-.2-1.2l-1.4-5C20.1 6.8 19.1 6 18 6H4a2 2 0 0 0-2 2v10h3" }), jsxRuntime.jsx("circle", { cx: "7", cy: "18", r: "2" }), jsxRuntime.jsx("path", { d: "M9 18h5" }), jsxRuntime.jsx("circle", { cx: "16", cy: "18", r: "2" })] }), 'BusIcon');
|
|
18
18
|
// Control / chrome icons
|
|
19
19
|
const SearchIcon$1 = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("circle", { cx: "11", cy: "11", r: "8" }), jsxRuntime.jsx("path", { d: "m21 21-4.3-4.3" })] }), 'SearchIcon');
|
|
20
20
|
const ChevronDownIcon$1 = createIcon(jsxRuntime.jsx("path", { d: "m6 9 6 6 6-6" }), 'ChevronDownIcon');
|
|
@@ -61,12 +61,12 @@ const LockIcon$1 = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
|
61
61
|
const TrashIcon$2 = createIcon(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("path", { d: "M3 6h18" }), jsxRuntime.jsx("path", { d: "M8 6V4h8v2" }), jsxRuntime.jsx("path", { d: "m19 6-1 15H6L5 6" }), jsxRuntime.jsx("path", { d: "M10 11v5" }), jsxRuntime.jsx("path", { d: "M14 11v5" })] }), 'TrashIcon');
|
|
62
62
|
// Export all icons as a map for dynamic access
|
|
63
63
|
const Icons = {
|
|
64
|
-
Plane: PlaneIcon$
|
|
65
|
-
Car: CarIcon$
|
|
66
|
-
Hotel: HotelIcon$
|
|
64
|
+
Plane: PlaneIcon$3,
|
|
65
|
+
Car: CarIcon$1,
|
|
66
|
+
Hotel: HotelIcon$3,
|
|
67
67
|
Limo: LimoIcon,
|
|
68
68
|
Rail: RailIcon,
|
|
69
|
-
Bus: BusIcon$
|
|
69
|
+
Bus: BusIcon$2,
|
|
70
70
|
Search: SearchIcon$1,
|
|
71
71
|
ChevronDown: ChevronDownIcon$1,
|
|
72
72
|
ChevronUp: ChevronUpIcon,
|
|
@@ -1033,7 +1033,7 @@ const ServiceToggle = ({ label, icon, hasToggle = true, enabled = false, onToggl
|
|
|
1033
1033
|
onClick();
|
|
1034
1034
|
}
|
|
1035
1035
|
};
|
|
1036
|
-
return (jsxRuntime.jsxs("div", { className: styles$F.item, children: [jsxRuntime.jsxs("div", { className: `${styles$F.labelContainer} ${isClickable ? styles$F.clickable : ''}`, onClick: handleClick, children: [icon && jsxRuntime.jsx("span", { className: styles$F.icon, children: icon }), jsxRuntime.jsx("span", { className: styles$F.label, children: label })] }), hasToggle && (jsxRuntime.jsx(Toggle, { checked: enabled, onChange: (checked) => onToggle?.(checked), disabled: disabled, size: "sm" }))] }));
|
|
1036
|
+
return (jsxRuntime.jsxs("div", { className: styles$F.item, children: [jsxRuntime.jsxs("div", { className: `${styles$F.labelContainer} ${isClickable ? styles$F.clickable : ''}`, onClick: handleClick, children: [icon && jsxRuntime.jsx("span", { className: styles$F.icon, children: icon }), jsxRuntime.jsx("span", { className: styles$F.label, children: label })] }), hasToggle && (jsxRuntime.jsx(Toggle, { "aria-label": label, checked: enabled, onChange: (checked) => onToggle?.(checked), disabled: disabled, size: "sm" }))] }));
|
|
1037
1037
|
};
|
|
1038
1038
|
/**
|
|
1039
1039
|
* ServiceToggleList component for displaying a list of services with toggles.
|
|
@@ -1108,9 +1108,9 @@ TeamSubMenu.displayName = 'TeamSubMenu';
|
|
|
1108
1108
|
|
|
1109
1109
|
var styles$C = {"segment":"TripSegment-module_segment__jX-Nq","light":"TripSegment-module_light__hHSb3","dark":"TripSegment-module_dark__3Fuo7","empty":"TripSegment-module_empty__vmzg0","item":"TripSegment-module_item__S-RC1","itemHeader":"TripSegment-module_itemHeader__wFWMo","itemType":"TripSegment-module_itemType__NsDLe","itemName":"TripSegment-module_itemName__ysYsC","route":"TripSegment-module_route__Shyz0","location":"TripSegment-module_location__8VCMH","details":"TripSegment-module_details__4U4Km","dates":"TripSegment-module_dates__Wn4-k"};
|
|
1110
1110
|
|
|
1111
|
-
const PlaneIcon$
|
|
1112
|
-
const BusIcon$
|
|
1113
|
-
const HotelIcon$
|
|
1111
|
+
const PlaneIcon$2 = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("path", { d: "M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z" }) }));
|
|
1112
|
+
const BusIcon$1 = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "14", rx: "2" }), jsxRuntime.jsx("path", { d: "M8 6v6" }), jsxRuntime.jsx("path", { d: "M16 6v6" }), jsxRuntime.jsx("circle", { cx: "8", cy: "16", r: "1" }), jsxRuntime.jsx("circle", { cx: "16", cy: "16", r: "1" })] }));
|
|
1113
|
+
const HotelIcon$2 = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M3 21h18" }), jsxRuntime.jsx("path", { d: "M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16" }), jsxRuntime.jsx("path", { d: "M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4" })] }));
|
|
1114
1114
|
const ArrowIcon = () => (jsxRuntime.jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" }), jsxRuntime.jsx("polyline", { points: "12 5 19 12 12 19" })] }));
|
|
1115
1115
|
/**
|
|
1116
1116
|
* Base TripSegment component wrapper
|
|
@@ -1125,7 +1125,7 @@ const AirSegment = ({ flights, variant = 'light', className = '', }) => {
|
|
|
1125
1125
|
if (!flights || flights.length === 0) {
|
|
1126
1126
|
return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$C.empty, children: "No flights" }) }));
|
|
1127
1127
|
}
|
|
1128
|
-
return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: flights.map((flight, i) => (jsxRuntime.jsxs("div", { className: styles$C.item, children: [jsxRuntime.jsxs("div", { className: styles$C.itemHeader, children: [jsxRuntime.jsx(PlaneIcon$
|
|
1128
|
+
return (jsxRuntime.jsx(TripSegment, { type: "air", variant: variant, className: className, children: flights.map((flight, i) => (jsxRuntime.jsxs("div", { className: styles$C.item, children: [jsxRuntime.jsxs("div", { className: styles$C.itemHeader, children: [jsxRuntime.jsx(PlaneIcon$2, {}), jsxRuntime.jsx("span", { className: styles$C.itemType, children: flight.type === 'charter' ? 'Charter' : 'Commercial' })] }), jsxRuntime.jsxs("div", { className: styles$C.route, children: [jsxRuntime.jsx("span", { className: styles$C.location, children: flight.departure }), jsxRuntime.jsx(ArrowIcon, {}), jsxRuntime.jsx("span", { className: styles$C.location, children: flight.arrival })] }), jsxRuntime.jsxs("div", { className: styles$C.details, children: [jsxRuntime.jsx("span", { children: flight.departureDate }), flight.departureTime && jsxRuntime.jsx("span", { children: flight.departureTime })] }), flight.airline && (jsxRuntime.jsxs("div", { className: styles$C.details, children: [jsxRuntime.jsx("span", { children: flight.airline }), flight.flightNumber && jsxRuntime.jsxs("span", { children: ["#", flight.flightNumber] })] }))] }, i))) }));
|
|
1129
1129
|
};
|
|
1130
1130
|
/**
|
|
1131
1131
|
* GroundSegment component for displaying ground transportation
|
|
@@ -1134,7 +1134,7 @@ const GroundSegment = ({ segments, variant = 'light', className = '', }) => {
|
|
|
1134
1134
|
if (!segments || segments.length === 0) {
|
|
1135
1135
|
return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$C.empty, children: "No ground transportation" }) }));
|
|
1136
1136
|
}
|
|
1137
|
-
return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: segments.map((segment, i) => (jsxRuntime.jsxs("div", { className: styles$C.item, children: [jsxRuntime.jsxs("div", { className: styles$C.itemHeader, children: [jsxRuntime.jsx(BusIcon$
|
|
1137
|
+
return (jsxRuntime.jsx(TripSegment, { type: "ground", variant: variant, className: className, children: segments.map((segment, i) => (jsxRuntime.jsxs("div", { className: styles$C.item, children: [jsxRuntime.jsxs("div", { className: styles$C.itemHeader, children: [jsxRuntime.jsx(BusIcon$1, {}), jsxRuntime.jsx("span", { className: styles$C.itemType, children: segment.type.charAt(0).toUpperCase() + segment.type.slice(1) })] }), jsxRuntime.jsxs("div", { className: styles$C.route, children: [jsxRuntime.jsx("span", { className: styles$C.location, children: segment.pickupLocation }), jsxRuntime.jsx(ArrowIcon, {}), jsxRuntime.jsx("span", { className: styles$C.location, children: segment.dropoffLocation })] }), jsxRuntime.jsxs("div", { className: styles$C.details, children: [jsxRuntime.jsx("span", { children: segment.pickupDate }), segment.pickupTime && jsxRuntime.jsx("span", { children: segment.pickupTime })] }), segment.company && (jsxRuntime.jsxs("div", { className: styles$C.details, children: [jsxRuntime.jsx("span", { children: segment.company }), segment.vehicleCount && jsxRuntime.jsxs("span", { children: [segment.vehicleCount, " vehicles"] })] }))] }, i))) }));
|
|
1138
1138
|
};
|
|
1139
1139
|
/**
|
|
1140
1140
|
* HotelSegment component for displaying hotel information
|
|
@@ -1143,7 +1143,7 @@ const HotelSegment = ({ hotels, variant = 'light', className = '', }) => {
|
|
|
1143
1143
|
if (!hotels || hotels.length === 0) {
|
|
1144
1144
|
return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: jsxRuntime.jsx("span", { className: styles$C.empty, children: "No hotels" }) }));
|
|
1145
1145
|
}
|
|
1146
|
-
return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: hotels.map((hotel, i) => (jsxRuntime.jsxs("div", { className: styles$C.item, children: [jsxRuntime.jsxs("div", { className: styles$C.itemHeader, children: [jsxRuntime.jsx(HotelIcon$
|
|
1146
|
+
return (jsxRuntime.jsx(TripSegment, { type: "hotel", variant: variant, className: className, children: hotels.map((hotel, i) => (jsxRuntime.jsxs("div", { className: styles$C.item, children: [jsxRuntime.jsxs("div", { className: styles$C.itemHeader, children: [jsxRuntime.jsx(HotelIcon$2, {}), jsxRuntime.jsx("span", { className: styles$C.itemName, children: hotel.name })] }), hotel.city && (jsxRuntime.jsx("div", { className: styles$C.details, children: jsxRuntime.jsx("span", { children: hotel.city }) })), jsxRuntime.jsxs("div", { className: styles$C.dates, children: [jsxRuntime.jsx("span", { children: hotel.checkIn }), jsxRuntime.jsx("span", { children: "\u2013" }), jsxRuntime.jsx("span", { children: hotel.checkOut })] }), hotel.roomCount && (jsxRuntime.jsx("div", { className: styles$C.details, children: jsxRuntime.jsxs("span", { children: [hotel.roomCount, " rooms"] }) }))] }, i))) }));
|
|
1147
1147
|
};
|
|
1148
1148
|
TripSegment.displayName = 'TripSegment';
|
|
1149
1149
|
AirSegment.displayName = 'AirSegment';
|
|
@@ -1421,17 +1421,17 @@ const HubAppShell = ({ children, navItems = HUB_NAV_ITEMS, individualTravelItem
|
|
|
1421
1421
|
|
|
1422
1422
|
var styles$t = {"container":"MembershipPrograms-module_container__qsGZu","loading":"MembershipPrograms-module_loading__tjDtr","alert":"MembershipPrograms-module_alert__GZc0f","header":"MembershipPrograms-module_header__ywXOE","title":"MembershipPrograms-module_title__WZGyt","addButton":"MembershipPrograms-module_addButton__rNlNb","empty":"MembershipPrograms-module_empty__pYrHW","list":"MembershipPrograms-module_list__8A9MG","group":"MembershipPrograms-module_group__v1Vc6","groupHeader":"MembershipPrograms-module_groupHeader__I5KJO","groupIcon":"MembershipPrograms-module_groupIcon__e1LIq","groupLabel":"MembershipPrograms-module_groupLabel__Wqift","programs":"MembershipPrograms-module_programs__hxHXQ","program":"MembershipPrograms-module_program__S3HTM","programInfo":"MembershipPrograms-module_programInfo__RJruG","programProvider":"MembershipPrograms-module_programProvider__c7enz","programName":"MembershipPrograms-module_programName__TN42s","programNumber":"MembershipPrograms-module_programNumber__GKav4","programStatus":"MembershipPrograms-module_programStatus__2imvX","programActions":"MembershipPrograms-module_programActions__36LkY","actionButton":"MembershipPrograms-module_actionButton__y-GI4","removeButton":"MembershipPrograms-module_removeButton__cTTuZ"};
|
|
1423
1423
|
|
|
1424
|
-
const PlaneIcon$
|
|
1425
|
-
const HotelIcon$
|
|
1426
|
-
const CarIcon
|
|
1424
|
+
const PlaneIcon$1 = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("path", { d: "M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z" }) }));
|
|
1425
|
+
const HotelIcon$1 = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M3 21h18" }), jsxRuntime.jsx("path", { d: "M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16" }), jsxRuntime.jsx("path", { d: "M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4" })] }));
|
|
1426
|
+
const CarIcon = () => (jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M7 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }), jsxRuntime.jsx("path", { d: "M17 17m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" }), jsxRuntime.jsx("path", { d: "M5 17h-2v-6l2 -5h9l4 5h1a2 2 0 0 1 2 2v4h-2m-4 0h-6m-6 -6h15m-6 0v-5" })] }));
|
|
1427
1427
|
const StarIcon = () => (jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("polygon", { points: "12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" }) }));
|
|
1428
1428
|
const EditIcon = () => (jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("path", { d: "M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" }) }));
|
|
1429
1429
|
const TrashIcon = () => (jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("polyline", { points: "3 6 5 6 21 6" }), jsxRuntime.jsx("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })] }));
|
|
1430
1430
|
const PlusIcon = () => (jsxRuntime.jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("line", { x1: "12", y1: "5", x2: "12", y2: "19" }), jsxRuntime.jsx("line", { x1: "5", y1: "12", x2: "19", y2: "12" })] }));
|
|
1431
1431
|
const TYPE_ICONS = {
|
|
1432
|
-
airline: jsxRuntime.jsx(PlaneIcon$
|
|
1433
|
-
hotel: jsxRuntime.jsx(HotelIcon$
|
|
1434
|
-
car: jsxRuntime.jsx(CarIcon
|
|
1432
|
+
airline: jsxRuntime.jsx(PlaneIcon$1, {}),
|
|
1433
|
+
hotel: jsxRuntime.jsx(HotelIcon$1, {}),
|
|
1434
|
+
car: jsxRuntime.jsx(CarIcon, {}),
|
|
1435
1435
|
other: jsxRuntime.jsx(StarIcon, {}),
|
|
1436
1436
|
};
|
|
1437
1437
|
const TYPE_LABELS = {
|
|
@@ -1579,13 +1579,13 @@ const PageBanners = ({ systemBanners, alertBanners, className = '', }) => {
|
|
|
1579
1579
|
|
|
1580
1580
|
var styles$o = {"panel":"PreferencesPanel-module_panel__xsxcw","loading":"PreferencesPanel-module_loading__GopYy","alert":"PreferencesPanel-module_alert__9yYz3","title":"PreferencesPanel-module_title__Z5dpP","grid":"PreferencesPanel-module_grid__e0urP","section":"PreferencesPanel-module_section__6cbAx","sectionHeader":"PreferencesPanel-module_sectionHeader__X6e5h","sectionIcon":"PreferencesPanel-module_sectionIcon__jVJwn","sectionTitle":"PreferencesPanel-module_sectionTitle__29M-O","fields":"PreferencesPanel-module_fields__rryQ3","field":"PreferencesPanel-module_field__W3Z9z","fieldLabel":"PreferencesPanel-module_fieldLabel__usgRa","fieldValue":"PreferencesPanel-module_fieldValue__AEJ1C","fieldInput":"PreferencesPanel-module_fieldInput__rS8OR","footer":"PreferencesPanel-module_footer__qTYqi"};
|
|
1581
1581
|
|
|
1582
|
-
const PlaneIcon
|
|
1583
|
-
const BusIcon
|
|
1584
|
-
const HotelIcon
|
|
1582
|
+
const PlaneIcon = () => (jsxRuntime.jsx("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: jsxRuntime.jsx("path", { d: "M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5Z" }) }));
|
|
1583
|
+
const BusIcon = () => (jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("rect", { x: "4", y: "4", width: "16", height: "14", rx: "2" }), jsxRuntime.jsx("path", { d: "M8 6v6" }), jsxRuntime.jsx("path", { d: "M16 6v6" }), jsxRuntime.jsx("circle", { cx: "8", cy: "16", r: "1" }), jsxRuntime.jsx("circle", { cx: "16", cy: "16", r: "1" })] }));
|
|
1584
|
+
const HotelIcon = () => (jsxRuntime.jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [jsxRuntime.jsx("path", { d: "M3 21h18" }), jsxRuntime.jsx("path", { d: "M19 21V5a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v16" }), jsxRuntime.jsx("path", { d: "M9 21v-4a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v4" })] }));
|
|
1585
1585
|
const DEFAULT_ICONS = {
|
|
1586
|
-
air: jsxRuntime.jsx(PlaneIcon
|
|
1587
|
-
ground: jsxRuntime.jsx(BusIcon
|
|
1588
|
-
hotel: jsxRuntime.jsx(HotelIcon
|
|
1586
|
+
air: jsxRuntime.jsx(PlaneIcon, {}),
|
|
1587
|
+
ground: jsxRuntime.jsx(BusIcon, {}),
|
|
1588
|
+
hotel: jsxRuntime.jsx(HotelIcon, {}),
|
|
1589
1589
|
};
|
|
1590
1590
|
/**
|
|
1591
1591
|
* PreferencesPanel - Displays travel preferences in a multi-column layout
|
|
@@ -1626,11 +1626,11 @@ const SummarySection = ({ section, values }) => {
|
|
|
1626
1626
|
* RequestSummary component for displaying a summary of travel request form data.
|
|
1627
1627
|
* Shows enabled sections with their filled-in values.
|
|
1628
1628
|
*/
|
|
1629
|
-
const RequestSummary = ({ sections, values, enabledSections = {}, submissionInfo, className, title = 'Request Summary', }) => {
|
|
1629
|
+
const RequestSummary$1 = ({ sections, values, enabledSections = {}, submissionInfo, className, title = 'Request Summary', }) => {
|
|
1630
1630
|
const visibleSections = sections.filter(section => enabledSections[section.key] !== false);
|
|
1631
1631
|
return (jsxRuntime.jsxs("div", { className: `${styles$n.summary} ${className || ''}`, children: [jsxRuntime.jsx("h2", { className: styles$n.title, children: title }), submissionInfo && (jsxRuntime.jsxs("div", { className: styles$n.submissionInfo, children: [jsxRuntime.jsx("span", { className: styles$n.label, children: "Submitted by" }), jsxRuntime.jsx("span", { className: styles$n.value, children: submissionInfo.submittedBy }), jsxRuntime.jsx("span", { className: styles$n.label, children: "on" }), jsxRuntime.jsx("span", { className: styles$n.value, children: submissionInfo.submittedOn })] })), jsxRuntime.jsx("div", { className: styles$n.sections, children: visibleSections.map((section) => (jsxRuntime.jsx(SummarySection, { section: section, values: values }, section.key))) }), visibleSections.length === 0 && (jsxRuntime.jsx("p", { className: styles$n.empty, children: "No services selected" }))] }));
|
|
1632
1632
|
};
|
|
1633
|
-
RequestSummary.displayName = 'RequestSummary';
|
|
1633
|
+
RequestSummary$1.displayName = 'RequestSummary';
|
|
1634
1634
|
|
|
1635
1635
|
var styles$m = {"layout":"RequestFormLayout-module_layout__R-vaM","header":"RequestFormLayout-module_header__705In","headerContent":"RequestFormLayout-module_headerContent__Uu0br","headerTitle":"RequestFormLayout-module_headerTitle__W-fub","pagination":"RequestFormLayout-module_pagination__hTpNr","separator":"RequestFormLayout-module_separator__BgEsp","eventName":"RequestFormLayout-module_eventName__1zpgS","headerRight":"RequestFormLayout-module_headerRight__VjjY3","body":"RequestFormLayout-module_body__RBH8O","sidebar":"RequestFormLayout-module_sidebar__Ozr7m","showOnMobile":"RequestFormLayout-module_showOnMobile__kyyER","sidebarContent":"RequestFormLayout-module_sidebarContent__IdoMX","main":"RequestFormLayout-module_main__132ss","mainContent":"RequestFormLayout-module_mainContent__vnp1R","summarySidebar":"RequestFormLayout-module_summarySidebar__Vfg-z","summaryContent":"RequestFormLayout-module_summaryContent__Oppnd","footer":"RequestFormLayout-module_footer__yxDM5","footerContent":"RequestFormLayout-module_footerContent__GmTkE","button":"RequestFormLayout-module_button__-iWUv","primary":"RequestFormLayout-module_primary__cs2Fb","secondary":"RequestFormLayout-module_secondary__9WNRX"};
|
|
1636
1636
|
|
|
@@ -1789,9 +1789,9 @@ const headers = [
|
|
|
1789
1789
|
{ key: 'sportCode', label: 'Sport', icon: jsxRuntime.jsx(RunningIcon, {}) },
|
|
1790
1790
|
{ key: 'travelStartDate', label: 'Date(s)', icon: jsxRuntime.jsx(CalendarIcon$1, { size: 16 }) },
|
|
1791
1791
|
{ key: 'tripName', label: 'Trip Name', icon: jsxRuntime.jsx(DocumentIcon, { size: 16 }) },
|
|
1792
|
-
{ label: 'Air', icon: jsxRuntime.jsx(PlaneIcon$
|
|
1792
|
+
{ label: 'Air', icon: jsxRuntime.jsx(PlaneIcon$3, { size: 16 }) },
|
|
1793
1793
|
{ label: 'Ground', icon: jsxRuntime.jsx(GroundIcon, {}) },
|
|
1794
|
-
{ label: 'Hotel', icon: jsxRuntime.jsx(HotelIcon$
|
|
1794
|
+
{ label: 'Hotel', icon: jsxRuntime.jsx(HotelIcon$3, { size: 16 }) },
|
|
1795
1795
|
];
|
|
1796
1796
|
/** Hub's read-only expanded Team Schedule table. */
|
|
1797
1797
|
const TeamScheduleExpandedTable = ({ rows, teamCode, onTripClick, emptyMessage = 'No data available.', className = '' }) => {
|
|
@@ -2099,7 +2099,7 @@ const TeamRosterMemberForm = ({ mode = 'Add', values, initialValues, onChange, o
|
|
|
2099
2099
|
}, disabled: disabled, fullWidth: true }) })), jsxRuntime.jsxs(SectionCard, { icon: jsxRuntime.jsx(UserIcon, { size: 20 }), title: "Identity", subtitle: "Name as it appears on government ID", badge: jsxRuntime.jsx(SectionBadge, { complete: identityComplete }), children: [jsxRuntime.jsxs("div", { className: styles$f.threeColumnGrid, children: [jsxRuntime.jsx(Input, { label: "First Name *", value: formValues.firstName, onChange: (event) => updateValues({ firstName: event.target.value }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsxs("div", { className: styles$f.middleNameField, children: [jsxRuntime.jsxs("div", { className: styles$f.fieldHeader, children: [jsxRuntime.jsx("label", { htmlFor: "team-middle-name", children: "Middle Name" }), jsxRuntime.jsx(Checkbox, { label: "None", size: "sm", checked: formValues.noMiddleName, onChange: (event) => updateValues({
|
|
2100
2100
|
noMiddleName: event.target.checked,
|
|
2101
2101
|
middleName: event.target.checked ? '' : formValues.middleName,
|
|
2102
|
-
}), disabled: disabled })] }), jsxRuntime.jsx(Input, { id: "team-middle-name", "aria-label": "Middle Name", placeholder: formValues.noMiddleName ? 'None' : '', value: formValues.middleName, onChange: (event) => updateValues({ middleName: event.target.value }), required: !formValues.noMiddleName, disabled: disabled || formValues.noMiddleName, fullWidth: true })] }), jsxRuntime.jsx(Input, { label: "Last Name *", value: formValues.lastName, onChange: (event) => updateValues({ lastName: event.target.value }), required: true, disabled: disabled, fullWidth: true })] }), jsxRuntime.jsx(Select, { label: "Traveler Type *", placeholder: "Select traveler type", options: travelerTypeOptions, value: formValues.travelerType, onChange: (event) => updateValues({ travelerType: event.target.value }), required: true, disabled: disabled, fullWidth: true })] }), jsxRuntime.jsx(SectionCard, { icon: jsxRuntime.jsx(LockIcon$1, { size: 20 }), title: "Secure Flight", subtitle: "TSA-required for every air booking", badge: jsxRuntime.jsx(SectionBadge, { complete: secureFlightComplete, label: !formValues.weight || Number(formValues.weight) < 1 ? 'Add weight' : undefined }), children: jsxRuntime.jsxs("div", { className: styles$f.threeColumnGrid, children: [jsxRuntime.jsx(Input, { label: "Date of Birth *", type: "date", min: localDateString(minBirthDate), max: localDateString(new Date()), value: formValues.birthDate, onChange: (event) => updateValues({ birthDate: event.target.value }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Select, { label: "Gender *", placeholder: "Select gender", options: ['Male', 'Female', 'Unspecified (X)'].map((label) => ({ label, value: label })), value: formValues.gender, onChange: (event) => updateValues({ gender: event.target.value }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Weight (lbs) *", type: "number", min: "1", value: formValues.weight, onChange: (event) => updateValues({ weight: numericValue$1(event.target.value) }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Passport No.", placeholder: "Add for intl. travel", value: formValues.passportNumber, onChange: (event) => updateValues({ passportNumber: event.target.value.toUpperCase() }), disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Known Traveler No.", placeholder: "KTN", value: formValues.knownTravelerNumber, onChange: (event) => updateValues({ knownTravelerNumber: event.target.value.toUpperCase() }), disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "DHS Redress No.", placeholder: "Add if issued", value: formValues.dhsRedressNumber, onChange: (event) => updateValues({ dhsRedressNumber: event.target.value.toUpperCase() }), disabled: disabled, fullWidth: true })] }) }), mode === 'Add' && (jsxRuntime.jsx(SectionCard, { icon: jsxRuntime.jsx(PlaneIcon$
|
|
2102
|
+
}), disabled: disabled })] }), jsxRuntime.jsx(Input, { id: "team-middle-name", "aria-label": "Middle Name", placeholder: formValues.noMiddleName ? 'None' : '', value: formValues.middleName, onChange: (event) => updateValues({ middleName: event.target.value }), required: !formValues.noMiddleName, disabled: disabled || formValues.noMiddleName, fullWidth: true })] }), jsxRuntime.jsx(Input, { label: "Last Name *", value: formValues.lastName, onChange: (event) => updateValues({ lastName: event.target.value }), required: true, disabled: disabled, fullWidth: true })] }), jsxRuntime.jsx(Select, { label: "Traveler Type *", placeholder: "Select traveler type", options: travelerTypeOptions, value: formValues.travelerType, onChange: (event) => updateValues({ travelerType: event.target.value }), required: true, disabled: disabled, fullWidth: true })] }), jsxRuntime.jsx(SectionCard, { icon: jsxRuntime.jsx(LockIcon$1, { size: 20 }), title: "Secure Flight", subtitle: "TSA-required for every air booking", badge: jsxRuntime.jsx(SectionBadge, { complete: secureFlightComplete, label: !formValues.weight || Number(formValues.weight) < 1 ? 'Add weight' : undefined }), children: jsxRuntime.jsxs("div", { className: styles$f.threeColumnGrid, children: [jsxRuntime.jsx(Input, { label: "Date of Birth *", type: "date", min: localDateString(minBirthDate), max: localDateString(new Date()), value: formValues.birthDate, onChange: (event) => updateValues({ birthDate: event.target.value }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Select, { label: "Gender *", placeholder: "Select gender", options: ['Male', 'Female', 'Unspecified (X)'].map((label) => ({ label, value: label })), value: formValues.gender, onChange: (event) => updateValues({ gender: event.target.value }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Weight (lbs) *", type: "number", min: "1", value: formValues.weight, onChange: (event) => updateValues({ weight: numericValue$1(event.target.value) }), required: true, disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Passport No.", placeholder: "Add for intl. travel", value: formValues.passportNumber, onChange: (event) => updateValues({ passportNumber: event.target.value.toUpperCase() }), disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Known Traveler No.", placeholder: "KTN", value: formValues.knownTravelerNumber, onChange: (event) => updateValues({ knownTravelerNumber: event.target.value.toUpperCase() }), disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "DHS Redress No.", placeholder: "Add if issued", value: formValues.dhsRedressNumber, onChange: (event) => updateValues({ dhsRedressNumber: event.target.value.toUpperCase() }), disabled: disabled, fullWidth: true })] }) }), mode === 'Add' && (jsxRuntime.jsx(SectionCard, { icon: jsxRuntime.jsx(PlaneIcon$3, { size: 20 }), title: "Frequent Flyer", subtitle: "Airline loyalty program details", badge: jsxRuntime.jsx(SectionBadge, { optional: true }), children: jsxRuntime.jsxs("div", { className: styles$f.twoColumnGrid, children: [jsxRuntime.jsx(Select, { label: "Airline", placeholder: "Select airline", options: airlineOptions, value: formValues.airline, onChange: (event) => updateValues({ airline: event.target.value }), disabled: disabled, fullWidth: true }), jsxRuntime.jsx(Input, { label: "Frequent Flyer Number", value: formValues.frequentFlyerNumber, onChange: (event) => updateValues({ frequentFlyerNumber: event.target.value }), disabled: disabled, fullWidth: true })] }) })), jsxRuntime.jsx(SectionCard, { icon: jsxRuntime.jsx(InfoIcon$1, { size: 20 }), title: "Special Requests", subtitle: "Dietary, seating, accessibility, rooming", badge: jsxRuntime.jsx(SectionBadge, { optional: true }), children: jsxRuntime.jsx(Textarea, { "aria-label": "Special Requests", placeholder: "Add anything the travel desk should know\u2026", value: formValues.specialRequests, onChange: (event) => updateValues({ specialRequests: event.target.value }), rows: 3, disabled: disabled, fullWidth: true }) })] }));
|
|
2103
2103
|
};
|
|
2104
2104
|
const IMPORT_COPY = {
|
|
2105
2105
|
equipment: {
|
|
@@ -2241,7 +2241,7 @@ const DEFAULT_CARDS = [
|
|
|
2241
2241
|
key: 'suppliers',
|
|
2242
2242
|
title: 'Suppliers',
|
|
2243
2243
|
description: 'Manage air, car, and hotel suppliers',
|
|
2244
|
-
icon: jsxRuntime.jsx(PlaneIcon$
|
|
2244
|
+
icon: jsxRuntime.jsx(PlaneIcon$3, { size: 16 }),
|
|
2245
2245
|
},
|
|
2246
2246
|
];
|
|
2247
2247
|
/** Hub administration shell and system-card index. */
|
|
@@ -2278,7 +2278,7 @@ const CharterManifestPage = ({ tripName, travelStartDate, travelEndDate, seats,
|
|
|
2278
2278
|
}
|
|
2279
2279
|
return a.lastName.localeCompare(b.lastName);
|
|
2280
2280
|
}), [passengers, sort]);
|
|
2281
|
-
return (jsxRuntime.jsxs("div", { className: [styles$a.page, className].filter(Boolean).join(' '), "data-screen-label": "Charter Trip Manifest", children: [jsxRuntime.jsxs("header", { className: styles$a.header, children: [jsxRuntime.jsxs("div", { className: styles$a.headerRow, children: [jsxRuntime.jsx("button", { type: "button", "aria-label": "Back", className: styles$a.back, onClick: onBack, children: jsxRuntime.jsx(ChevronLeftIcon, { size: 28 }) }), jsxRuntime.jsxs("h1", { children: [jsxRuntime.jsx("strong", { children: "Manifest" }), jsxRuntime.jsx(ChevronRightIcon$1, { size: 24 }), jsxRuntime.jsx("span", { children: tripName })] }), jsxRuntime.jsxs("div", { className: styles$a.headerActions, children: [jsxRuntime.jsx(StatusPill, { sendState: sendState, locked: locked }), jsxRuntime.jsx(Button, { variant: "outline", leftIcon: jsxRuntime.jsx(DocumentIcon, { size: 16 }), disabled: carrierName === 'No carrier selected', onClick: onGenerateFile, children: "Generate File" })] })] }), (travelStartDate || travelEndDate) && (jsxRuntime.jsxs("div", { className: styles$a.dateRow, children: [jsxRuntime.jsx("span", { children: formatDate(travelStartDate) }), jsxRuntime.jsx("span", { className: styles$a.dateLine, children: "\u25B6" }), jsxRuntime.jsx("span", { children: formatDate(travelEndDate) })] })), jsxRuntime.jsxs("div", { className: styles$a.metaRow, children: [jsxRuntime.jsxs("span", { children: [jsxRuntime.jsx(PlaneIcon$
|
|
2281
|
+
return (jsxRuntime.jsxs("div", { className: [styles$a.page, className].filter(Boolean).join(' '), "data-screen-label": "Charter Trip Manifest", children: [jsxRuntime.jsxs("header", { className: styles$a.header, children: [jsxRuntime.jsxs("div", { className: styles$a.headerRow, children: [jsxRuntime.jsx("button", { type: "button", "aria-label": "Back", className: styles$a.back, onClick: onBack, children: jsxRuntime.jsx(ChevronLeftIcon, { size: 28 }) }), jsxRuntime.jsxs("h1", { children: [jsxRuntime.jsx("strong", { children: "Manifest" }), jsxRuntime.jsx(ChevronRightIcon$1, { size: 24 }), jsxRuntime.jsx("span", { children: tripName })] }), jsxRuntime.jsxs("div", { className: styles$a.headerActions, children: [jsxRuntime.jsx(StatusPill, { sendState: sendState, locked: locked }), jsxRuntime.jsx(Button, { variant: "outline", leftIcon: jsxRuntime.jsx(DocumentIcon, { size: 16 }), disabled: carrierName === 'No carrier selected', onClick: onGenerateFile, children: "Generate File" })] })] }), (travelStartDate || travelEndDate) && (jsxRuntime.jsxs("div", { className: styles$a.dateRow, children: [jsxRuntime.jsx("span", { children: formatDate(travelStartDate) }), jsxRuntime.jsx("span", { className: styles$a.dateLine, children: "\u25B6" }), jsxRuntime.jsx("span", { children: formatDate(travelEndDate) })] })), jsxRuntime.jsxs("div", { className: styles$a.metaRow, children: [jsxRuntime.jsxs("span", { children: [jsxRuntime.jsx(PlaneIcon$3, { size: 16 }), seats, " seats"] }), jsxRuntime.jsxs("span", { children: [jsxRuntime.jsx(CubeIcon, { size: 16 }), "Payload limit ", payloadLimit.toLocaleString(), " lb"] })] })] }), jsxRuntime.jsxs("div", { className: styles$a.layout, children: [jsxRuntime.jsxs("aside", { className: styles$a.rail, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("div", { className: styles$a.eyebrow, children: "Flight Manifest" }), jsxRuntime.jsx("div", { className: styles$a.scopeList, children: [{ id: 'all', label: 'Full Trip', detail: 'All flight segments' }, ...segments].map((item) => (jsxRuntime.jsxs("button", { type: "button", className: [styles$a.scope, scope === item.id ? styles$a.activeScope : ''].filter(Boolean).join(' '), onClick: () => setScope(item.id), children: [jsxRuntime.jsx("strong", { children: item.label }), jsxRuntime.jsx("span", { children: item.detail })] }, item.id))) })] }), segments.length > 0 && (jsxRuntime.jsx(Button, { variant: "outline", size: "sm", disabled: locked, onClick: onSplitSegments, children: "Split by Segment" })), jsxRuntime.jsxs("div", { className: styles$a.carrierCard, children: [jsxRuntime.jsx("div", { className: styles$a.eyebrow, children: "Carrier" }), jsxRuntime.jsx("strong", { children: carrierName }), jsxRuntime.jsx("p", { children: carrierNote }), jsxRuntime.jsx(Button, { variant: "outline", size: "sm", fullWidth: true, disabled: locked, leftIcon: jsxRuntime.jsx(SettingsIcon, { size: 15 }), onClick: onChangeCarrier, children: "Change Carrier" })] })] }), jsxRuntime.jsxs("main", { className: styles$a.main, children: [jsxRuntime.jsx("section", { className: styles$a.capacityCard, children: jsxRuntime.jsx(ManifestCapacityStats, { paxCount: passengers.length, seats: seats, paxWeight: passengerWeight, cargoWeight: cargoWeight, payloadLimit: payloadLimit }) }), jsxRuntime.jsxs("div", { className: styles$a.viewRow, children: [jsxRuntime.jsx(ManifestViewToggle, { view: view, onView: setView, paxCount: passengers.length, eqCount: equipment.length, locked: locked }), locked && jsxRuntime.jsx("span", { className: styles$a.lockedMessage, children: "Locked \u2014 coordinate any changes directly with the carrier." })] }), view === 'passengers' ? (jsxRuntime.jsxs("section", { children: [!locked && (jsxRuntime.jsxs("div", { className: styles$a.tableActions, children: [jsxRuntime.jsxs("strong", { children: [passengers.length, " Passengers"] }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("span", { children: "Order by" }), jsxRuntime.jsx("span", { className: styles$a.sortToggle, children: ['name', 'type'].map((option) => (jsxRuntime.jsx("button", { type: "button", className: sort === option ? styles$a.activeSort : '', onClick: () => setSort(option), children: option }, option))) }), jsxRuntime.jsx(Button, { size: "sm", leftIcon: jsxRuntime.jsx(PlusIcon$2, { size: 15 }), onClick: onAddPassengers, children: "Add Passengers" })] })] })), jsxRuntime.jsx("div", { className: styles$a.tableWrap, children: jsxRuntime.jsxs("table", { children: [jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("th", { children: "#" }), jsxRuntime.jsx("th", { children: "Passenger" }), jsxRuntime.jsx("th", { children: "Type" }), jsxRuntime.jsx("th", { children: "TSA Screening" }), jsxRuntime.jsx("th", { children: "Personal" }), jsxRuntime.jsx("th", { children: "Carry-On" }), jsxRuntime.jsx("th", { children: "Checked" }), jsxRuntime.jsx("th", { children: "Seat" }), jsxRuntime.jsx("th", {})] }) }), jsxRuntime.jsxs("tbody", { children: [!sortedPassengers.length && jsxRuntime.jsx("tr", { children: jsxRuntime.jsx("td", { colSpan: 9, className: styles$a.empty, children: "No passengers on this manifest yet. Add passengers from the master list." }) }), sortedPassengers.map((passenger, index) => (jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { children: index + 1 }), jsxRuntime.jsxs("td", { children: [jsxRuntime.jsx("strong", { children: passenger.lastName }), jsxRuntime.jsxs("span", { children: [", ", passenger.firstName] })] }), jsxRuntime.jsx("td", { children: jsxRuntime.jsx(TypeTag, { type: passenger.travelerType }) }), jsxRuntime.jsx("td", { children: passenger.screeningType || '—' }), jsxRuntime.jsxs("td", { children: [passenger.personalWeight ?? 0, " lb"] }), jsxRuntime.jsxs("td", { children: [passenger.carryOnWeight ?? 0, " lb"] }), jsxRuntime.jsxs("td", { children: [passenger.checkedWeight ?? 0, " lb"] }), jsxRuntime.jsx("td", { children: passenger.seatAssignment || '—' }), jsxRuntime.jsx("td", { children: !locked && jsxRuntime.jsx("button", { type: "button", "aria-label": `Remove ${passenger.firstName} ${passenger.lastName}`, className: styles$a.remove, onClick: () => onRemovePassenger?.(passenger), children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) }) })] }, passenger.id)))] })] }) })] })) : (jsxRuntime.jsxs("section", { children: [!locked && jsxRuntime.jsxs("div", { className: styles$a.tableActions, children: [jsxRuntime.jsxs("strong", { children: [equipment.length, " Equipment Items"] }), jsxRuntime.jsx(Button, { size: "sm", leftIcon: jsxRuntime.jsx(PlusIcon$2, { size: 15 }), onClick: onAddEquipment, children: "Add Equipment" })] }), jsxRuntime.jsx("div", { className: styles$a.tableWrap, children: jsxRuntime.jsxs("table", { children: [jsxRuntime.jsx("thead", { children: jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("th", { children: "Equipment" }), jsxRuntime.jsx("th", { children: "Quantity" }), jsxRuntime.jsx("th", { children: "Weight" }), jsxRuntime.jsx("th", { children: "Total" }), jsxRuntime.jsx("th", {})] }) }), jsxRuntime.jsx("tbody", { children: equipment.map((item) => jsxRuntime.jsxs("tr", { children: [jsxRuntime.jsx("td", { children: jsxRuntime.jsx("strong", { children: item.name }) }), jsxRuntime.jsx("td", { children: item.quantity }), jsxRuntime.jsxs("td", { children: [item.weight.toLocaleString(), " lb"] }), jsxRuntime.jsxs("td", { children: [(item.quantity * item.weight).toLocaleString(), " lb"] }), jsxRuntime.jsx("td", { children: !locked && jsxRuntime.jsx("button", { type: "button", "aria-label": `Remove ${item.name}`, className: styles$a.remove, onClick: () => onRemoveEquipment?.(item), children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) }) })] }, item.id)) })] }) })] })), !locked && (jsxRuntime.jsxs("section", { className: styles$a.finalize, children: [jsxRuntime.jsx(StatusPill, { sendState: sendState, locked: false }), jsxRuntime.jsx("p", { children: sendState === 'initial-sent' ? 'Initial manifest sent. The final manifest may be sent within 3 days of departure.' : 'No manifest has been transmitted to the carrier yet.' }), jsxRuntime.jsxs("div", { className: styles$a.finalizeActions, children: [sendState === 'none' && jsxRuntime.jsx(Button, { onClick: onSendInitial, children: "Send Initial Manifest" }), sendState === 'initial-sent' && jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Button, { onClick: onSendFinal, children: "Send Final Manifest" }), jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", onClick: onUndoInitial, children: "Undo initial" })] })] })] }))] })] })] }));
|
|
2282
2282
|
};
|
|
2283
2283
|
|
|
2284
2284
|
var styles$9 = {"page":"ContactUsPage-module_page__j9LWO","container":"ContactUsPage-module_container__uRC-r","header":"ContactUsPage-module_header__I6ypu","printRow":"ContactUsPage-module_printRow__d7O34","primaryGrid":"ContactUsPage-module_primaryGrid__DwUt4","genericGrid":"ContactUsPage-module_genericGrid__Zn-A1","stack":"ContactUsPage-module_stack__uKL2n","card":"ContactUsPage-module_card__WPn4v","cardBody":"ContactUsPage-module_cardBody__FU1io","simpleContact":"ContactUsPage-module_simpleContact__E-jyI","field":"ContactUsPage-module_field__yiMo-","label":"ContactUsPage-module_label__C2fa2","emergencyLabel":"ContactUsPage-module_emergencyLabel__Twetf","emergencyDot":"ContactUsPage-module_emergencyDot__Yg4eF","fieldValue":"ContactUsPage-module_fieldValue__5VT5g","contactColumn":"ContactUsPage-module_contactColumn__U9DGB","support":"ContactUsPage-module_support__Pptkm","emergency":"ContactUsPage-module_emergency__ozZbU","contactPair":"ContactUsPage-module_contactPair__Fxg8p","motorcoachEmergency":"ContactUsPage-module_motorcoachEmergency__-Uo84","centeredState":"ContactUsPage-module_centeredState__eLf0U","error":"ContactUsPage-module_error__XXiUk","warning":"ContactUsPage-module_warning__1--Zg"};
|
|
@@ -2360,109 +2360,207 @@ const DashboardPage = ({ greeting = 'Good morning', firstName, accountName, widg
|
|
|
2360
2360
|
onReorder?.(dragFrom, index); setDragFrom(null); }, onDragEnd: () => { setDragFrom(null); dragGhost.current?.remove(); dragGhost.current = null; }, children: jsxRuntime.jsx(WidgetCard, { widget: widget, editMode: editMode, index: index, count: widgets.length, onRefresh: onRefresh, onRemove: onRemove, onResize: onResize, onReorder: onReorder, onTravelerRangeChange: onTravelerRangeChange, onNavigate: onNavigate }) }, widget.id)) }) : jsxRuntime.jsxs("div", { className: styles$8.emptyPage, children: [jsxRuntime.jsx(PlusIcon$2, { size: 28 }), jsxRuntime.jsx("strong", { children: "Your home page is empty" }), jsxRuntime.jsx("span", { children: "Use \"Customize\" to add cards from the catalog." })] }), catalogOpen && jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("button", { type: "button", className: styles$8.scrim, "aria-label": "Close card catalog", onClick: () => setCatalogOpen(false) }), jsxRuntime.jsxs("aside", { className: styles$8.catalog, role: "dialog", "aria-modal": "true", "aria-label": "Add cards", children: [jsxRuntime.jsxs("header", { children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("h2", { children: "Add a card" }), jsxRuntime.jsx("p", { children: "Cards available to your role for this account" })] }), jsxRuntime.jsx("button", { type: "button", "aria-label": "Close card catalog", onClick: () => setCatalogOpen(false), children: jsxRuntime.jsx(CloseIcon, { size: 20 }) })] }), jsxRuntime.jsx("div", { className: styles$8.catalogBody, children: CATALOG.map((item) => jsxRuntime.jsxs("div", { className: styles$8.catalogItem, children: [jsxRuntime.jsx("span", { className: styles$8.catalogIcon, children: jsxRuntime.jsx(WidgetIcon, { type: item.type }) }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx("strong", { children: item.title }), jsxRuntime.jsx("span", { children: "Account" }), jsxRuntime.jsx("p", { children: item.description })] }), presentTypes.has(item.type) ? jsxRuntime.jsxs("span", { className: styles$8.added, children: [jsxRuntime.jsx(CheckIcon$2, { size: 16 }), "Added"] }) : jsxRuntime.jsxs("button", { type: "button", onClick: () => onAddWidget?.(item.type), children: [jsxRuntime.jsx(PlusIcon$2, { size: 16 }), "Add"] })] }, item.type)) }), jsxRuntime.jsx("footer", { children: "Each card can appear once on your home page." })] })] })] }));
|
|
2361
2361
|
};
|
|
2362
2362
|
|
|
2363
|
-
var styles$7 = {"
|
|
2363
|
+
var styles$7 = {"page":"GroupTravelRequestPage-module_page__0JriY","pageHeader":"GroupTravelRequestPage-module_pageHeader__oP6rE","workspace":"GroupTravelRequestPage-module_workspace__SIOli","serviceSidebar":"GroupTravelRequestPage-module_serviceSidebar__XUlqR","tripEvents":"GroupTravelRequestPage-module_tripEvents__6Upvv","formMain":"GroupTravelRequestPage-module_formMain__pFK7N","serviceSection":"GroupTravelRequestPage-module_serviceSection__10nXm","summarySidebar":"GroupTravelRequestPage-module_summarySidebar__HoAGy","summaryCard":"GroupTravelRequestPage-module_summaryCard__YvX-g","summarySection":"GroupTravelRequestPage-module_summarySection__uY5FU","summaryRow":"GroupTravelRequestPage-module_summaryRow__el7jN","emptySummary":"GroupTravelRequestPage-module_emptySummary__veL9N","field":"GroupTravelRequestPage-module_field__-HfoK","label":"GroupTravelRequestPage-module_label__sEOeK","input":"GroupTravelRequestPage-module_input__lXQDl","select":"GroupTravelRequestPage-module_select__D7ICw","textarea":"GroupTravelRequestPage-module_textarea__AYtX1","note":"GroupTravelRequestPage-module_note__9loDq","choiceFieldset":"GroupTravelRequestPage-module_choiceFieldset__dMlZv","radioGroup":"GroupTravelRequestPage-module_radioGroup__xP97-","radioLabel":"GroupTravelRequestPage-module_radioLabel__9wYXU","checkToggle":"GroupTravelRequestPage-module_checkToggle__PZAHF","segments":"GroupTravelRequestPage-module_segments__07a9Y","contactGroup":"GroupTravelRequestPage-module_contactGroup__MQ7mD","destinationList":"GroupTravelRequestPage-module_destinationList__uaHzR","segmentHeader":"GroupTravelRequestPage-module_segmentHeader__8a1Re","destinationRow":"GroupTravelRequestPage-module_destinationRow__swSrv","pageFooter":"GroupTravelRequestPage-module_pageFooter__mQcPZ","pageButtons":"GroupTravelRequestPage-module_pageButtons__jfH5X","currentPage":"GroupTravelRequestPage-module_currentPage__WfmWO","mobileTabs":"GroupTravelRequestPage-module_mobileTabs__GEAo2","mobileServices":"GroupTravelRequestPage-module_mobileServices__XN2Vw","mobileEnable":"GroupTravelRequestPage-module_mobileEnable__DRf4H","activeTab":"GroupTravelRequestPage-module_activeTab__dolkN","activeService":"GroupTravelRequestPage-module_activeService__VXHEF","mobileHidden":"GroupTravelRequestPage-module_mobileHidden__RYc4x","summaryMobileHidden":"GroupTravelRequestPage-module_summaryMobileHidden__0QaCt"};
|
|
2364
2364
|
|
|
2365
|
-
|
|
2366
|
-
const
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
const TRAVEL_SERVICES = [
|
|
2373
|
-
{ key: 'general', label: 'General Details', icon: jsxRuntime.jsx(EventsIcon, {}), hasToggle: false },
|
|
2374
|
-
{ key: 'air', label: 'Commercial Air', icon: jsxRuntime.jsx(PlaneIcon, {}), hasToggle: true },
|
|
2375
|
-
{ key: 'charter', label: 'Charter Air', icon: jsxRuntime.jsx(PlaneIcon, {}), hasToggle: true },
|
|
2376
|
-
{ key: 'hotel', label: 'Hotel', icon: jsxRuntime.jsx(HotelIcon, {}), hasToggle: true },
|
|
2377
|
-
{ key: 'ground', label: 'Ground Transportation', icon: jsxRuntime.jsx(CarIcon, {}), hasToggle: true },
|
|
2378
|
-
{ key: 'bus', label: 'Bus Needed', icon: jsxRuntime.jsx(BusIcon, {}), hasToggle: true },
|
|
2365
|
+
const FLIGHT_TYPES = ['One Way', 'Round Trip', 'Multiple Destinations'];
|
|
2366
|
+
const FLIGHT_TIMES = [
|
|
2367
|
+
'Early Morning (5:00am – 8:00am)',
|
|
2368
|
+
'Morning (8:00am – 12:00pm)',
|
|
2369
|
+
'Afternoon (12:00pm - 3:00pm)',
|
|
2370
|
+
'Late Afternoon (3:00pm – 6:00pm)',
|
|
2371
|
+
'Evening (6:00pm – 12:00am)',
|
|
2379
2372
|
];
|
|
2380
|
-
|
|
2381
|
-
const
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
{ label: 'Travel Party Size', value: null },
|
|
2387
|
-
{ label: 'Trip Start', value: null },
|
|
2388
|
-
{ label: 'Trip Return', value: null },
|
|
2389
|
-
{ label: 'Booking Contact', value: null },
|
|
2390
|
-
],
|
|
2391
|
-
},
|
|
2392
|
-
{
|
|
2393
|
-
key: 'air',
|
|
2394
|
-
title: 'Commercial Air Request',
|
|
2395
|
-
items: [
|
|
2396
|
-
{ label: 'Flight Type', value: null },
|
|
2397
|
-
{ label: 'Departure Airport', value: null },
|
|
2398
|
-
{ label: 'Arrival Airport', value: null },
|
|
2399
|
-
],
|
|
2400
|
-
},
|
|
2401
|
-
{
|
|
2402
|
-
key: 'hotel',
|
|
2403
|
-
title: 'Hotel Request',
|
|
2404
|
-
items: [
|
|
2405
|
-
{ label: 'Check-in Date', value: null },
|
|
2406
|
-
{ label: 'Check-out Date', value: null },
|
|
2407
|
-
{ label: 'Number of Rooms', value: null },
|
|
2408
|
-
],
|
|
2409
|
-
},
|
|
2410
|
-
{
|
|
2411
|
-
key: 'ground',
|
|
2412
|
-
title: 'Ground Transportation',
|
|
2413
|
-
items: [
|
|
2414
|
-
{ label: 'Vehicle Type', value: null },
|
|
2415
|
-
{ label: 'Pickup Location', value: null },
|
|
2416
|
-
],
|
|
2417
|
-
},
|
|
2373
|
+
const AIRCRAFT_SEATING = ['0-30', '30-50', '50-100', '100+'];
|
|
2374
|
+
const BUS_TYPES = [
|
|
2375
|
+
'Drive To & From Campus',
|
|
2376
|
+
'Airport Pickup & Dropoff',
|
|
2377
|
+
'Drive to Event/Fly Home',
|
|
2378
|
+
'Fly to Event/Drive Home',
|
|
2418
2379
|
];
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2380
|
+
const DEFAULT_CATERING = ['No Catering', 'Snacks and Beverages', 'Cold Meal', 'Hot Meal'];
|
|
2381
|
+
const EventsIcon = () => jsxRuntime.jsx(CalendarIcon$1, { size: 24 });
|
|
2382
|
+
const DEFAULT_SERVICES = [
|
|
2383
|
+
{ key: 'general', label: 'General', icon: jsxRuntime.jsx(EventsIcon, {}), hasToggle: false },
|
|
2384
|
+
{ key: 'air', label: 'Commercial Air', icon: jsxRuntime.jsx(PlaneIcon$3, { size: 22 }), hasToggle: true },
|
|
2385
|
+
{ key: 'charter', label: 'Charter Air', icon: jsxRuntime.jsx(PlaneIcon$3, { size: 22 }), hasToggle: true },
|
|
2386
|
+
{ key: 'hotel', label: 'Hotel', icon: jsxRuntime.jsx(HotelIcon$3, { size: 22 }), hasToggle: true },
|
|
2387
|
+
{ key: 'ground', label: 'Vehicle Rental', icon: jsxRuntime.jsx(CarIcon$1, { size: 22 }), hasToggle: true },
|
|
2388
|
+
{ key: 'busneeded', label: 'Bus Charter', icon: jsxRuntime.jsx(BusIcon$2, { size: 22 }), hasToggle: true },
|
|
2389
|
+
];
|
|
2390
|
+
const isEnabledValue = (value) => value === true || Number(value) === 1;
|
|
2391
|
+
const textValue = (value) => value === undefined ? '' : String(value);
|
|
2392
|
+
const suffix = (index) => index ? String(index + 1) : '';
|
|
2393
|
+
const airFieldName = (name, index) => index === 3 ? `air${name}${index + 1}` : `${name}${suffix(index)}`;
|
|
2394
|
+
const prefixedFieldName = (prefix, name, index) => `${prefix}${name}${suffix(index)}`;
|
|
2395
|
+
const hotelFieldName = (name, index) => `${name}${suffix(index)}`;
|
|
2396
|
+
const Field = ({ label, name, values, setValue, type = 'text', required, disabled, max, min, maxDate, placeholder, note, options, multiline, }) => {
|
|
2397
|
+
const inputId = `gtr-${name}`;
|
|
2398
|
+
const common = {
|
|
2399
|
+
id: inputId,
|
|
2400
|
+
name,
|
|
2401
|
+
value: textValue(values[name]),
|
|
2402
|
+
required,
|
|
2403
|
+
disabled,
|
|
2404
|
+
'aria-describedby': note ? `${inputId}-note` : undefined,
|
|
2405
|
+
onChange: (event) => setValue(name, event.target.value),
|
|
2406
|
+
};
|
|
2407
|
+
return (jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsxs("label", { className: styles$7.label, htmlFor: inputId, children: [label, required && jsxRuntime.jsx("span", { "aria-hidden": "true", children: " *" })] }), multiline ? (jsxRuntime.jsx("textarea", { ...common, className: styles$7.textarea, rows: 3, maxLength: 5000, placeholder: placeholder })) : options ? (jsxRuntime.jsxs("select", { ...common, className: styles$7.select, children: [jsxRuntime.jsx("option", { value: "", children: "Select" }), options.map((option) => jsxRuntime.jsx("option", { value: option.value, children: option.label }, option.value))] })) : (jsxRuntime.jsx("input", { ...common, className: styles$7.input, type: type, max: type === 'date' ? maxDate : max, min: type === 'date' ? textValue(min) : min, placeholder: placeholder })), note && jsxRuntime.jsx("div", { className: styles$7.note, id: `${inputId}-note`, children: note })] }));
|
|
2408
|
+
};
|
|
2409
|
+
const ChoiceGroup = ({ label, name, options, values, setValue, required, }) => (jsxRuntime.jsxs("fieldset", { className: styles$7.choiceFieldset, children: [jsxRuntime.jsxs("legend", { className: styles$7.label, children: [label, required && jsxRuntime.jsx("span", { "aria-hidden": "true", children: " *" })] }), jsxRuntime.jsx("div", { className: styles$7.radioGroup, children: options.map((option) => (jsxRuntime.jsxs("label", { className: styles$7.radioLabel, children: [jsxRuntime.jsx("input", { type: "radio", name: name, value: option, checked: values[name] === option, onChange: () => setValue(name, option), required: required }), jsxRuntime.jsx("span", { children: option })] }, option))) })] }));
|
|
2410
|
+
const CheckToggle = ({ label, name, values, setValue, }) => (jsxRuntime.jsxs("div", { className: styles$7.checkToggle, children: [jsxRuntime.jsx(Toggle, { "aria-label": label, checked: isEnabledValue(values[name]), onChange: (checked) => setValue(name, checked ? 1 : 0), size: "sm" }), jsxRuntime.jsx("span", { children: label })] }));
|
|
2411
|
+
const YesNo = ({ label, name, values, setValue }) => (jsxRuntime.jsx(ChoiceGroup, { label: label, name: name, options: ['Yes', 'No'], values: { ...values, [name]: values[name] === 1 ? 'Yes' : values[name] === 0 ? 'No' : values[name] }, setValue: (_, value) => setValue(name, value === 'Yes' ? 1 : 0), required: true }));
|
|
2412
|
+
const SegmentHeader = ({ label, index, canDelete, onDelete }) => (jsxRuntime.jsxs("div", { className: styles$7.segmentHeader, children: [jsxRuntime.jsxs("span", { children: [label, " ", index + 1] }), canDelete && jsxRuntime.jsxs(Button, { type: "button", size: "sm", variant: "outline", rightIcon: jsxRuntime.jsx(TrashIcon$2, { size: 14 }), onClick: onDelete, children: ["Delete ", label] })] }));
|
|
2413
|
+
const FlightRequest = ({ prefix, values, setValue, cateringOptions, }) => {
|
|
2414
|
+
const typeName = `${prefix}multiplesegments`;
|
|
2415
|
+
const flightType = textValue(values[typeName]);
|
|
2416
|
+
const allowsMultiple = flightType === 'One Way' || flightType === 'Multiple Destinations';
|
|
2417
|
+
const [count, setCount] = React.useState(1);
|
|
2418
|
+
const isCharter = prefix === 'charter';
|
|
2419
|
+
const fieldName = (name, index) => isCharter ? prefixedFieldName('charter', name, index) : airFieldName(name, index);
|
|
2420
|
+
const segmentFields = isCharter
|
|
2421
|
+
? ['departlocation', 'departdate', 'departtime', 'departtime_tbd', 'departonewayoutboundpricing', 'arrivelocation', 'returndate', 'returntime', 'arrivetime_tbd', 'cateringoptions', 'departlocationfbo', 'preferredcarriers']
|
|
2422
|
+
: ['departlocation', 'departdate', 'departtime', 'departlowestfareanytime', 'arrivelocation', 'returndate', 'returntime', 'arrivelowestfareanytime', 'preferredcarriers', 'passengertargetfare'];
|
|
2423
|
+
const deleteSegment = (index) => {
|
|
2424
|
+
for (let position = index; position < count; position += 1) {
|
|
2425
|
+
segmentFields.forEach((field) => {
|
|
2426
|
+
const current = fieldName(field, position);
|
|
2427
|
+
const next = fieldName(field, position + 1);
|
|
2428
|
+
setValue(current, position === count - 1 ? '' : values[next]);
|
|
2429
|
+
});
|
|
2430
|
+
}
|
|
2431
|
+
setCount((current) => Math.max(1, current - 1));
|
|
2432
|
+
};
|
|
2433
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [isCharter && jsxRuntime.jsxs(Alert, { children: [jsxRuntime.jsx("strong", { children: "NOTE:" }), " Desired departure times are shared with carrier partners immediately, and availability may require schedule adjustments."] }), jsxRuntime.jsx(ChoiceGroup, { label: "Flight Type", name: typeName, options: FLIGHT_TYPES, values: values, setValue: (name, value) => {
|
|
2434
|
+
setValue(name, value);
|
|
2435
|
+
if (value === 'Round Trip')
|
|
2436
|
+
setCount(1);
|
|
2437
|
+
}, required: true }), jsxRuntime.jsxs("div", { className: styles$7.segments, children: [Array.from({ length: count }, (_, index) => {
|
|
2438
|
+
const departLocation = fieldName('departlocation', index);
|
|
2439
|
+
const departDate = fieldName('departdate', index);
|
|
2440
|
+
const departTime = fieldName('departtime', index);
|
|
2441
|
+
const arrivalLocation = fieldName('arrivelocation', index);
|
|
2442
|
+
const returnDate = fieldName('returndate', index);
|
|
2443
|
+
const returnTime = fieldName('returntime', index);
|
|
2444
|
+
return (jsxRuntime.jsxs(Accordion, { header: jsxRuntime.jsx(SegmentHeader, { label: "Flight", index: index, canDelete: allowsMultiple && count > 1, onDelete: () => deleteSegment(index) }), showTimeline: true, children: [jsxRuntime.jsx(Field, { label: "Departure Airport", name: departLocation, values: values, setValue: setValue, required: true }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Departure Date", name: departDate, values: values, setValue: setValue, type: "date", min: textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: isCharter ? 'Desired Departure Time' : 'Departure Time', name: departTime, values: values, setValue: setValue, type: isCharter ? 'time' : 'text', options: isCharter ? undefined : FLIGHT_TIMES.map((option) => ({ label: option, value: option })), required: !isCharter })] }), isCharter
|
|
2445
|
+
? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(CheckToggle, { label: "Departure Time TBD", name: fieldName('departtime_tbd', index), values: values, setValue: setValue }), ['Round Trip', 'Multiple Destinations'].includes(flightType) && jsxRuntime.jsx(CheckToggle, { label: "Also Include Pricing for One Way Outbound Flight", name: fieldName('departonewayoutboundpricing', index), values: values, setValue: setValue })] })
|
|
2446
|
+
: jsxRuntime.jsx(CheckToggle, { label: "Also Consider Lowest Fare Anytime of Day", name: fieldName('departlowestfareanytime', index), values: values, setValue: setValue }), jsxRuntime.jsx(Field, { label: "Arrival Airport", name: arrivalLocation, values: values, setValue: setValue, required: true }), flightType === 'Round Trip' && jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Return Date", name: returnDate, values: values, setValue: setValue, type: "date", min: textValue(values[departDate]) || textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: isCharter ? 'Desired Return Time' : 'Return Time', name: returnTime, values: values, setValue: setValue, type: isCharter ? 'time' : 'text', options: isCharter ? undefined : FLIGHT_TIMES.map((option) => ({ label: option, value: option })), required: !isCharter })] }), isCharter
|
|
2447
|
+
? jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [flightType === 'Round Trip' && jsxRuntime.jsx(CheckToggle, { label: "Return Time TBD", name: fieldName('arrivetime_tbd', index), values: values, setValue: setValue }), flightType === 'Round Trip' && jsxRuntime.jsx(CheckToggle, { label: "Also Include Pricing for One Way Return Flight", name: "charterarriveonewayreturnpricing", values: values, setValue: setValue }), jsxRuntime.jsxs(FormRow, { columns: 3, children: [jsxRuntime.jsx(Field, { label: "Catering Options", name: fieldName('cateringoptions', index), values: values, setValue: setValue, options: cateringOptions.map((option) => ({ label: option, value: option })), required: true }), jsxRuntime.jsx(Field, { label: "Preferred FBO (Departure Airport)", name: fieldName('departlocationfbo', index), values: values, setValue: setValue }), jsxRuntime.jsx(Field, { label: "Preferred Carriers", name: fieldName('preferredcarriers', index), values: values, setValue: setValue })] })] })
|
|
2448
|
+
: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [flightType === 'Round Trip' && jsxRuntime.jsx(CheckToggle, { label: "Also Consider Lowest Fare Anytime of Day", name: fieldName('arrivelowestfareanytime', index), values: values, setValue: setValue }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Preferred Carriers", name: fieldName('preferredcarriers', index), values: values, setValue: setValue }), jsxRuntime.jsx(Field, { label: "Target Fare Per Passenger", name: fieldName('passengertargetfare', index), values: values, setValue: setValue, type: "number", min: 0 })] })] })] }, `${prefix}-${index}`));
|
|
2449
|
+
}), allowsMultiple && count < 4 && jsxRuntime.jsx("div", { children: jsxRuntime.jsx(Button, { type: "button", size: "sm", variant: "secondary", rightIcon: jsxRuntime.jsx(PlusIcon$2, { size: 16 }), onClick: () => setCount((current) => current + 1), children: "Add Flight" }) })] }), isCharter && jsxRuntime.jsx(ChoiceGroup, { label: "Preferred Aircraft Seating", name: "charterpreferredseatingrange", options: AIRCRAFT_SEATING, values: values, setValue: setValue }), jsxRuntime.jsx(Field, { label: "General Notes on Air Request", name: isCharter ? 'details_charters' : 'details_air', values: values, setValue: setValue, multiline: true })] }));
|
|
2450
|
+
};
|
|
2451
|
+
const HotelRequest = ({ values, setValue }) => {
|
|
2452
|
+
const [count, setCount] = React.useState(1);
|
|
2453
|
+
const totalRooms = Array.from({ length: count }, (_, index) => Number(values[hotelFieldName('rooms', index)] || 0)).reduce((total, rooms) => total + rooms, 0);
|
|
2454
|
+
const deleteHotel = (index) => {
|
|
2455
|
+
const fields = ['hotellocation', 'hotelproperty', 'kings', 'doubles', 'rooms', 'checkin', 'checkout'];
|
|
2456
|
+
for (let position = index; position < count; position += 1) {
|
|
2457
|
+
fields.forEach((field) => setValue(hotelFieldName(field, position), position === count - 1 ? '' : values[hotelFieldName(field, position + 1)]));
|
|
2458
|
+
}
|
|
2459
|
+
setCount((current) => Math.max(1, current - 1));
|
|
2460
|
+
};
|
|
2461
|
+
const updateRooms = (index, type, value) => {
|
|
2462
|
+
setValue(hotelFieldName(type, index), value);
|
|
2463
|
+
const other = type === 'kings' ? 'doubles' : 'kings';
|
|
2464
|
+
setValue(hotelFieldName('rooms', index), Number(value || 0) + Number(values[hotelFieldName(other, index)] || 0));
|
|
2465
|
+
};
|
|
2466
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [totalRooms > 0 && totalRooms < 8 && jsxRuntime.jsxs(Alert, { children: [jsxRuntime.jsx("strong", { children: "NOTE:" }), " Seven or fewer rooms are booked by an agent instead of STM Stay."] }), jsxRuntime.jsxs("div", { className: styles$7.segments, children: [Array.from({ length: count }, (_, index) => jsxRuntime.jsxs(Accordion, { header: jsxRuntime.jsx(SegmentHeader, { label: "Hotel", index: index, canDelete: count > 1, onDelete: () => deleteHotel(index) }), showTimeline: true, children: [jsxRuntime.jsx(Field, { label: "City", name: hotelFieldName('hotellocation', index), values: values, setValue: setValue, required: true }), jsxRuntime.jsx(Field, { label: "Preferred Hotel(s)", name: hotelFieldName('hotelproperty', index), values: values, setValue: setValue }), jsxRuntime.jsxs(FormRow, { columns: 3, children: [jsxRuntime.jsx(Field, { label: "# of King Rooms", name: hotelFieldName('kings', index), values: values, setValue: (_name, value) => updateRooms(index, 'kings', value), type: "number", min: 0, max: 999, required: true }), jsxRuntime.jsx(Field, { label: "# of Double Rooms", name: hotelFieldName('doubles', index), values: values, setValue: (_name, value) => updateRooms(index, 'doubles', value), type: "number", min: 0, max: 999, required: true }), jsxRuntime.jsx(Field, { label: "Total Rooms", name: hotelFieldName('rooms', index), values: values, setValue: setValue, disabled: true })] }), jsxRuntime.jsx(Alert, { variant: "error", children: "Please include bus driver room if needed." }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Check-In Date", name: hotelFieldName('checkin', index), values: values, setValue: setValue, type: "date", min: textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: "Check-Out Date", name: hotelFieldName('checkout', index), values: values, setValue: setValue, type: "date", min: textValue(values[hotelFieldName('checkin', index)]) || textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true })] })] }, index)), count < 3 && jsxRuntime.jsx("div", { children: jsxRuntime.jsx(Button, { type: "button", size: "sm", variant: "secondary", rightIcon: jsxRuntime.jsx(PlusIcon$2, { size: 16 }), onClick: () => setCount((current) => current + 1), children: "Add Hotel" }) })] }), jsxRuntime.jsx(YesNo, { label: "Do you need a room for the bus driver?", name: "busdriverroom", values: values, setValue: setValue }), totalRooms > 7 && jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(YesNo, { label: "Do you need meeting space for the team?", name: "teammeetingspaceflag", values: values, setValue: setValue }), Number(values.teammeetingspaceflag) === 1 && jsxRuntime.jsx(Field, { label: "How many people do you need the meeting space set for?", name: "teammeetingspace", values: values, setValue: setValue, type: "number", min: 1, max: 999, required: true })] }), jsxRuntime.jsx(Field, { label: "General Notes on Hotel Request", name: "details_hotel", values: values, setValue: setValue, multiline: true })] });
|
|
2467
|
+
};
|
|
2468
|
+
const VehicleRentalRequest = ({ values, setValue }) => {
|
|
2469
|
+
const hasAir = isEnabledValue(values.air) || isEnabledValue(values.charter);
|
|
2470
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(FormRow, { columns: 3, children: [jsxRuntime.jsx(Field, { label: "Pickup Date", name: "pickupdate", values: values, setValue: setValue, type: "date", min: textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: "Pickup Time", name: "pickuptime", values: values, setValue: setValue, type: "time", required: !hasAir }), jsxRuntime.jsx(Field, { label: "Pickup Location", name: "pickuplocation", values: values, setValue: setValue, required: true })] }), hasAir && jsxRuntime.jsx(CheckToggle, { label: "I will be picking up from the airport", name: "carairportpickup", values: values, setValue: (name, value) => {
|
|
2471
|
+
setValue(name, value);
|
|
2472
|
+
if (Number(value) === 1)
|
|
2473
|
+
setValue('pickuplocation', values.arrivelocation || values.charterarrivelocation);
|
|
2474
|
+
} }), jsxRuntime.jsxs(FormRow, { columns: 3, children: [jsxRuntime.jsx(Field, { label: "Drop Off Date", name: "dropoffdate", values: values, setValue: setValue, type: "date", min: textValue(values.pickupdate) || textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: "Drop Off Time", name: "dropofftime", values: values, setValue: setValue, type: "time", required: !hasAir }), jsxRuntime.jsx(Field, { label: "Drop Off Location", name: "cardropofflocation", values: values, setValue: setValue, required: true })] }), hasAir && jsxRuntime.jsx(CheckToggle, { label: "I will be dropping off at the airport", name: "carairportdropoff", values: values, setValue: setValue }), jsxRuntime.jsx(Field, { label: "# of Rentals", name: "carqty", values: values, setValue: setValue, type: "number", min: 1, max: 99, required: true }), jsxRuntime.jsx(Field, { label: "Vehicle Type/Size Preference", name: "carsizepref", values: values, setValue: setValue, placeholder: "Economy, Compact, ..." }), jsxRuntime.jsx(Field, { label: "Driver Name(s) for Reservation", name: "cardriver", values: values, setValue: setValue, placeholder: "Name 1, Name 2", required: true }), jsxRuntime.jsx(Field, { label: "General Notes on Vehicle Rental Request", name: "details_ground", values: values, setValue: setValue, multiline: true })] });
|
|
2475
|
+
};
|
|
2476
|
+
const BusRequest = ({ values, setValue, schoolAddress }) => {
|
|
2477
|
+
const [destinations, setDestinations] = React.useState(1);
|
|
2478
|
+
const busType = textValue(values.bustype);
|
|
2479
|
+
const destinationName = (index) => `busdestination${suffix(index)}`;
|
|
2480
|
+
const updateBusType = (name, value) => {
|
|
2481
|
+
setValue(name, value);
|
|
2482
|
+
if (['Drive To & From Campus', 'Drive to Event/Fly Home'].includes(String(value)))
|
|
2483
|
+
setValue('buspickuplocation', schoolAddress);
|
|
2484
|
+
if (['Drive To & From Campus', 'Fly to Event/Drive Home'].includes(String(value)))
|
|
2485
|
+
setValue('busdropofflocation', schoolAddress);
|
|
2486
|
+
};
|
|
2487
|
+
const deleteDestination = (index) => {
|
|
2488
|
+
for (let position = index; position < destinations; position += 1)
|
|
2489
|
+
setValue(destinationName(position), position === destinations - 1 ? '' : values[destinationName(position + 1)]);
|
|
2490
|
+
setDestinations((current) => Math.max(1, current - 1));
|
|
2491
|
+
};
|
|
2492
|
+
return jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ChoiceGroup, { label: "Charter Bus Type", name: "bustype", options: BUS_TYPES, values: values, setValue: updateBusType, required: true }), busType && busType !== BUS_TYPES[0] && jsxRuntime.jsx(CheckToggle, { label: "Do you need local airport transfers?", name: "buslocalairporttransfers", values: values, setValue: setValue }), jsxRuntime.jsxs(FormRow, { columns: 3, children: [jsxRuntime.jsx(Field, { label: "Pickup Date", name: "buspickupdate", values: values, setValue: setValue, type: "date", min: textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: "Pickup Time", name: "buspickuptime", values: values, setValue: setValue, type: "time", required: true }), jsxRuntime.jsx(Field, { label: "# of Buses", name: "numbuses", values: values, setValue: setValue, type: "number", min: 1, max: 99, required: true })] }), jsxRuntime.jsx(Field, { label: "Motorcoach/Airport Pickup Location", name: "buspickuplocation", values: values, setValue: setValue, required: true }), jsxRuntime.jsxs("div", { className: styles$7.destinationList, children: [jsxRuntime.jsx("span", { className: styles$7.label, children: "Destinations *" }), Array.from({ length: destinations }, (_, index) => jsxRuntime.jsxs("div", { className: styles$7.destinationRow, children: [jsxRuntime.jsx(Field, { label: `Destination ${index + 1}`, name: destinationName(index), values: values, setValue: setValue, placeholder: `Destination ${index + 1}`, required: true }), destinations > 1 && jsxRuntime.jsx(Button, { type: "button", size: "sm", variant: "outline", square: true, "aria-label": `Delete Destination ${index + 1}`, onClick: () => deleteDestination(index), children: jsxRuntime.jsx(TrashIcon$2, { size: 16 }) })] }, index)), destinations < 4 && jsxRuntime.jsx("div", { children: jsxRuntime.jsx(Button, { type: "button", size: "sm", variant: "secondary", rightIcon: jsxRuntime.jsx(PlusIcon$2, { size: 16 }), onClick: () => setDestinations((current) => current + 1), children: "Add Destination" }) })] }), busType === BUS_TYPES[1] && jsxRuntime.jsx(CheckToggle, { label: "Are you flying back from a different airport than you flew in to?", name: "busdifferentairport", values: values, setValue: setValue }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Return / Drop Off Date", name: "busreturndate", values: values, setValue: setValue, type: "date", min: textValue(values.buspickupdate) || textValue(values.tripstartdate), maxDate: textValue(values.tripreturndate), required: true }), jsxRuntime.jsx(Field, { label: "Return / Drop Off Time", name: "busreturntime", values: values, setValue: setValue, type: "time", required: true })] }), jsxRuntime.jsx(Field, { label: "Motorcoach/Airport Dropoff Location", name: "busdropofflocation", values: values, setValue: setValue, required: true }), jsxRuntime.jsx(Field, { label: "General Notes on Bus Charter Request", name: "busdetails", values: values, setValue: setValue, multiline: true })] });
|
|
2493
|
+
};
|
|
2494
|
+
const SummaryRow = ({ label, value }) => !value ? null : jsxRuntime.jsxs("div", { className: styles$7.summaryRow, children: [jsxRuntime.jsx("span", { children: label }), jsxRuntime.jsx("strong", { children: String(value) })] });
|
|
2495
|
+
const RequestSummary = ({ values, enabled }) => {
|
|
2496
|
+
const sections = [
|
|
2497
|
+
enabled.air && { key: 'air', title: 'Commercial Air Request', rows: [['Flight Type', values.airmultiplesegments], ['Departure Airport', values.departlocation], ['Departure Date', values.departdate], ['Arrival Airport', values.arrivelocation]] },
|
|
2498
|
+
enabled.charter && { key: 'charter', title: 'Charter Air Request', rows: [['Flight Type', values.chartermultiplesegments], ['Departure Airport', values.charterdepartlocation], ['Departure Date', values.charterdepartdate], ['Arrival Airport', values.charterarrivelocation]] },
|
|
2499
|
+
enabled.hotel && { key: 'hotel', title: 'Hotel Request', rows: [['City', values.hotellocation], ['Preferred Hotel(s)', values.hotelproperty], ['# of King Rooms', values.kings], ['# of Double Rooms', values.doubles], ['Check In', values.checkin], ['Check Out', values.checkout]] },
|
|
2500
|
+
enabled.ground && { key: 'ground', title: 'Vehicle Rental Request', rows: [['Number of Rentals', values.carqty], ['Vehicle Type/Size Preference', values.carsizepref], ['Pickup Location', values.pickuplocation], ['Pickup Date', values.pickupdate], ['Drop-off Location', values.cardropofflocation]] },
|
|
2501
|
+
enabled.busneeded && { key: 'busneeded', title: 'Bus Charter Request', rows: [['Charter Bus Type', values.bustype], ['Number of Buses', values.numbuses], ['Pickup Location', values.buspickuplocation], ['Pickup Date', values.buspickupdate], ['Return Date', values.busreturndate]] },
|
|
2502
|
+
].filter(Boolean);
|
|
2503
|
+
const populated = sections.filter((section) => section.rows.some(([, value]) => Boolean(value)));
|
|
2504
|
+
return jsxRuntime.jsxs("div", { className: styles$7.summaryCard, children: [jsxRuntime.jsx("h2", { children: "Request Summary" }), populated.map((section) => jsxRuntime.jsxs("section", { className: styles$7.summarySection, children: [jsxRuntime.jsx("h3", { children: section.title }), section.rows.map(([label, value]) => jsxRuntime.jsx(SummaryRow, { label: label, value: value }, label))] }, section.key)), !populated.length && jsxRuntime.jsx("p", { className: styles$7.emptySummary, children: "No services selected" })] });
|
|
2505
|
+
};
|
|
2506
|
+
const GroupTravelRequestPage = ({ eventName = 'New Trip', totalPages = 1, onSubmit, onCancel, onChange, initialValues = {}, contacts = [], cateringOptions = DEFAULT_CATERING, schoolAddress = '', services = DEFAULT_SERVICES, summarySections, className = '', }) => {
|
|
2424
2507
|
const [currentPage, setCurrentPage] = React.useState(1);
|
|
2425
|
-
const [
|
|
2508
|
+
const [activeTab, setActiveTab] = React.useState('form');
|
|
2509
|
+
const [activeService, setActiveService] = React.useState('general');
|
|
2510
|
+
const [validationMessage, setValidationMessage] = React.useState('');
|
|
2511
|
+
const [values, setValues] = React.useState(() => ({
|
|
2512
|
+
air: 0,
|
|
2513
|
+
charter: 0,
|
|
2514
|
+
hotel: 0,
|
|
2515
|
+
ground: 0,
|
|
2516
|
+
busneeded: 0,
|
|
2517
|
+
...initialValues,
|
|
2518
|
+
...(initialValues.bus !== undefined && initialValues.busneeded === undefined ? { busneeded: initialValues.bus } : {}),
|
|
2519
|
+
}));
|
|
2520
|
+
const enabled = React.useMemo(() => ({
|
|
2426
2521
|
general: true,
|
|
2427
|
-
air:
|
|
2428
|
-
charter:
|
|
2429
|
-
hotel:
|
|
2430
|
-
ground:
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2522
|
+
air: isEnabledValue(values.air),
|
|
2523
|
+
charter: isEnabledValue(values.charter),
|
|
2524
|
+
hotel: isEnabledValue(values.hotel),
|
|
2525
|
+
ground: isEnabledValue(values.ground),
|
|
2526
|
+
busneeded: isEnabledValue(values.busneeded),
|
|
2527
|
+
}), [values]);
|
|
2528
|
+
const setValue = (name, value) => {
|
|
2529
|
+
setValues((current) => {
|
|
2530
|
+
const next = { ...current, [name]: value };
|
|
2531
|
+
onChange?.(next);
|
|
2532
|
+
return next;
|
|
2533
|
+
});
|
|
2534
|
+
setValidationMessage('');
|
|
2439
2535
|
};
|
|
2440
|
-
const
|
|
2441
|
-
|
|
2442
|
-
if (
|
|
2443
|
-
|
|
2444
|
-
}
|
|
2536
|
+
const toggleService = (key, checked) => {
|
|
2537
|
+
setValue(key === 'bus' ? 'busneeded' : key, checked ? 1 : 0);
|
|
2538
|
+
if (checked)
|
|
2539
|
+
setActiveService((key === 'bus' ? 'busneeded' : key));
|
|
2445
2540
|
};
|
|
2446
|
-
const
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
|
|
2450
|
-
|
|
2451
|
-
onCancel?.();
|
|
2541
|
+
const submit = (event) => {
|
|
2542
|
+
event.preventDefault();
|
|
2543
|
+
if (![enabled.air, enabled.charter, enabled.hotel, enabled.ground, enabled.busneeded].some(Boolean)) {
|
|
2544
|
+
setValidationMessage('At least one service must be selected.');
|
|
2545
|
+
return;
|
|
2452
2546
|
}
|
|
2453
|
-
};
|
|
2454
|
-
const handleNext = () => {
|
|
2455
2547
|
if (currentPage < totalPages) {
|
|
2456
|
-
setCurrentPage(
|
|
2457
|
-
|
|
2458
|
-
else {
|
|
2459
|
-
onSubmit?.(formValues);
|
|
2548
|
+
setCurrentPage((page) => page + 1);
|
|
2549
|
+
return;
|
|
2460
2550
|
}
|
|
2551
|
+
onSubmit?.(values);
|
|
2461
2552
|
};
|
|
2462
|
-
const
|
|
2463
|
-
|
|
2553
|
+
const previous = () => currentPage > 1 ? setCurrentPage((page) => page - 1) : onCancel?.();
|
|
2554
|
+
const contactOptions = contacts.map((contact) => ({ label: contact.name, value: String(contact.id) }));
|
|
2555
|
+
const selectContact = (field, id) => {
|
|
2556
|
+
const contact = contacts.find((item) => String(item.id) === String(id));
|
|
2557
|
+
setValue(`${field}id`, id);
|
|
2558
|
+
setValue(field, contact?.name ?? '');
|
|
2559
|
+
setValue(`${field}phone`, contact?.phone ?? '');
|
|
2560
|
+
setValue(`${field}email`, contact?.email ?? '');
|
|
2464
2561
|
};
|
|
2465
|
-
return (jsxRuntime.jsx(RequestFormLayout, { className: className, header: jsxRuntime.jsx(RequestFormHeader, { title: "Group Travel Request", currentPage: totalPages > 1 ? currentPage : undefined, totalPages: totalPages > 1 ? totalPages : undefined, eventName: eventName }), sidebar: jsxRuntime.jsxs("div", { className: styles$7.sidebarSection, children: [jsxRuntime.jsx("h3", { className: styles$7.sidebarTitle, children: "Services" }), jsxRuntime.jsx(ServiceToggleList, { services: services, enabledServices: enabledServices, onToggle: handleToggle, onClick: handleServiceClick })] }), summary: jsxRuntime.jsx(RequestSummary, { sections: summarySections, values: formValues, enabledSections: enabledServices }), footer: jsxRuntime.jsx(RequestFormFooter, { onPrevious: handlePrevious, onNext: handleNext, isFirstPage: currentPage === 1, isLastPage: currentPage === totalPages }), children: jsxRuntime.jsxs("div", { className: styles$7.formContent, children: [jsxRuntime.jsxs(FormSection, { id: "general", title: "General Details", icon: jsxRuntime.jsx(EventsIcon, {}), children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Travel Party Size *" }), jsxRuntime.jsx("input", { type: "number", className: styles$7.input, style: { width: '200px' }, min: 1, max: 999, value: formValues['Travel Party Size'] || '', onChange: (e) => updateFormValue('Travel Party Size', e.target.value) })] }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Trip Start *" }), jsxRuntime.jsx("input", { type: "date", className: styles$7.input, value: formValues['Trip Start'] || '', onChange: (e) => updateFormValue('Trip Start', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Trip Return *" }), jsxRuntime.jsx("input", { type: "date", className: styles$7.input, value: formValues['Trip Return'] || '', onChange: (e) => updateFormValue('Trip Return', e.target.value) })] })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Booking Contact *" }), jsxRuntime.jsx("input", { type: "text", className: styles$7.input, placeholder: "Full Name", value: formValues['Booking Contact'] || '', onChange: (e) => updateFormValue('Booking Contact', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "General Notes" }), jsxRuntime.jsx("textarea", { className: styles$7.textarea, rows: 4, placeholder: "Any notes regarding this trip...", value: formValues['General Notes'] || '', onChange: (e) => updateFormValue('General Notes', e.target.value) })] })] }), enabledServices.air && (jsxRuntime.jsxs(FormSection, { id: "air", title: "Commercial Air Request", icon: jsxRuntime.jsx(PlaneIcon, {}), children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Flight Type *" }), jsxRuntime.jsx("div", { className: styles$7.radioGroup, children: ['One Way', 'Round Trip', 'Multiple Destinations'].map(option => (jsxRuntime.jsxs("label", { className: styles$7.radioLabel, children: [jsxRuntime.jsx("input", { type: "radio", name: "flightType", value: option, checked: formValues['Flight Type'] === option, onChange: (e) => updateFormValue('Flight Type', e.target.value) }), jsxRuntime.jsx("span", { children: option })] }, option))) })] }), jsxRuntime.jsxs(Accordion, { header: jsxRuntime.jsx("span", { className: styles$7.segmentHeader, children: "Flight 1" }), showTimeline: true, children: [jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Departure Airport *" }), jsxRuntime.jsx("input", { type: "text", className: styles$7.input, placeholder: "e.g., JFK", value: formValues['Departure Airport'] || '', onChange: (e) => updateFormValue('Departure Airport', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Arrival Airport *" }), jsxRuntime.jsx("input", { type: "text", className: styles$7.input, placeholder: "e.g., LAX", value: formValues['Arrival Airport'] || '', onChange: (e) => updateFormValue('Arrival Airport', e.target.value) })] })] }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Departure Date *" }), jsxRuntime.jsx("input", { type: "date", className: styles$7.input, value: formValues['Departure Date'] || '', onChange: (e) => updateFormValue('Departure Date', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Departure Time *" }), jsxRuntime.jsxs("select", { className: styles$7.select, value: formValues['Departure Time'] || '', onChange: (e) => updateFormValue('Departure Time', e.target.value), children: [jsxRuntime.jsx("option", { value: "", children: "Select time range" }), jsxRuntime.jsx("option", { value: "Early Morning (5:00am \u2013 8:00am)", children: "Early Morning (5:00am \u2013 8:00am)" }), jsxRuntime.jsx("option", { value: "Morning (8:00am \u2013 12:00pm)", children: "Morning (8:00am \u2013 12:00pm)" }), jsxRuntime.jsx("option", { value: "Afternoon (12:00pm - 3:00pm)", children: "Afternoon (12:00pm - 3:00pm)" }), jsxRuntime.jsx("option", { value: "Late Afternoon (3:00pm \u2013 6:00pm)", children: "Late Afternoon (3:00pm \u2013 6:00pm)" }), jsxRuntime.jsx("option", { value: "Evening (6:00pm \u2013 12:00am)", children: "Evening (6:00pm \u2013 12:00am)" })] })] })] })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Air Travel Notes" }), jsxRuntime.jsx("textarea", { className: styles$7.textarea, rows: 3, placeholder: "Any special requirements for air travel..." })] })] })), enabledServices.hotel && (jsxRuntime.jsxs(FormSection, { id: "hotel", title: "Hotel Request", icon: jsxRuntime.jsx(HotelIcon, {}), children: [jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Check-in Date *" }), jsxRuntime.jsx("input", { type: "date", className: styles$7.input, value: formValues['Check-in Date'] || '', onChange: (e) => updateFormValue('Check-in Date', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Check-out Date *" }), jsxRuntime.jsx("input", { type: "date", className: styles$7.input, value: formValues['Check-out Date'] || '', onChange: (e) => updateFormValue('Check-out Date', e.target.value) })] })] }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Number of Rooms *" }), jsxRuntime.jsx("input", { type: "number", className: styles$7.input, min: 1, value: formValues['Number of Rooms'] || '', onChange: (e) => updateFormValue('Number of Rooms', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Room Type" }), jsxRuntime.jsxs("select", { className: styles$7.select, value: formValues['Room Type'] || '', onChange: (e) => updateFormValue('Room Type', e.target.value), children: [jsxRuntime.jsx("option", { value: "", children: "Select room type" }), jsxRuntime.jsx("option", { value: "Standard", children: "Standard" }), jsxRuntime.jsx("option", { value: "Double", children: "Double" }), jsxRuntime.jsx("option", { value: "Suite", children: "Suite" })] })] })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Hotel Preferences" }), jsxRuntime.jsx("textarea", { className: styles$7.textarea, rows: 3, placeholder: "Preferred hotel chain, location requirements, amenities...", value: formValues['Hotel Preferences'] || '', onChange: (e) => updateFormValue('Hotel Preferences', e.target.value) })] })] })), enabledServices.ground && (jsxRuntime.jsxs(FormSection, { id: "ground", title: "Ground Transportation", icon: jsxRuntime.jsx(CarIcon, {}), children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Vehicle Type *" }), jsxRuntime.jsxs("select", { className: styles$7.select, value: formValues['Vehicle Type'] || '', onChange: (e) => updateFormValue('Vehicle Type', e.target.value), children: [jsxRuntime.jsx("option", { value: "", children: "Select vehicle type" }), jsxRuntime.jsx("option", { value: "Sedan", children: "Sedan" }), jsxRuntime.jsx("option", { value: "SUV", children: "SUV" }), jsxRuntime.jsx("option", { value: "Van", children: "Van" }), jsxRuntime.jsx("option", { value: "Limousine", children: "Limousine" })] })] }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Pickup Location *" }), jsxRuntime.jsx("input", { type: "text", className: styles$7.input, placeholder: "Airport, hotel, etc.", value: formValues['Pickup Location'] || '', onChange: (e) => updateFormValue('Pickup Location', e.target.value) })] }), jsxRuntime.jsxs("div", { className: styles$7.field, children: [jsxRuntime.jsx("label", { className: styles$7.label, children: "Dropoff Location *" }), jsxRuntime.jsx("input", { type: "text", className: styles$7.input, placeholder: "Hotel, venue, etc.", value: formValues['Dropoff Location'] || '', onChange: (e) => updateFormValue('Dropoff Location', e.target.value) })] })] })] }))] }) }));
|
|
2562
|
+
const section = (key, title, icon, body) => enabled[key] && (jsxRuntime.jsx("div", { id: key, className: styles$7.serviceSection, "data-mobile-active": activeService === key, children: jsxRuntime.jsx(FormSection, { title: title, icon: icon, status: key === 'general' ? undefined : 'not-submitted', children: body }) }));
|
|
2563
|
+
return jsxRuntime.jsxs("form", { className: `${styles$7.page} ${className}`, onSubmit: submit, "aria-label": "Group Travel Request form", children: [jsxRuntime.jsx("header", { className: styles$7.pageHeader, children: jsxRuntime.jsxs("h1", { children: ["Group Travel Request ", totalPages > 1 && jsxRuntime.jsxs("span", { children: ["(", currentPage, "/", totalPages, ")"] }), " ", jsxRuntime.jsxs("span", { children: ["\u2013 ", eventName] })] }) }), jsxRuntime.jsxs("div", { className: styles$7.mobileTabs, children: [jsxRuntime.jsx("button", { type: "button", className: activeTab === 'form' ? styles$7.activeTab : '', onClick: () => setActiveTab('form'), children: "Request Form" }), jsxRuntime.jsx("button", { type: "button", className: activeTab === 'summary' ? styles$7.activeTab : '', onClick: () => setActiveTab('summary'), children: "Summary" })] }), activeTab === 'form' && jsxRuntime.jsx("div", { className: styles$7.mobileServices, children: services.map((service) => jsxRuntime.jsxs("button", { type: "button", className: activeService === service.key ? styles$7.activeService : '', onClick: () => setActiveService((service.key === 'bus' ? 'busneeded' : service.key)), children: [service.icon, jsxRuntime.jsx("span", { children: service.label })] }, service.key)) }), jsxRuntime.jsxs("div", { className: styles$7.workspace, children: [jsxRuntime.jsxs("aside", { className: styles$7.serviceSidebar, children: [jsxRuntime.jsx(ServiceToggleList, { services: services, enabledServices: enabled, onToggle: toggleService, onClick: (key) => document.getElementById(key)?.scrollIntoView({ behavior: 'smooth', block: 'start' }) }), jsxRuntime.jsxs("div", { className: styles$7.tripEvents, children: [jsxRuntime.jsx("h3", { children: "Trip Events" }), jsxRuntime.jsxs("p", { children: [jsxRuntime.jsx(CalendarIcon$1, { size: 17 }), " ", eventName] })] })] }), jsxRuntime.jsxs("main", { className: `${styles$7.formMain} ${activeTab !== 'form' ? styles$7.mobileHidden : ''}`, children: [validationMessage && jsxRuntime.jsx(Alert, { variant: "error", children: validationMessage }), activeService !== 'general' && !enabled[activeService] && jsxRuntime.jsxs("div", { className: styles$7.mobileEnable, children: [jsxRuntime.jsx("span", { children: "Enable Service" }), jsxRuntime.jsx(Toggle, { "aria-label": `Enable ${activeService}`, checked: false, onChange: (checked) => toggleService(activeService, checked), size: "sm" })] }), section('general', 'General Details', jsxRuntime.jsx(EventsIcon, {}), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Field, { label: "Travel Party Size", name: "attendees", values: values, setValue: setValue, type: "number", min: 1, max: 999, note: "For Commercial Air requests, begin with the largest expected travel party.", required: true }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Trip Start", name: "tripstartdate", values: values, setValue: setValue, type: "date", required: true }), jsxRuntime.jsx(Field, { label: "Trip Return", name: "tripreturndate", values: values, setValue: setValue, type: "date", min: textValue(values.tripstartdate), required: true })] }), jsxRuntime.jsxs("div", { className: styles$7.contactGroup, children: [jsxRuntime.jsx("span", { className: styles$7.label, children: "Booking Contact *" }), jsxRuntime.jsx(Field, { label: "Full Name", name: "bookingcontact", values: values, setValue: setValue, disabled: true }), jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Phone Number", name: "bookingcontactphone", values: values, setValue: setValue, disabled: true }), jsxRuntime.jsx(Field, { label: "Email Address", name: "bookingcontactemail", values: values, setValue: setValue, type: "email", disabled: true })] })] }), jsxRuntime.jsx(Field, { label: "Request Email CC", name: "ccemail", values: values, setValue: setValue, type: "email", note: "Email addresses, comma delimited." }), jsxRuntime.jsx(Field, { label: "Main Travel Contact", name: "travelcontactid", values: values, setValue: (_name, value) => selectContact('travelcontact', value), options: contactOptions, required: true }), values.travelcontact && jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Main Contact Phone", name: "travelcontactphone", values: values, setValue: setValue, disabled: true }), jsxRuntime.jsx(Field, { label: "Main Contact Email", name: "travelcontactemail", values: values, setValue: setValue, disabled: true })] }), jsxRuntime.jsx(Field, { label: "Alternate Travel Contact", name: "alternatetravelcontactid", values: values, setValue: (_name, value) => selectContact('alternatetravelcontact', value), options: contactOptions }), values.alternatetravelcontact && jsxRuntime.jsxs(FormRow, { columns: 2, children: [jsxRuntime.jsx(Field, { label: "Alternate Contact Phone", name: "alternatetravelcontactphone", values: values, setValue: setValue, disabled: true }), jsxRuntime.jsx(Field, { label: "Alternate Contact Email", name: "alternatetravelcontactemail", values: values, setValue: setValue, disabled: true })] }), jsxRuntime.jsx(YesNo, { label: "Is this request for an elimination event or tournament that could require early departure?", name: "tournamenttripelimination", values: values, setValue: setValue }), jsxRuntime.jsx(Field, { label: "General Notes Regarding This Trip", name: "notes", values: values, setValue: setValue, multiline: true })] })), section('air', 'Commercial Air Request', jsxRuntime.jsx(PlaneIcon$3, { size: 24 }), jsxRuntime.jsx(FlightRequest, { prefix: "air", values: values, setValue: setValue, cateringOptions: cateringOptions })), section('charter', 'Charter Air Request', jsxRuntime.jsx(PlaneIcon$3, { size: 24 }), jsxRuntime.jsx(FlightRequest, { prefix: "charter", values: values, setValue: setValue, cateringOptions: cateringOptions })), section('hotel', 'Hotel Request', jsxRuntime.jsx(HotelIcon$3, { size: 24 }), jsxRuntime.jsx(HotelRequest, { values: values, setValue: setValue })), section('ground', 'Vehicle Rental Request', jsxRuntime.jsx(CarIcon$1, { size: 24 }), jsxRuntime.jsx(VehicleRentalRequest, { values: values, setValue: setValue })), section('busneeded', 'Bus Charter Request', jsxRuntime.jsx(BusIcon$2, { size: 24 }), jsxRuntime.jsx(BusRequest, { values: values, setValue: setValue, schoolAddress: schoolAddress }))] }), jsxRuntime.jsx("aside", { className: `${styles$7.summarySidebar} ${activeTab !== 'summary' ? styles$7.summaryMobileHidden : ''}`, children: jsxRuntime.jsx(RequestSummary, { values: values, enabled: enabled }) })] }), jsxRuntime.jsxs("footer", { className: styles$7.pageFooter, children: [jsxRuntime.jsx(Button, { type: "button", variant: "secondary", onClick: previous, children: currentPage === 1 ? totalPages > 1 ? 'Cancel All' : 'Cancel' : 'Previous' }), totalPages > 1 && jsxRuntime.jsx("div", { className: styles$7.pageButtons, children: Array.from({ length: totalPages }, (_, index) => jsxRuntime.jsx("button", { type: "button", className: currentPage === index + 1 ? styles$7.currentPage : '', disabled: index + 1 > currentPage, onClick: () => setCurrentPage(index + 1), children: index + 1 }, index)) }), jsxRuntime.jsx(Button, { type: "submit", children: currentPage === totalPages ? totalPages > 1 ? 'Submit All' : 'Submit' : 'Next' })] })] });
|
|
2466
2564
|
};
|
|
2467
2565
|
GroupTravelRequestPage.displayName = 'GroupTravelRequestPage';
|
|
2468
2566
|
|
|
@@ -2549,9 +2647,9 @@ var styles$5 = {"page":"InfoCenterPage-module_page__HHBce","breadcrumb":"InfoCen
|
|
|
2549
2647
|
|
|
2550
2648
|
const CATEGORY_META = {
|
|
2551
2649
|
Alert: { label: 'Alert', icon: WarningIcon$1, alert: true },
|
|
2552
|
-
Air: { label: 'Air', icon: PlaneIcon$
|
|
2553
|
-
Car: { label: 'Car', icon: CarIcon$
|
|
2554
|
-
Hotel: { label: 'Hotel', icon: HotelIcon$
|
|
2650
|
+
Air: { label: 'Air', icon: PlaneIcon$3 },
|
|
2651
|
+
Car: { label: 'Car', icon: CarIcon$1 },
|
|
2652
|
+
Hotel: { label: 'Hotel', icon: HotelIcon$3 },
|
|
2555
2653
|
Policy: { label: 'Policy', icon: DocumentIcon },
|
|
2556
2654
|
General: { label: 'General', icon: DocumentIcon },
|
|
2557
2655
|
STM: { label: "Short's Info", icon: InfoIcon$1 },
|
|
@@ -2765,12 +2863,12 @@ exports.Avatar = Avatar;
|
|
|
2765
2863
|
exports.AvatarGroup = AvatarGroup;
|
|
2766
2864
|
exports.Badge = Badge;
|
|
2767
2865
|
exports.BuildingIcon = BuildingIcon;
|
|
2768
|
-
exports.BusIcon = BusIcon$
|
|
2866
|
+
exports.BusIcon = BusIcon$2;
|
|
2769
2867
|
exports.Button = Button;
|
|
2770
2868
|
exports.CalendarIcon = CalendarIcon$1;
|
|
2771
2869
|
exports.CalendarTypeSelector = CalendarTypeSelector;
|
|
2772
2870
|
exports.CalendarViewSelector = CalendarViewSelector;
|
|
2773
|
-
exports.CarIcon = CarIcon$
|
|
2871
|
+
exports.CarIcon = CarIcon$1;
|
|
2774
2872
|
exports.Card = Card;
|
|
2775
2873
|
exports.CardBody = CardBody;
|
|
2776
2874
|
exports.CardFooter = CardFooter;
|
|
@@ -2813,7 +2911,7 @@ exports.HUB_ADMIN_ITEM = HUB_ADMIN_ITEM;
|
|
|
2813
2911
|
exports.HUB_INDIVIDUAL_TRAVEL_ITEM = HUB_INDIVIDUAL_TRAVEL_ITEM;
|
|
2814
2912
|
exports.HUB_NAV_ITEMS = HUB_NAV_ITEMS;
|
|
2815
2913
|
exports.HomeIcon = HomeIcon;
|
|
2816
|
-
exports.HotelIcon = HotelIcon$
|
|
2914
|
+
exports.HotelIcon = HotelIcon$3;
|
|
2817
2915
|
exports.HotelSegment = HotelSegment;
|
|
2818
2916
|
exports.HubAppShell = HubAppShell;
|
|
2819
2917
|
exports.Icons = Icons;
|
|
@@ -2842,7 +2940,7 @@ exports.NavItem = NavItem;
|
|
|
2842
2940
|
exports.NotFoundPage = NotFoundPage;
|
|
2843
2941
|
exports.PageBanners = PageBanners;
|
|
2844
2942
|
exports.PhoneIcon = PhoneIcon;
|
|
2845
|
-
exports.PlaneIcon = PlaneIcon$
|
|
2943
|
+
exports.PlaneIcon = PlaneIcon$3;
|
|
2846
2944
|
exports.PlusIcon = PlusIcon$2;
|
|
2847
2945
|
exports.PreferencesPanel = PreferencesPanel;
|
|
2848
2946
|
exports.PrinterIcon = PrinterIcon;
|
|
@@ -2855,7 +2953,7 @@ exports.ReportIcon = ReportIcon;
|
|
|
2855
2953
|
exports.RequestFormFooter = RequestFormFooter;
|
|
2856
2954
|
exports.RequestFormHeader = RequestFormHeader;
|
|
2857
2955
|
exports.RequestFormLayout = RequestFormLayout;
|
|
2858
|
-
exports.RequestSummary = RequestSummary;
|
|
2956
|
+
exports.RequestSummary = RequestSummary$1;
|
|
2859
2957
|
exports.RosterToolbar = RosterToolbar;
|
|
2860
2958
|
exports.SUPPLIER_TYPE_OPTIONS = SUPPLIER_TYPE_OPTIONS;
|
|
2861
2959
|
exports.SchoolContactForm = SchoolContactForm;
|