@burdenoff/microfe-ggnomad 2026.1029.3 → 2026.1030.2
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/generated/wspace-types.d.ts +102099 -35827
- package/dist/generated/wspace-types.d.ts.map +1 -1
- package/dist/ggnomad/components/AuditTrailDialog.d.ts +6 -0
- package/dist/ggnomad/components/AuditTrailDialog.d.ts.map +1 -1
- package/dist/ggnomad/components/AuditTrailDialog.js +47 -42
- package/dist/ggnomad/components/AuditTrailDialog.js.map +1 -1
- package/dist/ggnomad/components/EntityCard.d.ts +9 -1
- package/dist/ggnomad/components/EntityCard.d.ts.map +1 -1
- package/dist/ggnomad/components/EntityCard.js +14 -7
- package/dist/ggnomad/components/EntityCard.js.map +1 -1
- package/dist/ggnomad/graphql.d.ts +6 -0
- package/dist/ggnomad/graphql.d.ts.map +1 -1
- package/dist/ggnomad/graphql.js +39 -18
- package/dist/ggnomad/graphql.js.map +1 -1
- package/dist/ggnomad/hooks/useFocusedRecordParam.d.ts +23 -0
- package/dist/ggnomad/hooks/useFocusedRecordParam.d.ts.map +1 -0
- package/dist/ggnomad/hooks/useFocusedRecordParam.js +15 -0
- package/dist/ggnomad/hooks/useFocusedRecordParam.js.map +1 -0
- package/dist/ggnomad/pages/BookingsPage.d.ts.map +1 -1
- package/dist/ggnomad/pages/BookingsPage.js +149 -142
- package/dist/ggnomad/pages/BookingsPage.js.map +1 -1
- package/dist/ggnomad/pages/ProviderAnalyticsPage.d.ts.map +1 -1
- package/dist/ggnomad/pages/ProviderAnalyticsPage.js +135 -134
- package/dist/ggnomad/pages/ProviderAnalyticsPage.js.map +1 -1
- package/dist/services/assistantQuota.d.ts +69 -0
- package/dist/services/assistantQuota.d.ts.map +1 -0
- package/dist/services/assistantQuota.js +52 -0
- package/dist/services/assistantQuota.js.map +1 -0
- package/dist/services/createSandboxAssistantTransport.d.ts +5 -3
- package/dist/services/createSandboxAssistantTransport.d.ts.map +1 -1
- package/dist/services/createSandboxAssistantTransport.js +26 -6
- package/dist/services/createSandboxAssistantTransport.js.map +1 -1
- package/dist/utils/pageContext.d.ts +62 -8
- package/dist/utils/pageContext.d.ts.map +1 -1
- package/dist/utils/pageContext.js +114 -39
- package/dist/utils/pageContext.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","names":[],"sources":["../../src/ggnomad/graphql.ts"],"sourcesContent":["import { gql } from '@apollo/client/core';\n\nexport const GGNOMAD_OVERVIEW_QUERY = gql`\n query GGNomadOverview {\n ggnomadOverviewStats {\n users\n listings\n bookings\n monthlyRevenue\n }\n ggnomadAnalytics {\n totalRevenue\n totalBookings\n totalUsers\n conversionRate\n revenueByCategory\n monthlyTrends\n topDestinations\n }\n }\n`;\n\n/**\n * One bookable item of each type (properties are priced per night, the rest\n * carry a flat price). Used to seed the Bookings \"create demo booking\" action\n * with a REAL listing id so the mutation passes the backend's\n * assertTargetInWorkspace check instead of failing on a synthetic id.\n */\nexport const GGNOMAD_BOOKABLE_SAMPLE_QUERY = gql`\n query GGNomadBookableSample {\n ggnomadProperties(pagination: { limit: 1, offset: 0 }) {\n id\n name\n pricePerNight\n currency\n }\n ggnomadTours(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadEvents(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadActivities(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n }\n`;\n\n/**\n * id + name for every favouritable listing type, used to (a) resolve the real\n * entity name for a saved favorite (which the backend only exposes as\n * targetType + targetId) and (b) seed the \"toggle demo favorite\" action with a\n * real target id.\n */\nexport const GGNOMAD_FAVORITE_TARGETS_QUERY = gql`\n query GGNomadFavoriteTargets {\n ggnomadProperties(pagination: { limit: 100, offset: 0 }) {\n id\n name\n type\n pricePerNight\n currency\n rating\n reviewCount\n images\n }\n ggnomadTours(pagination: { limit: 100, offset: 0 }) {\n id\n name\n type\n price\n currency\n rating\n reviewCount\n images\n }\n ggnomadEvents(pagination: { limit: 100, offset: 0 }) {\n id\n name\n category\n price\n currency\n rating\n reviewCount\n images\n }\n ggnomadActivities(pagination: { limit: 100, offset: 0 }) {\n id\n name\n category\n price\n currency\n rating\n reviewCount\n images\n }\n ggnomadTrips(pagination: { limit: 100, offset: 0 }) {\n id\n name\n transportMode\n price\n currency\n }\n }\n`;\n\nexport const GGNOMAD_PROVIDERS_QUERY = gql`\n query GGNomadProviders($limit: Int, $offset: Int) {\n ggnomadProviders(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n type\n status\n listingCount\n totalRevenue\n rating\n reviewCount\n description\n contactEmail\n contactPhone\n website\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTIES_QUERY = gql`\n query GGNomadProperties(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadProperties(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n type\n status\n description\n pricePerNight\n currency\n rating\n reviewCount\n maxGuests\n amenities\n images\n providerId\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTY_QUERY = gql`\n query GGNomadProperty($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n type\n status\n description\n address\n pricePerNight\n currency\n rating\n reviewCount\n bedrooms\n bathrooms\n maxGuests\n checkInTime\n checkOutTime\n amenities\n images\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\n// Query to get property details for booking - ensures id is included\nexport const GGNOMAD_PROPERTY_FOR_BOOKING_QUERY = gql`\n query GGNomadPropertyForBooking($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n pricePerNight\n currency\n }\n }\n`;\n\nexport const GGNOMAD_TOURS_QUERY = gql`\n query GGNomadTours(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadTours(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n maxGroupSize\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_TOUR_QUERY = gql`\n query GGNomadTour($id: ID!) {\n ggnomadTour(id: $id) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n languages\n guideName\n location\n maxGroupSize\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\nexport const GGNOMAD_EVENTS_QUERY = gql`\n query GGNomadEvents(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadEvents(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n description\n category\n status\n startsAt\n price\n currency\n rating\n reviewCount\n performers\n images\n venue\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_EVENT_QUERY = gql`\n query GGNomadEvent($id: ID!) {\n ggnomadEvent(id: $id) {\n id\n name\n description\n category\n status\n startsAt\n endsAt\n venue\n price\n currency\n rating\n reviewCount\n performers\n images\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITIES_QUERY = gql`\n query GGNomadActivities(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadActivities(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n description\n category\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n images\n location\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITY_QUERY = gql`\n query GGNomadActivity($id: ID!) {\n ggnomadActivity(id: $id) {\n id\n name\n description\n category\n status\n location\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n safetyInfo\n images\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\nexport const GGNOMAD_TRIPS_QUERY = gql`\n query GGNomadTrips($limit: Int, $offset: Int) {\n ggnomadTrips(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n transportMode\n status\n origin\n destination\n departureAt\n arrivalAt\n isRoundTrip\n carrier\n class\n price\n currency\n passengers\n ecoFriendly\n carrierCode\n co2Emissions\n stops\n returnDepartureAt\n returnArrivalAt\n }\n }\n`;\n\nexport const GGNOMAD_BOOKINGS_QUERY = gql`\n query GGNomadBookings($limit: Int, $offset: Int, $status: GgnomadBookingStatus) {\n ggnomadBookings(pagination: { limit: $limit, offset: $offset }, status: $status) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n guestEmail\n guestPhone\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n paymentStatus\n paymentMethod\n specialRequests\n carbonEstimateKg\n carbonEstimateMethod\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_FAVORITES_QUERY = gql`\n query GGNomadFavorites {\n ggnomadFavorites\n }\n`;\n\nexport const CREATE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CreateGGNomadBooking($input: CreateGgnomadBookingInput!) {\n createGgnomadBooking(input: $input) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const TOGGLE_GGNOMAD_FAVORITE_MUTATION = gql`\n mutation ToggleGGNomadFavorite($input: ToggleGgnomadFavoriteInput!) {\n toggleGgnomadFavorite(input: $input)\n }\n`;\n\nexport const CANCEL_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CancelGGNomadBooking($id: ID!, $reason: String) {\n cancelGgnomadBooking(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\n// Mobile tickets / QR-code redemption (BOFF-4362)\nexport const GGNOMAD_TICKETS_QUERY = gql`\n query GGNomadTickets($bookingId: String) {\n ggnomadTickets(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n redeemedAt\n redeemedBy\n revokedAt\n revokedReason\n }\n }\n`;\n\nexport const ISSUE_GGNOMAD_TICKET_MUTATION = gql`\n mutation IssueGGNomadTicket($bookingId: ID!) {\n issueGgnomadTicket(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n }\n }\n`;\n\nexport const REDEEM_GGNOMAD_TICKET_MUTATION = gql`\n mutation RedeemGGNomadTicket($token: String!) {\n redeemGgnomadTicket(token: $token) {\n id\n bookingId\n ticketCode\n status\n redeemedAt\n redeemedBy\n }\n }\n`;\n\nexport const REVOKE_GGNOMAD_TICKET_MUTATION = gql`\n mutation RevokeGGNomadTicket($id: ID!, $reason: String) {\n revokeGgnomadTicket(id: $id, reason: $reason) {\n id\n status\n revokedAt\n revokedReason\n }\n }\n`;\n\n// Trip Plan Queries\nexport const GGNOMAD_TRIP_PLANS_QUERY = gql`\n query GGNomadTripPlans($limit: Int, $offset: Int) {\n ggnomadTripPlans(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_TRIP_PLAN_QUERY = gql`\n query GGNomadTripPlan($id: ID!) {\n ggnomadTripPlan(id: $id) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n items {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n createdAt\n updatedAt\n }\n }\n`;\n\n// Trip Plan Mutations\nexport const CREATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation CreateGGNomadTripPlan($input: CreateGgnomadTripPlanInput!) {\n createGgnomadTripPlan(input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation UpdateGGNomadTripPlan($id: ID!, $input: UpdateGgnomadTripPlanInput!) {\n updateGgnomadTripPlan(id: $id, input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n updatedAt\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation DeleteGGNomadTripPlan($id: ID!) {\n deleteGgnomadTripPlan(id: $id)\n }\n`;\n\nexport const ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation AddGGNomadTripPlanItem($tripPlanId: ID!, $input: AddGgnomadTripPlanItemInput!) {\n addGgnomadTripPlanItem(tripPlanId: $tripPlanId, input: $input) {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n }\n`;\n\nexport const REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation RemoveGGNomadTripPlanItem($id: ID!) {\n removeGgnomadTripPlanItem(id: $id)\n }\n`;\n\nexport const CREATE_GGNOMAD_PROVIDER_MUTATION = gql`\n mutation CreateGGNomadProvider($input: CreateGgnomadProviderInput!) {\n createGgnomadProvider(input: $input) {\n id\n name\n type\n status\n listingCount\n totalRevenue\n rating\n reviewCount\n description\n contactEmail\n contactPhone\n website\n createdAt\n }\n }\n`;\n\n// Review Queries\nexport const GGNOMAD_REVIEW_SUMMARY_QUERY = gql`\n query GGNomadReviewSummary($targetType: GgnomadBookingType!, $targetId: String!) {\n ggnomadReviewSummary(targetType: $targetType, targetId: $targetId) {\n average\n count\n distribution\n }\n }\n`;\n\nexport const GGNOMAD_REVIEWS_QUERY = gql`\n query GGNomadReviews(\n $targetType: GgnomadBookingType!\n $targetId: String!\n $limit: Int\n $offset: Int\n ) {\n ggnomadReviews(\n targetType: $targetType\n targetId: $targetId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n rating\n title\n content\n images\n isVerified\n helpfulCount\n response\n respondedAt\n createdAt\n }\n }\n`;\n\n// Review Mutations\nexport const CREATE_GGNOMAD_REVIEW_MUTATION = gql`\n mutation CreateGGNomadReview($input: CreateGgnomadReviewInput!) {\n createGgnomadReview(input: $input) {\n id\n rating\n title\n content\n }\n }\n`;\n\nexport const RESPOND_GGNOMAD_REVIEW_MUTATION = gql`\n mutation RespondGGNomadReview($id: ID!, $response: String!) {\n respondGgnomadReview(id: $id, response: $response) {\n id\n response\n respondedAt\n }\n }\n`;\n\n// Listing Edit Mutations\nexport const UPDATE_GGNOMAD_PROPERTY_MUTATION = gql`\n mutation UpdateGGNomadProperty($id: ID!, $input: UpdateGgnomadPropertyInput!) {\n updateGgnomadProperty(id: $id, input: $input) {\n id\n name\n description\n pricePerNight\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TOUR_MUTATION = gql`\n mutation UpdateGGNomadTour($id: ID!, $input: UpdateGgnomadTourInput!) {\n updateGgnomadTour(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_EVENT_MUTATION = gql`\n mutation UpdateGGNomadEvent($id: ID!, $input: UpdateGgnomadEventInput!) {\n updateGgnomadEvent(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_ACTIVITY_MUTATION = gql`\n mutation UpdateGGNomadActivity($id: ID!, $input: UpdateGgnomadActivityInput!) {\n updateGgnomadActivity(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\n// Corporate travel management — policy, budgets, approvals (BOFF-4365)\nexport const GGNOMAD_TRAVEL_POLICIES_QUERY = gql`\n query GGNomadTravelPolicies($limit: Int, $offset: Int) {\n ggnomadTravelPolicies(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n isActive\n costCenter\n currency\n maxBookingAmount\n maxMonthlyPerTraveler\n blockedDestinations\n allowedTravelClasses\n requireApprovalAlways\n createdAt\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation CreateGGNomadTravelPolicy($input: CreateGgnomadTravelPolicyInput!) {\n createGgnomadTravelPolicy(input: $input) {\n id\n name\n isActive\n costCenter\n currency\n maxBookingAmount\n maxMonthlyPerTraveler\n blockedDestinations\n allowedTravelClasses\n requireApprovalAlways\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation UpdateGGNomadTravelPolicy($id: ID!, $input: UpdateGgnomadTravelPolicyInput!) {\n updateGgnomadTravelPolicy(id: $id, input: $input) {\n id\n isActive\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation DeleteGGNomadTravelPolicy($id: ID!) {\n deleteGgnomadTravelPolicy(id: $id)\n }\n`;\n\nexport const GGNOMAD_BOOKING_APPROVALS_QUERY = gql`\n query GGNomadBookingApprovals($status: GgnomadApprovalStatus, $limit: Int, $offset: Int) {\n ggnomadBookingApprovals(status: $status, pagination: { limit: $limit, offset: $offset }) {\n id\n bookingId\n requestedBy\n costCenter\n reasons\n status\n reviewedBy\n reviewedAt\n reviewNote\n createdAt\n booking {\n id\n referenceCode\n itemName\n totalPrice\n currency\n status\n paymentStatus\n }\n }\n }\n`;\n\nexport const APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION = gql`\n mutation ApproveGGNomadBookingApproval($id: ID!, $note: String) {\n approveGgnomadBookingApproval(id: $id, note: $note) {\n id\n status\n reviewedBy\n reviewedAt\n }\n }\n`;\n\nexport const REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION = gql`\n mutation RejectGGNomadBookingApproval($id: ID!, $reason: String!) {\n rejectGgnomadBookingApproval(id: $id, reason: $reason) {\n id\n status\n reviewedBy\n reviewedAt\n reviewNote\n }\n }\n`;\n\nexport const GGNOMAD_SPEND_SUMMARY_QUERY = gql`\n query GGNomadSpendSummary($costCenter: String) {\n ggnomadSpendSummary(costCenter: $costCenter) {\n totalSpend\n bookingCount\n pendingApprovalCount\n pendingApprovalAmount\n byCostCenter\n }\n }\n`;\n\n// ─── BOFF-4388 — listing verification + booking lifecycle operations queue ─\n\nconst LISTING_QUEUE_FIELDS = `\n __typename\n ... on GgnomadProperty {\n id\n name\n status\n pricePerNight\n currency\n providerId\n updatedAt\n }\n ... on GgnomadTour {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadEvent {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadActivity {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n`;\n\nexport const GGNOMAD_LISTING_REVIEW_QUEUE_QUERY = gql`\n query GGNomadListingReviewQueue($limit: Int, $offset: Int) {\n ggnomadListingReviewQueue(pagination: { limit: $limit, offset: $offset }) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const SUBMIT_GGNOMAD_LISTING_FOR_REVIEW_MUTATION = gql`\n mutation SubmitGGNomadListingForReview($listingType: GgnomadListingType!, $id: ID!) {\n submitGgnomadListingForReview(listingType: $listingType, id: $id) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const APPROVE_GGNOMAD_LISTING_MUTATION = gql`\n mutation ApproveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $note: String) {\n approveGgnomadListing(listingType: $listingType, id: $id, note: $note) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const REJECT_GGNOMAD_LISTING_MUTATION = gql`\n mutation RejectGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String!) {\n rejectGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const PAUSE_GGNOMAD_LISTING_MUTATION = gql`\n mutation PauseGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {\n pauseGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const RESUME_GGNOMAD_LISTING_MUTATION = gql`\n mutation ResumeGGNomadListing($listingType: GgnomadListingType!, $id: ID!) {\n resumeGgnomadListing(listingType: $listingType, id: $id) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_GGNOMAD_LISTING_MUTATION = gql`\n mutation ArchiveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {\n archiveGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const GGNOMAD_BOOKING_QUEUE_QUERY = gql`\n query GGNomadBookingQueue($limit: Int, $offset: Int) {\n ggnomadBookingQueue(pagination: { limit: $limit, offset: $offset }) {\n id\n referenceCode\n bookingType\n status\n itemName\n guestName\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const CHECK_IN_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CheckInGGNomadBooking($id: ID!) {\n checkInGgnomadBooking(id: $id) {\n id\n status\n }\n }\n`;\n\nexport const COMPLETE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CompleteGGNomadBooking($id: ID!) {\n completeGgnomadBooking(id: $id) {\n id\n status\n }\n }\n`;\n\nexport const MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION = gql`\n mutation MarkGGNomadBookingNoShow($id: ID!, $reason: String) {\n markGgnomadBookingNoShow(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\nexport const GGNOMAD_AUDIT_LOG_QUERY = gql`\n query GGNomadAuditLog($entityType: String!, $entityId: String!, $limit: Int, $offset: Int) {\n ggnomadAuditLog(\n entityType: $entityType\n entityId: $entityId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n action\n fromStatus\n toStatus\n reason\n actorId\n createdAt\n }\n }\n`;\n\n// ─── BOFF-4390 — provider analytics dashboards ─────────────────────────────\n\nexport const GGNOMAD_MY_PROVIDERS_QUERY = gql`\n query GGNomadMyProviders {\n myGgnomadProviders {\n id\n name\n type\n status\n }\n }\n`;\n\nexport const GGNOMAD_MY_PROVIDER_ANALYTICS_QUERY = gql`\n query GGNomadMyProviderAnalytics(\n $providerId: ID!\n $dateFrom: DateTime\n $dateTo: DateTime\n $granularity: String\n ) {\n myGgnomadProviderAnalytics(\n providerId: $providerId\n dateFrom: $dateFrom\n dateTo: $dateTo\n granularity: $granularity\n ) {\n providerId\n providerName\n dateFrom\n dateTo\n granularity\n totalBookings\n totalRevenue\n cancelledBookings\n cancellationRate\n capacityUtilizationRate\n bookingsOverTime {\n period\n bookings\n revenue\n }\n topListings {\n listingId\n listingType\n listingName\n bookings\n revenue\n cancellationRate\n capacityUtilizationRate\n }\n }\n }\n`;\n\n// ─── BOFF-4363 — white-label operator storefront ───────────────────────────\n\nexport const GGNOMAD_OPERATOR_STOREFRONT_QUERY = gql`\n query GGNomadOperatorStorefront($providerId: ID!) {\n ggnomadOperatorStorefront(providerId: $providerId) {\n id\n providerId\n slug\n displayName\n logoUrl\n primaryColor\n aboutText\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const GGNOMAD_STOREFRONT_BY_SLUG_QUERY = gql`\n query GGNomadStorefrontBySlug($workspaceId: ID!, $slug: String!) {\n ggnomadStorefrontBySlug(workspaceId: $workspaceId, slug: $slug) {\n storefront {\n id\n displayName\n logoUrl\n primaryColor\n aboutText\n publishedAt\n }\n properties {\n id\n name\n pricePerNight\n currency\n images\n rating\n sustainabilityScore\n }\n tours {\n id\n name\n price\n currency\n images\n rating\n sustainabilityScore\n }\n events {\n id\n name\n price\n currency\n images\n startsAt\n sustainabilityScore\n }\n activities {\n id\n name\n price\n currency\n images\n rating\n sustainabilityScore\n }\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation CreateGGNomadOperatorStorefront($input: CreateGgnomadOperatorStorefrontInput!) {\n createGgnomadOperatorStorefront(input: $input) {\n id\n providerId\n slug\n displayName\n logoUrl\n primaryColor\n aboutText\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation UpdateGGNomadOperatorStorefront(\n $id: ID!\n $input: UpdateGgnomadOperatorStorefrontInput!\n ) {\n updateGgnomadOperatorStorefront(id: $id, input: $input) {\n id\n providerId\n slug\n displayName\n logoUrl\n primaryColor\n aboutText\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const PUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation PublishGGNomadOperatorStorefront($id: ID!) {\n publishGgnomadOperatorStorefront(id: $id) {\n id\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const UNPUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation UnpublishGGNomadOperatorStorefront($id: ID!) {\n unpublishGgnomadOperatorStorefront(id: $id) {\n id\n isPublished\n publishedAt\n }\n }\n`;\n\n// ─── BOFF-4361 — real-time availability slots for one listing ──────────────\n\nexport const GGNOMAD_BOOKING_SLOTS_QUERY = gql`\n query GGNomadBookingSlots(\n $listingId: ID!\n $listingType: GgnomadListingType!\n $dateFrom: DateTime\n $onlyAvailable: Boolean\n $limit: Int\n $offset: Int\n ) {\n ggnomadBookingSlots(\n listingId: $listingId\n listingType: $listingType\n dateFrom: $dateFrom\n onlyAvailable: $onlyAvailable\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n startAt\n endAt\n capacity\n bookedCount\n remainingCapacity\n isActive\n }\n }\n`;\n\n// ─── BOFF-4406 — transport inventory search + booking a searched leg ───────\n\nexport const GGNOMAD_TRANSPORT_SEARCH_QUERY = gql`\n query GGNomadTransportSearch($input: SearchGgnomadTransportInput!) {\n searchGgnomadTransport(input: $input) {\n offerId\n origin\n destination\n transportMode\n departureAt\n arrivalAt\n returnDepartureAt\n returnArrivalAt\n isRoundTrip\n carrier\n carrierCode\n class\n price\n currency\n passengers\n stops\n durationMinutes\n ecoFriendly\n co2Emissions\n providerName\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_TRIP_MUTATION = gql`\n mutation CreateGGNomadTrip($input: CreateGgnomadTripInput!) {\n createGgnomadTrip(input: $input) {\n id\n name\n status\n transportMode\n departureAt\n arrivalAt\n price\n currency\n }\n }\n`;\n\n// ─── BOFF-4374 — group trips: members, item votes, cost split ──────────────\n\nexport const GGNOMAD_MY_GROUP_TRIPS_QUERY = gql`\n query GGNomadMyGroupTrips {\n myGgnomadGroupTrips {\n id\n name\n tripPlanId\n splitMethod\n currency\n createdBy\n createdAt\n members {\n id\n actorId\n displayName\n email\n createdAt\n }\n }\n }\n`;\n\nexport const GGNOMAD_GROUP_TRIP_COST_SPLIT_QUERY = gql`\n query GGNomadGroupTripCostSplit($groupTripId: ID!) {\n ggnomadGroupTripCostSplit(groupTripId: $groupTripId) {\n currency\n totalCost\n splitMethod\n shares {\n memberId\n actorId\n displayName\n amountOwed\n assignedTotal\n sharedTotal\n }\n }\n }\n`;\n\nexport const GGNOMAD_GROUP_TRIP_VOTES_QUERY = gql`\n query GGNomadGroupTripVotes($groupTripId: ID!) {\n ggnomadGroupTripVotes(groupTripId: $groupTripId) {\n tripPlanItemId\n yes\n no\n abstain\n votes {\n id\n actorId\n choice\n comment\n createdAt\n }\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_GROUP_TRIP_MUTATION = gql`\n mutation CreateGGNomadGroupTrip($input: CreateGgnomadGroupTripInput!) {\n createGgnomadGroupTrip(input: $input) {\n id\n name\n tripPlanId\n splitMethod\n currency\n }\n }\n`;\n\nexport const ADD_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION = gql`\n mutation AddGGNomadGroupTripMember($groupTripId: ID!, $input: AddGgnomadGroupTripMemberInput!) {\n addGgnomadGroupTripMember(groupTripId: $groupTripId, input: $input) {\n id\n actorId\n displayName\n email\n }\n }\n`;\n\nexport const REMOVE_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION = gql`\n mutation RemoveGGNomadGroupTripMember($groupTripId: ID!, $memberId: ID!) {\n removeGgnomadGroupTripMember(groupTripId: $groupTripId, memberId: $memberId)\n }\n`;\n\nexport const VOTE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation VoteGGNomadTripPlanItem($groupTripId: ID!, $input: VoteGgnomadTripPlanItemInput!) {\n voteGgnomadTripPlanItem(groupTripId: $groupTripId, input: $input) {\n id\n tripPlanItemId\n choice\n comment\n }\n }\n`;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graphql.js","names":[],"sources":["../../src/ggnomad/graphql.ts"],"sourcesContent":["import { gql } from '@apollo/client/core';\n\nexport const GGNOMAD_OVERVIEW_QUERY = gql`\n query GGNomadOverview {\n ggnomadOverviewStats {\n users\n listings\n bookings\n monthlyRevenue\n }\n ggnomadAnalytics {\n totalRevenue\n totalBookings\n totalUsers\n conversionRate\n revenueByCategory\n monthlyTrends\n topDestinations\n }\n }\n`;\n\n/**\n * One bookable item of each type (properties are priced per night, the rest\n * carry a flat price). Used to seed the Bookings \"create demo booking\" action\n * with a REAL listing id so the mutation passes the backend's\n * assertTargetInWorkspace check instead of failing on a synthetic id.\n */\nexport const GGNOMAD_BOOKABLE_SAMPLE_QUERY = gql`\n query GGNomadBookableSample {\n ggnomadProperties(pagination: { limit: 1, offset: 0 }) {\n id\n name\n pricePerNight\n currency\n }\n ggnomadTours(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadEvents(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n ggnomadActivities(pagination: { limit: 1, offset: 0 }) {\n id\n name\n price\n currency\n }\n }\n`;\n\n/**\n * id + name for every favouritable listing type, used to (a) resolve the real\n * entity name for a saved favorite (which the backend only exposes as\n * targetType + targetId) and (b) seed the \"toggle demo favorite\" action with a\n * real target id.\n */\nexport const GGNOMAD_FAVORITE_TARGETS_QUERY = gql`\n query GGNomadFavoriteTargets {\n ggnomadProperties(pagination: { limit: 100, offset: 0 }) {\n id\n name\n type\n pricePerNight\n currency\n rating\n reviewCount\n images\n }\n ggnomadTours(pagination: { limit: 100, offset: 0 }) {\n id\n name\n type\n price\n currency\n rating\n reviewCount\n images\n }\n ggnomadEvents(pagination: { limit: 100, offset: 0 }) {\n id\n name\n category\n price\n currency\n rating\n reviewCount\n images\n }\n ggnomadActivities(pagination: { limit: 100, offset: 0 }) {\n id\n name\n category\n price\n currency\n rating\n reviewCount\n images\n }\n ggnomadTrips(pagination: { limit: 100, offset: 0 }) {\n id\n name\n transportMode\n price\n currency\n }\n }\n`;\n\nexport const GGNOMAD_PROVIDERS_QUERY = gql`\n query GGNomadProviders($limit: Int, $offset: Int) {\n ggnomadProviders(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n type\n status\n listingCount\n totalRevenue\n rating\n reviewCount\n description\n contactEmail\n contactPhone\n website\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTIES_QUERY = gql`\n query GGNomadProperties(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadProperties(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n type\n status\n description\n pricePerNight\n currency\n rating\n reviewCount\n maxGuests\n amenities\n images\n providerId\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_PROPERTY_QUERY = gql`\n query GGNomadProperty($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n type\n status\n description\n address\n pricePerNight\n currency\n rating\n reviewCount\n bedrooms\n bathrooms\n maxGuests\n checkInTime\n checkOutTime\n amenities\n images\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\n// Query to get property details for booking - ensures id is included\nexport const GGNOMAD_PROPERTY_FOR_BOOKING_QUERY = gql`\n query GGNomadPropertyForBooking($id: ID!) {\n ggnomadProperty(id: $id) {\n id\n name\n pricePerNight\n currency\n }\n }\n`;\n\nexport const GGNOMAD_TOURS_QUERY = gql`\n query GGNomadTours(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadTours(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n maxGroupSize\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_TOUR_QUERY = gql`\n query GGNomadTour($id: ID!) {\n ggnomadTour(id: $id) {\n id\n name\n description\n type\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n highlights\n images\n languages\n guideName\n location\n maxGroupSize\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\nexport const GGNOMAD_EVENTS_QUERY = gql`\n query GGNomadEvents(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadEvents(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n description\n category\n status\n startsAt\n price\n currency\n rating\n reviewCount\n performers\n images\n venue\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_EVENT_QUERY = gql`\n query GGNomadEvent($id: ID!) {\n ggnomadEvent(id: $id) {\n id\n name\n description\n category\n status\n startsAt\n endsAt\n venue\n price\n currency\n rating\n reviewCount\n performers\n images\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITIES_QUERY = gql`\n query GGNomadActivities(\n $limit: Int\n $offset: Int\n $status: GgnomadListingStatus\n $minSustainabilityScore: Int\n $hasAccessibilityFeatures: [GgnomadAccessibilityFeature!]\n ) {\n ggnomadActivities(\n pagination: { limit: $limit, offset: $offset }\n status: $status\n minSustainabilityScore: $minSustainabilityScore\n hasAccessibilityFeatures: $hasAccessibilityFeatures\n ) {\n id\n name\n description\n category\n status\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n images\n location\n instantBook\n sustainabilityScore\n accessibilityFeatures\n }\n }\n`;\n\nexport const GGNOMAD_ACTIVITY_QUERY = gql`\n query GGNomadActivity($id: ID!) {\n ggnomadActivity(id: $id) {\n id\n name\n description\n category\n status\n location\n duration\n difficulty\n price\n currency\n rating\n reviewCount\n maxParticipants\n includes\n requirements\n safetyInfo\n images\n instantBook\n sustainabilityScore\n sustainabilityPractices\n accessibilityFeatures\n provider {\n id\n name\n type\n rating\n reviewCount\n listingCount\n contactEmail\n website\n }\n }\n }\n`;\n\nexport const GGNOMAD_TRIPS_QUERY = gql`\n query GGNomadTrips($limit: Int, $offset: Int) {\n ggnomadTrips(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n transportMode\n status\n origin\n destination\n departureAt\n arrivalAt\n isRoundTrip\n carrier\n class\n price\n currency\n passengers\n ecoFriendly\n carrierCode\n co2Emissions\n stops\n returnDepartureAt\n returnArrivalAt\n }\n }\n`;\n\nexport const GGNOMAD_BOOKINGS_QUERY = gql`\n query GGNomadBookings($limit: Int, $offset: Int, $status: GgnomadBookingStatus) {\n ggnomadBookings(pagination: { limit: $limit, offset: $offset }, status: $status) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n guestEmail\n guestPhone\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n paymentStatus\n paymentMethod\n specialRequests\n carbonEstimateKg\n carbonEstimateMethod\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_FAVORITES_QUERY = gql`\n query GGNomadFavorites {\n ggnomadFavorites\n }\n`;\n\nexport const CREATE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CreateGGNomadBooking($input: CreateGgnomadBookingInput!) {\n createGgnomadBooking(input: $input) {\n id\n referenceCode\n bookingType\n status\n itemId\n itemName\n guestName\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const TOGGLE_GGNOMAD_FAVORITE_MUTATION = gql`\n mutation ToggleGGNomadFavorite($input: ToggleGgnomadFavoriteInput!) {\n toggleGgnomadFavorite(input: $input)\n }\n`;\n\nexport const CANCEL_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CancelGGNomadBooking($id: ID!, $reason: String) {\n cancelGgnomadBooking(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\n// Mobile tickets / QR-code redemption (BOFF-4362)\nexport const GGNOMAD_TICKETS_QUERY = gql`\n query GGNomadTickets($bookingId: String) {\n ggnomadTickets(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n redeemedAt\n redeemedBy\n revokedAt\n revokedReason\n }\n }\n`;\n\nexport const ISSUE_GGNOMAD_TICKET_MUTATION = gql`\n mutation IssueGGNomadTicket($bookingId: ID!) {\n issueGgnomadTicket(bookingId: $bookingId) {\n id\n bookingId\n ticketCode\n qrCodeDataUrl\n status\n issuedAt\n }\n }\n`;\n\nexport const REDEEM_GGNOMAD_TICKET_MUTATION = gql`\n mutation RedeemGGNomadTicket($token: String!) {\n redeemGgnomadTicket(token: $token) {\n id\n bookingId\n ticketCode\n status\n redeemedAt\n redeemedBy\n }\n }\n`;\n\nexport const REVOKE_GGNOMAD_TICKET_MUTATION = gql`\n mutation RevokeGGNomadTicket($id: ID!, $reason: String) {\n revokeGgnomadTicket(id: $id, reason: $reason) {\n id\n status\n revokedAt\n revokedReason\n }\n }\n`;\n\n// Trip Plan Queries\nexport const GGNOMAD_TRIP_PLANS_QUERY = gql`\n query GGNomadTripPlans($limit: Int, $offset: Int) {\n ggnomadTripPlans(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const GGNOMAD_TRIP_PLAN_QUERY = gql`\n query GGNomadTripPlan($id: ID!) {\n ggnomadTripPlan(id: $id) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n items {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n createdAt\n updatedAt\n }\n }\n`;\n\n// Trip Plan Mutations\nexport const CREATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation CreateGGNomadTripPlan($input: CreateGgnomadTripPlanInput!) {\n createGgnomadTripPlan(input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n createdAt\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation UpdateGGNomadTripPlan($id: ID!, $input: UpdateGgnomadTripPlanInput!) {\n updateGgnomadTripPlan(id: $id, input: $input) {\n id\n name\n description\n startDate\n endDate\n travelers\n status\n total\n itemCount\n updatedAt\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRIP_PLAN_MUTATION = gql`\n mutation DeleteGGNomadTripPlan($id: ID!) {\n deleteGgnomadTripPlan(id: $id)\n }\n`;\n\nexport const ADD_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation AddGGNomadTripPlanItem($tripPlanId: ID!, $input: AddGgnomadTripPlanItemInput!) {\n addGgnomadTripPlanItem(tripPlanId: $tripPlanId, input: $input) {\n id\n itemType\n itemId\n itemName\n day\n scheduledAt\n price\n currency\n notes\n }\n }\n`;\n\nexport const REMOVE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation RemoveGGNomadTripPlanItem($id: ID!) {\n removeGgnomadTripPlanItem(id: $id)\n }\n`;\n\nexport const CREATE_GGNOMAD_PROVIDER_MUTATION = gql`\n mutation CreateGGNomadProvider($input: CreateGgnomadProviderInput!) {\n createGgnomadProvider(input: $input) {\n id\n name\n type\n status\n listingCount\n totalRevenue\n rating\n reviewCount\n description\n contactEmail\n contactPhone\n website\n createdAt\n }\n }\n`;\n\n// Review Queries\nexport const GGNOMAD_REVIEW_SUMMARY_QUERY = gql`\n query GGNomadReviewSummary($targetType: GgnomadBookingType!, $targetId: String!) {\n ggnomadReviewSummary(targetType: $targetType, targetId: $targetId) {\n average\n count\n distribution\n }\n }\n`;\n\nexport const GGNOMAD_REVIEWS_QUERY = gql`\n query GGNomadReviews(\n $targetType: GgnomadBookingType!\n $targetId: String!\n $limit: Int\n $offset: Int\n ) {\n ggnomadReviews(\n targetType: $targetType\n targetId: $targetId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n rating\n title\n content\n images\n isVerified\n helpfulCount\n response\n respondedAt\n createdAt\n }\n }\n`;\n\n// Review Mutations\nexport const CREATE_GGNOMAD_REVIEW_MUTATION = gql`\n mutation CreateGGNomadReview($input: CreateGgnomadReviewInput!) {\n createGgnomadReview(input: $input) {\n id\n rating\n title\n content\n }\n }\n`;\n\nexport const RESPOND_GGNOMAD_REVIEW_MUTATION = gql`\n mutation RespondGGNomadReview($id: ID!, $response: String!) {\n respondGgnomadReview(id: $id, response: $response) {\n id\n response\n respondedAt\n }\n }\n`;\n\n// Listing Edit Mutations\nexport const UPDATE_GGNOMAD_PROPERTY_MUTATION = gql`\n mutation UpdateGGNomadProperty($id: ID!, $input: UpdateGgnomadPropertyInput!) {\n updateGgnomadProperty(id: $id, input: $input) {\n id\n name\n description\n pricePerNight\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TOUR_MUTATION = gql`\n mutation UpdateGGNomadTour($id: ID!, $input: UpdateGgnomadTourInput!) {\n updateGgnomadTour(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_EVENT_MUTATION = gql`\n mutation UpdateGGNomadEvent($id: ID!, $input: UpdateGgnomadEventInput!) {\n updateGgnomadEvent(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_ACTIVITY_MUTATION = gql`\n mutation UpdateGGNomadActivity($id: ID!, $input: UpdateGgnomadActivityInput!) {\n updateGgnomadActivity(id: $id, input: $input) {\n id\n name\n description\n price\n status\n images\n }\n }\n`;\n\n// Corporate travel management — policy, budgets, approvals (BOFF-4365)\nexport const GGNOMAD_TRAVEL_POLICIES_QUERY = gql`\n query GGNomadTravelPolicies($limit: Int, $offset: Int) {\n ggnomadTravelPolicies(pagination: { limit: $limit, offset: $offset }) {\n id\n name\n isActive\n costCenter\n currency\n maxBookingAmount\n maxMonthlyPerTraveler\n blockedDestinations\n allowedTravelClasses\n requireApprovalAlways\n createdAt\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation CreateGGNomadTravelPolicy($input: CreateGgnomadTravelPolicyInput!) {\n createGgnomadTravelPolicy(input: $input) {\n id\n name\n isActive\n costCenter\n currency\n maxBookingAmount\n maxMonthlyPerTraveler\n blockedDestinations\n allowedTravelClasses\n requireApprovalAlways\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation UpdateGGNomadTravelPolicy($id: ID!, $input: UpdateGgnomadTravelPolicyInput!) {\n updateGgnomadTravelPolicy(id: $id, input: $input) {\n id\n isActive\n }\n }\n`;\n\nexport const DELETE_GGNOMAD_TRAVEL_POLICY_MUTATION = gql`\n mutation DeleteGGNomadTravelPolicy($id: ID!) {\n deleteGgnomadTravelPolicy(id: $id)\n }\n`;\n\nexport const GGNOMAD_BOOKING_APPROVALS_QUERY = gql`\n query GGNomadBookingApprovals($status: GgnomadApprovalStatus, $limit: Int, $offset: Int) {\n ggnomadBookingApprovals(status: $status, pagination: { limit: $limit, offset: $offset }) {\n id\n bookingId\n requestedBy\n costCenter\n reasons\n status\n reviewedBy\n reviewedAt\n reviewNote\n createdAt\n booking {\n id\n referenceCode\n itemName\n totalPrice\n currency\n status\n paymentStatus\n }\n }\n }\n`;\n\nexport const APPROVE_GGNOMAD_BOOKING_APPROVAL_MUTATION = gql`\n mutation ApproveGGNomadBookingApproval($id: ID!, $note: String) {\n approveGgnomadBookingApproval(id: $id, note: $note) {\n id\n status\n reviewedBy\n reviewedAt\n }\n }\n`;\n\nexport const REJECT_GGNOMAD_BOOKING_APPROVAL_MUTATION = gql`\n mutation RejectGGNomadBookingApproval($id: ID!, $reason: String!) {\n rejectGgnomadBookingApproval(id: $id, reason: $reason) {\n id\n status\n reviewedBy\n reviewedAt\n reviewNote\n }\n }\n`;\n\nexport const GGNOMAD_SPEND_SUMMARY_QUERY = gql`\n query GGNomadSpendSummary($costCenter: String) {\n ggnomadSpendSummary(costCenter: $costCenter) {\n totalSpend\n bookingCount\n pendingApprovalCount\n pendingApprovalAmount\n byCostCenter\n }\n }\n`;\n\n// ─── BOFF-4388 — listing verification + booking lifecycle operations queue ─\n\nconst LISTING_QUEUE_FIELDS = `\n __typename\n ... on GgnomadProperty {\n id\n name\n status\n pricePerNight\n currency\n providerId\n updatedAt\n }\n ... on GgnomadTour {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadEvent {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n ... on GgnomadActivity {\n id\n name\n status\n price\n currency\n providerId\n updatedAt\n }\n`;\n\nexport const GGNOMAD_LISTING_REVIEW_QUEUE_QUERY = gql`\n query GGNomadListingReviewQueue($limit: Int, $offset: Int) {\n ggnomadListingReviewQueue(pagination: { limit: $limit, offset: $offset }) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const SUBMIT_GGNOMAD_LISTING_FOR_REVIEW_MUTATION = gql`\n mutation SubmitGGNomadListingForReview($listingType: GgnomadListingType!, $id: ID!) {\n submitGgnomadListingForReview(listingType: $listingType, id: $id) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const APPROVE_GGNOMAD_LISTING_MUTATION = gql`\n mutation ApproveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $note: String) {\n approveGgnomadListing(listingType: $listingType, id: $id, note: $note) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const REJECT_GGNOMAD_LISTING_MUTATION = gql`\n mutation RejectGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String!) {\n rejectGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const PAUSE_GGNOMAD_LISTING_MUTATION = gql`\n mutation PauseGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {\n pauseGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const RESUME_GGNOMAD_LISTING_MUTATION = gql`\n mutation ResumeGGNomadListing($listingType: GgnomadListingType!, $id: ID!) {\n resumeGgnomadListing(listingType: $listingType, id: $id) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const ARCHIVE_GGNOMAD_LISTING_MUTATION = gql`\n mutation ArchiveGGNomadListing($listingType: GgnomadListingType!, $id: ID!, $reason: String) {\n archiveGgnomadListing(listingType: $listingType, id: $id, reason: $reason) {\n ${LISTING_QUEUE_FIELDS}\n }\n }\n`;\n\nexport const GGNOMAD_BOOKING_QUEUE_QUERY = gql`\n query GGNomadBookingQueue($limit: Int, $offset: Int) {\n ggnomadBookingQueue(pagination: { limit: $limit, offset: $offset }) {\n id\n referenceCode\n bookingType\n status\n itemName\n guestName\n guests\n checkIn\n checkOut\n eventDate\n totalPrice\n currency\n createdAt\n }\n }\n`;\n\nexport const CHECK_IN_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CheckInGGNomadBooking($id: ID!) {\n checkInGgnomadBooking(id: $id) {\n id\n status\n }\n }\n`;\n\nexport const COMPLETE_GGNOMAD_BOOKING_MUTATION = gql`\n mutation CompleteGGNomadBooking($id: ID!) {\n completeGgnomadBooking(id: $id) {\n id\n status\n }\n }\n`;\n\nexport const MARK_GGNOMAD_BOOKING_NO_SHOW_MUTATION = gql`\n mutation MarkGGNomadBookingNoShow($id: ID!, $reason: String) {\n markGgnomadBookingNoShow(id: $id, reason: $reason) {\n id\n status\n }\n }\n`;\n\nexport const GGNOMAD_AUDIT_LOG_QUERY = gql`\n query GGNomadAuditLog($entityType: String!, $entityId: String!, $limit: Int, $offset: Int) {\n ggnomadAuditLog(\n entityType: $entityType\n entityId: $entityId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n action\n fromStatus\n toStatus\n reason\n actorId\n createdAt\n }\n }\n`;\n\n/**\n * BOFF-10248 — ggnomadAuditLog returns history only to the people involved in\n * an entity (a booking's traveler or host, a listing's owner). Operators\n * (ggnomad:manage) read any entity's history through this field.\n */\nexport const GGNOMAD_WORKSPACE_AUDIT_LOG_QUERY = gql`\n query GGNomadWorkspaceAuditLog(\n $entityType: String!\n $entityId: String!\n $limit: Int\n $offset: Int\n ) {\n ggnomadWorkspaceAuditLog(\n entityType: $entityType\n entityId: $entityId\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n action\n fromStatus\n toStatus\n reason\n actorId\n createdAt\n }\n }\n`;\n\n// ─── BOFF-4390 — provider analytics dashboards ─────────────────────────────\n\nexport const GGNOMAD_MY_PROVIDERS_QUERY = gql`\n query GGNomadMyProviders {\n myGgnomadProviders {\n id\n name\n type\n status\n }\n }\n`;\n\nexport const GGNOMAD_MY_PROVIDER_ANALYTICS_QUERY = gql`\n query GGNomadMyProviderAnalytics(\n $providerId: ID!\n $dateFrom: DateTime\n $dateTo: DateTime\n $granularity: String\n ) {\n myGgnomadProviderAnalytics(\n providerId: $providerId\n dateFrom: $dateFrom\n dateTo: $dateTo\n granularity: $granularity\n ) {\n providerId\n providerName\n dateFrom\n dateTo\n granularity\n totalBookings\n totalRevenue\n cancelledBookings\n cancellationRate\n capacityUtilizationRate\n bookingsOverTime {\n period\n bookings\n revenue\n }\n topListings {\n listingId\n listingType\n listingName\n bookings\n revenue\n cancellationRate\n capacityUtilizationRate\n }\n }\n }\n`;\n\n// ─── BOFF-4363 — white-label operator storefront ───────────────────────────\n\nexport const GGNOMAD_OPERATOR_STOREFRONT_QUERY = gql`\n query GGNomadOperatorStorefront($providerId: ID!) {\n ggnomadOperatorStorefront(providerId: $providerId) {\n id\n providerId\n slug\n displayName\n logoUrl\n primaryColor\n aboutText\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const GGNOMAD_STOREFRONT_BY_SLUG_QUERY = gql`\n query GGNomadStorefrontBySlug($workspaceId: ID!, $slug: String!) {\n ggnomadStorefrontBySlug(workspaceId: $workspaceId, slug: $slug) {\n storefront {\n id\n displayName\n logoUrl\n primaryColor\n aboutText\n publishedAt\n }\n properties {\n id\n name\n pricePerNight\n currency\n images\n rating\n sustainabilityScore\n }\n tours {\n id\n name\n price\n currency\n images\n rating\n sustainabilityScore\n }\n events {\n id\n name\n price\n currency\n images\n startsAt\n sustainabilityScore\n }\n activities {\n id\n name\n price\n currency\n images\n rating\n sustainabilityScore\n }\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation CreateGGNomadOperatorStorefront($input: CreateGgnomadOperatorStorefrontInput!) {\n createGgnomadOperatorStorefront(input: $input) {\n id\n providerId\n slug\n displayName\n logoUrl\n primaryColor\n aboutText\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const UPDATE_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation UpdateGGNomadOperatorStorefront(\n $id: ID!\n $input: UpdateGgnomadOperatorStorefrontInput!\n ) {\n updateGgnomadOperatorStorefront(id: $id, input: $input) {\n id\n providerId\n slug\n displayName\n logoUrl\n primaryColor\n aboutText\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const PUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation PublishGGNomadOperatorStorefront($id: ID!) {\n publishGgnomadOperatorStorefront(id: $id) {\n id\n isPublished\n publishedAt\n }\n }\n`;\n\nexport const UNPUBLISH_GGNOMAD_OPERATOR_STOREFRONT_MUTATION = gql`\n mutation UnpublishGGNomadOperatorStorefront($id: ID!) {\n unpublishGgnomadOperatorStorefront(id: $id) {\n id\n isPublished\n publishedAt\n }\n }\n`;\n\n// ─── BOFF-4361 — real-time availability slots for one listing ──────────────\n\nexport const GGNOMAD_BOOKING_SLOTS_QUERY = gql`\n query GGNomadBookingSlots(\n $listingId: ID!\n $listingType: GgnomadListingType!\n $dateFrom: DateTime\n $onlyAvailable: Boolean\n $limit: Int\n $offset: Int\n ) {\n ggnomadBookingSlots(\n listingId: $listingId\n listingType: $listingType\n dateFrom: $dateFrom\n onlyAvailable: $onlyAvailable\n pagination: { limit: $limit, offset: $offset }\n ) {\n id\n startAt\n endAt\n capacity\n bookedCount\n remainingCapacity\n isActive\n }\n }\n`;\n\n// ─── BOFF-4406 — transport inventory search + booking a searched leg ───────\n\nexport const GGNOMAD_TRANSPORT_SEARCH_QUERY = gql`\n query GGNomadTransportSearch($input: SearchGgnomadTransportInput!) {\n searchGgnomadTransport(input: $input) {\n offerId\n origin\n destination\n transportMode\n departureAt\n arrivalAt\n returnDepartureAt\n returnArrivalAt\n isRoundTrip\n carrier\n carrierCode\n class\n price\n currency\n passengers\n stops\n durationMinutes\n ecoFriendly\n co2Emissions\n providerName\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_TRIP_MUTATION = gql`\n mutation CreateGGNomadTrip($input: CreateGgnomadTripInput!) {\n createGgnomadTrip(input: $input) {\n id\n name\n status\n transportMode\n departureAt\n arrivalAt\n price\n currency\n }\n }\n`;\n\n// ─── BOFF-4374 — group trips: members, item votes, cost split ──────────────\n\nexport const GGNOMAD_MY_GROUP_TRIPS_QUERY = gql`\n query GGNomadMyGroupTrips {\n myGgnomadGroupTrips {\n id\n name\n tripPlanId\n splitMethod\n currency\n createdBy\n createdAt\n members {\n id\n actorId\n displayName\n email\n createdAt\n }\n }\n }\n`;\n\nexport const GGNOMAD_GROUP_TRIP_COST_SPLIT_QUERY = gql`\n query GGNomadGroupTripCostSplit($groupTripId: ID!) {\n ggnomadGroupTripCostSplit(groupTripId: $groupTripId) {\n currency\n totalCost\n splitMethod\n shares {\n memberId\n actorId\n displayName\n amountOwed\n assignedTotal\n sharedTotal\n }\n }\n }\n`;\n\nexport const GGNOMAD_GROUP_TRIP_VOTES_QUERY = gql`\n query GGNomadGroupTripVotes($groupTripId: ID!) {\n ggnomadGroupTripVotes(groupTripId: $groupTripId) {\n tripPlanItemId\n yes\n no\n abstain\n votes {\n id\n actorId\n choice\n comment\n createdAt\n }\n }\n }\n`;\n\nexport const CREATE_GGNOMAD_GROUP_TRIP_MUTATION = gql`\n mutation CreateGGNomadGroupTrip($input: CreateGgnomadGroupTripInput!) {\n createGgnomadGroupTrip(input: $input) {\n id\n name\n tripPlanId\n splitMethod\n currency\n }\n }\n`;\n\nexport const ADD_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION = gql`\n mutation AddGGNomadGroupTripMember($groupTripId: ID!, $input: AddGgnomadGroupTripMemberInput!) {\n addGgnomadGroupTripMember(groupTripId: $groupTripId, input: $input) {\n id\n actorId\n displayName\n email\n }\n }\n`;\n\nexport const REMOVE_GGNOMAD_GROUP_TRIP_MEMBER_MUTATION = gql`\n mutation RemoveGGNomadGroupTripMember($groupTripId: ID!, $memberId: ID!) {\n removeGgnomadGroupTripMember(groupTripId: $groupTripId, memberId: $memberId)\n }\n`;\n\nexport const VOTE_GGNOMAD_TRIP_PLAN_ITEM_MUTATION = gql`\n mutation VoteGGNomadTripPlanItem($groupTripId: ID!, $input: VoteGgnomadTripPlanItemInput!) {\n voteGgnomadTripPlanItem(groupTripId: $groupTripId, input: $input) {\n id\n tripPlanItemId\n choice\n comment\n }\n }\n`;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The search param that names the record a list page is focused on.
|
|
3
|
+
*
|
|
4
|
+
* `resolveGGNomadConversationContext` (`src/utils/pageContext.ts`) reads the
|
|
5
|
+
* same `?id=` on the bookings and provider-analytics pages, so the assistant
|
|
6
|
+
* can act on "this booking" without asking which one the user means, and the
|
|
7
|
+
* focused record is linkable.
|
|
8
|
+
*/
|
|
9
|
+
export declare const FOCUSED_RECORD_PARAM = "id";
|
|
10
|
+
/**
|
|
11
|
+
* The focused record on a list page, held in the URL rather than component
|
|
12
|
+
* state.
|
|
13
|
+
*
|
|
14
|
+
* Keeping the URL as the single source of truth means a deep link or a reload
|
|
15
|
+
* focuses the same record even before (or without) the list loading it, and
|
|
16
|
+
* there is no second copy of the selection to fall out of step. Updates use
|
|
17
|
+
* `replace` so focusing records does not fill the browser history.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useFocusedRecordParam(): readonly [
|
|
20
|
+
focusedId: string | null,
|
|
21
|
+
setFocusedId: (id: string | null) => void
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=useFocusedRecordParam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusedRecordParam.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/hooks/useFocusedRecordParam.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,SAAS;IAChD,SAAS,EAAE,MAAM,GAAG,IAAI;IACxB,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI;CAC1C,CAuBA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useCallback as e } from "react";
|
|
2
|
+
import { useSearchParams as t } from "react-router";
|
|
3
|
+
function n() {
|
|
4
|
+
let [n, r] = t();
|
|
5
|
+
return [n.get("id"), e((e) => {
|
|
6
|
+
r((t) => {
|
|
7
|
+
let n = new URLSearchParams(t);
|
|
8
|
+
return e ? n.set("id", e) : n.delete("id"), n;
|
|
9
|
+
}, { replace: !0 });
|
|
10
|
+
}, [r])];
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { n as useFocusedRecordParam };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=useFocusedRecordParam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFocusedRecordParam.js","names":[],"sources":["../../../src/ggnomad/hooks/useFocusedRecordParam.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useSearchParams } from 'react-router';\n\n/**\n * The search param that names the record a list page is focused on.\n *\n * `resolveGGNomadConversationContext` (`src/utils/pageContext.ts`) reads the\n * same `?id=` on the bookings and provider-analytics pages, so the assistant\n * can act on \"this booking\" without asking which one the user means, and the\n * focused record is linkable.\n */\nexport const FOCUSED_RECORD_PARAM = 'id';\n\n/**\n * The focused record on a list page, held in the URL rather than component\n * state.\n *\n * Keeping the URL as the single source of truth means a deep link or a reload\n * focuses the same record even before (or without) the list loading it, and\n * there is no second copy of the selection to fall out of step. Updates use\n * `replace` so focusing records does not fill the browser history.\n */\nexport function useFocusedRecordParam(): readonly [\n focusedId: string | null,\n setFocusedId: (id: string | null) => void,\n] {\n const [searchParams, setSearchParams] = useSearchParams();\n const focusedId = searchParams.get(FOCUSED_RECORD_PARAM);\n\n const setFocusedId = useCallback(\n (id: string | null) => {\n setSearchParams(\n (previous) => {\n const next = new URLSearchParams(previous);\n if (id) {\n next.set(FOCUSED_RECORD_PARAM, id);\n } else {\n next.delete(FOCUSED_RECORD_PARAM);\n }\n return next;\n },\n { replace: true }\n );\n },\n [setSearchParams]\n );\n\n return [focusedId, setFocusedId] as const;\n}\n"],"mappings":";;AAsBA,SAAgB,IAGd;CACA,IAAM,CAAC,GAAc,KAAmB,EAAgB;CAqBxD,OAAO,CApBW,EAAa,IAAA,IAoBvB,GAlBa,GAClB,MAAsB;EACrB,GACG,MAAa;GACZ,IAAM,IAAO,IAAI,gBAAgB,CAAQ;GAMzC,OALI,IACF,EAAK,IAAA,MAA0B,CAAE,IAEjC,EAAK,OAAA,IAA2B,GAE3B;EACT,GACA,EAAE,SAAS,GAAK,CAClB;CACF,GACA,CAAC,CAAe,CAGC,CAAY;AACjC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookingsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/BookingsPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BookingsPage.d.ts","sourceRoot":"","sources":["../../../src/ggnomad/pages/BookingsPage.tsx"],"names":[],"mappings":"AA6EA,wBAAgB,YAAY,gCA6f3B"}
|